Jueves 20 de julio de 2017

Gunnar Wolf

Gunnar Wolf
Gunnar Wolf

Hey, everybody, come share the joy of work!

I got several interesting and useful replies, both via the blog and by personal email, to my two previous posts where I mentioned I would be starting a translation of the Made With Creative Commons book. It is my pleasure to say: Welcome everybody, come and share the joy of work!

Some weeks ago, our project was accepted as part of Hosted Weblate, lowering the bar for any interested potential contributor. So, whoever wants to be a part of this: You just have to log in to Weblate (or create an account if needed), and start working!

What is our current status? Amazingly better than anything I have exepcted: Not only we have made great progress in Spanish, reaching >28% of translated source strings, but also other people have started translating into Norwegian Bokmål (hi Petter!) and Dutch (hats off to Heimen Stoffels!). So far, Spanish (where Leo Arias and myself are working) is most active, but anything can happen.

I still want to work a bit on the initial, pre-po4a text filtering, as there are a small number of issues to fix. But they are few and easy to spot, your translations will not be hampered much when I solve the missing pieces.

So, go ahead and get to work! :-D Oh, and if you translate sizeable amounts of work into Spanish: As my university wants to publish (in paper) the resulting works, we would be most grateful if you can fill in the (needless! But still, they ask me to do this...) authorization for your work to be a part of a printed book.

Miércoles 19 de julio de 2017

Alcance Libre: Oferta de empleo para Administrador de Red.

Miércoles 05 de julio de 2017

Emerson Posadas

Emerson Posadas
toxickore BLOG

Jugando con la API de bitso: bitso-py

Hace poco "caí en el juego" de las criptomonedas. Un poco de ETH, BTC y XRP. Como mortal comprador/vendedor hice algunas transacciones y ahí estoy esperando a que mis órdenes se ejecuten.

Pero esto es a modo manual, que tal que no quiero estar al tanto y quisiera comprar/vender en el momento oportuno basado en números y estadística real mas que en una impresión de "wow! VENDE YA!"

bitso da acceso a su API y soporta python. Hay que ir a la sección del perfil, luego en el menú API y click en el botón "add new API"


Después es instalar bitso-py con pip: sudo pip install bitso-py (para debian like distros)
Finalmente se puede empezar a interactuar con nuestra cuenta:

emerson@panopticon:~/trade$ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import bitso
>>> api = bitso.Api('BLABLABLA', 'BLABLABLABLEBLEBLEBLABLABLA')

Finalmente se puede empezar a interactuar con nuestra cuenta:
Ticker:
>>> tick = api.ticker('btc_mxn')
>>> tick
Ticker(book=btc_mxn,ask=47700.00, bid=47044.21, high=48149.59, last=47699.98, low=46500.77, created_at=2017-07-05 01:25:20+00:00, vwaplow=47208.95622891)
>>> tick = api.ticker('eth_mxn')
>>> tick.last
Decimal('4990.00')
>>>

Open orders:
>>> oo = api.open_orders('xrp_mxn')
>>> oo
[Order(oid=XrVsQ9l2sfngvi7R, side=sell, type=limit, price=5.45, original_amount=110.61973300)]
>>> oo[0].price
Decimal('5.45')
>>> oo[0].original_amount
Decimal('110.61973300')
>>>

Order Book:
>>> ob = api.order_book('eth_mxn')
>>> print ('Alguien comprando ETH a :'+str(ob.bids[0].price),'Esta cantidad de ETH: '+str(ob.bids[0].amount))
('Alguien comprando ETH a :4910.00', 'Esta cantidad de ETH: 0.80090424')
>>>

Viernes 30 de junio de 2017

Lecciones que no enseña la escuela

  1. Sí, la vida es injusta. Es así de complicada. En cuanto antes te acostumbres y lo aceptes, antes serás feliz
  2. Al mundo no le importa tu autoestima, lo siento. La buena noticia es que siempre hay alguien que te puede ayudar. Aprende a mirar.
  3. Soñar es precioso, pero no lo hagas con ganar veinte mil pesos en un trabajo al terminar la escuela. Tu esfuerzo y dedicación te llevará al éxito.
  4. ¿Tus profesores son duros? Cuanto tengas jefes, hablamos.
  5. Nadie pierde la dignidad por repartir pizzas, recoger vasos o limpiar pisos. Tus abuelos lo llamaban de otro modo: oportunidad.
  6. Si metes la pata no culpes a tus padres o a tus profesores, no escurras el bulto, aprovecha la ocasión para aprender. Crecerás con los errores.
  7. Antes de que tú nacieras, tus padres no eran tan aburridos. Desde que viniste al mundo se volcaron para darte lo mejor. No quieras cambiarles la vida, mejor arregla tu habitación, pon la mesa y ve a tirar la basura.
  8. Aquí en la escuela, borramos la diferencia entre ganadores y perdedores, se dan oportunidades y te tratamos bien. Sin embargo allá afuera, estarás indefenso. Aun así, prepárate para el futuro siendo una buena persona y llegarás a cualquier lado.
  9. La vida real no se divide en semestres, vacaciones de navidad, semana santa y verano. En la vida real no tendrás unos profesores que te pregunten cómo pasaste el fin de semana. En la vida real es posible que poca gente te dé la oportunidad de tomarte un descanso para que te encuentres a ti mismo. Tendrás que hacerlo tú solo. Comienza este verano paseando por el parque y dando gracias por todo lo que tienes.
  10. La gente no es tan feliz como parece en las fotos de Instagram, no te sientas desdichado por no vivir esas cosas. Tu vida es maravillosa saboréala sin un móvil en la mano. Comienza un diario.

Víctor Martínez inspirado por Eugenio Fernández [1], basado en el decálogo atribuido a Bill Gates [2] inspirado por las reglas de Charles Skyes [3].

Este es lo que realmente se puede llamar un meme, ha viajado por la red bastante tiempo cambiado y sido atribuido a diferentes fuentes y adaptado a diferentes contextos, hagamos lo propio y tropicalicemoslo a nuestro entorno. Estoy animado a traducir y añadirle los otros cuatro del correo cadena… ya veremos como decálogo se lee muy bien.

[1] https://twitter.com/EugenioManuel/status/880314255983202305
[2] http://www.snopes.com/politics/soapbox/schoolrules.asp
[3] http://www.eng.usf.edu/~vkgupta/SomeRules.pdf

Lunes 26 de junio de 2017

¿Realmente te conoce? –AdsBlock

Este post nace a través de este enlace Dataselfie, conociendo al Algoritmo de Facebook y su Machine Learning. en el que hablan de como funciona el proceso de la publicidad que te sale en facebook,  a través del tiempo ya has dibujado tu perfil en facebook sea por búsqueda o por likes todo lo que hagas dentro de esa red social te va a salir, luego que ya saben que es lo que te gusta te empiezan a mandar publicidad acorde a ella, nunca se habían realizado esa pregunta ¿Por que me sale esto?. si quieren conocer que facebook sabe mas que ustedes tranquilamente, pueden abrir  este enlace Preferencias Ads en Facebook

El cual con la sesión abierta de facebook, desglosan en Intereses, y veras todo tus gusto, lo que por alguna razón buscaste o le diste por omisión. Ahí te conocerás realmente que es lo que te gusta.

Ya que donaste los datos, que puedo hacer.

Lo mas sensato es darse de baja de una red social donde juegan con tu información. si quieres seguir usándolo lo mas lógico seria usar AdsBlock  que lo puedes instalar en firefox y chrome, no vas a ver mas publicidad pero igual en cualquier momento que abras un enlace vas a empezar a crear nuevamente tu perfil.

Hace años 10 años una persona que respeto me compartió este video sigue vigente creemos que los servicios que usamos son gratis realmente.
https://www.youtube.com/watch?v=6bYLRGS3vFs

 

 

 

 

 

 

 

 

 

Domingo 25 de junio de 2017

Activar/desactivar registro de usuarios en WordPress

Registro WordPress

La solución es de forma inmediata, dentro del Escritorio (al que accedas administración del WordPress), le vas hacer click en  a Ajustes, Generales y activas o desactiva el checkbox de: Cualquiera puede registrarse. depende para lo que requieras.

Si lo que tienes  problema con usuarios que se registran y en realidad son robots o personas spammers, usa el plugin que mencione anteriormente  http://blog.julioh.com.ve/?p=476 en el cual se hace ocultar la url de wp-admin  otra forma es usando .httpass dentro de los directorios y bloqueando su acceso, o en su momentos podrías saber cual es tu ip para indicarle desde donde te conectas por ejemplo algo así.


order allow,deny
deny from 8.8.8.8
deny from 8.8.8.9
allow from all

Sábado 24 de junio de 2017

Seguridad en WordPress , Garantizar el acceso a wp-admin

WordPress por ser un CMS mas usado pues tienes vulnerabilidades y necesitamos blindarlo en seguridad y que mejor usando plugins para que no tengas una mala experiencia.

Esta es una de esas en la cual la ruta  ../wp-admin/ la remplazas para evitar acceso a ella.

En el caso el plugin WPS Hide Login no vas a eliminar /wp-login.php o /wp-admin , pero si lo va remplazar para no sea visible y colocaremos una url que solo sabremos nosotros.

Lo buscamos  WPS Hide Login en plugins  haz clic en Instalar y posteriormente en Activar.

En el plugin accede a Ajustes, Generales y establece la palabra de paso que sustituirá al clásico:

wp-admin por no-vasaentrar guardas los cambios y pruebas.

Configuración del plugin

Cuando intentas acceder a  http://tu-dominio.com/wp-admin
Te dará un 404 not found

De igual forma  también para  /wp-login.php no existen.

 

Prueba de acceso incorrecta

Si por el contrario pones la url de tu dominio con la palabra de paso establecida:

http://tu-dominio.com/?no-vasaentrar

Te va a salir tu panel para acceder, que se busca con esto, evitar ataques de diccionario, evitar suscripciones y proteger tu CMS de la mejor manera.

si por casualidad no te acuerdas de la url, puedes borrar el plugin en la carpeta wp-content y vuelve a la ruta original

 

Miércoles 21 de junio de 2017

Luis Armando Medina

Luis Armando Medina
Como Instalar Linux

Como Instalar Spotify en Debian 9 Stretch

Si ya instalaste Debian 9 Stretch en tu escritorio, siempre es bueno tener buena música para disfrutar tu trabajo por eso es indispensable tener Spotify en tu Debian. Para lograr instalar Spotify en Debian 9 solo sigue estos paso que … Continue reading

Martes 20 de junio de 2017

Luis Armando Medina

Luis Armando Medina
Como Instalar Linux

Instalar VirtualBox Guest Additions en Debian 9

Si quiere probar Debian 9 Stretch en una máquina virtual es importante que instales los Guest Additions para que puedas disfrutar de todas las ventajas de Debian 9, que el video se vea bien y en general tenga todos los … Continue reading
Luis Armando Medina

Luis Armando Medina
Como Instalar Linux

Instalar Debian 9 Stretch en tu Escritorio

Muchas Distribuciones Linux se centran en el Escritorio, buscan ofrecen una experiencia agradable y sencilla, sin embargo hay quienes optan por las opciones más puritanas, por llamarlas de alguna manera, quienes buscan trabajar con distribuciones base como Debian en las que … Continue reading

Jueves 15 de junio de 2017

Promoviendo Software Libre: Liberar memoria en GNU/Linux

Martes 13 de junio de 2017

Rafael Bucio

Rafael Bucio
Rafael Bucio ⠠⠵

Space Oddity (1969)

EnJoy this piece of space film gold and vintage anti-special effects. https://en.wikipedia.org/wiki/Love_You_till_Tuesday_(film)

José Oviedo

José Oviedo
oviedo.mx

Aplicación para contar las líneas de códigos de tu proyecto

Algún día te has preguntado, ¿Cuantas líneas de código he programado?, ¿Este proyecto cuantas líneas de código tiene? entonces tienes 2 formas de hacerlo.

MÉTODO 1
1.- Preparar tu libreta (o un Excel)
2.- Abrir cada archivo en tu editor de texto favorito y contar línea por línea.
3.- Hacer las sumas en tu libreta y listo.

MÉTODO 2.
1.- Descargar el programa CLOC de http://cloc.sourceforge.net/ o en GitHub https://github.com/AlDanial/cloc
2.- Ejecutar el comando cloc CARPETA_PROYECTO
3.- Listo!!

Aquí esta la versión para Windows: https://sourceforge.net/projects/cloc/files/ o en GitHub tiene más opciones para su instalación para diferentes sistemas.

Y al final tendremos algo así:

Como pueden observar clasifica por diferentes lenguajes de programación y hasta pasar los resultados a una base de datos SQL.

Gunnar Wolf

Gunnar Wolf
Gunnar Wolf

Reporting progress on the translation infrastructure

Some days ago, I blogged asking for pointers to get started with the translation of Made with Creative Commons. Thank you all for your pointers and ideas! To the people that answered via private mail, via IRC, via comments on the blog. We have made quite a bit of progress so far; I want to test some things before actually sending a call for help. What do we have?

Git repository set up
I had already set up a repository at GitLab; right now, the contents are far from useful, they merely document what I have done so far. I have started talking with my Costa Rican friend Leo Arias, who is also interested in putting some muscle behind this translation, and we are both the admins to this project.
Talked with the authors
Sarah is quite enthusiastic about us making this! I asked her to hold a little bit before officially announcing there is work ongoing... I want to get bits of infrastructure ironed out first. Important — Talking with her, she discussed the tools they used for authoring the book. It made me less of a purist :) Instead of starting from something "pristine", our master source will be the PDF export of the Google Docs document.
Markdown conversion
Given that translation tools work over the bits of plaintext, we want to work with the "plainest" rendition of the document, which is Markdown. I found that Pandoc does a very good approximation to what we need (that is, introduces very little "ugly" markup elements). Converting the ODT into Markdown is as easy as:
$ pandoc -f odt MadewithCreativeCommonsmostup-to-dateversion.odt -t markdown > MadewithCreativeCommonsmostup-to-dateversion.md
Of course, I want to fine-tune this as much as possible.
Producing a translatable .po file
I have used Gettext to translate user interfaces; it is a tool very well crafted for that task. Translating a book is quite different: How and where does it break and join? How are paragraphs "strung" together into chapters, parts, a book? That's a task for PO 4 Anything (po4a). As simple as this:
po4a-gettextize -f text -m MadewithCreativeCommonsmostup-to-dateversion.md -p MadewithCreativeCommonsmostup-to-dateversion.po -M utf-8
I tested the resulting file with my good ol' trusty poedit, and it works... Very nicely!

What is left to do?

  • I made an account and asked for hosting at Weblate. I have not discussed this with Leo, so I hope he will agree ;-) Weblate is a Web-based infrastructure for collaborative text translation, provided by Debian's Michal Čihař. It integrates nicely with version control systems, preserves credit for each translated string (and I understand, but might be mistaken, that it understands the role of "editors", so that Leo and I will be able to do QA on the translation done by whoever joins us, trying to have a homogeneous-sounding result. I hope the project is approved for Weblate soon!
  • Work on reconstructing the book. One thing is to deconstruct, find paragraphs, turn them into translatable strings... And a very different one is to build a book again from there! I have talked with some people to help me get this in shape. It is basically just configuring Pandoc — But as I have never done that, any help will be most, most welcome!
  • Setting translation policies. What kind of language will we use? How will we refer to English names and terms? All that important stuff to give proper quality to our work
  • Of course, the long work itself: Performing the translations ☺

Viernes 09 de junio de 2017

Cristian Trujillo

Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

Martes 06 de junio de 2017

Emerson Posadas

Emerson Posadas
toxickore BLOG

On Senior Engineers

From Fer Perales twit:


Full article: https://dev.to/bhilburn/on-senior-engineers
Gunnar Wolf

Gunnar Wolf
Gunnar Wolf

Made with Creative Commons: Starting a translation project

Dear Lazyweb,

About a week ago, I learnt about the release of an interesting book by the fine people at Creative Commons: Made with Creative Commons. The book itself is, of course, CC BY-SA-licensed.

I downloaded it and started reading right away. Some minutes later, I ordered a dead-tree copy, which arrived a couple of days ago. (I'm linking to the publisher's page, but bought it from Amazon México... Shipping it from Denmark would not have been as cheap and fast, I guess).

Anyway, given my workplace, given the community I know, given I know something like this is much needed... I will start a Spanish translation of the content. There are at least two other people interested in participating, and I haven't yet publicized my intentions (this is the first public statement about it).

So, dear Lazyweb: What I need is a good framework for doing this. I started by creating a Git repository, and we were discussing to translate to Markdown (to later format according to the desired output) but then I thought... If we want the translation to be updateable, and to be able to properly accept other people's work, maybe a better format is warranted?

So, my current idea is to create a Markdown version for the English original, and find a way to shoehorn^Wseparate it by paragraphs and feed it to Gettext, which is the best translation framework I have used (but is meant for code translation, not for full-text)...

Dear lazyweb: What tools do you recommend me to use? Quite important to me: Are they Free tools? Are they easy to use by third-parties, maybe incorporating work via Git? Or, at least, via a Web front-end that allows me as a project lead to review and approve/fix/reject strings?

Thanks, lazyweb!

Viernes 02 de junio de 2017

Fco. de la Torre Inguanzo

Fco. de la Torre Inguanzo
Linux y Software Libre – LinuxmanR4

Como reducir de tamaño un archivo pdf ¡Sin morir en el intento!

LinuxmanR4
LinuxmanR4 - Historias sobre Linux, Manjaro, Elastix, software libre, afeitado y barbas clásicas.

Les voy a contar lo que me pasó el otro día. Un usuario me pidió ayuda para reducir de tamaño un archivo pdf ya que era muy grande para poder enviarlo por correo. Le dije — ¡No hay problema! pero después de un rato, algo que parecía sencillo, se complicó bastante.

El archivo en cuestión constaba de 26 hojas escaneadas en buena calidad y supongo que el mismo programa con el que escaneo las hojas le generó el pdf. En total el archivo era de unos 26 MB y ya había ocasionado algunos problemas para su envío. Algunas cuentas de correo tienen límites en el tamaño de los archivos adjuntos, por lo general, se recomienda enviar archivos menores a 20 MB.

Separando el PDF en varias imágenes.

Mi primer enfoque fue separar el archivo PDF generando un archivo jpg por cada una de sus hojas, para luego reducirlas de tamaño y crear nuevamente un archivo PDF. Pero por alguna razón esta tarea puso a tope los CPU’s de mi computadora al grado de afectar otros procesos. Algo parecido ya me había pasado cuando quise generar un archivo PDF a partir de las imágenes jpg.

PDF a imágenes JPG

Con mi experiencia anterior supuse que ese consumo tan exagerado de recursos era provocado por ImageMagick así que busqué una solución usando GraphicsMagick en su lugar.

Para lograr separar las imágenes usé esta instrucción:

gm convert -density 300 -resize 1200 archivo.pdf +adjoin %02d.jpg

Como pueden ver, de una vez aproveché para ajustar la densidad de la imagen a unos 300 dpi y un ajuste en el tamaño. +adjoin me permite generar un archivo por cada página del pdf y la expresión %02d.jpg nombra los archivos incrementalmente con nombres de archivos de dos dígitos (que pueden ser más).

Aún así, no me libro de un importante consumo de recursos, aunque solo por un breve instante.

equipo al tope¡Mi computadora echando humo!

Lo más importante es que el resultado de esta operación sean imágenes sean legibles, luego se hacen tantos ajustes y reducciones que el resultado es un montón de hojas borrosas que no sirven de nada.

Una vez que revisé las imágenes, que me parecieron de un tamaño adecuado y visualmente legibles iba a proceder a crear un nuevo archivo PDF usando las instrucciones de este artículo: Convertir todas las imágenes de un directorio a PDF. peeeeeeerooooo …

¡Hay una forma más simple!

PDF a PDF más pequeño

Estaba a punto pegar todas las imágenes del directorio a un pdf cuando me di cuenta de que era posible hacerlo directamente, luego entonces mi instrucción anterior se convirtió en esto:

gm convert -density 300 -resize 1200 archivo.pdf archivo_nuevo.pdf

Y así, directamente, sin pasar por la generación de archivos jpg pude crear un pdf más pequeño que el anterior.

La opción en línea.

También se pueden usar los servicios de una página como SmallPDF para hacer más pequeños los archivos. Además ofrece otras herramientas como la de combinar, girar, convertir o separar archivos PDF.  Si tu archivo no es exageradamente grande o confidencial también es una buena opción.

Espero que este consejo les ahorre tiempo y algo de espacio en su disco duro 😉 .

Como reducir de tamaño un archivo pdf ¡Sin morir en el intento!
linuxmanr4.

Viernes 26 de mayo de 2017

Emerson Posadas

Emerson Posadas
toxickore BLOG

Cosas por leer esta semana


Miércoles 24 de mayo de 2017

Fco. de la Torre Inguanzo

Fco. de la Torre Inguanzo
Linux y Software Libre – LinuxmanR4

Como hacer tu propio libro electrónico con software libre

LinuxmanR4
LinuxmanR4 - Historias sobre Linux, Manjaro, Elastix, software libre, afeitado y barbas clásicas.

Hace algún tiempo, un buen amigo de España me pidió ayuda para convertir su recién publicado libro de poemas al formato epub.

Tengo que confesar que no soy fan de los libros de poemas, no son mi género favorito. Y para colmo de males soy un crítico malvado, a riesgo de perder la amistad le dije a mi amigo que para escribir en verso tiene muy buena prosa. Lo sé, no tengo remedio 🙂 .

¿Por qué ePub?.

El libro ya me lo había pasado en formato odt para LibreOffice y convertirlo a PDF es tan sencillo como presionar un botón, en eso no hay mayor problema. Pero el formato PDF se hizo para imprimir, para el papel, no para la pantalla.

Últimamente he limitado mi lectura a aquellos momentos de ocio usando mi teléfono celular y para eso ePub es el mejor formato disponible. ¿Han intentado leer un PDF en el celular?.

ePub me permite muchas cosas, realizar ajustes en el tipo y tamaño de la letra, utilizar marcadores para llevar un control del avance de mi lectura, resaltar textos, hacer anotaciones, bueno todo aquello que no pude hacer con mis libros de papel por no maltratarlos.

A escribir en LibreOffice.

La primer tarea es muy sencilla, escribir el libro en libreOffice. Bueno para mi fue sencilla porque no lo escribí yo 🙂 .

Después de hacer algunas pruebas me di cuenta de que al texto que me entregó le faltaban algunos detalles. Por ejemplo, una tabla de contenido.

Generarla es muy fácil, pero primero tuve que ajustar el título de cada poema para que el procesador de texto hiciera su trabajo.

sumario o tabla de contenidoInsertar la tabla de contenido.

En el menú Insertarsumario e índiceSumario, índice o bibliografía. Le mueves a algunas opciones y listo. Automáticamente detecta el formato de los títulos y subtítulos y crea una tabla de contenido con un enlace a cada capítulo.

Convertir de odt a ePub con Calibre.

Una vez que está listo el archivo odt, lo que sigue es convertirlo a epub con una herramienta disponible en Calibre.

Es ridículamente sencillo, primero hay que agregar el libro a la biblioteca de Calibre y luego presionar el botón Convertir Libros. Como pueden ver, en el lado izquierdo está el formato de entrada ODT y del lado derecho las opciones del formato de salida EPUB.

Conversión de odt a ePubConversión de odt a ePub

Después de un breve tiempo tendremos disponible nuestro texto en un formato que podemos compartir libremente. Se le pueden dar algunos toques finales agregando los metadatos (título, autor, un pequeño resumen)  y un diseño de portada.

Como ven, hacer un libro electrónico puede ser muy sencillo. Se me ocurre que algunas escuelas hacen sus propios libros de texto y esta puede ser una buena oportunidad para realizar sus versiones electrónicas.

No tienen que adquirir software costoso y ambos programas funcionan en Windows (por aquello de la linuxfobia).

Puede ser una actividad que hagan los mismos alumnos, un equipo de redactores, de editores, de correctores, otro de ilustradores… ¡Ahhh se vale soñar!

Por cierto, si quiere conseguir el libro de mi amigo, se llama Hojas de lluvia de Miguel Ángel Dolz y está disponible en la editorial Poesía eres tú o directamente con él en su facebook.

Hojas de lluvia, Miguel Angel DolzEl resultado en mi teléfono celular.

Le recomiendo no leerlo cerca de fármacos peligrosos o de objetos punzo cortantes. ¡Es broma Miguel! ¡ES BROMA!.  😛

Como hacer tu propio libro electrónico con software libre
linuxmanr4.

Lunes 22 de mayo de 2017

Alcance Libre: Promoción Curso Global de Servidores con CentOS 7, modalidad online, mayo de 2017.

Miércoles 17 de mayo de 2017

Alcance Libre: ¿Qué es el Virus WannaCry?

Lunes 15 de mayo de 2017

Planeta Gruslic: Iván Alemán: Games that rock: Smash TV (Arcade)

Domingo 14 de mayo de 2017

Planeta Gruslic: Iván Alemán: Feeling chatty: Quassel IRC

Viernes 12 de mayo de 2017

Planeta Gruslic: Iván Alemán: Neat Hardware: Novena

Lunes 08 de mayo de 2017

En serie

 

Desde que se hicieron populares los proveedores de Internet, y la llegada en masa de servicios a los negocios y a las casas. Se entregaron “terminales” o modems o ADSL…

Con la llegada de los inalámbricos, la se;an poda llegar a los vecinos. Con lo que se hizo popular la “robadera” de intenret, programas, para descifrar la password del vecino, principalmente los modems con la tecnología WEP, al parecer esta quedando en el pasado, como un hecho de bíblico, miles de usuario cambiaron su antiguo modem con una nueva tecnología WAP, poco susceptible al robo de password.

Bien, resulta que por razones no muy claras, algunos modems vienen de fabrica pro configurados con un password por default. Es decir desde que son programados se le asigna un password siguiendo un sencillo algoritmo.

Siempre inicia con 03, luego 4 octetos de la mac addres, y los 2 últimos numeros del SSID.

Asi que desde que solo es necesario scanear la red wifi y encontrar estos modems.

No contentos con eso, el password permite el acceso al modem, por medio de la pagina de administración. Y desde ahí ganar mas privilegios. (se pueden revertir haciendo un hard reset desde el modem)

Bien, si por alguna rozan cambias el password que viene de fabrica para administrar el moden y requieres de soporte técnico de la empresa, te diren por que le cambiaste?

y no pueden ayudarte…. hasta que le pongas el password original. (–)

 

The post En serie appeared first on Apuntes tecnologias de la información.

Viernes 05 de mayo de 2017

Fco. de la Torre Inguanzo

Fco. de la Torre Inguanzo
Linux y Software Libre – LinuxmanR4

Adiós Elastix, bienvenida Issabel

LinuxmanR4
LinuxmanR4 - Historias sobre Linux, Manjaro, Elastix, software libre, afeitado y barbas clásicas.

El año pasado me enteré de la compra venta de Elastix, la distribución de Linux que utilizo como conmutador telefónico. La noticia me tomó por sorpresa.

¿Quién compró a Elastix?

En diciembre del año pasado sonaba como bomba la noticia de que la empresa 3CX había comprado a Elastix, una de las distribuciones más importantes en el ramo de comunicaciones.

3CX ya ofrecía un conmutador telefónico para Windows. Cuando estuve investigando sobre el tema llegué a considerarlo, pero luego vino el tema del pago de licencias, límites de extensiones, programas exclusivos y venía huyendo precisamente de todo eso.

En la última versión de Elastix (ya en manos de 3CX) se hizo el anuncio de que era “gratis” (pero no libre) hasta cierto punto. Después de eso hay que pagar ¿Cuanto? no lo se, realmente se pierde el interés cuando empiezas a llenar un formulario para obtener una free license key.

Elastix 5 gratis pero con limitesGratis, pero hasta cierto punto.

Muchos desarrolladores se sienten defraudados al contribuir en un proyecto en el que creían para que lo empaquetaran, vendieran y lo cerraran. Y eso amigos, no se vale.

La comunidad al rescate.

Pero una de las ventajas del software libre es que la comunidad puede hacer un fork y deslindarse de un l proyecto para continuar hacia otro rumbo y eso fue lo que hicieron con Issabel.

Me había tardado mucho en escribir sobre el tema principalmente porque no tenían ninguna forma de instalación. Vamos que la iniciativa todavía estaba muy verde. Pero hace poco se liberó la primera versión beta del proyecto y todo parece que pinta para bien.

Ha tenido una buena recepción por parte de la comunidad y tal parece que Elastix suena cada vez menos.

Curiosamente todavía tengo instalada y funcionando la versión uno de Elastix y ya sabes lo que dicen «Si no esta roto, no lo arregles», así que seguirá ahí hasta que el hardware se rinda.

Si estás pensando en construir un IP PBX no dejes de darle un vistazo a Issabel.

Enlaces de interés.

 

Adiós Elastix, bienvenida Issabel
linuxmanr4.

Miércoles 03 de mayo de 2017

Alex Callejas

Alex Callejas
|rootzilopochtli.com|

Plática: Dr SysAdmin or How I learned to stop worrying and love my job – FLISoL 2017

Hace unos días tuve el agrado de presentarme una vez más, en el mayor evento de difusión del Software Libre: El Festival Latinoamericano de Instalación de Software Libre (FLISoL). En esta edición, me invitaron a la Fes Acatlán y al Rancho Electrónico, para presentar mi plática: Dr. SysAdmin or How I learned to stop worrying and love my job, donde expongo mis famosos postulados (Las Tres Leyes del SysAdmin) para crear buenos hábitos como Administrador de Sistemas.

Les comparto algunas fotos de ambas pláticas:

FES Acatlán

Rancho Electrónico

Pueden ver la galería completa en la página de Facebook.

Mi buen amigo Sergio grabó la plática (gracias!), la cuál les comparto:

Ver en YouTube

Para descargar la presentación, den clic aquí

Aprovecho para invitarlos a la siguiente presentación de esta plática:

Meetup SysArmy México

 

Espero pueden acompañarme 🙂

Martes 25 de abril de 2017

José Oviedo

José Oviedo
oviedo.mx

PHP: Instalar PDO_SQLSRV en Linux

Buscando en los modulos de Ubuntu/Debian no aparece la extensión para PHP de PDO_SQLSRV, solamente tenemos:

  • php7.0-pdo-firebird
  • php7.0-pdo-pgsql
  • php7.0-pdo-sqlite
  • php7.0-pdo-odbc
  • php7.0-pdo-mysql
  • php7.0-pdo-dblib

Y nada que diga php7.0-pdo-sqlsrv, pero la solución es compilar la extensión manualmente, gracias a PEAR, como root ejecutamos:

apt-get install unixodbc-dev php7.0-dev php-pear

pecl install pdo_sqlsrv-4.0.5

echo -e “; priority=20\nextension=pdo_sqlsrv.so” > /etc/php/7.0/mods-available/pdo_sqlsrv.ini

phpenmod -v 7.0 pdo_sqlsrv

/etc/init.d/php7.0-fpm restart

Y listo, deberíamos de tener en nuestro phpinfo() algo así:

Si utilizamos windows, descargamos la extensión desde aquí: Microsoft Drivers for PHP for SQL Server y este link para instalar el driver Microsoft ODBC Driver 13 for SQL Server

Y listo, ya nos podemos conectar al servidor SQL Server desde PHP.

Jueves 20 de abril de 2017

Eduardo Ruiz Duarte

Eduardo Ruiz Duarte
Beck's blog

Why finding big prime numbers? why study weird arithmetic sequences?

Now I am sitting on my desk thinking on a technique to help me to identify BIG prime numbers in certain arithmetic sequences using algebraic geometry.

This is part of my last project for my PhD, which I think will be very interesting. When I say "BIG" I mean thousands of digits, maybe millions.  When I say "primes in arithmetic sequences" I mean to separate prime numbers in a list like $latex \{ \alpha_n \}_{n=0}^\infty$.

A popular, a prostituted, an important and a "dumb" sequence.

Now we will describe some non trivial sequences and we will see a glimpse of why they are important (or not).

This is of course in my opinion, since there are infinitely many sequences which I ignore and could be more interesting. In fact there is a sequence of "uninteresting numbers" which contains all numbers which appear to not have known/interesting properties (like being prime, Mersenne prime, triangular number, cube, etc...).
But well, this sequence then..., is interesting as is unique, and then we get a paradox.

The popular sequence

The popular is a very famous arithmetic sequence, and is the "Mersenne Sequence", $latex \{ 2^n-1\}_{n=1}^\infty\subset\mathbb{N}$.

$latex \{ 2,7,15,31,63,127,255,...\}$

This is the sequence of all Mersenne numbers.  We denote by $latex M_n$ to the number $latex 2^n-1$.
To identify the primes in this sequence, note that if $latex n=2k$ (is even) then $latex 2^n-1=(2^k-1)(2^k+1)$ and hence... not a prime number. This means that in the sequence we can discard all the values $latex n\in 2\mathbb{Z}$, that is $latex M_{2k}$ is not prime. A less trivial fact is that if $latex n$ is composite, namely $latex n=ab$ then we have that:

 $latex 2^n-1=2^{ab}-1=(2^a-1)(\sum_{k=0}^{b-1}2^{ka})=(2^b-1)(\sum_{k=0}^{a-1}2^{kb})$

and then also $latex M_{pq}$ is not prime. So, we are left with all the elements in the sequence of the form $latex M_p$ for $latex p$ a prime number. A quick inspection says that $latex M_2, M_3, M_5, M_7$ are Mersenne primes. But $latex M_{11} = 2047 =23\cdot 89$ which is not prime. So, which Mersenne numbers are prime ?

This is a difficult question, there are big computer grids working in this, trying to find the most spectacular prime. The biggest Mersenne prime known, (and Biggest Prime in general) is $latex 2^{74207281}-1$. which has 22.3 million digits approximately. The way to check it without putting so much effort in the algebraic geometric or number theory rigor is the following:

 To check that $latex 2^p -1$ is prime:

Consider the sequence $latex \{ \sigma_1=4, \sigma_2=14,...,\sigma_j=(\sigma_{j-1}^2)-2...\}$
then $latex M_p=2^p-1$ is prime if and only if $latex \sigma_{p-1}\equiv 0 \bmod M_p$.

This is the fastest way known today. is called the Lucas-Lehmer test.
There are other elegant tests (but not necessarily faster) using elliptic curves which I knew its existence when I was talking with Benedict Gross at the conference on L-Functions at Harvard the past year, and in some sense I have to do something similar as part of my PhD program.

The prostituted

Another famous and prostituted sequence is the so called "Fibonacci sequence".

$latex \{ 1,1,2,3,5,8,13,...,F_{n-1}+F_{n-2}, ...\} $

This is famous and is always presented as the building blocks of beauty in the universe. This just an exaggeration, but well, that is another story.

Is known that $latex \lim_{n\to\infty} \frac{F_{n}}{F_{n-1}}=\phi=1.618033...$.

This number $latex \phi$ has the property that squared is equal to $latex \phi+1$ so, is appears as a root of the polynomial $latex x^2 -x -1=0$.
The value of $latex \phi$ can be found when you divide lengths of middle lines in some polygons by the length of the sides. Also in your body, if you divide your height by the distance of your feet to your belly button, and in a lot of parts of our body. This number can be analyzed in a Leonardo da Vinci drawing called "Le proporzioni del corpo umano secondo Vitruvio" which can be seen here.
This is why $latex \phi$ has some kind of mystic and esoteric significance for some people, and that is why is called sometimes The Golden Ratio. 

To identify primes in the Fibonacci sequence, there are no good ways. This is mainly because the sequence highly depends on the "addition" operation and not "multiplication", and believe it or not, addition in number theory is a mystery.
A very important Conjecture in mathematics about this mystery, predicts the possible relation between the multiplication and the addition of integers, through its prime factorization, called the abc conjecture, so Fibonacci, is difficult as a problem in terms of primality, but as seen, has more significance in geometry.

The important sequence

Now for the important sequence is this

$latex \{2, 1729, 87539319, 6963472309248, 48988659276962496, 24153319581254312065344...\}$

Do you see it?

Well, is not too easy to see, is called the "Hardy-Ramanujan sequence", if you denote by $latex \tau(n)$ the $latex n^{th}$ element of the sequence, it means that $latex \tau(n)$ can be written in $latex n$ different ways as a sum of two cubes. Fermat Proved that there are infinitely many of these numbers hundreds of years before, but they caught the attention of Hardy by Ramanujan in a very nice story.

When Ramanujan was dying at the hospital in England, Hardy went to visit him. Hardy told him that the number in his taxi to the hospital was a dull, boring number, 1729. Ramanujan said:

 'No, Hardy, it is a very interesting number. It is the smallest number expressible as the sum of two cubes in two different ways' 


That is why we use the letter $latex \tau$ because these numbers are called "taxicab numbers" because of this story.

The importance of these numbers, is the new theory in arithmetic geometry that arose,  which in fact I am very interested personally, and professionally.

Practically Ramanujan discovered in his way of thinking, an integral solution to the equation $latex x^3+y^3=z^3+w^3$ which nowadays is studied over $latex \mathbb{Q}$ and then twisted.
This kind of surfaces are called K3 Surfaces (Kodaira-Kummer-Kahler, smooth minimal complete surface with trivial canonical bundle), there is no smart way of obtaining these numbers other than using this algebraic geometry in these surfaces. An example of these surfaces with a family of rational curves parametrized  (the curves may contain taxicab solutions in it) is:

  


And yeah 1729 has the desired property, that is, $latex \tau(2)$ is a sum of two cubes in only two different ways. 
Srnivasa Ramanujan was a human computer, in fact to verify this, we check for the $latex \tau(2)=1729$ and $latex \tau(6)=24153319581254312065344$ can be written as the sum of 2 cubes in 2 and 6 different ways respectively:

$latex \begin{matrix}\tau(2)&=&1729&=&1^3 + 12^3 \\&&&=&9^3 + 10^3\end{matrix}$
...
$latex \begin{matrix}\tau(6)&=&24153319581254312065344&=&582162^3 + 28906206^3 \\&&&=&3064173^3 + 28894803^3 \\&&&=&8519281^3 + 28657487^3 \\&&&=&16218068^3 + 27093208^3 \\&&&=&17492496^3 + 26590452^3 \\&&&=&18289922^3 + 26224366^3\end{matrix}$

The "dumb" sequence

There are plenty other sequences, for example, there are some "dumb" sequences that at the end... they are not so dumb, for example, consider the following sequence:

$latex \{1, 11, 21, 1211, 111221, 312211, 13112221, ... \}$

Do you see the pattern?

Well, the pattern is visual, you begin with "1" and then the following will be the "description of the previous", that is, you ask yourself "What symbols are in the preceding element of the sequence?", and you say "one one" (11) then the next is "two ones"  (21), and so on... This sequence is called "look and say sequence".

There are a lot of things you can do in your spare time with this sequence, for example, prove that a "4" cannot appear in any element of the sequence. The number 13112221 is in fact the biggest prime known in this sequence, are there others?

This apparently dumb sequence has an amazing property which transforms it from dumb to analytic and it was due to John Conway.
Consider the $latex k^{th}$ element of that sequence, call it $latex a_k$  , and define $latex \ell(a_k)=$number of digits of $latex a_k$.
Is proved that $latex \lim_{n\to\infty} \frac{\ell(a_k)}{\ell(a_{k-1})}=\lambda=1.303577269034...$. The surprising thing is that $latex \lambda$ is an algebraic number that can be found as a root of a polynomial of degree 71. This was proved by John Conway, for more information, look at wikipedia.


But why?, why you want to find big primes or classify properties of sequences?


 I have been questioned plenty of times "Why you want to find big primes?", today was one of these days where a master student asked me.
There is a FALSE answer which is very popular among a lot of people, namely

 "It has cryptographic applications, since prime numbers are the basis for today's e-commerce and the development of cryptographic schemes" 

This is false, since cryptographic schemes for public key cryptography need prime numbers with no more than 1000 decimal digits (and this is already too long). Using more than 1000 digits maybe would be more secure, but the speed will decrease exponentially, that is why you don't use 1 million bits of security.

 Identifying these "cryptographic" prime numbers at random with certain properties (Like being a Sophie-Germain prime) to generate a public key with 4096 bits which has approx 1234 digits, (which is already paranoid for the public techniques of cryptanalysis) takes less than a second in my workstation (try: time openssl genrsa 4096).
 So, cryptography is not a good excuse to generate BIG prime numbers, when I say big, I mean thousands of digits, millions.


The answer in my case is easy... To collect them...  they are difficult to find, but they are present in a lot of shapes, for example in the last sequence, which elements are prime ? which is the biggest known ? how to identify them with geometric techniques?.

That is how the theory in mathematics is born, with a question regarding classification.

So, finding big primes is difficult, so is valuable, there are only 49 Mersenne Primes and nobody has proved that they are infinite. (but is believed heuristically that they are).

A couple of years ago I wrote here about finding a big prime of the form $latex 3\cdot 8^n -1$ , which I found here, there are a lot of possible primes disguised in infinitely many shapes, you could just define whatever recursive relation and analyze it.

Other people could say to test a big cluster, or to get some money (yes you get money if you break the records). Maybe an analytic number theorist could say To understand more the distribution of prime numbers which is unknown.

Conclusion

So well in conclusion, I think is good to collect primes and analyze sequences. This to find something hidden in the unknown nature of the logic of sequences of natural numbers, since, we don't know yet how the prime numbers arise. There is still a mystery of how the prime numbers are distributed among all the natural numbers,  even with quantum computers is hard to find them arbitrarily large, so there are still work to do in mathematics.

For more information of all the known published sequences (yes, whatever you think will be there) go to www.oeis.org, this is the Online Encyclopedia of Integer Sequences.


Eduardo Ruíz Duarte (beck)
twitter: @toorandom


Martes 18 de abril de 2017

Alex Callejas

Alex Callejas
|rootzilopochtli.com|

FLISoL 2017

El Festival Latinoamericano de Instalación de Software Libre (FLISoL), es el mayor evento de difusión del Software Libre que se realiza desde el año 2005 en diferentes países de manera simultánea. Es una oportunidad para todas aquellas personas interesadas en conocer más acerca del software libre. Participando es posible entrar en contacto con el mundo del software libre, conocer a otros usuarios, resolver dudas e interrogantes, intercambiar opiniones y experiencias; asistir a charlas y otras actividades programadas. Como es de suponer, la asistencia al evento es totalmente libre y gratuita.

Personalmente, es un evento al que me gusta asistir y ayudar a toda la gente que quiere acercarse al Software Libre.

En esta edición, estaré presentando una charla donde planteó mis famosos tips para convertirse en un buen SysAdmin:

Los días que tengo agendados son:

Pero se aceptan invitaciones para presentarla en otras sedes 😉Contacto aquí

Los horarios y las actividades los pueden checar en las ligas correspondientes a cada evento, o en la página oficial del FLISoL:

Espero me puedan acompañar 🙂

Domingo 02 de abril de 2017

Utilizar un segmento de red distinto para docker

Hace unos días comentaba como hacer la instalación de docker en centos 7, pues bien al empezarlo a utilizar una de las cosas que no me gustaron es que el segmento que utiliza, el segmento que deseo utilizar para mis pruebas es un pequeño segmento /28 que ya es ruteable por mi VPN, por la VPN punto a punto y desde mi casa sin necesidad de cambiar reglas o agregar nuevas, me puse a buscar información y no encontré nada que funcionara, ni lo que menciona la pagina de docker (Build your own bridge). Ya que menciona que hay que cambiar /etc/default/docker que en parte es cierto pero no menciona que esto solo es para versions sysvinit y no aplica para los que usamos systemd.

La forma que lo pude hacer no se si sea oficial o soportada, pero es la que a mi me funciono

Primer paso

Creamos el archivo /etc/default/docker y agregamos el segmento que queremos utilizar de la siguiente forma

DOCKER_OPTS="--bip=172.20.2.65/28"

hasta aquí es lo que muestra la pagina oficial y que no funciona

Segundo Paso

Modificar la unidad que inicia el demonio de docker, este es el archivo original

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target firewalld.service

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process

[Install]
WantedBy=multi-user.target

Deberá quedar de la siguiente forma

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target firewalld.service

[Service]
EnvironmentFile=-/etc/default/docker
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd $DOCKER_OPTS
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process

[Install]
WantedBy=multi-user.target

En la sección de servicio se agrega EnvironmentFile=-/etc/default/docker y se modifica ExecStart=/usr/bin/dockerd $DOCKER_OPTS

En mi caso reinicie el equipo y con esto fue suficiente docker ya corre en mi segmento personalizado

Martes 28 de marzo de 2017

Instalación de Docker en Centos 7

Constantemente estoy haciendo pruebas de aplicaciones, proyectos o ideas que me parezcan interesantes, normalmente utilizo mi laptop, pero ahora que tengo un VPS para este fin se me ocurrió hacer pruebas con Docker, un extracto de la Wikipedia menciona algo así:

Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software, proporcionando una capa adicional de abstracción y automatización de Virtualización a nivel de sistema operativo en Linux Docker utiliza características de aislamiento de recursos del kernel de Linux, tales como cgroups y espacios de nombres (namespaces) para permitir que “contenedores” independientes se ejecuten dentro de una sola instancia de Linux, evitando la sobrecarga de iniciar y mantener máquinas virtuales. Docker en Wikipedia.

Instalación

La instalación es sumamente sencilla con un yum install docker y listo, ya que docker se encuentra en los repositorios de Centos, el único detalle es que no es la ultima versión. En este caso habrá que hacer unos pequeños pasos.

Ver si tenemos actualizaciones por aplicar

sudo yum check-update

Si se tienen actualizaciones por aplicar pues actualizamos si no se procede a ejecutar el script oficial, el cual agrega el repositorio oficial e instala los paquetes.

curl -fsSL https://get.docker.com/ | sh

Iniciamos el servicio

sudo systemctl start docker

Habilitamos para inicio automático en caso de querer que se inicie solo.

sudo systemctl enable docker

Si queremos evitar teclear sudo cada que vamos a ejecutar comandos de docker, agregamos al groupo docker al usuario que deseamos.

sudo usermod -aG docker tyo100

Y listo, con eso tenemos docker y podremos ir probando los contenedores que nos encontremos en la red o crear los nuestros.

Conforme vaya avanzando ire publicando mas cosas relacionadas a Docker.

 

Lunes 27 de marzo de 2017

José Oviedo

José Oviedo
oviedo.mx

Drupal: Error 403 Forbidden cuando se instala un módulo

Al querer instalar o actualizar un módulo en Drupal 8 despues de ingresar la información del FTP aparece el error:

403 Forbidden
nginx/1.10.0 (Ubuntu)

El problema es que la URL no existe, si nos fijamos en la barra de direcciones veremos algo así:
http://sitio.com/core/authorize.php/core/authorize.php?batch=1&id=17&op=start

Si observan core/authorize.php se repite 2 veces, la solución es crear un Rewrite en la configuración de nuestro servidor web, en este caso estoy utilizando Nginx.

Editamos el archivo /etc/nginx/sites-enabled/default (o el de su sitio) y agregamos la siguiente línea

rewrite ^/core/authorize.php/core/authorize.php(.*)$ /core/authorize.php$1;

En mi caso quedo así (es una parte de la configuración):

server {
server_name example.com;
root /var/www/drupal;

client_max_body_size 20M;

location = /favicon.ico {
log_not_found off;
access_log off;
}

location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}

# Very rarely should these ever be accessed outside of your lan
location ~* \.(txt|log)$ {
allow 192.168.0.0/16;
deny all;
}

location ~ \..*/.*\.php$ {
return 403;
}

rewrite ^/core/authorize.php/core/authorize.php(.*)$ /core/authorize.php$1;

location ~ ^/sites/.*/private/ {
return 403;
}

# Allow “Well-Known URIs” as per RFC 5785
location ~* ^/.well-known/ {
allow all;
}

Reiniciamos el servidor web y listo:

/etc/init.d/nginx restart

Sábado 25 de marzo de 2017

Promoviendo Software Libre: Instalación de Wordpress en GNU/Linux

Viernes 17 de marzo de 2017

Alejandro Acosta

Alejandro Acosta
alejandroacosta.com

Participation at Scale15x

A few days ago I returned -incredibly satisfied- from attending my personal 7th Southern California Linux Expo, which was the 15th edition of the event. I’ve read a thing or two about the beginning of Scale, and how it has grown by the years to become one of the largest and more important FOSS events, not only in the US but also worldwide. From my perspective I can tell that the event gets better by every year.

The first five events that I attended were hosted in the LAX Hilton Hotel, which was great for me because transportation was fast, easy and very affordable 🙂

Since last year, it has switched location to the beautiful city of Pasadena and  its Convention Center  has proben to be an excelente venue for such amazing event. I must confess that the first time I heard they were moving it away from LAX I felt a bit uncertaint and maybe a little discouraged because of the long distances to Pasadena. I’m now glad and relieved to know that my fears had no reason to be and SoCal is always warm welcoming area to visit.

It is very satisfying to see a lot of familiar faces of Scale crew working their a**es, giving the best of theirselves to deliver this world class convention. Many of them have participated since Scale first edition.

It is also a great satisfaction to say hello to my old Fedora and RedHat friends. I’ve know many of them since my first Scale in 2011 and some of them even earlier when I attended my first -and so far only- Fedora Users and Developers Convention FUDCon back in 2010 in Tempe, AZ.

Two faces I particularly missed this year and I couldn’t avoid to notice: one of them is my good friend Larry Cafiero -former Fedora contributor and Scale press rockstar- and the other was Lord Drachenblut -aka Mathew Williams- who left this world way to early after a long and painful battle with cancer. I’ve just met Matthew last year in Scale14x, my travel confirmation came a bit late and I was not able to book a hotel nearby on time for the event. I asked Matthew if I could crash into his room and he said yes with no hesitation. I had the lucky chance of get to know him not only during the event activities and booth duty, but also after hours and during the stay. It did not take me long to see what Matt was made of and the kind of person he was. Matthew worked a lot in communites and has earned a special place among many of the attendes, he is being missed.

As part of the booth activities, we wanted to do something as a tribute to him, so we had this signing book in which people spontaneously approached and wrote some words of comforting and something his family would keep.

In other order of ideas, one thing that was very significant for me is that this was the first time I got to give a talk -not only at Scale- but also at an event out of my country. Yes, I bragged a bit on becoming an international speaker but I felt so happy and confident to share a bit of my experience with Fedora to a foreign language speaking audience and also to give back a little of the many things that I have received by participating in this wonderful project. Thanks to Perry Rivera for asking me to participate and allowing me to share the stage with him. Thanks also to Clint Savage for taking it easy when I mocked on him. Great comeback BTW 🙂

17016790_10158268672015557_8940515797083529303_o

Right after this talk we had our Fedora Meetup, in which we interacted with the audience listening on their experiences using Fedora and their suggestion on how to improve it. For Fedora we had Perry, Scott Williams, Brian Monroe and myself. We also had Adam Miller from Red Hat and some other RH folks who contributed to make a great exchange of ideas. This was one rich experience I will ever bear in my mind.

17103309_10101810968571274_3543603321226478432_n

Talking about the  booth duty, it is always very satisfactory to interact with the attendees. There is always young people eager to learn knew things and it is always very nice to help a bit with their initiatives. Being in SoCal, you can always expect a big latino audience. I met people from several countries and several american citizen with latino roots. Some of them appreciate and treasure to talk to a friendly person in spanish, and I found that quite satisfying as well.

Scale15x is a wrap now and I only hope that I could be there next year. I’m sure that I wouldn’t be disappointed because Scale is about setting the bar higher everytime.

 

 

 

 

 

 

 

 

 

 


Lunes 13 de marzo de 2017

Planeta Linux – Xanax For Sale » Reliable Online Pharmacy

Fotos y Comentarios

Domingo 26 de febrero de 2017

Gustavo Rubio

Gustavo Rubio
Ahí vamos

Ser agradecido en tiempos de abundancia

Hoy mientras hacíamos fila para cruzar al otro lado, probablemente a comprar cosas triviales, recordé lo afortunado que soy al ver (como es usual en la frontera) la cantidad de gente no solamente pidiendo “limosna” sino “pasando el trapo” por los carros, vendiendo dulces u ofreciendo algún tipo de servicio para ganarse la comida del día, aquellos con suerte están mas o menos sanos, sino es por las marcas físicas de las drogas son también mas o menos afortunados, los menos, en sillas de ruedas sin piernas o hasta en patinetas como modo de transporte para discapacidad improvisado y moviéndose como pueden.

Podría estar lleno de clichés pero la verdad es que a diario veo personas, situaciones y entornos que me hacen pensar que tengo una vida privilegiada, de verdad! pues más allá del hecho de que tengo “estabilidad económica” tengo muchas cosas que otras personas (no necesariamente ajenas a mi, por cierto) adolecen; una extraordinaria pareja, un trabajo que disfruto mucho, buenos amigos y salud. En realidad considero que “hago lo que quiero” y aunque suene muy hedonista de mi parte es la verdad. Prácticamente son pocas las cosas que no puedo hacer por alguna limitante física, emocional o económica y por eso estoy agradecido conmigo mismo en primera instancia, en mi mujer, familia, amigos y en genreal cualquier persona que me ha tendido la mano de alguna u otra forma durante mi vida con la cual por supuesto estoy también sumamente agradecido pues no creo en deidades.

Lo anterior es solo contexto sobre el tema principal: el ser agradecido en tiempos de abundancia, es decir, recordar que no siempre tuvimos o tendremos todo lo que deseamos y que hay que ser humildes, aun cuando “las vacas están gordas”. Este post lo deshebré en mi cabeza hace algunos días después de leer un artículo de un colega sobre le tema de los “head-hunters” que no es mas que un término que suena bonito para decir reclutador. El artículo es simplemente una serie de tweets (como 10) sobre cosas que NO debería hacer un reclutador, particularmente con prospectos que se dediquen al tema de la tecnología. Y es que si hay demanda de algo en este momento es de ingenieros, particularmente los que se dedican a la creación de software.

En síntesis, lo que Miguel expone es la falta de profesionalismo de algunos reclutadores para siquiera investigar sobre el puesto que están solicitando o los requerimientos de la vacante así como los conocimientos que debería tener dicho prospecto. Si bien Miguel trata puntos con los que estoy totalmente de acuerdo (como el hecho de que un reclutador de programadores o personas que nos dedicamos a tecnología siga pidiendo un CV formal en vez de ver nuestro perfil de LinkedIn por ejemplo) hay una constante entre los colegas, ingenieros, programadores y anexos: “Ah como chingan los reclutadores”, lo leo en redes sociales y lo escucho constantemente en mis compañeros de trabajo.

Vivimos en tiempos complicados tanto económicos como sociales. Particularmente, en el ámbito laboral, ya sea que no encuentras trabajo o está pésimamente remunerado y con exigencias propias de un sistema de feudos. Afortunadamente, para quienes nos dedicamos a la programación, eso es solo una noticia en un diario nacional o en un artículo de economía pues nuestro sector no solo sigue a la alza sino que sigue demandando más profesionistas de los que hay disponibles, ergo, tanto empresas de reclutamiento como departamentos de RH se pelean, literalmente, a la gente.

Precisamente, por esta abundancia (que espero no sea otra burbuja a punto de reventar) es que me siento afortunado y agradecido pero, ¿Sáben con qué me siento agradecido también? Con los reclutadores!

Quienes se dedican a contratación de personal son personas de carne y hueso como tu, bendito programador hijo de Dios Padre y Madre Santísima!, y como yo. La diferencia es que, además del ego bastante inflado, tenemos la sartén por el mango… y el mango también, y lo que esto significa es que nosotros somos la oferta, que es escasa y nuestros amigos reclutadores son la demanda, y son mucha. Estoy seguro que si los papeles se invirtieran, es decir, si el mercado estuviera saturado o con pocas ofertas, la mayoría de mis colegas suavizaría un poco su discurso.

He tenido la oportunidad (y necesidad) de tener que ser parte del proceso de reclutamiento, entrevista y análisis de perfil de varias personas durante mi carrera y de verdad es no solamente tedioso sino difícil, aun para alguien técnico como yo. Si bien se debe tener ciertos parámetros de calidad para dicho proceso, el perfeccionarlo está tan lejos de la realidad como lo es que el código que escribimos a diario no tenga ningún error ni requiera cambios. La diferencia es grande: los reclutadores están a la vista de todos, públicamente, mientras que nuestras metidas de pata (por no decir pendejadas) se quedan en nuestro equipo, si acaso, con el administrador de proyectos. Como no estamos tan expuestos pues nos sentimos perfectos. Le llamo el síndrome del programador recluso.

Correos con ofertas de trabajo me llegan muy a menudo y aunque algunos ni siquiera los contesto precisamente por coincidir con algunos de los puntos que Miguel expone en su artículo, como el hecho de ofrecerme vacantes que no tienen nada que ver con mi perfil, trato de ser agradecido de la manera que me enseñaron en mi casa: decir “No, gracias”. No es tan difícil. Usualmente me lleva 1 minuto redactar una respuesta simple a la persona, de entrada agradeciéndole tomarse el tiempo de considerarme en su selección, posteriormente exponiendo las razones por las cuales no estoy disponible en este momento para dicha oportunidad (tomen nota de la diferencia entre “no puedo” a “no me interesa”, psicología mis estimados) y finalmente despidiendome y dejando la “puerta abierta” para futuras oportunidades.

La mayoría de los ingenieros que conozco tienen poco tacto y ni que decir de la capacidad para asimilar el hecho de que parte de su reputación está en esas respuestas. La vida da muchas vueltas, y es importante ser agradecido. Podríamos escudarnos en el ya bastante trillado cliché de que los ingenieros y programadores no tienen habilidades sociales y por eso reaccionamos así, pero me pregunto ¿Si con el tiempo hemos aprendido a ser unos hijos de puta ególatras, no podríamos también aprender a ser agradecidos? Quizá solo somos “medio tontos“.

Así que queridos reclutadores, head-hunters y personal de recursos humanos dedicado a buscarnos trabajo: Gracias! Y aunque hoy no tenga disponibilidad para tu proyecto espero podamos coincidir en un futuro para otra posible oportunidad.

Jueves 23 de febrero de 2017

Julio Poisot De María

Julio Poisot De María
Dianamo

hardhedgehoglife: All the Valentines I have made! The albino...









hardhedgehoglife:

All the Valentines I have made! The albino bunny isn’t available on my etsy this year unless I get requests for it, but the rest are!

hardhedgehoglife.etsy.com

Julio Poisot De María

Julio Poisot De María
Dianamo

hardhedgehoglife: hardhedgehoglife: hardhedgehoglife: (Un)happy...







hardhedgehoglife:

hardhedgehoglife:

hardhedgehoglife:

(Un)happy Valentine’s Day! To celebrate, here’s three poems from me, your reluctant cupid:

“I h8 you”

“Roses are red,
Violets are blue,
NO.”

“Roses are red,
Violets are blue,
Ur gross,
Ew.”

For you eager romantics.

That day for eating chocolates hedgehogs is coming up again.

Martes 14 de febrero de 2017

Rafael Bucio

Rafael Bucio
Rafael Bucio ⠠⠵

Diego

Es niño !

Lunes 30 de enero de 2017

Octavio Alvarez

Octavio Alvarez
Planeta Linux –

Video: PostgreSQL – Reunión Gultij, enero de 2017

El pasado sábado 21 de enero de 2017 durante la reunión mensual del Gultij, Grupo de Usuarios de GNU/Linux de Tijuana, México, di una presentación sobre PostgreSQL, un sistema manejador de bases de datos objeto-relacional (ORDBMS).

Liga al video en YouTube: https://www.youtube.com/watch?v=xyq6b9wZ0aw

Miércoles 25 de enero de 2017

Nativo digital, de nuevo

Ya he escrito algunas cosas sobre nativo digital por acá, especialmente el como me parece que ha sido contraproducente para la educación y actualización de adultos, pero y aunque lo mencionamos ya en la plática y en las discusiones entre colegas y se intuía iba a suceder, pues resulta que ya pasó y se han encontrado nuevos problemas con el abuso del mismo y para no romper la costumbre lo dicen lo publican primero del otro lado del océano.

Mi animal mitológico favorito: El nativo digital. [1]

La charla es muy buena aunque sea comercial del libro por salir  ya a la venta [2]

[1] http://www.elmundo.es/sociedad/2017/01/22/5880b099e2704e7c598b45e2.html
[2] http://www.planetadelibros.com/libro-los-nativos-digitales-no-existen/231380

Mi queja con lo virtual

Hace mucho tiempo, leí el libro: Lo virtual: virtudes y vértigos de Philippe Queau (altamente recomendado ahora que nos quieren vender esto como novedad) [1] y quede fascinado con las posibilidades de mundos posibles que no existen, de decir la realidad virtual o como ahora se llama los mundos de inmersión completa… el propio Levy discute extenso sobre las limitaciones del termino y ayer en clase me avente a incorporar esta discusión a mi clase

Virtual en su acepción rápida significa potencial [1] “1, adj, Que puede producir un efecto, aunque no lo produce de presente en oposición a efectivo o real, 2 adj. Implícito, tácito, 3 adj. Fis. Que tiene existencia aparente y no real” y el punto es que tenemos mucho rato diciendo plataforma de educación virtual o educación virtual y a mí me sigue molestando, cuando andamos en otros lugares de Internet como Facebook ya no se habla de virtualidad y como hice la pregunta en clase, si rompes con la amiguita o el amiguito en Facebook ¿eso es virtual o real? Hubo una época en que se dividía el tiempo en la red con el tiempo en vida real (IRL In Real Life), pero hoy día no veo siquiera la utilidad de esto lo que hacemos en Internet, como nuestro banco, como las redes sociales (mediadas por computadora) son realidad no virtualidad, vaya que lo que hacemos hoy en la red modifica nuestra realidad inmediata, no niego que hay quien tiene separado y disociado su ser en diferentes avatares en redes diferentes y con sobrenombres distintos, pero para la mayoría de nosotros no es el caso.

Más importante aún quitarle el virtual a la educación en línea me parece un buen objetivo en mediano plazo, ya nos sucedió en una época que teníamos que decirle e-learning existiendo en español una mejor forma…

[1] Queau, Philippe (1995)  Lo virtual :   virtudes y vertigos, Barcelona :   Paidos Iberica
[2] Ni tan rapida termine transcribiendo toda la entrada de la RAE, pero su uso cotidiando es potencial, no real http://dle.rae.es/?id=buDJhh3

Martes 24 de enero de 2017

Rafael Bucio

Rafael Bucio
Rafael Bucio ⠠⠵

The Adventures of MySQL: The storage engine and Error on rename of..

Pues estas son las aventuras de MySQL, todo comenzó cuando lance  un check table;  directo a mysql.. sin darme cuenta que estaba en un servidor productivo, decidí cancelar el chequeo de las tablas, pero fue un error muy grande ya que las configuraciones fueron afectadas o bueno por lo menos eso pensaba.

Primer Error:

Los sitios con wordpress, no tenían acceso a la BD, y verificando me salía, el siguiente error:

.. Unknown storage engine 'InnoDB'

Trate de reparar las tablas y nada de nada:

mysql> check table 0x_cookies;
+--------------------+-------+----------+------------------------------------------+
| Table              | Op    | Msg_type | Msg_text                                 |
+--------------------+-------+----------+------------------------------------------+
| rafa_0x.0x_cookies | check | Error    | Table 'rafa_0x.0x_cookies' doesn't exist |
| rafa_0x.0x_cookies | check | status   | Operation failed                         |
+--------------------+-------+----------+------------------------------------------+
2 rows in set (0.05 sec)

mysql> repair table rafa_0x.0x_cookies;
+--------------------+--------+----------+------------------------------------------+
| Table              | Op     | Msg_type | Msg_text                                 |
+--------------------+--------+----------+------------------------------------------+
| rafa_0x.0x_cookies | repair | Error    | Table 'rafa_0x.0x_cookies' doesn't exist |
| rafa_0x.0x_cookies | repair | status   | Operation failed                         |
+--------------------+--------+----------+------------------------------------------+
2 rows in set (0.00 sec)

mysql>

Entonces me di cuenta que me lanzaba el error de que no existía y que la operación fallo… Por lo que me puse a correr en círculos, pensando que la había matado todo el mysql, pero recordé que cuento con amigos db, a lo que pregunte con @h1pp1e !! y me comento la solución:

Por lo general estos errores pueden ser solucionados re-nombrando los ib_logs, así que me decidí poner manos a la obra:

root@lab [/var/lib/mysql]$ service mysql stop
Shutting down MySQL.... SUCCESS!
root@lab [/var/lib/mysql]$ mv ib_logfile0 ib_logfile0.bak_2
root@lab [/var/lib/mysql]$ mv ib_logfile1 ib_logfile1.bak_2
root@lab [/var/lib/mysql]$ service mysql start
Starting MySQL..................... SUCCESS!

Antes de modificar algo pare los servicios de mysql para no lastimar nada, y decidí borrarlo… después de esto todo volvió a la normalidad, y decidí postear esto pero me lleve una sorpresa al tratar de recuperar mi contraseña en wordpress:

Segundo Error:
“No se ha podido guardar la clave de reinicio de la contraseña en la base de datos”

Había olvidado por completo comentar la función innodb_force_recovery = 4 en my.cnf la cual estaba en [mysqld] y [mysqld_safe].. si lo sé esta función solo debe estar cuando entre en modo seguro… de esta forma logré poder escribir de nuevo en mis BD y realizar un respaldo de todo.. por si vuelve a pasar !! uno nunca sabe cuando se equivoque de servidor haha.

Jueves 19 de enero de 2017

Octavio Alvarez

Octavio Alvarez
Planeta Linux –

Esperar hasta terminar la entrada estándar

Si uno teclea líneas a la entrada estándar desde el teclado, ésta se va procesando línea por línea:

$ cat -n
hola
     1	hola
mundo
     2	mundo
maravilloso
     3	maravilloso
^D
$

Así, resulta impráctico marcar la salida usando el ratón para copiarlo al portapapeles o simplemente para ver la salida junta. Como alternativas tenemos:

  • Marcar y copiar línea por línea, acumulando el resultado en un editor antes de copiar todo el texto. Muy impráctico.
  • Redirigir la salida a un archivo, pero aún queda pendiente tener que procesar y borrar el archivo después.
  • Usar tac | tac:
    $ tac | tac | cat -n
    hola
    mundo
    maravilloso
    ^D
         1	hola
         2	mundo
         3	maravilloso
    $
    

tac es una instrucción que concatena archivos y los despliega en reversa (LIFO en lugar de FIFO por línea). Por naturaleza, tac se ve en la obligación de leer la entrada estándar completa antes de poder mandar la primera línea de su salida. Si invertimos la entrada dos veces se obtiene el efecto deseado.

No sé hasta cuántas líneas soporte antes de volverse lento. Aquí con 10,000 líneas funciona aún bastante bien.

¿Alguien conoce alguna mejor manera?

Actualización: Dualbus me recomienda sponge de moreutils. Ejemplo:

$ sponge | cat -n
hola
mundo
maravilloso
^D
     1	hola
     2	mundo
     3	maravilloso
$

Según el manual, sponge “absorbe la entrada estándar y la escribe a un archivo”.

Miércoles 18 de enero de 2017

Miguel de Icaza

Miguel de Icaza
Miguel de Icaza

Creating .NET Bindings for C Libraries with ObjectiveSharpie

We created the ObjectiveSharpie tool to automate the mapping of Objective-C APIs to the .NET world. This is the tool that we use to keep up with Apple APIs.

One of the lesser known features of ObjectiveSharpie, is that it is not limited to binding Objective-C header files. It is also capable of creating definitions for C APIs.

To do this, merely use the "bind" command for ObjectiveSharpie and run it on the header file for the API that you want to bind:

	sharpie bind c-api.h -o binding.cs

The above command will produce the binding.cs that contains the C# definitions for both the native data structures and the C functions that can be invoked.

Since C APIs are ambiguous, in some cases ObjectiveSharpie will generate some diagnostics. In most cases it will flag methods that have to be bound with the [Verify]. This attribute is used as an indicator on your source code that you need to manually audit the binding, perhaps checking the documentation and adjust the P/Invoke signature accordingly.

There are various options that you can pass to the bind command, just invoke sharpie bind to get an up-to-date list of configuration options.

This is how I quickly bootstrapped the TensorFlowSharp binding. I got all the P/Invoke signatures done in one go, and then I started to do the work to surface an idiomatic C# API.

Martes 17 de enero de 2017

Octavio Alvarez

Octavio Alvarez
Planeta Linux –

postfix_delivery_search.bash

Este script sirve para buscar en los logs de Postfix 2.9.6 la historia de entrega de los correos que cumplan con el from= y el to= que se indiquen en el primer y segundo argumento del script, respectivamente.

#!/bin/bash

# Configuration variables
REQUIREMENTS="gawk grep"
LOGSOURCES="/var/log/mail.info.1 /var/log/mail.info"

# Check requirements
which $REQUIREMENTS > /dev/null 2>&1 || {
    echo The following required programs were not found:
    for R in $REQUIREMENTS; do
        which "$R" > /dev/null 2>&1 || echo "$R"
    done
    exit 63
}

# Check arguments
[ $# -eq 2 ] || {
    echo Usage: "$0" source_address destination_address
    exit 1
}

# These work for Postfix 2.9.6
function get_filter_from() {
    echo 'BEGIN { FS="[ :]+"} /from=<'$1'>/ && !/NOQUEUE/ { print $8 }'
}

function get_filter_to() {
    echo 'BEGIN { FS="[ :]+"} /to=<'$1'>/ && !/NOQUEUE/ { print $8 }'
}

function awniq() {
    gawk '!a[$0]++'
}

FILTER_FROM=$(get_filter_from "$1")
FILTER_TO=$(get_filter_to "$2")

# For each mail ID found in both from= and to= lines...
for ID in $(grep -f <(gawk "$FILTER_FROM" $LOGSOURCES | awniq) \
  <(gawk "$FILTER_TO" $LOGSOURCES | awniq))
do
    echo ====== $ID ======
    grep -- "$ID" /var/log/{mail.info.1,mail.info}
done

Jueves 12 de enero de 2017

Gustavo Rubio

Gustavo Rubio
Ahí vamos

En México todos tenemos una agenda

Cuando mi mujer me dijo que no había gasolina el pasado Sábado 7 de Enero pensé que estaba exagerando. La verdad es que, como parte de una terapia auto-recetada, me he abstenido de leer demasiado las noticias para mantenerme enfocado en otras actividades desde hace meses, bueno, suelo al menos leer los titulares, pero paso de largo los detalles. Ese mismo Sábado por la noche decidí ir a echar gasolina a la estación mas cercana y bueno, me llevé la sorpresa (amarga) de todos los demás que al parecer sí estaban atentos no solo de las noticias sino de la situación. Como yo suelo recargar el tanque por semana supongo no experimenté el caos en carne propia hasta que me afectó.

Ese mismo día recuerdo haber quedado de comer con mi esposa en algún lado por zona río (zona comercial/financiera de Tijuana, para los foráneos)  al mediodía, cuando ambos nos desocuparamos de nuestros respectivos compromisos; ella de un desayuno con amigas y yo probablemente de levantarme tarde. Finalmente el plan se vino abajo y terminamos comiendo en casa pues el tráfico por las manifestaciones simplemente había convertido en caos la ciudad.

Si bien estoy a favor de manifestaciones genuinamente sustentadas últimamente me he convertido en un tipo bastante moderado en cuestiones socio-políticas. La verdad es que conforme han pasado los años he aprendido lo que todos me repetían cuando era adolescente: “Un día vas a madurar” y bueno, supongo que he madurado. ¿Significa madurar perder el espíritu de rebelión? O mejor dicho, ¿Puede uno apoyar causas y aun así considerarse moderado?

Verán, hay un refrán que dice que “Cada quien jala agua para su propio molino” y bueno, México es un país donde llevar agua al molino propio es deporte nacional. Antes solía tener largas conversaciones, debates y hasta peleas con amigos, no tan amigos, familiares, maestros y quien se me pusiera enfrente sobre los problemas propios del país, las raíces y hasta posibles soluciones (que ingenuo) pero conforme he crecido he encontrado cada vez más difícil mantener la energía para desarrollar dichos debates o siquiera propiciarlos, o sea, me da mucha hueva conversar sobre problemas tan complejos sin tener una dirección clara, sin embargo, siendo una persona tan obstinada, inconscientemente he desarrollado la capacidad de analizar, en segundo plano, cada situación de los problemas que aquejan a la sociedad mexicana en particular y siempre he llegado a la misma conclusión: en México todos tenemos una agenda particular.

Solo hay que voltear a ver el problema de los combustibles. Situación que afectó a muchos, muchísimos ciudadanos, y sectores variados, el de los transportistas, por ejemplo, que con pancartas con leyendas como “fuera el gobierno corrupto” en las parrillas de sus tracto-camiones enviaban un mensaje de hartazgo. Lo curioso es que un gran porcentaje de estos transportistas son los mismos que aplican su “mochada” con las autoridades para poder transportar 40t de carga en vez de 25t y que tienen destruídas vías y carreteras por ejemplo.

Y también ahí en la marcha muy seguramente estuvo el taxista que no respeta el reglamento de tránsito, los autobuses de líneas de transporte urbano con precios inflados, unidades contaminantes y mal servicio, el propietario de un vehículo chocolate que no lo quiere legalizar pero si le alcanza para la cerveza del fin de semana. Y así, muchas personas, sectores y grupos se cuelgan de situaciones políticas en beneficio de sus propios intereses pero cuando toca hacer lo propio para no joder a los demás, bueno… no hacemos nada.

Si bien muchos de los protestantes son personas genuinamente responsables, preocupadas y sobre todo ocupadas (léase: cívicamente responsables) la mayoría guarda(mos) y cargamos nuestros propios pecados y al final eso, en conjunto, se manifiesta en nuestros gobernantes y burócratas; desde el que nos atiende en ventanilla en una empresa de estado, el regidor local, el delegado de alguna secretaría, hasta nuestro congreso y presidente. Vivimos en un sistema político de representatividad donde, tristemente, sí estamos representados por mayoría.

Así que siempre que vuelvo a tener un debate o simple conversación sobre los cientos de problemas que aquejan al país recuerdo este extracto:

México es una sociedad en la que gente quiere dos policías, uno que sea honesto y detenga delincuentes y otro que le haga un “paro”, quiere dos políticos; uno que sea integro y otro que viole las leyes cuando este en un problema y necesite de su ayuda; donde quiere dos códigos de ética, uno donde mi mujer sea sumisa y fiel, y otro donde la mujer del vecino sea flexible, quiere dos códigos migratorios; uno que le conceda visas de trabajo en EUA y otro donde expulse a los centroamericanos de nuestro país, una sociedad que exige buenos empleos pero demasiada floja para asistir puntualmente a ellos

Y recuerdo que mientras la revolución no empiece desde adentro nunca tendremos un cambio y para eso tenemos que dejar de pensar en solo jalar agua para nuestro propio molino.

Domingo 08 de enero de 2017

David Moreno

David Moreno
dm's blog

Thanks Debian

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

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

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

[-- The following data is signed --]

Hi,

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

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

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

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

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

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

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

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


[-- End of signed data --]

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

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

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

Peace.

Miércoles 30 de noviembre de 2016

Gustavo Rubio

Gustavo Rubio
Ahí vamos

Las elecciones de facebook

Justo hace apenas unos meses escribía sobre como leer esta sobrevalorado, o lo que es lo mismo, como nos mantenemos informados actualmente con información a medias tintas, y como ha mermado nuestra percepción de la realidad. Vivimos en un mundo de medios de comunicación tradicionales que luchan por sobrevivir y donde las “redes sociales” son el punto de partida para no solo informarse sino crear juicios colectivos. En últimas semanas debido a la desagradable pero no sorpresiva victoria de Donald Trump como candidato a la presidencia de Estados Unidos se ha discutido tanto en medios electrónicos como de papel el rol que jugaron tanto el Internet como las redes sociales para que esto sucediera.

Hecho: cuando la mayoría de las personas se refieren a las redes sociales en realidad se refieren a Facebook, punto. Si bien existen otros servicios que uno podría acomodar en la misma categoría lo cierto es que el punto de partida para informarse es usualmente Facebook; no visualizo a nadie usando Snapchat, Instagram o WhatsApp para buscar noticias.

Es importante entender el primer problema: no existe variedad ni opciones en estas llamadas redes sociales para consumir información relevante. Si bien Facebook no creo uno monopolio de información y datos a propósito si logró posicionarse como la referencia automática cuando una persona se refiere al Internet y a las redes sociales. No es que no existan otras opciones, pues las hay, cientos de sitios de noticias de empresas u organizaciones con fuentes fidedignas y trabajo de periodismo real sin embargo para el usuario común el Internet se limita a unas cuantas cosas: Google, Facebook y su servicio de correo. Es obvio que bajo este esquema de acaparación total de mercado el protagonista sea, si bien no directamente, responsable.

El segundo problema es precisamente la naturaleza de Facebook. Al ser una red social, significa que el contenido es simplemente transmitido de manera orgánica y sin filtros lo cual es un requerimiento de una plataforma de esa naturaleza, el problema es que la información importante, esa que crea conciencia entre las masas, esa que sirve para construir un juicio, necesita usualmente ser curada, redactada, editada y corroborada por profesionistas llamados periodistas.

Basar nuestro juicio en chismes, memes y cadenas de información solo por la cantidad de shares o likes no la hace fidedigna. En repetidas ocasiones he tenido esta conversación con varios miembros de mi familia y amigos. Para mi, Facebook, se ha convertido precisamente en un hervidero de contenido falso, desde la vida perfecta que se trata de proyectar ahí hasta temas relevantes como noticias que en realidad no son noticias sino opiniones con seguidores.

Pero “No es culpa del indio, sino del que lo hace compadre” y en este caso los usuarios holgazanes hemos vuelto compadre a Facebook.

Tristemente el Internet nos ha vuelto más ignorantes y damos por hecho que lo que leemos es una verdad absoluta y actuamos en consecuencia, particularmente en Facebook, donde la mayoría de los usuarios no brillan precisamente por su perspicacia.

Punto a favor para Twitter donde en mi opinión se generan debates y noticias con un poco más de fundamento aunque el propio concepto del servicio filtra naturalmente a los “malos usuarios“; no visualizo a tus tías de más de 60 que comparten enlaces a uno de los 50 sitios clon de Aristegui Noticias con clickbait sobre la renuncia de Peña Nieto ahí.

Yo por lo pronto me he limitado a utilizar el servicio (Facebook) exclusivamente para los grupos y el servicio de mensajería que me sirve para estar en contacto con algunos miembros de mi familia. Cerrar mi cuenta me parece un extremo pero dejar de utilizar el servicio principal no solo me ha dado un poco más de tiempo libre para otras actividades más importantes (que creo cualquier otra actividad es más importante que eso) sino que además da la sensación de desintoxicación.

Jueves 24 de noviembre de 2016

Itzcoalt Alvarez Moreno

Itzcoalt Alvarez Moreno
Itzcoalt (itz) Álvarez

Cita

Hot:

Siempre es bueno ver que alguien cita tu trabajo.

 

captura-de-pantalla_2016-11-24_15-51-32

Miércoles 23 de noviembre de 2016

Gerónimo Orozco

Gerónimo Orozco
Patux's booring news

Learning chess with stockfish first lesson

Loading embedded chess game...
&token&hash

Sábado 29 de octubre de 2016

Julio Poisot De María

Julio Poisot De María
Dianamo

Exotic Animal Laws Exposed!

Kangaroos aren’t on the list. The kangaroo is currently in hot pursuit, attempting to mount the pig. Monkeys are thought to be among the most intelligent animals, and aren’t usually kept as pets. A mountain lion should eat 8-10 pounds of meat a day as a way to survive. Larry, your snow leopard, may be searching for a new house soon. On Internet websites, you can point, click and get lions and tigers. Black bears are guarded and can’t be hunted or killed. 

A major cat can devour 30 pounds of meat each day. Unfortunately, in the long run it’s the cats that pay the maximum price. And buying an exotic pet may be long-time commitment. This exotic pet won’t don’t grab attention as a result of its large dimensions and unique acoustic talent. There are lots of exotic pets which aren’t considered truly wild in nature.

Spanning many of times the animals aren’t in the very best of health. That said it’s always overcome an animal is permitted to thrive in its normal atmosphere. Individuals will nonetheless keep their animals. They are enough, very clean animals. These active animals need a good deal of room to move around. Wildlife species are poor pets.

Carter reported the zoo couldn’t take in all the exotic animals they’re contacted about. Wisconsin is among just five states that enable residents to keep nearly every animal they want as a pet. Some counties in the western region of the state don’t have any restrictions in any respect.

It didn’t do the job for guns; it is not working for drugs and it won’t do the job for animals. The bill necessitates interagency cooperation. It provides rule-making authority. All fees have to be submitted with the tricky copy application. In some regions, an individual would have to have a particular permit to maintain a raccoon as an exotic pet.

The threat of disease is one which shouldn’t be dismissed,“ Ms. Schwank stated. While the island nation has a comparatively small population in contrast to some other developed nations, it’s the third biggest market on earth for wild animals, as demonstrated by a statement by Japanese pharmaceutical company Zenoah. It is a mentality, and should you do it right, it is a lifestyle,” he explained. The truth is there are only a few folks who’d have the ability to afford to have the ability to care for these animals and give the type of enrichment and nutrition they need,“ Mercer said. My life was devoted to animals. Tigers living in the wild, for instance, roam a massive territory.

If contact is impossible before forcibly going into the automobile, the man or woman shall make contact when possible after forcibly going into the car. This info has to be provided or your application procedure is going to be delayed. We should find the information for the strategy to work, Anderson said. Therefore we know what we’re handling. Nonetheless, for somebody to find an exotic pet permit, the person must show they can care for the animal. For Mr. Hoch, it’s only an everyday job. We would be pleased to share that which we’ve learned from our clients over time. Many situations the owners give veterinary services to the animals themselves.

Martes 11 de octubre de 2016

Omar Hernández Sarmiento

Omar Hernández Sarmiento
-- tekini --

keybase.txt

==================================================================
https://keybase.io/petrohs
--------------------------------------------------------------------

I hereby claim:

  * I am an admin of https://petrohs-log.blogspot.com
  * I am petrohs (https://keybase.io/petrohs) on keybase.
  * I have a public key ASB2xgvl3EcOsiO5eRMAXC8--cSwznPzuxT325Venxz5Qgo

To do so, I am signing this object:

{
    "body": {
        "key": {
            "eldest_kid": "0101619dfd1e745d91f95cb4ee46b5d28076b5c0e9ae7b342847459165d439337c870a",
            "host": "keybase.io",
            "kid": "012076c60be5dc470eb223b97913005c2f3ef9c4b0ce73f3bb14f7db955e9f1cf9420a",
            "uid": "cf183abefb49c7bb1188cdc3a532bd19",
            "username": "petrohs"
        },
        "service": {
            "hostname": "petrohs-log.blogspot.com",
            "protocol": "https:"
        },
        "type": "web_service_binding",
        "version": 1
    },
    "client": {
        "name": "keybase.io go client",
        "version": "1.0.17"
    },
    "ctime": 1476217146,
    "expire_in": 504576000,
    "merkle_root": {
        "ctime": 1476217080,
        "hash": "9824705b37df2c00dbc6c93058aeb5edfc6abfffcae021f26ac63b1e4bef906af7402a29f513b395dcd5a29d1908540897654240fa2e6119a83c52ac350fb9fc",
        "seqno": 673115
    },
    "prev": "61caded8eb365a778c648d9ffd6170ed2ce06d8a5a4f301deddc38143bb32cd8",
    "seqno": 11,
    "tag": "signature"
}

which yields the signature:

hKRib2R5hqhkZXRhY2hlZMOpaGFzaF90eXBlCqNrZXnEIwEgdsYL5dxHDrIjuXkTAFwvPvnEsM5z87sU99uVXp8c+UIKp3BheWxvYWTFAwB7ImJvZHkiOnsia2V5Ijp7ImVsZGVzdF9raWQiOiIwMTAxNjE5ZGZkMWU3NDVkOTFmOTVjYjRlZTQ2YjVkMjgwNzZiNWMwZTlhZTdiMzQyODQ3NDU5MTY1ZDQzOTMzN2M4NzBhIiwiaG9zdCI6ImtleWJhc2UuaW8iLCJraWQiOiIwMTIwNzZjNjBiZTVkYzQ3MGViMjIzYjk3OTEzMDA1YzJmM2VmOWM0YjBjZTczZjNiYjE0ZjdkYjk1NWU5ZjFjZjk0MjBhIiwidWlkIjoiY2YxODNhYmVmYjQ5YzdiYjExODhjZGMzYTUzMmJkMTkiLCJ1c2VybmFtZSI6InBldHJvaHMifSwic2VydmljZSI6eyJob3N0bmFtZSI6InBldHJvaHMtbG9nLmJsb2dzcG90LmNvbSIsInByb3RvY29sIjoiaHR0cHM6In0sInR5cGUiOiJ3ZWJfc2VydmljZV9iaW5kaW5nIiwidmVyc2lvbiI6MX0sImNsaWVudCI6eyJuYW1lIjoia2V5YmFzZS5pbyBnbyBjbGllbnQiLCJ2ZXJzaW9uIjoiMS4wLjE3In0sImN0aW1lIjoxNDc2MjE3MTQ2LCJleHBpcmVfaW4iOjUwNDU3NjAwMCwibWVya2xlX3Jvb3QiOnsiY3RpbWUiOjE0NzYyMTcwODAsImhhc2giOiI5ODI0NzA1YjM3ZGYyYzAwZGJjNmM5MzA1OGFlYjVlZGZjNmFiZmZmY2FlMDIxZjI2YWM2M2IxZTRiZWY5MDZhZjc0MDJhMjlmNTEzYjM5NWRjZDVhMjlkMTkwODU0MDg5NzY1NDI0MGZhMmU2MTE5YTgzYzUyYWMzNTBmYjlmYyIsInNlcW5vIjo2NzMxMTV9LCJwcmV2IjoiNjFjYWRlZDhlYjM2NWE3NzhjNjQ4ZDlmZmQ2MTcwZWQyY2UwNmQ4YTVhNGYzMDFkZWRkYzM4MTQzYmIzMmNkOCIsInNlcW5vIjoxMSwidGFnIjoic2lnbmF0dXJlIn2jc2lnxEDM3KBtfH12AvAf+OIATH28Nc8WmLrbXWSUljJvydewUjDbbGmvNKuvia/mB6AGMIwVdOwSxQGXpJ2/ZoqwIbMDqHNpZ190eXBlIKRoYXNogqR0eXBlCKV2YWx1ZcQg+oL3ZJjKORLmyctWYDgLML+OBKyaVFkZnlAtlRvSdJejdGFnzQICp3ZlcnNpb24B

And finally, I am proving ownership of this host by posting or
appending to this document.

View my publicly-auditable identity here: https://keybase.io/petrohs

==================================================================

Martes 04 de octubre de 2016

Moisés Silva

Moisés Silva
Moy Blog

FreeSWITCH Monitoring – ClueCon 2016

Had a good time at ClueCon again.

ClueCon 2016

For anyone interested in systems monitoring in general and how to apply it to FreeSWITCH in particular, here is my presentation:

Sábado 01 de octubre de 2016

Los discos desde la perspectiva de un Sistema de Archivos

Esta es mi propia traducción e interpretación del artículo Disks from the Perspective of a File System escrito por Marshall Kirk McKusick [1] para ACMQ. Los Discos mienten. Y los controladores que los corren son cómplices del crimen. La mayoría de las aplicaciones no tienen que negociar con los discos directamente, sino que guardan sus datos en archivos dentro del sistema de archivos, el cual nos protege de los discos sinvergüenzas.
Miguel de Icaza

Miguel de Icaza
Miguel de Icaza

TLS 1.2 Comes to Mono: Update

Short version: the master branch of Mono now has support for TLS 1.2 out of the box. This means that SslStream now uses TLS 1.2, and uses of HttpWebRequest for HTTPS endpoints also uses TLS 1.2 on the desktop.

This brings TLS 1.2 to Mono on Unix/Linux in addition to Xamarin.{Mac,iOS,tvOS} which were already enabled to use TLS 1.2 via the native Apple TLS stack.

To use, install your fresh version of Mono, and then either run the btls-cert-sync command which will convert your existing list of trusted certificates to the new format (if you used cert-sync or mozroots in the past).

In Detail

The new version of Mono now embeds Google's Boring SSL as the TLS implementation to use.

Last year, you might remember that we completed a C# implementation of TLS 1.2. But we were afraid of releasing a TLS stack that had not been audited, that might contain exploitable holes, and that we did not have the cryptographic chops to ensure that the implementation was bullet proof.

So we decided that rather than ship a brand new TLS implementation we would use a TLS implementation that had been audited and was under active development.

So we picked Boring TLS, which is Google's fork of OpenSSL. This is the stack that powers Android and Google Chrome so we felt more comfortable using this implementation than a brand new implementation.

Linux Distributions

We are considering adding a --with-openssl-cert-directory= option to the configure script so that Linux distributions that package Mono could pass a directory that contains trusted root certificates in the format expected by OpenSSL.

Let us discuss the details in the mono-devel-list@lists.dot.net

Viernes 30 de septiembre de 2016

Marco Alfonso Ocampo

Marco Alfonso Ocampo
Pub – Marco Alfonso

Contenedor LXC con IP Pública

Hola!

Hace unos meses me puse a instalar LXC para un cliente, y tenía la necesidad de que sus contenedores estuvieran en la misma red que sus servidores físicos. Por lo general LXC crea una red 10.0.3.0/24 y un puente con la ip 10.0.3.1 llamada “lxcbr0“, por tanto, lo que haremos será agregar otro puente usando la tarjeta de red activa, luego indicamos a LXC que cree los contenedores usando ese nuevo puente, estos son los pasos:

En nuestro /etc/network/interfaces (debian y ubuntu), generalmente tendremos esto:


auto eth0
iface eth0 inet static
       address 192.168.1.250
       netmask 255.255.255.0
       gateway 192.168.1.1
       dns-nameservers 8.8.8.8 8.8.4.4

Lo cambiamos a esto:


auto br0
iface br0 inet static
        bridge_ports eth0
        address 192.168.1.250
        netmask 255.255.255.0
        gateway 192.168.1.1
        dns-nameservers 8.8.8.8 8.8.4.4

Con esto creamos nuestro nuevo puente “br0” ligado a eth0 (puede ser em1 ó enp5s0, etc)

Ahora toca indicarle a LXC que los nuevos contenedores usen este puente, editamos /etc/default/lxc-net y cambiamos USE_LXC_BRIDGE a: USE_LXC_BRIDGE="false"

Y en /etc/lxc/default.conf cambiamos lxc.network.link = lxcbr0 a lxc.network.link = br0

Y listo. Ahora dentro de los contenedores puedes usar configuración estática, o por dhcp.


auto eth0
iface eth0 inet dhcp

auto eth0
iface eth0 inet static
        address 192.168.1.10
        netmask 255.255.255.0
        gateway 192.168.1.1
        dns-nameservers 8.8.8.8

.

Usar IP externa de una red diferente

Ahora, ¿porque me acordé de algo que hice algo meses?, porque lo reintenté para ponerle una IP pública a un servidor LXC en un dedicado que tengo, y ¡No funcionó!

El dedicado tiene una IP del tipo 199.xx.xx.105 al comprarle una IP extra (ó Failover IP) el proveedor me asignó la ip: 146.xx.xx.239 , al querer añadirla a un contenedor, éste se quedaba sin red y no se “veía” (ping) ni con el Host, por ahí ví un error “Network unreachable“, ¡claro! las dos IP’s son de dos redes diferentes y no hay nadie (un router) que les diga como comunicarse, así que la solución fue añadir una nueva ruta a la tabla de ruteo de linux. Estos son los pasos:

Teniendo ya el puente br0 configurado y funcionando, hay que indicarle a LXC que deseamos forzar una dirección IP, esto lo hacemos editando la configuración del contenedor en /var/lib/lxc/MICONTENEDOR/config:


lxc.network.ipv4=146.xx.xx.239
lxc.network.ipv4.gateway=199.xx.xx.105

Aquí hay que hacer notar que hemos puesto como gateway del contenedor la IP del Host. Esto es muy importante.

Y dentro del contenedor la siguiente configuración de red (/etc/network/interfaces) constará solamante de una sóla instrucción: “auto eth0” (dejando también la parte del loopback claro)

En este momento ya puedes levantar el contenedor con lxc-start, métete con lxc-attach y verás como tiene la IP que indicaste en su configuración, si ejecutas un route -n verás como su gateway es también lo indicado en la conf. Pero ¡NO TIENE RED!, déjalo “prendido” y de lado del Host ejecuta lo siguiente:

route add 146.xx.xx.239 br0

Tadá! Si haces un ping a la IP verás como ya responde, si te metes al contenedor verás como ya tiene red y puede responder a todos los servicios. Ahora, por supuesto estar agregando la ruta manualmente cada que iniciemos el contenedor está de hueva, vamos a automatizarlo.

Creamos dos scripts en /var/lib/lxc/MICONTENEDOR/ uno llamado iface-up.sh y otro iface-down.sh

iface-up.sh:


#!/bin/bash
route add 146.xx.xx.239 br0

iface-down.sh:


#!/bin/bash
route del 146.xx.xx.239 br0

No te olvides de darle permisos de ejecución a ambos scripts! Ej. chmod +x iface-up.sh

Y vamos a editar nuevamente la configuración del contenedor para añadir las siguientes dos líneas después de la parte donde añadimos los parámetros de red:

/var/lib/lxc/MICONTENEDOR/config:


...
lxc.network.ipv4=146.xx.xx.239
lxc.network.ipv4.gateway=199.xx.xx.105

lxc.network.script.up = /var/lib/lxc/MICONTENEDOR/iface-up.sh
lxc.network.script.down = /var/lib/lxc/MICONTENEDOR/iface-down.sh

Done. Ya con esto puedes probar parar e iniciar el contenedor varias veces, vigilando el estado de su red y de la IP y no debería tener problemas para acceder a Internet y viceversa.

Viernes 23 de septiembre de 2016

Se regala otro Raspberry Pi

Características Es un Raspberry Pi de primera generación, modelo B, con las siguientes características: 1 Salida de Audio 3.5mm 2 Puertos USB 2.0 1 Puerto Ethernet 10/100 1 Puerto de salida HDMI El SoC es un BCM2835, con procesador 1 núcleo ARM1176JZFS con punto flotante, de 700MHz y 256MB de RAM. Estado Funciona correctamente, no tiene ningún daño a la vista. Forma de Conseguirlo Me pueden contactar por los medios habituales, el costo del envío fuera de CDMX va por su cuenta.