Sábado 23 de septiembre de 2017

Linux Adictos: Adblock Plus frena la minería de criptomonedas
Linux Adictos: Pipewire pretende reemplazar PulseAudio y JACK
Linux Adictos: Liberada oficialmente la versión 5.1 de Canaima

Jueves 21 de septiembre de 2017

Usemos Linux: Jupyter notebook: documenta y ejecuta código desde el navegador

Miércoles 20 de septiembre de 2017

Usemos Linux: Instalar y configurar aplicaciones HTPC / Home Server automáticamente con AtoMiC Toolkit

Martes 19 de septiembre de 2017

Usemos Linux: Wifislax64: La distro ideal para la seguridad en redes WiFi
Sergio Gonzalez

Sergio Gonzalez
hackendemoniado

Comandos útiles para conocer nuestro procesador


Hola volviendo a publicar después de un gran tiempo, ahora vengo a dar ejemplos de distintos comandos útiles para obtener toda la información de nuestros CPU's que suelo utilizar en mi día a día, sin más pasamos directo sin tanto rodeos a los comandos.


Obtener toda la información completa del procesador:

O con el siguiente comando obtenemos la misma información pero agrupada en un simple listado:

Si solamente necesitamos recuperar información más especifica simplemente debemos hacer grep sobre este mismo archivo dependiendo de lo que necesitamos mirar.

Por ejemplo, para obtener el nombre del fabricante:

Para ver el modelo:

Para ver la velocidad:

Para saber el número de procesadores:

Otra forma de obtener lo mismo es:

O incluso buscando el string 'processor' dentro del archivo cpuinfo:

Obtener el número de núcleos:

Obtener el número de cpus/cores Físicos:

Obtener el número de cpus lógicos incluyendo los cores con Tecnología de HyperThreading:

Para computadoras antiguas que no tienen el comando nproc ni lscpu es el comando getconf:


Aunque también podemos ocupar el comando dmidecode pero con privilegios:

También podemos instalar algunos paquetes extras que nos pueden brindar alguna información extra como lo son cpufrequtils, cpuid, inxi, aunque logicamente podemos utilizar algunos softwares diseñados para obtener información completa de nuestro sistema pero que con algunos parametros podemos precisar al procesador de nuestro equipo: lshw, hwinfo si queremos instalarlos podemos hacer:

Con cpufrequtils podemos hacer:

Para cpuid es tan simple como:

Con inxi debemos de tirar lo siguiente:

Ahora con lshw debemos de teclear:

Y por último tenemos a hwinfo que lo usaremos de la siguiente manera:

Para cada uno de estos comandos vamos a tener una variedad de información de todo tipo de colores y sabores que con lo cuál dependiendo lo que estemos buscando o asegurando podremos corroborar o demostrar, e incluso conocer mejor nuestro cpu, espero que les sea de utilidad... Saludos

Miércoles 13 de septiembre de 2017

Javier Smaldone

Javier Smaldone
Blog de Javier Smaldone

Las mentiras sobre el voto electrónico

Desde hace más de un año el Gobierno y el oficialismo impulsan el uso de la llamada “boleta única electrónica” a nivel nacional. A través de ríos de tinta, terabytes de información, horas de televisión y varias sesiones de plenarios de comisiones de las cámaras de Diputados y Senadores, se han repetido una y otra vez las mismas falacias y mentiras.

Mentiroso, mentiroso

A continuación se exponen algunos de los ejemplos más notables. Más allá de las apreciaciones técnicas, ¿por qué si el sistema es tan bueno, hace falta mentir tanto para convencer a la gente?

No es una computadora

Una de las frases que se ha repetido ad nauseam por parte de funcionarios y “periodistas amigos” ha sido que la máquina de votación a utilizar “no es una computadora, es una impresora”.

Aquí, el por entonces Ministro de Justicia de la CABA Guillermo Montenegro en una de sus apariciones en 2015 mostrando las bondades del sistema:

Con el tiempo, fueron buscándole variantes a la frase, para seguir convenciendo a la gente de que esa máquina capaz de correr un sistema operativo estándar (como Ubuntu o Windows), con placa de red ethernet, cuatro puertos USB, lecto-grabadora de DVD y salida VGA no es una computadora. Aquí, una que se le ocurrió al diputado Pablo Tonelli: no es una computadora, es como un televisor pequeño.

Sí, las máquinas en cuestión son computadoras. De hecho, tienen un segundo procesador (con su propio firmware) que jamás fue auditado. Y estrictamente hablando, cada uno de los chips RFID embebidos en las boletas, también son computadoras (arquitectura de von Neumann).

Es tan gracioso que tanta gente lo haya creído, que sysarmy hizo unos stickers alusivos:

No es una computadora, es una impresora

No es voto electrónico

El segundo eslogan impuesto por repetición ad nauseam es que “la boleta única electrónica no es voto electrónico. Aquí Pablo Tonelli nos lo explica:

El Ministro de Modernización Andrés Ibarra repite el eslogan, y detalla además cómo funciona el sistema haciendo un gran esfuerzo por no decir “computadora”, pero en vez de “impresora” habla de “pantallas”.

“Pantallas” de votación reutilizables, seguras, “a prueba de hackeos” (que, reconoce, ya hubo al menos 2 casos), y con un software que debía estar listo 4 meses después, pero que aún no se había desarrollado. Por suerte para él el proyecto no se aprobó y no se vio en el brete de tener que dibujar la compra de los equipos y el desarrollo del software a velocidad warp.

Este es el por entonces Director Nacional Electoral (y actual empleado de Correo Argentino) Alejandro Tullio repitiendo el versito:

Una cosa interesante que Tullio omite es que los chips RFID de las boletas tiene un número identificador único (el equivalente, si se quiere, a votar con boletas numeradas) y se ha probado que puede diferenciarse lo que se transmite (graba) a los chips desde algunos metros de distancia. Y tampoco es un “invento argentino”, ya que investigadores de la Universidad de Tel Aviv en Israel descartaron en 2010 un sistema similar por considerarlo inseguro.

Aquí el Secretario de Asuntos Políticos del Ministerio del Interior Adrián Pérez ve perturbada una plácida entrevista por una pregunta un tanto incómoda:

Según Pérez “hay que preguntarle a los alemanes” por qué descartaron sus sistemas de votación electrónica y volvieron a votar con boletas de papel, en vez de simplemente agregarles un respaldo en papel. En realidad la respuesta es muy simple: un sistema de votación electrónica con respaldo en papel, sigue siendo un sistema de votación electrónica, y tiene los mismos peligros intrínsecos a todos los sistemas de votación electrónica.

Sí, la boleta única electrónica es un sistema de voto electrónico con respaldo en papel. Si el voto se emite a través de una computadora, es voto electrónico, aunque a veces convenga cambiarle el nombre para evitar la mala fama o para violar alguna ley electoral.

Los técnicos lo avalan

A lo largo de más de dos años de discusiones, nunca hubo un informático que apoyara públicamente el uso de la boleta única electrónica, ni en los paneles y debates, ni en los plenarios de Diputados y Senadores. Pero sin embargo el diputado Pablo Tonelli dice tener técnicos que lo avalan:

Para Tonelli, vulnerabilidades que han sido mostradas en la conferencia de seguridad Ekoparty ante cientos de expertos (en dos oportunidades) “son más fantasías que realidades”. Más gracioso aún es cuando le preguntan quiénes son los “expertos de verdad” que tiene el Gobierno:

<

Los expertos informáticos “hacen actos de ilusionismo”. Hay que creerle a las autoridades electorales, en general abogados, que reconocen que de informática no tienen la menor idea. Pero Adrián Pérez —que tampoco recuerda nombres— lo secunda y explica además por qué ninguno de los supuestos expertos da la cara en ningún lado:

Los especialistas que asesoran al Gobierno en las cuestiones técnicas no se animaron a ir al Congreso —que no es “un lugar serio de debate”— porque después los agreden en Twitter y Facebook. Y además tampoco fueron convocados, ni siquiera por el oficialismo. Clarísimo.

Vuelve a la carga Tonelli:

E insiste:

Lo curioso es que cuando hice la demostración de cómo se puede violar el secreto con un celular, en el plenario de Diputados, Tonelli presidía la sesión y estaba sentado a mi lado. Pero no objetó ni preguntó nada sobre esos “pedazos de papel” (que eran boletas reales, sólo que con el sello que decía “boleta de capacitación”).

Pero no fue la única burla y descalificación que sufrimos los que mostramos vulnerabilidades de la boleta única electrónica por parte de los diputados. Aquí pueden ver al diputado Marcelo Wechsler —supuesto experto en tecnología:

Afortunadamente, tuve la oportunidad de dialogar con Wechsler una vez finalizada su alocución —en la que además dijo que mi exposición había sido un “stand-up”— para hacerle saber mi opinión tanto sobre su persona como sobre su desempeño como legislador.

La realidad es que los Departamentos de Computación de 5 Universidades Nacionales y varios institutos de investigación de Conicet se pronunciaron en contra de la boleta única electrónica, y hasta dieron una conferencia de prensa que fue ignorada por los legisladores. Y muchos especialistas en seguridad informática también hicieron pública su oposición.

La elección de CABA fue perfecta

En la Ciudad Autónoma de Buenos Aires se votó con boleta única electrónica en las elecciones a Jefe de Gobierno del año 2015 (generales y ballotage). El discurso oficial es que fue todo perfecto, y que no hubo ningún inconveniente (al igual que en todas las elecciones pasadas en dicho distrito, que nunca presentó problema alguno). Escuchemos nuevamente a Tonelli:

Para Tonelli un fallo de un juzgado penal “suena más a fantasía que a realidad”. Pero esto no termina ahí, el mismísimo juez Dr. Luis Lozano —presidente del Tribunal Superior de Justicia de la CABA— también parece desconocer la causa y el fallo de la Justicia que él preside:

Además de una causa penal —con un ciudadano allanado e imputado injustamente— en la CABA en las elecciones de 2015 hubo múltiples irregularidades e inconvenientes, como por ejemplo computadoras con componentes que no estaban presentes en los equipos auditados. Pero el actual Jefe de Gobierno de la CABA Horacio Rodríguez Larreta dice esto:

Ya se sabe: es cuestión de repetir la mentira, y quedará instalada como verdad.

Y otra pequeña mentira: en la CABA podría haberse usado la boleta única electrónica, si el propio Rodríguez Larreta hubiera tomado la decisión de “desdoblar” las elecciones y no hacerlas al mismo tiempo que las nacionales.

No se necesita fiscalizar

Quienes no conocen demasiado de informática, tienden a pensar que las computadoras son útiles para controlar lo que las personas no pueden (por eso les resulta atractivo su uso en las elecciones). Esto es falso, ya que las computadoras son controladas por todos aquellos que participan de la construcción de su hardware y su software, además de la siempre posible existencia de errores que pueden permitir a otros tomar el control. Pero aprovechar la ignorancia para decir abiertamente que con la boleta única electrónica ya no se necesitan fiscales, ya es demasiado. Escuchen al Gobernador de Salta, devenido en agente de ventas de la empresa MSA, Juan Manuel Urtubey:

No, no fue una exageración del momento. Urtubey repite esto en cada presentación comercial de la empresa que representa:

“No hay nada que controlar, porque es todo de una seguridad absoluta”. Las máquinas infalibles controlan que nada se pueda fraguar. Y aquí va otra de las frases favoritas de Urtubey: el escrutinio es como pasar productos por la caja de un supermercado.

Sí, las imágenes anteriores corresponden a escrutinios de mesa de elecciones reales, donde podemos ver que las autoridades siguen al pie de la letra el consejo de Urtubey: no controlan nada. Y aquí vemos a la Gobernadora de Buenos Aires María Eugenia Vidal sumándose a la mentira:

Las impresora mágicas controlan todo. No se preocupen, votantes. Confíen.

El gobierno propuso boleta única

La propuesta de reforma electoral fue enviada por el Gobierno al Congreso para su discusión “a libro cerrado”. Si bien aceptaron agregados como la llamada “paridad de género”, jamás aceptaron cambiar una coma de su eje central: la implementación de la boleta única electrónica. Quienes nos oponemos, siempre propusimos como opción superadora la boleta única de papel. Pero ahora afirman que siempre la consideraron alternativa posible. Escuchen a Adrián Pérez:

Además, la afirmación de que “cualquier sistema es mejor que el que tenemos hoy” es cuando menos peligrosa. Para el caso, basta recordar la reciente votación en Venezuela o las elecciones presidenciales del año 2000 en los Estados Unidos. Pero Pérez también dice cuál es el problema que le encuentran a la boleta única de papel:

Pérez miente. Hay países que tienen tantos o más partidos que la Argentina. Por ejemplo, en las elecciones parlamentarias nacionales de los Países Bajos —que durante años usaron voto electrónico y lo abandonaron— se presentaron 28 listas distintas, y se votó con boleta única de papel.

En definitiva, la boleta única de papel es un sistema que soluciona todos los problemas que se pretenden solucionar con la boleta única electrónica, y la prueba de que se puede hacer —según Pérez en 2009— es que “hoy se hace”. Pues bien, en 2017 todavía se sigue haciendo, incluso en las PASO. Los privados de libertad y los residentes en el exterior siguen votando con boleta única de papel. Entonces dice el Pérez de 2009 que lo que dice el Pérez de 2017 es simplemente una excusa.

Pero hay algo más. Cuando se votaba en la Cámara de Diputados el proyecto de reforma electoral, la diputada Alicia Ciciliani propuso introducir una cláusula transitoria para las elecciones de 2017, para que en caso de haber problemas con la implementación de la boleta única electrónica se utilizara la boleta única de papel. Aprecien la respuesta y el gesto de burla del diputado Pablo Tonelli:

No, el oficialismo jamás aceptó como opción la boleta única de papel.

Los cambios de opinión

La gran mayoría de los periodistas de los medios masivos apoyó desde el primer momento la idea de votar con boleta única electrónica. Quizá el único periodista famoso en expresar algunos reparos en 2015 fue Jorge Lanata. Hasta dio lugar en su programa radial a varios especialistas, dedicó una hora a un debate entre su asesor informático Julio López y el titular de MSA Sergio Angelini y hasta se hizo eco de las irregulares en las elecciones de la CABA en su programa Periodismo Para Todos. Pero luego algo cambió.

En el mundo no se vota con papel

El uso de sistemas de voto electrónico (de cualquier tipo) retrocede en casi todo el mundo. De los 20 primeros países según el índice de desarrollo humano de las Naciones Unidas, 19 votan usando boletas de papel, y el restante son los EE.UU., que sólo usan voto electrónico parcialmente y cada vez menos. Pero esto no importa, y tampoco que pueda verificarse usando Google y dos neuronas, siempre podemos engañar a la gente:

La mentira es replicada y reiterada una y otra vez por periodistas oficialistas y por expertos que difícilmente hayan visto cómo se vota fuera de Latinoamérica:

Y si aparece diciéndolo, avergonzado, el Jefe de Gabinete Marcos Peña quizás más gente se convenza de que es cierto:

Y por si alguien todavía duda, que lo repita también Rodríguez Larreta:

Aunque a veces hasta Urtubey googlea y siente un poco de vergüenza, así que ensaya explicaciones como esta:

Sí, dice que en otros países no prestan tanta atención a la forma de votación: para ellos eso es “una cuestión adjetiva”, secundaria, no esencial, y por eso no votan con computadoras. Pero nosotros los argentinos sí que nos tomamos en serio eso de ver cómo votamos. ¿No?

Pero cuando alguien de la tropa flaquea, quién mejor que el Presidente para salir a reafirmar la mentira —y, de paso, varias de las otras también. Adelante, Mauricio Macri:

¡¿Qué es eso de sacarle el chip a la boleta?! Si vamos a votar usando computadoras —como casi ningún país desarrollado del mundo— vamos a hacerlo usando toda la tecnología posible. Eso sí, lo de que la garantía es que en el escrutinio definitivo se recuentan las boletas —algo altamente excepcional—, es una mentira demasiado grosera (va de nuevo: no, en el escrutinio definitivo no se cuentan los votos). Pero total la gente qué sabe.

Con voto electrónico esto no pasaba

Luego de las PASO del domingo 13 de agosto de 2017, y ante las denuncias cruzadas de manipulaciones electorales y mediáticas por la demora de los resultados provisorios de la Provincia de Buenos Aires, el oficialismo salió a responsabilizar de la situación a quienes se opusieron a la boleta única electrónica (como si esta eliminara la intermediación de la Dirección Nacional Electoral).

Como era de esperarse, un Gobierno que sostiene que el sistema electoral es obsoleto no iba a dejar pasar la oportunidad para reforzar el impulso de su alternativa electrónica. Y hasta es posible que ayudaran un poco a generar un poquito de malestar.

Tweet de Rogelio Frigerio

Conclusión

Nuevamente, si la boleta única electrónica es la solución a los problemas de nuestro sistema electoral, ¿por qué hacen falta tantas mentiras para convencer a la gente?

Adenda: Chequeado.com se suma a las mentiras

El sitio de “factchecking” Chequeado.com también se sumó a la campaña de desinformación, con un “verdadero, pero… no es voto electrónico, es boleta única electrónica:

El “chequeo” fue luego corregido en el sitio de Chequeado.com, pero no así en la nota de La Nación. Cabe aclarar que la directora de Chequeado.com, Laura Zommer es esposa del actual intendente de Pilar, Nicolás Ducoté (PRO).

Viernes 01 de septiembre de 2017

Javier Smaldone

Javier Smaldone
Blog de Javier Smaldone

La transparencia electoral en la basura

(Nota publicada en El Grito Salta).

¿Cuál es el fundamento para asegurar la confiabilidad del sistema de voto electrónico usado en Salta y en otros distritos de la Argentina? ¿Puede una filtración poner en riesgo la seguridad de una elección? A continuación, un resumen de los principales hechos ocurridos en Salta durante los últimos días con el software de la llamada “boleta única electrónica”.

DVD oficiales de las PASO 2017 de Salta

Seguridad por oscuridad

El 4 de agosto de 2016 la secretaria del Tribunal Electoral Salta, Teresa Ovejero, fue invitada a la Cámara de Diputados a exponer sobre el uso del voto electrónico. En esa oportunidad dejó en claro que uno de los fundamentos de la seguridad del sistema es que su software sea mantenido en secreto:

“La Universidad Nacional de Salta hace la auditoría previa, y se hace en un marco cerrado (…). ¿Por qué no se abre? Porque el CD que lleva la máquina, que es el que tiene el Sistema Operativo, si de repente cayera en manos de una persona inescrupulosa que quisiera hacerle un daño al sistema, puede cambiarlo a ese software y puede ahí sí tratar de meter un CD en una máquina en connivencia con una autoridad de mesa o con alguien, y ahí sí uno va a apretar para votar a tal y va a salir a cual. Entonces esas son las medidas de seguridad que se toman”.

Luego de la intervención de Ovejero, el presidente del Tribunal Superior de Justicia de la Ciudad de Buenos Aires, Luis Lozano, reafirmaba sus dichos y compartía su visión sobre la seguridad del sistema:

“Le sumamos la imposición a la empresa que brindaba el servicio de recibir durante 4 días a los auditores informáticos que pudieran designar los partidos y agrupaciones políticas. Concurrieron a la empresa donde se les exhibió el código fuente y ahí auditaron el sistema. Por supuesto tratamos de hacerlo de un modo muy cercano a los comicios por una razón muy obvia. Porque si no, pasa lo que decía Teresa Overejo antes, que es que existe mayor posibilidad de vulnerarlo”.

La idea de que un sistema puede ser más seguro porque nadie conoce sus mecanismos internos (la seguridad por oscuridad) fue descartada hace más de 150 años por un cerrajero estadounidense. Y el argumento es fácil de entender: una cerradura no es más confiable porque nadie sabe cómo funciona, sino porque aún sabiéndolo nadie puede abrirla si no tiene la llave. Es mejor permitir que los cerrajeros honestos (en este caso, los programadores informáticos) puedan examinar libremente el mecanismo, antes que prohibírselo, ya que los malos no tardarán en conseguir una para averiguar cómo funciona (y tampoco les importará que una ley les prohíba hacerlo).

El caso del voto electrónico es más sensible que el de una cerradura. Se trata del sistema con el cual el Estado pretende que los ciudadanos ejerzan su derecho más básico en un sistema republicano: el de elegir a sus representantes. Así es que mantener el software en secreto, además de una medida estúpida que termina atentando contra la seguridad, también es profundamente antidemocrática.

Y mostrarle el código fuente en una pantalla a los supuestos auditores no soluciona el problema. Un grupo de informáticos lo demostramos en 2015, cuando analizando el código fuente filtrado en dicha oportunidad (proveniente supuestamente de la capacitación para las elecciones provinciales de Salta), encontramos varios errores severos que nunca habían sido detectados por las auditorías oficiales (por ejemplo, que podían introducirse múltiples votos en el chip de una boleta).

La filtración de 2017

El propio presidente de la empresa Grupo MSA, proveedora del sistema Vot.Ar (conocido como “boleta única electrónica”), reconoce que el software ya se ha filtrado antes. “Está publicado mil veces”, dice Sergio Angelini, pero claro… nunca por su empresa.

Es obvio que algo así sucederá cada tanto. En la provincia de Salta, por ejemplo, hay más de 3.000 mesas de votación, y se generan copias del software para cada una de ellas (más algunas de respaldo). Basta con que alguien tome uno de esos DVD, lo introduzca en el lector de una notebook y en menos de 5 minutos lo copie en su disco duro. De ahí, a aparecer publicado en la web, hay sólo un paso.

Y esto parece ser lo que ocurrió nuevamente luego de las elecciones primarias del domingo 13 de agosto de 2017 en Salta. Unos días después de la votación, apareció publicado lo que parecía ser el software usado en dicha oportunidad. Ante este echo, la Justicia Electoral salteña negó que se hubiera producido tal filtración. Ocurre que la misma noche del domingo, una persona que se encontraba acomodando y limpiando las aulas de una escuela se encontró tirado debajo de una mesa material utilizado para las elecciones: boletas de voto electrónico y certificados de escrutinio de mesa en blanco y 2 DVD oficiales con el software de votación. Rápidamente se comunicó a través de Twitter con el autor de esta nota y le contó su hallazgo, procediendo en la mañana del día siguiente a enviarle todo el material por correo. Sin haber hurtado nada, y sin esconder ni su identidad ni su domicilio. Con el único fin de informar las irregularidades al público.

Material electoral tirado a la basura

Quien escribe recibió el material una semana después, e inmediatamente se comunicó con el autor de la nota periodística sobre la filtración, para ofrecerle el material que permitiría comprobar que en efecto (y contrariamente a lo expresado por la Justicia) se trataba del software utilizado para votar en Salta el 13 de agosto. El periodista accedió, y contactó para realizar la verificación a una reconocida perito informática judicial y para analizar las implicaciones del hecho a un especialista en seguridad informática de prestigio internacional. La verificación se realizó exitosamente y la nota fue publicada.

Asombrosamente, la respuesta de la Justicia Electoral salteña fue que realizarían la denuncia penal el robo de los DVD. “Robo” que no implicó el uso de ninguna forma de violencia, del que cuyo supuesto autor no obtuvo ningún beneficio personal (por el contrario, gastó $240 de su dinero en un envío postal) y que la Justicia Electoral debería haber advertido al realizar el escrutinio definitivo, finalizado varios días antes, ya que los DVD son parte de la documentación de la mesa, y son necesarios para la realización de las auditorías posteriores a la votación. No se trató ni de un robo ni de un hurto, sino de un ciudadano que detectó una falla en la cadena de custodia que la Justicia Electoral debía garantizar, y decidió acudir a la prensa. No extraña que la respuesta de las autoridades sea “matar al mensajero” en un intento de encubrir su incapacidad (como ya sucedió en 2015 con el caso del programador Joaquín Sorianello).

Conclusiones

Basar la seguridad de un sistema en el secreto es una práctica inconducente, rechazada por cualquier especialista. Hacerlo con un sistema de votación electrónica, es más grave aún, ya que se ocultan los mecanismos del sistema de los ojos de los ciudadanos. Filtraciones como las ocurridas son en la práctica inevitables, y no debe perseguirse a quienes las producen, sino que deberían servir como una luz de alerta: algo se está haciendo mal.

Todos los vendedores de voto electrónico aseguran que sus sistemas son seguros e inviolables, pero ninguno de estos ha superado la prueba de verdaderas auditorías independientes. Esto es algo que el mundo ha aprendido hace tiempo, pero sin embargo en países como el nuestro y otros de Latinoamérica, aún se insiste con la ilusión de la transparencia de votar usando computadoras. Y esa ilusión se rompe con sólo hurgar un poco en la basura.

Miércoles 23 de agosto de 2017

Javier Smaldone

Javier Smaldone
Blog de Javier Smaldone

Cómo mejorar el sistema electoral argentino

(Nota publicada el 16 de agosto de 2017 en Border Periodismo).

Votante argentino

El sistema electoral argentino tiene problemas. Quizás no tan graves como para cuestionar una elección presidencial -como ha ocurrido en los Estados Unidos dos veces en menos de dos décadas- pero sí lo suficiente como para ganarse el descrédito de una parte significativa de los argentinos. Luego de más de cien años de la promulgación de la Ley Sáenz Peña que consagrara el voto secreto, ha envejecido. No hay dudas de que es hora de una reforma electoral.

En las elecciones PASO del día domingo 13 de agosto experimentamos uno de sus defectos más visibles. Durante las más de seis horas desde la primera publicación de datos oficiales -ocurrida a tres horas del cierre del comicio- hasta la finalización del escrutinio provisorio, los ciudadanos, los medios y los candidatos estuvimos sujetos a una pulseada “minuto a minuto” observando la diferencia entre los candidatos a senadores por la Provincia de Buenos Aires, en particular entre las listas encabezadas por Esteban Bullrich y Cristina Fernández de Kirchner. Desde casi un 5% a las 21 horas hasta un exiguo 0,01% a las 3:30 horas en favor del primero, la diferencia comenzó a crecer cuando la segunda hizo su aparición pública, para terminar en un 0,08%. Y explotaron las denuncias de manipulación en la carga de telegramas y hasta de fraude.

En la mañana del lunes 14 las voces oficialistas coincidían: esto no hubiera ocurrido de haberse aprobado la reforma electoral enviada por el Gobierno al Congreso que, luego de la media sanción de Diputados, se encuentra frenada en el Senado. No hay ninguna duda, esto con “la boleta única electrónica” no habría pasado, y los culpables -por lo tanto- son los mismos que denuncian la manipulación: el kirchnerismo.

¿Pero esto es así? El voto electrónico -y la “boleta única electrónica” es un sistema de voto electrónico con respaldo físico en papel- no necesariamente evitaría este tipo de situaciones. El problema no se produjo por la falta de tecnología informática sino por la intermediación que ocurre entre la transmisión de los telegramas y su publicación. Además, los sistemas de votación basados en computadoras entrañan graves peligros que ponen en riesgo no sólo el resultado sino algo fundamental en todo sistema electoral: la garantía del secreto del voto.

A continuación desarrollaremos una serie de propuestas para mejorar nuestro envejecido sistema electoral.

Los padrones

Es fundamental la depuración de los padrones electorales, para lo que antes es necesaria la depuración de la información del Registro Nacional de las Personas (Renaper), que es el origen de los mismos. Si a un extranjero se le ha otorgado ilícitamente un DNI argentino para que vote en nuestro país a cambio de un plan social, esta situación no será detectada con ningún artefacto tecnológico colocado en una mesa de votación -como los equipos de identificación biométrica utilizados en la reciente prueba piloto en localidades fronterizas. Si miles de personas cambian su domicilio días antes del cierre de los padrones, para radicarse en una localidad de pocos habitantes e influir en una elección municipal, no habrá computadora que pueda impedir que consumen el fraude.

Depurar los padrones requiere de un trabajo minucioso y profundo entre el Renaper, el Gobierno y la Justicia Electoral de las distintas provincias y de la Nación. La informática puede ayudar a realizar los cruzamientos de información necesarios para detectar irregularidades. Tampoco hay que desechar otras soluciones menos “tecnológicas”. Por ejemplo, Venezuela solucionó el problema de evitar que una persona vote varias veces utilizando una mancha de tinta indeleble en un dedo (sistema que no fue utilizado en la reciente votación de la Asamblea Constituyente).

La votación

La boleta única de papel es el método de votación más usado en el mundo, en particular por aquellos países que habiendo probado distintos sistemas electrónicos, los abandonaron. Es un método simple, comprensible y controlable por cualquier persona, y garantiza tanto la oferta electoral -evitando el robo de boletas y las boletas falsas- como el secreto del voto. Al ser entregada en la mesa, es provista por el Estado, este además evita tener que girar fondos a los partidos políticos.

Se trata de una grilla en la que aparecen todos los cargos electivos y los candidatos o partidos, es decir, la oferta electoral completa. El votante la retira de la mesa y luego se dirige a una pequeña casilla o box -que reemplaza al cuarto oscuro- y marca en ella en las opciones que reflejen su preferencia electoral. Finalmente, pliega la boleta y la introduce en una urna.

En el caso de elecciones complejas, con muchos cargos electivos, estos pueden desdoblarse en varias boletas separadas -por ejemplo, una para cargos nacionales y otra para provinciales- que luego pueden introducirse en una única urna o en urnas separadas, para facilitar aún más el escrutinio. Esta modalidad se utiliza por ejemplo en Italia y en la provincia de Santa Fe.

Las marcas en la boleta única pueden ser realizadas con un bolígrafo, o algún elemento especial para dificultar su alteración posterior. Corea del Sur -uno de los países más informatizados del planeta- utiliza un sello y tintas especiales, que facilitan la lectura por parte de un lector electrónico óptico para agilizar el conteo.

Para evitar el llamado “voto cadena” o “voto calesita” -esa maniobra que consiste en robarse un sobre firmado y luego dárselo a un votante, ya cerrado y con el voto pretendido adentro, a cambio de una paga cuando traiga un sobre vacío- puede incluirse un sistema de sellos, o un troquel similar al utilizado en la “boleta única electrónica”. No debe utilizarse ninguna forma de numeración, ni firmas de los integrantes de la mesa.

Existen muchas variantes con respecto al diseño, como si deben estar presentes las opciones de “votar lista completa” y de voto en blanco explícito. Estas son cuestiones que exceden el aspecto meramente técnico y son motivo de debates políticos. Al ser el sistema más usado en el mundo desde hace mucho tiempo –se originó en Australia en 1856– hay una gran diversidad de implementaciones, que bien vale la pena revisar y analizar.

Pese a que la Cámara Nacional Electoral ha sugerido reiteradas veces desde el año 2007 la implementación de la boleta única, los funcionarios del Gobierno nacional argumentan que la ubicación de la oferta electoral en una -o varias- boletas sería dificultosa. Prueba de que no es así es que hay argentinos que votan con este sistema: aquellos que se encuentran privados de libertad sin condena.

El escrutinio de mesa

Con la boleta única, el único que debe manipular las boletas una vez abierta la urna es el presidente de mesa -quien toma cada una, la exhibe a los fiscales partidarios y realiza el conteo correspondiente. Existen varios métodos para agilizar el conteo, e incluso para producir actas impresas -reduciendo la posibilidad de errores en las transcripciones manuales. Al no existir sobres con boletas adentro -que además pueden estar cortadas, rotas o tachadas- el proceso resulta mucho más ordenado y ágil.

En la provincia de Santa Fe se ha desarrollado y probado en las elecciones del domingo pasado un sistema electrónico de asistencia al escrutinio basado en una tablet mediante la cual el presidente de mesa puede llevar el conteo. La misma está dotada de una aplicación especialmente diseñada, de forma que al finalizar -y con el acuerdo de los fiscales sobre los totales contabilizados-, sea conectada a una impresora que emita las actas (y copias) correspondientes. Luego el documento impreso y firmado es digitalizado y transmitido al centro de cómputos directamente desde el lugar de votación. Sin intermediarios.

Investigadores de la Universidad Nacional de Córdoba desarrollaron un prototipo de lector de marcas de muy bajo costo, capaz de procesar y contabilizar cada una de las boletas. En la mayor parte de los EE.UU. las boletas de papel son escrutadas por sistemas de este tipo en el momento de su introducción en la urna: el lector se encuentra en la boca de la misma.

También pueden considerarse otras medidas “no tecnológicas”, como la posibilidad de utilizar un presidente de mesa “fresco” para el escrutinio, para reemplazar a quien ha estado controlando el comicio durante todo el día. Es humanamente imposible que una persona esté debidamente concentrada para realizar el conteo, luego de más de diez horas de trabajo en situación de tensión. Esta es quizás la mayor fuente de errores en el escrutinio de mesa.

El escrutinio provisorio

La transmisión de datos y el proceso de escrutinio provisorio son la etapa del sistema electoral que menos transparencia muestra hoy de cara a la ciudadanía, como hemos podido experimentarlo en las elecciones del domingo pasado. Y la informática puede aportar varias soluciones.

Existen formas de usar Internet de forma segura para la carga de datos directamente desde los centros de votación (es decir, las propias escuelas), incluso desde aquellos que se encuentren en lugares geográficamente aislados, gracias a las tecnologías satelital y de celulares. De esta forma, el presidente de mesa -junto a los fiscales- puede ser quien supervise el proceso de envío del llamado “telegrama” -algo que actualmente depende de los empleados del correo y no de los ciudadanos comunes.

En el otro extremo de la transmisión, los datos de cada una de las mesas deben ser publicados en el mismo instante en que son recibidos desde los centros de votación, sin ninguna demora, verificación ni parcialización de funcionarios estatales -y mucho menos privados, como ocurre en la Argentina desde hace 20 años. ¿Cuál es el motivo por el que un ciudadano no puede ver los resultados de su mesa al mismo tiempo que el ministro del Interior o el juez electoral? No hay ninguno. ¿Puede ocurrir que un acta tenga errores? Pues los ciudadanos deben verla, con errores, y también ver cómo fueron corregidos. ¿Alguien festejará la victoria antes de tiempo? Pues quedará en la historia, como con las mesas de Necochea y de Perico.

Los datos publicados deben ser accesibles a través de una interfaz de programación de aplicaciones (API) previamente definida y publicada, de modo de facilitar el desarrollo independiente de programas que realicen distintos tipos de controles. Esto permitiría no sólo ver los resultados en una página web, sino hacer software que pueda tomar esa información y procesarla. Los cálculos y cruzamientos de información que podrían hacerse de esta manera, permitirían detectar anomalías de forma temprana, a la vez que desalentarían la realización de cualquier forma de adulteración de los resultados.

Otro problema que se presenta en la Argentina es que el órgano electoral, la Dirección Nacional Electoral, depende del Poder Ejecutivo -cuyos integrantes son parte interesada en las elecciones. En otros países existen organismos electorales independientes, o sus funciones se encuentran bajo la órbita de la Justicia Electoral.

El escrutinio definitivo -el único resultado legal, y que es realizado por la Justicia Electoral- debería incluir la publicación de todos los datos, mesa por mesa, tal como fueron considerados finalmente, según la misma interfaz utilizada en el escrutinio provisorio. De esta forma debería ser muy simple observar cualquier diferencia con el escrutinio provisorio, y la justificación.

Conclusión

Estos son apenas algunos lineamientos para mejorar el sistema electoral argentino. En cada punto existen numerosas posibilidades y matices que pueden -y deben- ser discutidos antes de intentar su implementación. La informática puede aportar mucho a la transparencia, pero no puede actuar como intermediaria entre el votante y su voluntad.

En un sistema electoral democrático, todo el control que pueda estar en manos de los ciudadanos, debe estarlo. El Estado debe proveer los medios para posibilitarlo, e intervenir sólo cuando sea indispensable y sin quitar transparencia al proceso. Un sistema es transparente si todo está a la vista todo el tiempo. La existencia de “conos de sombra” despierta sospechas y alienta las denuncias infundadas. El sistema electoral debe generar la confianza de los ciudadanos, no requerirla.

La propuesta actual del Gobierno argentino no sólo no avanza en el sentido de estas propuestas, sino que retrocede en el camino que los países más desarrollados del mundo han recorrido en materia electoral.

Lunes 24 de julio de 2017

Almacenar los datos de los eventos sismológicos de Funvisis con Python3

En el artículo sobre la captura de datos de eventos sismológicos de funvisis solamente se trabajó el orenamiento de los datos, pero hace falta almacenar la información en una base de datos, este es el tema del artículo.

Ahora se tiene varios módulos:

  • sismux_getdata.py: Es el módulo que hace el webscraping de la página de funvisis.
  • sismux_mongo.py: Es el módulo que implementa un CRUD para mongoDB a MongoLab.
  • sismux_main.py: Es el módulo principal que consulta cada 5 min la página de Funvisis para guardar la información en la base de datos si no existe.
  • sismux_apirest.py: Es el módulo que implementa un API rest(próximo artículo).
  • sismux_graphql.py: Es el módulo que implementa un API con GraphQL (próximo artículo).

Del artículo anterior se muestra el código de sismux_getdata.py:



#!/usr/bin/env python3





#Se importa beautifulSoup

from bs4 import BeautifulSoup

#Se importa la fecha

import datetime

import requests

import sys

import json



class Sismo(object):

    def __init__(self,url="http://www.funvisis.gob.ve/",home="index.php",referer='http://www.cantv.com.ve'):

        headers = {'User-agent': 'Mozilla/5.0',\

            'SSL_VERIFYHOST': 'False',\

            'FRESH_CONNECT':'True',\

            'RETURNTRANSFER':'True',\

            'SSL_VERIFYPEER': 'False',\

            'Referer': referer

            }

        self.__url = url

        self.__home = home

        self.__urlhome = self.__url + self.__home

        self.__session = requests.Session()

        self.__session.headers.update(headers)



    def GetData(self):

        #Se  obtiene la pagina por medio de session.

        try:

            self.__r = self.__session.get(self.__urlhome)

            self.__page = self.__r.content

        except (requests.exceptions.SSLError):

            print("SSL Error")

            sys.exit(0)

        except (requests.exceptions.ConnectionError):

            print("Connection Error")

            sys.exit(0)

        #Se le pasa la pagina a beautifulsoup usando lxml de parser.

        self.__soup = BeautifulSoup(self.__page,"lxml")

        #Se crea el diccionario que almacena los datos

        self.__sismo = {}



        #SE obtiene el primer  div que tengan class module

        for row in self.__soup('div', {'class': 'module'})[0]:

            #Se obtiene el tag a para luego obtener el href y tener el url

            #del gif del sitio de funvisis que tiene la imagen del sitio donde

            #fue el sismo.

            trs = row.find('a')

            if trs == -1:

                continue

            self.__sismo['urlref'] = self.__url  + trs.get('href',None)



            trs = row.find('tr')

            if trs == -1:

                continue

            #Obtiene los datos del sismo del sitio de funvisis

            datos = trs.find('td').getText().split('&nbsp;')[0].split('\n\t')

            self.__sismo['fecha'] = datos[0].split('\xa0')[1]

            date = self.__sismo['fecha'].split("/")

            self.__sismo['hora'] = datos[2].split(" ")[-2]

            time= self.__sismo['hora'].split(":")

            self.__sismo['datetime'] = datetime.datetime(int(date[2]),int(date[1]),int(date[0]), int(time[0]), int(time[1]))

            self.__sismo['magnitud'] = datos[4].split(" ")[-1]

            mag = datos[6].split(" ")[-1].split('\xa0')

            self.__sismo['profundidad'] = mag[0] + " "+ mag[1]

            lat = datos[8].split(" ")

            self.__sismo["latitud"] = lat[-2] + " " + lat[-1]

            lon =  datos[10].split(" ")

            self.__sismo['longitud'] = lon[-2] + " "+ lon[-1]

            self.__sismo['epicentro'] = datos[11].split(":")[1].split('\xa0')[-1]

            self.__sismo['loc'] = {'type':'Point','coordinates' : [ float(lat[-2]) , float(lon[-2]) ]}

        return self.__sismo





El código del módulos sismux_mongo.py se muestra a continuación: 




#!/usr/bin/env python3
i
mport pymongo

from pymongo import MongoClient


#Se define el uri de la conexion a mongolab

uri = 'mongodb://usuario:clave@ds045064.mlab.com:45064/basedatos'

#Se define la base de datos y la cole

#ccion


base
datos = "sismux"

coleccion = "sismos"


#Se crea la clase BaseDatos que simplemente implemente un crud.
class BaseDatos(object):

    #Se define la intancia de mongoclient, se define la base de datos y

    #la coleccion

    def __init__(self,uri=uri,basedatos=basedatos,coleccion=coleccion):

        self.__client = MongoClient(uri)

        self.__db = self.__client[basedatos]

        self.__coleccion = self.__db[coleccion]


  def ConsultarTodos(self):

        #Traer todos los elementos de la consulta.

        elementos = []

        for i in self.__coleccion.find():

            elementos.append(i)

        return i


  def Consultar(self,patron):

        #Se devuelve la consulta de un elemento

        return self.__coleccion.find_one(patron)


  def Insertar(self,documento):

        #Se inserta un documento

        self.__coleccion.insert(documento)


  def Finalizar(self):

        #Se cierra la conexion con la base de datos
        self.__client.close()



A continuación se muestra sismux_main.py:



#!/usr/bin/env python3
from sismux_getdata import Sismo
import json
import time
i
mport sys

from sismux_mongo import BaseDatos
i
mport datetime
i
mport logging

bd = BaseDatos()
sismo  = Sismo()
datos = sismo.GetData()
#bd.Insertar(datos)
#datos['datetime']
d
atime = datetime.datetime(2017,5,25, 20, 51)
#print(bd.Consultar({'datetime': datie}m))
def main():

   #Se crea la instancia a la base de datos
  bd = BaseDatos()
   #Se crea la instancia del webscraping
sismo = Sismo()
  #Se optiene los datos de la pagina de funvisis
datos = sismo.GetData()
  #Se consulta si ya existe el dato guardado en la base de datos
  query1 = bd.Consultar({'datetime': datos['datetime']})
  query2 = bd.Consultar({'loc': {'coordinates': datos['loc']['coordinates']}})
  if (query1 != None):
        return False
else:
      #Si no existe se inserta en la base de datos.
      bd.Insertar(datos)
      return True

#Se crea un ciclo para consultar cada 5 min

de
f ciclo(tim=300):
    #Se define el log
    logging.basicConfig(filename="sismux.log",level=logging.DEBUG,format='%(asctime)s %(message)
s')
 
 
    
while True:
        #Se ejecuta main.
      result = main()
      #Se guarda el resultado de main en el log
      logging.info(result)
      #Se espera 5 min (por defecto)
      time.sleep(tim)



if __name__ == '__main__':
   #Se ejecuta la funcion ciclo
ciclo()


Para ejecutar el programa se corre:

python3 sismux_main.py 

Al ejecutarlo se crea un archivo log y en el se tiene lo siguiente:

tail -f sismux.log 
2017-07-24 11:42:43,149 Starting new HTTP connection (1): www.funvisis.gob.ve
2017-07-24 11:42:43,821 http://www.funvisis.gob.ve:80 "GET /index.php HTTP/1.1" 200 14319
2017-07-24 11:42:56,560 False
2017-07-24 11:47:56,637 Starting new HTTP connection (1): www.funvisis.gob.ve
2017-07-24 11:47:57,466 http://www.funvisis.gob.ve:80 "GET /index.php HTTP/1.1" 200 14319
2017-07-24 11:48:12,086 False
2017-07-24 11:53:12,209 Starting new HTTP connection (1): www.funvisis.gob.ve
2017-07-24 11:53:12,976 http://www.funvisis.gob.ve:80 "GET /index.php HTTP/1.1" 200 14319
2017-07-24 11:53:18,516 False
2017-07-24 11:58:18,605 Starting new HTTP connection (1): www.funvisis.gob.ve
2017-07-24 11:58:30,984 http://www.funvisis.gob.ve:80 "GET /index.php HTTP/1.1" 200 14319
2017-07-24 11:58:57,034 False


Como muestra el log ya se tiene el último sismo en la base de datos.

En la siguiente figura se muestra un documento almacenado en la base de datos:


Para el siguiente artículo se desarrollará el API. 

Nota: En un futur artículo se muestra la creación de un demonio y como ponerlo a funcionar con SystemD y el empaquetado de todo los módulos desarrollados. 

Domingo 16 de julio de 2017

Consultar DNS por medio de Scapy

Hace unos años escribí un artículo sobre descubrir equipos de una red local con python usando ipcalc y scapy, ahora muestro el uso de scapy para consultar DNS a un servidor de DNS determinado.



El programa es muy sencillo, es una función que se le pasa el servidor y el url a consultary devuelve la IP del url. A continuación se muestra el código:


#!/usr/bin/env python3


from scapy.all import *


def consulta(dns="8.8.8.8",dominio="www.google.com"):
    dnsServer = dns
    domconsulta= dominio
    #Se define la estructura del paquete de consulta de DNS, que es un paquete UDP
    #Que va por el puerto 53, se le pasa el servidor y el url.
    paquete_dns= IP(dst=dnsServer)/UDP(dport=53)/DNS(rd=1,qd=DNSQR(qname=domconsulta))
    #Se hace la consulta y se devuelve el resultado
    request_pqt = sr1(paquete_dns,verbose=0)
    return request_pqt[DNS].summary()
    
if __name__ == "__main__":
    print (consulta("8.8.8.8","www.debian.org"))


Al ejecutar el script se tiene el siguiente resultado:

sudo python3 pydns1.py
WARNING: No route found for IPv6 destination :: (no default route?). This affects only IPv6
DNS Ans "'128.31.0.62'"


Como se puede notar, la IP de www.debian.org es la 128.31.0.62.




Domingo 09 de julio de 2017

Instalar Docker en Debian Stretch (actualización 2017).

El primer artículo de la serie  de artículos sobre Docker fue, el de la Instalación de Docker en Debian Jessie, ahora explicaré el proceso de instalación de Docer CE para Debian Stretch. La guía en inglés de instalación de docker para Debian la pueden encontrar en el siguiente enlace.

El procedimiento es el siguiente:

1. Instalación de paquetes necesarios para soporte de https en apt-get:

#apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common


2. Agregar llave gpg oficial de Docker:

# curl -fsSL https://download.docker.com/linux/debian/gpg |  apt-key add -
OK

Si devuelve "OK" se bajo la llave y la agregó sin problemas.

3. Verificar la llave:

# apt-key fingerprint 0EBFCD88
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

4. Se agrega el repositorio Estable para la versión de Debian que se tiene en el equipo:
add-apt-repository \
>    "deb [arch=amd64] https://download.docker.com/linux/debian \
>    $(lsb_release -cs) \
>    stable"

5. Se actualiza la lista de paquetes:
#apt-get update

6. Se instala docker-ce :

# apt-get install docker-ce

7. Se verifica que docker-ce se instaló correctamente:

# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b04784fba78d: Pull complete 
Digest: sha256:f3b3b28a45160805bb16542c9531888519430e9e6d6ffc09d72261b0d26ff74f
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://cloud.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/


8. Instalar docker-compose:

#apt-get install  docker-compose



Manejar docker como un usuario normal:

1. Crear el grupo docker:
$sudo groupadd docker

2. Agregar el usuario al grupo docker:
$sudo usermod -aG docker $USER

3. Verificar que se puede usar docker desde el usuario:

$ docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://cloud.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/



Configurar Docker para que inicie en el arranque del equipo:

1. Habilitar Docker:
$ sudo systemctl enable docker
Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable docker


Si requieren detalles de configuración lo pueden ver en la documentación de docker.

Para terminar se prueba el arranque de cloud9 ya explicado en un artículo anterior.

$docker run -it -d -p 9080:80 -v /home/ernesto/worksplace/:/workspace/ kdelfour/cloud9-docker
99cfe3af5bf4480ac456ec43916612317a49da111ab27e32a361639984eb2128

La siguiente captura de pantalla muestra cloud9 en funcionamiento:

En el diectorio worksplace se guarda los proyectos que se editan desde cloud9.

$ tree worksplace
worksplace
├── hola.py
├── New Folder
│   ├── mvc1.py
│   ├── New Folder
│   └── usuario.py
└── trabajo.txt

2 directories, 4 files


Jueves 06 de julio de 2017

Javier Ledesma

Javier Ledesma
Rotas Cadenas

Software Libre: Una brecha entre el capitalismo de consumo y el capitalismo de acceso

Documental proveniente de la Universidad de Murcia que nos presenta al software libre como una verdadera alternativa al software propietario.


Más información »

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

 

Martes 30 de mayo de 2017

Martín Albisetti

Martín Albisetti
Martin Albisetti's blog

A year at Bitnami

I’m a stone’s throw away from reaching my 1 year anniversary at Bitnami, so it feels like a good time to pause a bit and look back.

After 8 years working at Canonical on a wide range of projects and roles, it was a very difficult step to take and was riddled with uncertainty and anxiety about leaving behind so many things I had poured my heart and soul into for so many years behind, and more than anything else a once-in-a-life-time epic team of people to work with.

A year in, I’m overwhelmingly happy I made that decision.

A lot of people expressed surprise I was joining Bitnami as either they hadn’t heard about them at all or they had but thought of them as a company that “made some installers or something”. However, Bitnami had been quietly but consistently growing in size, scope and revenue, all fueled by being organically profitable which is very rare nowadays in the tech world.

Fast forward a year later Bitnami is starting to move out of the shadows and some of what’s been cooking for a while is getting some well deserved time in the spotlight.

Of the things that are public, I would say they fall into two buckets: Kubernetes & Packaging open source applications.

 

Kubernetes

The Kubernetes community has been growing at a healthy and inclusive pace for some time now, some would say it’s the hippest place to be right now.

One of things that was attractive to me when changing jobs was the possibility of being able to use some new and interesting technologies more hands-on as part of my day-to-day job, and K8s was at the very top of my list. Shortly after I joined we made a company decision to go all-in on K8s and began setting up our own clusters and migrating over our internal services to it. Aside from the amount of buzz and customer requests we had, once we started using it more hands on it became obvious to us it would win over hearts and minds fairly quickly and we doubled down on being all-in  🙂

Aside from all the knowledge we gained by setting up, maintaining and upgrading our internal clusters, Bitnami acquired a small but very relevant start-up called Skippbox which brought over further expertise in training, but even more interesting was a project called Kubeless.

Kubeless is a functions-as-a-service framework which has the advantage of having been built on top of K8s native objects, making it very easy to extend and interact with anything inside your cluster. That project has been a lot of fun to play with is a natural addition to our internal clusters to fulfill our stated goal of making it easy and enjoyable for our own development team to get deliver software to production.

It was a busy year, have I said it’s been a busy year? So, as well as all of that along came the Helm project. Once we heard “a packaging format for applications on K8s” we knew someone’s current iteration would be derailed  🙂

We jumped in with Deis and helped get the project off the ground by applying our knowledge of how to package software to Helm and quickly produced the majority of the charts that the project launched with. It’s been getting a healthy string of contributions since then, which is as good as you can hope for.

Because humans are visual creatures, no matter how technical, on the heels of the launch of Helm we took the lead on a new project code-named “Monocular”, which is a web-ui to search and navigate existing Helm charts and even deploy them to your cluster with one click. An app store of sorts for K8s applications.

With all that K8s experience in our toolbelts, we started to realise there was a gap in how to consistently deploy applications across clusters. Why across clusters, you say? A very common pattern is to have at least a staging and a production environment, which in K8s you would likely want to model as different clusters. We happen to internal also provide a development cluster as we do so much development in the K8s and often need to test in larger machines or use some specific features that minikube doesn’t satisfy. The way to do that in Helm is essentially to copy and paste your yaml files, which for a small amount of clusters or apps is fine. For us, this quickly grew out of control and realised that we needed to instrument some amount of re-usability and flexibility when trying to use K8s features that Helm itself hadn’t exposed yet. It turned out, we weren’t alone. Our friends over at hept.io and box.com had similar problems and were in fact trying to address it in a similar way (given there were a few ex-googlers in our ranks, jsonnet was picked as the library to help with re-usability), and as such ksonnet was born. You can take  a look at it more closely if you’re interested, but in essence it takes json & jsonnet templates and compiles them down to native K8s yaml files that you can track and feed directly into your cluster.

 

Packaging open source applications

This is what is probably the most underrated aspect of Bitnami, as it’s probably not very obvious the scale at which we operate and there’s nobody else really to compare the company to.

Let me try and give you some hints at the scale at which we operate. At this exact point in time, you can find Bitnami-built assets as:

  • Windows, Linux and macOS installers
  • Amazon EC2 VMs
  • Azure VMs
  • Google Cloud VMs
  • Oracle Cloud VMs
  • Virtual Machines (OVA’s)
  • Huawei Cloud VMs
  • Deutsche Telekom VMs
  • 1&1 VMs
  • GoDaddy VMs
  • Centurylink VMs
  • Docker containers
  • Eclipse Che containers
  • Docker-compose templates
  • Amazon Cloudformation templates
  • Azure ARM templates
  • Google deployment templates
  • Kubernetes Helm charts
  • …and more on its way  🙂

That is 20 different target environments! Even if you just built one applications for all those targets it would be an interesting problem in itself. However, there’s more  🙂

Bitnami has a catalog of about 170+ open source applications of which we don’t always provide the full catalog to every environment as it doesn’t always make sense (not everything makes sense as a Docker container or a multi-tier application), and while I haven’t looked at the exact numbers it would likely average out over all targets at around ~110 apps. That is 110 x 20 = 2,200 assets to build. That on its own should feel daunting for anyone who’s tried to build an application for more than one environment. But wait, there’s more!
Bitnami’s missions is to make it easy for everyone to use open source software, and to try and reach more of “everyone” you need to support major versions of these applications (because not everyone has migrated to Python 3 yet :), so that ends up with around 4,400 assets. Mind. Blown. But you know how it goes, there’s always more!

Building these images and templates is an interesting and hard problem, but the hardcore last-level boss problem is in doing so in a way where you can keep building those continuously so they are actually up-to-date all the time. In order to do that you have to track a lot of software (eg., libssl, libc, openssh, php, java, rails, etc) packaged in different ways (ie., debs, rpms, gems, pip, etc), so you end up watching thousands of different pieces of software over all, some of which can affect every single image (hello openssl & heartbleed!).
To solve this problem there’s over a decade of code that’s been brewing, carefully structured metadata about how applications like to be configured in different scenarios, regression tests, tracking upstream releases and watching and matching CVEs. Over the last year there’s been a tight focus on taking all that work to streamline the tools to plan for continued growth as the landscape of software expands, and some refactoring to be able to shape it into a product that might be useful to others beyond our internal use.

Daunting problems end up being the most fun to work on and this has been no exception. This is why I joined Bitnami, to lead this effort and make open source software a bit easier to use and access every day.

Viernes 26 de mayo de 2017

Ubuntips: Cómo protegerse de los vídeos con virus
Ubuntips: ¿Cuánto daño puede hacer un hacker?

Martes 09 de mayo de 2017

PCTux: Probando el servicio de VPS Clouding.io

Sábado 15 de abril de 2017

Javier Ledesma

Javier Ledesma
Rotas Cadenas

Linux Tiles Wallpapers

Linux Tiles es un bonito pack de wallpapers para tu escritorio Linux. Hecho con Blender 3D y renderizado con Cycles.

http://www.rotascadenas.com/2017/04/linux-tiles-wallpapers.html

Miércoles 12 de abril de 2017

Ubuntips: Rubias sexys en Internet

Viernes 31 de marzo de 2017

Eduardo Federico

Eduardo Federico
Paraiso Linux

Como auto ejecutar aplicaciones en escritorios especificos en Gnome

Este mini tutorial les va a parecer complicado pero en realidad no lo es tanto. El objetivo es sencillo: auto ejecutar aplicaciones en Gnome, y que se inicien en los escritorios que deseemos.

Auto iniciar aplicaciones en Gnome

Resulta que los de Gnome han decidido quitar esa opción, por lo tanto para recuperarla tenemos que instalar gnome-session-properties. Estoy seguro que saben como instalar aplicaciones en Linux.

Luego iniciamos esta utilidad con Alt + F2.

Todavía no la vamos a usar, pero dejo una captura de ejemplo de como se podria auto iniciar Polly, un cliente de twitter para Linux.

Como mover aplicaciones a un escritorio predefinido

Para esto vamos a hacer uso de una aplicacion llamada wmctrl. Esta nos permite interactuar con el gestor de ventanas. Es una aplicacion que usa desde la consola o desde scripts.

Por ejemplo, para mover polly que abrimos recien al escritorio 2 escribiriamos en la consola algo asi:

wmctrl -r polly -t 1

Tambien podemos hacer otras cosas como:

  • -a para que el foco se ponga sobre el programa que le indiquemos, sin importar en cual escritorio este
  • -s para movernos a un escritorio predefinido

Como auto iniciar aplicaciones en un escritorio predefinido en Gnome

Ahora, uniendo las 2 partes anteriores del tutorial vamos a hacer lo que vinimos a hacer. Primero, abren gedit o cualquier editor de texto. Y escriben lo siguiente adentro:

 

#!/bin/bash

google-chrome-stable &
polly &
spotify &
spacefm &

sleep 5

wmctrl -r google-chrome-stable -t 0
wmctrl -r spacefm -t 0
wmctrl -r polly -t 1 
wmctrl -r spotify -t 2 

wmctrl -a google-chrome-stable

Este script tiene 3 partes.

  • Primero: Abrimos todas las aplicaciones que deseamos auto iniciar.
  • Segundo: Movemos cada aplicación al escritorio deseado. 0 es para el primer escritorio, 1 para el segundo, etc etc
  • Tercero: Ponemos el foco en la aplicación preferida.

Guardamos el archivo en nuestra carpeta home con un nombre descriptivo y que empiece con un '.'. Por ejemplo: .auto-iniciar

Ahora abrimos gnome-session-properties y añadimos una entrada que se llame 'Auto Iniciar' y que apunte al script que acabamos de guardar. Algo asi:

Si no funciona prueben cambiando el valor de sleep por uno mas grande, o agregando un sleep al inicio.

Eso deberia ser todo, espero que les funcione y que compartan la entrada.

La entrada Como auto ejecutar aplicaciones en escritorios especificos en Gnome pertenece a Paraiso Linux.

Viernes 03 de marzo de 2017

Javier Ledesma

Javier Ledesma
Rotas Cadenas

10 juegos sorprendentes para tu terminal en Linux

Para ser un usuario avanzado en Linux, siempre es obligatorio dominar el uso de la línea de comandos. Controlar el sistema por medio de comandos ofrece al usuario más poder y control sobre un sistema Linux.

http://www.rotascadenas.com/2017/03/10-juegos-para-tu-terminal-linux.html

Más información »

Lunes 30 de enero de 2017

Eduardo Federico

Eduardo Federico
Paraiso Linux

Como agregar un certificado SSL gratuito desde Vesta Panel

Si están al tanto de las noticias sobre internet, webs, SEO y tecnologia en general, seguramente habrán leído los nuevos cambios que involucran a la seguridad de las webs y las transcacciones realizadas en distintas webs.

Lo voy a resumir muy facilmente:

  • Muchas webs estan implementando certificados SSL en sus webs. Esto les permite tener una url que empiece con https://
  • Esto es debido a que no tenerlo puede afectar al SEO de un sitio. Ver esta nota en el blog de webmasters de google.
  • Ademas Chrome y Mozilla muestran como inseguros los sitios que no cuenten con dicho certificado. Ver nota en ayudawp.

La cuestión es que hace unos años tener un certificado SSL significaba desenbolsar $50 dolares anuales por cada sitio. Pero gracias a los certificados de Let’s Encrypt podemos tener certificados 100% gratuitos y muy fáciles de instalar.

Y como se hicieron tan comunes, la ultima version del panel Vesta agrega una opcion para que agregar este tipo de certificados a tu web sea todavia mas facil. Vamos a ver como hacerlo.

En la seccion WEB de su panel Vesta, hagan click en EDIT del dominio en cuestion.

Veran que hay un check que dice SSL Support. Deben marcarlo y tambien marcar el que aparece debajo que dice Lets Encrypt Support.

Guardan los cambios.

Ahora en su navegador prueban escribir la url completa con https:// y el navegador deberia marcarles esa web como segura.

Redirigir http a https

Ahora lo que deben hacer es solución un pequeño problema muy grande, y es no tener 2 versiones del mismo sitio. Para ello vamos a editar el archivo .htaccess y agregamos esto:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://paraisolinux.com/$1 [R,L]

Obviamente poniendo tu url en lugar de la mia.

Para probar escriben en la navegador escriben la url sin el https y si se redirige esta bien.

Solucionar Error 403 forbidden

En la mayoría de los sitios con hacer lo anterior ya estaría todo solucionado. Pero si por ejemplo siguieron el tutorial de Laravel + Vesta veran que no funciona, lo que deberán hacer es:

sudo nano /home/admin/conf/web/sapache2.conf

Y editar las mismas lineas mencionadas en el tutorial mencionado.

 

La entrada Como agregar un certificado SSL gratuito desde Vesta Panel pertenece a Paraiso Linux.

Domingo 29 de enero de 2017

Eduardo Federico

Eduardo Federico
Paraiso Linux

Como añadir un subdominio en Vesta Panel

Ya hemos visto lo sencillo que es agregar un dominio a Vesta. Pero tambien vimos que es necesario tocar los RECORDS.

Para agregar un subdominio también tendremos que hacerlo. Pero sigue siendo una tarea super sencilla.

Primero nos dirigimos a la seccion WEB de Vesta. Alli vamos a agregar el subdominio haciendo click en 'ADD WEB DOMAIN'.

Al igual que cuando añadimos el dominio deberemos elegir correctamente la IP y crear un usuario FTP.

A continuación nos dirigimos a nuestra cuenta de Digital Ocean y en la seccion 'Networking' buscamos la opcion 'Manage Domain' del dominio que nos interesa.

En esta nueva pagina debemos agregar un nuevo Record del tipo A. Escribiendo en el primer campo el nombre del subdominio y en el segundo campo eligiendo el droplet a donde apuntara ese dominio.

Ahora si ingresan en ese subdominio deberían ver la pagina por defecto de Vesta.

Una cosa mas. Si por X casualidades de la vida, en ese subdominio desean tener un proyecto realizado con Laravel o Lumen, lo mejor seria seguir el tutorial para instalar Laravel en Vesta.

 

La entrada Como añadir un subdominio en Vesta Panel pertenece a Paraiso Linux.

Lunes 09 de enero de 2017

Mariano Mendez

Mariano Mendez
[A]NTRAX - [L]ABS

BING: El buscador olvidado


Posicionamiento WEB

Hoy día, quien tiene una un sitio Web de cualquier naturaleza, sea para ofrecer un servicio, producto, o incluso para compartir materiales o documentación digital, si quiere marcar presencia en la red de redes, necesariamente tendrá que considerar el posicionamiento WEB o SEO (Search Engine Optimization). 

Sabemos que el SEO comprende una serie de estrategias, técnicas, o incluso habilidades para lograr las primeras posiciones en los resultados de los buscadores clásicos: Google, Bing, Yahoo, etc.
Va de suyo que podemos pagar marketing publicitario para tales fines; sin embargo las destrezas del SEO nos permiten lograr estupendos posicionamientos en las búsquedas gratuitamente,  aunque impliquen laboriosidad.

En mi opinión, se leen muchísimos tips para el SEO de Google, pero me queda la sensación que tanto Bing como Yahoo, no siempre son tenidos en cuenta en este trabajo de posicionar nuestro sitio digital. 

Aclaro que no es mi idea en esta entrada enumerar estrategias o sugerencias para mejorar el SEO, sino apuntar a que se consideren otros buscadores diferentes de Google a la hora de posicionar un espacio cibernético.  Sino llamar a la reflexión para tener presente al  segundo motor de búsqueda más importante: BING.


Números en BING

La cuota de mercado de BING, según señalan  los expertos va en ascenso:

“...Bing actualmente cuenta con el 21,9% de la cuota de mercado en escritorio en Estados Unidos. Una información que ha llamado nuestra atención y que demuestra que el buscador de Microsoft no ha dejado de crecer. Un punto en el que podrían tener que ver las últimas novedades incorporadas por el gigante tecnológico. Pero vayamos con los datos.



 “En concreto, la cifra supone un incremento de un 0,1 porcentual respecto del mes de junio, cuando contaba con el 21,8%. Los datos ofrecidos por la citada compañía, asimismo, muestran una caída del 0,4 por parte de Google...”

Los números de la gráfica hablan por sí mismos.


Otros comentarios sobre Bing

Más allá de las cifras expuestas, es oportuno recordar que Facebook y Skype emplean a Bing como buscador por defecto y las redes sociales o la mensajería instantánea son puntos claves en el SEO, tanto  por su extendido uso como por su  notoriedad.

Si a esto le agregamos los aspectos técnicos que a Bing le preocupan como, por ejemplo: velocidad, link rotos del sitio, evitar contenidos flash, entre otros; se torna una sumatoria de elementos que no deberían estar olvidados para el SEO de nuestra Web.

Posicionar un espacio digital no es tarea sencilla, pero es la base para el éxito del mismo.
Como comenté antes, no dejaré un tutorial de sugerencias, pero quiero destacar en lo referente al SEO en bing una interesante guía para que al momento de poner manos a la obra la consideren.

Mariano Mendez

Mariano Mendez
[A]NTRAX - [L]ABS

Cómo comprar BITCOINS


En esta entrada hablaremos de las criptomonedas, en particular de los Bitcoin. Seguramente todos han oído hablar de este tipo de moneda digital, pero no está de más recordar qué es y para qué sirven los Bitcoins, sin perjuicio de algunas reflexiones personales sobre las ventajas de su uso.

Referencias previas del término Bitcoin

Si consultamos en Wikipedia el término Bitcoins:


“Bitcoin (signo: BitcoinSign.svg; abr.: BTC, XBT) es una criptodivisa concebida en 2009. El término se aplica también al protocolo y a la red P2P que lo sustenta y de forma común se denomina como una moneda digital. Generalmente se usa «Bitcoin» para referirse a la red o al protocolo y «bitcoin» (plural: «bitcoines») para referirse a las unidades monetarias.”


De la transcripción precedente puede inferirse que bajo la expresión “Bitcoin” se comprenden tres aspectos diferentes:

Como moneda digital o unidades  de pago en intercambios comerciales vía online.


Como protocolo estandarizado que da soporte a las transacciones electrónicas, sin la mediación de terceros.

Como red para donde se negocian las operaciones comerciales.
Desglosadas estas referencias, hay que destacar que la criptomoneda se sustenta en un sistema totalmente peer-to-peer(persona a persona) donde los intermediarios quedan excluidos. La no intervención de terceros y la ausencia de una Autoridad Central bancaria de país alguno,  es una de las ventajas de los Bitcoins, en la medida que inhibe la especulación y la participación en ganancias como lo hacen las entidades financieras. 

Apoyando estas líneas de pensamiento, en bitcoins.org se reseña: 


“De la misma manera que nadie controla la tecnología detrás del correo electrónico, Bitcoin tampoco tiene propietarios. Bitcoin lo controlan todos los usuarios de Bitcoin del mundo. Aunque los programadores mejoran el software, no pueden forzar un cambio en el protocolo de Bitcoin porque todos los demás usuarios son libres de elegir el software y la versión que quieran. Para que sigan siendo compatibles entre sí, todos los usuarios necesitan utilizar software que cumpla con las mismas reglas. Bitcoin sólo puede funcionar correctamente si hay consenso entre todos los usuarios. Por lo tanto, todos los usuarios y programadores tienen un gran aliciente en proteger dicho consenso.”


Se señala como creador del sistema a  Satoshi Nakamoto y el 12/01/2009 se anota como la primera transacción con esta moneda; y desde esa fecha no solo se ha disparado el uso de Bitcoins, sino el valor que los respalda. Razones evidentes por las que se hace recomendable su uso.  

¿Cómo comprar Bitcoins?

Adscribirse al sistema no es difícil y en lo particular recomiendo las orientaciones del siguiente enlace como comprar bitcoins en Argentina, donde se explica detalladamente los pasos a seguir para la adquisición y operaciones con la moneda criptográfica de la que hablamos. Además de contener un estupendo FAQ de preguntas frecuentes que solventan toda duda. 

A modo de cierre de la entrada y en forma sintética  se pueden destacar cuatro puntos a saber:

Seguridad del sistema: basado en un sistema criptográfico altamente seguro.


    Anonimicidad en las transacciones: la privacidad es un elemento fundamental al momento de adquirir, vender, enviar o recibir pagos. 

      Operaciones en tiempo real al instante:se puede enviar y recibir pagos a cualquier lugar del mundo en forma instantánea.
Expansión de la criptomoneda:actualmente casi todos los negocios online aceptan el Bitcoin como medio de pago. Se habla del Bitcoin como la moneda futurística.


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.

Jueves 15 de diciembre de 2016

Mariano Mendez

Mariano Mendez
[A]NTRAX - [L]ABS

XSS por POST


Hace unos días reportaron un XSS por POST en el formulario de contacto de Underc0de. Por suerte no era nada riesgoso, pero era una vulnerabilidad que debíamos arreglar.
En esta ocasión usaremos el código de ese formulario de contacto para reproducir la falla y para ver como probar si nuestras aplicaciones son vulnerables a los XSS por POST.

El código del formulario de contacto está acá: www.hospedando.com.mx/descargas/formulario.zip por si alguno desea realizar la prueba.

Además, necesitaremos alguna herramienta que modifique los parámetros que enviemos por POST. Yo usare Tamper Data que es un complemento de Firefox:

https://addons.mozilla.org/es/firefox/addon/tamper-data/

Una vez montado el formulario de contacto se vera algo así:



El primer paso será completar todos sus campos y abrie Tamper Data. Una vez hecho esto, damos en "Comenzar Modificación" (En el tamper data) y enviamos el formulario de contacto.
Seguido a esto, nos aparecerá una alerta en Tamper Data para modificar los datos que estamos enviados.


Damos en modificar, y revisamos los valores que está enviando del lado derecho, que son los que hemos cargado desde el formulario.


Ahora es momento de jugar con estos campos. Este formulario de contacto no filtra sus variables, asique colocaremos algún vector de XSS en sus parámetros.
En este caso, coloqué un simple alert en el campo correo.

<script>alert('XSS')</script>

Pero podemos buscar o usar cualquier otro. Al dar en Aceptar, el sitio seguirá cargando con la nueva información suministrada...


Y como podrán apreciar, apareció el Alert con nuestro mensaje.

Espero que les sirva!

Lunes 29 de agosto de 2016

David Moreno

David Moreno
dm's blog

Webhook Setup with Facebook::Messenger::Bot

The documentation for the Facebook Messenger API points out how to setup your initial bot webhook. I just committed a quick patch that would make it very easy to setup a quick script to get it done using the unreleased and still in progress Perl’s Facebook::Messenger::Bot:

use Facebook::Messenger::Bot;

use constant VERIFY_TOKEN => 'imsosecret';

my $bot = Facebook::Messenger::Bot->new(); # no config specified!
$bot->expect_verify_token( VERIFY_TOKEN );
$bot->spin();

This should get you sorted. What endpoint would that be, though? Well that depends on how you’re giving Facebook access to your Plack’s .psgi application.

Domingo 21 de agosto de 2016

David Moreno

David Moreno
dm's blog

WIP: Perl bindings for Facebook Messenger

A couple of weeks ago I started looking into wrapping the Facebook Messenger API into Perl. Since all the calls are extremely simple using a REST API, I thought it could be easier and simpler even, to provide a small framework to hook bots using PSGI/Plack.

So I started putting some things together and with a very simple interface you could do a lot:

use strict;
use warnings;
use Facebook::Messenger::Bot;

my $bot = Facebook::Messenger::Bot->new({
    access_token   => '...',
    app_secret     => '...',
    verify_token   => '...'
});

$bot->register_hook_for('message', sub {
    my $bot = shift;
    my $message = shift;

    my $res = $bot->deliver({
        recipient => $message->sender,
        message => { text => "You said: " . $message->text() }
    });
    ...
});

$bot->spin();

You can hook a script like that as a .psgi file and plug it in to whatever you want.

Once you have some more decent user flow and whatnot, you can build something like:



…using a simple script like this one.

The work is not finished and not yet CPAN-ready but I’m posting this in case someone wants to join me in this mini-project or have suggestions, the work in progress is here.

Thanks!

Miércoles 29 de junio de 2016

PCTux: El hashtag que pide a Messi que no se vaya

Viernes 05 de febrero de 2016

PCTux: Cupones de descuento en Argentina

Viernes 29 de enero de 2016

Sergio Gonzalez

Sergio Gonzalez
hackendemoniado

script para automatizar tareas (PARTE 3) - Detectar intruso en nuestra red + aviso por mail

Ya vamos por la tercer parte de esta serie de scripts, ahora toca un script muy curioso que me tomo un buen tiempo dejarlo a punto, antes que nada hay que entender que es necesario tener instalado: nmap para poder saber quien esta conectado a nuestra red y también a mutt o cualquier aplicación que nos deje enviar correo a través de la terminal, y después solo necesitas un poco de tiempo y paciencia para ir probando como funciona y adaptarlo a tu redo u organización, como siempre voy a explicar línea a línea para que todos podamos aprender y crecer....

Acá dejo las partes anteriores:
http://hackendemoniado.blogspot.com.ar/2015/11/script-para-automatizar-tareas-parte-1.html

En la parte dos muestro como configurar a mutt para poder mandar mail por la terminal
http://hackendemoniado.blogspot.com.ar/2015/12/script-para-automatizar-tareas-parte-2.html

"POR FAVOR LEER TODO EL POST PORQUE HAY QUE TENER EN CUENTA VARIOS DETALLES PARA ADAPTARLO A SU RED"

Vamos directamente a mostrar el script:




Como se dan cuenta ya tiene comentarios como para llegar a entender algo, pero bueno debo comentar algunos puntos del funcionamiento del script:

  1. Primero que nada este script funciona como base buscando los mac de cada pc o equipo por ende debo de tener una lista blanca de host que yo conozco y que lógicamente no son intrusos recordad que esto incluye no solo las computadoras sino también celulares, routers,.... etc.
  2. El archivo llamado listablanca.txt cuando se ejecuta la primera ves se va a crear con un mac por defecto 00:00:00:00:00:00 el cual si desean lo dejan así la primera ves y ejecutan el script ingresando los rangos a escanear y ver como muestra y reporta los intrusos o detienen el script y modifican los host porniendo las mac pertinentes.
  3. Si la ruta no les apetece simplemente cambien por la de su interés o que se les complique menos, yo simplemente lo programe así por comodidad en la utilización del script.
  4. Tener en cuenta un punto muy importante que es lo siguiente, el script va a lanzar nmap a cada segmento de ip de su red y si tienen varios segmentos va a tomar un buen tiempo..., lo ideal seria que primero lo ejecuten y tomar aproximadamente el tiempo que toma en analizar toda su red y en definitiva dejar que ejecute completo y de a cuerdo a ese tiempo agregarlo a las tareas automáticas.
  5. El script también realiza un nmap sobre el intruso y con más razón tomar bien el tiempo para su próxima ejecución.
  6. Para que no se ejecute cada tanto tiempo podrian poner el script en una pc en cada segmento de red que mande el correo a la misma cuenta y así no hacer que la tarea en cron se ejecute cada mucho tiempo

Bueno luego de las consideraciones del script pasamos a explicar un poco el script por si no llegan a entender bien....

  • El primer if "if [ ! -d $ruta ]; then" pregunta si existe la ruta, osea si ya fué creada la carpeta, con la opción -d verifica sobre carpetas, si no existe simplemente la crea.
  • Segundo if "if [ -f $ruta/listablanca.txt ];" es lo mismo que en el caso anterior solo que con la opción -f que se utiliza para comprobar si existe o no el archivo, asique ya saben -d para directorios y -f para archivos, no tiene el signo "!" porque ya es implícito que deseamos comprobar que existe asique no es indispensable ese signo.
  • El siguiente punto importante es "nmap -sP $ips > $ruta/controlred.txt" aca es muy simple hacemos un escaneo con nmap sobre el segmento de ip que ingresamospor teclado obviamente esto no funcionara si lo ejecutamos con cron... por eso deje un poco más abajo un ejemplo de nmap sin el pedido por teclado "nmap -sP 192.168.100.1-255 --exclude 192.168.100.4 > $ruta/controlred.txt" osea comentamos las líneas anteriores osea desde el echo que pide el segmento hasta el nmap que utiliza lo ingresado por teclado y descomentamos esta línea que deje de ejemplo y ponen su segmento de red.
  • "cat $ruta/controlred.txt | grep Address | cut -c 14-31 | tr -d "()" > $ruta/host.txt" con esto lo que hago es mostrar la salida del nmap guardada en "controlred.txt" y busco la palabra Address y corto justo en el lugar del mac con la opción "cut -c ..." y lo mando a un archivo llamado "host.txt".
  • "cat $ruta/controlred.txt | grep for | cut -c 22-36 | tr -d "()" > $ruta/ip.txt" exactamente lo mismo que en caso anterior pero buscando solo las ip, también lo guardo en un archivo llamad "ip.txt".
  • Luego genero 2 variables que se llaman "hostmac" y "hostip", la idea es que en el bucle se guarde línea por línea los respectivos mac e ip de los host que están conectados y luego en "busca" guardo un 0 (cero) o un 1 dependiendo de que si lo encontró o no en la lista blanca de host permitidos, si debuelve un cero es porque no esta en esa lista y es un intruso.
  • "echo $hostmac | nmap -v -A -O $hostip >> $ruta/infointruso.txt " lo hago porque encontre un intruso e intento descubrir toda la info posible de el y lo guardo en un txt en el cual se va a ir concatenando cada ves que encuentre uno.
  • "echo "Se encontro un intruso con MAC Address: "$hostmac "IP: "$hostip" acá simplemente muestro el mac y el ip del intruso.
  •  "if [ $bandera == 1 ];then" si la bandarea esta en uno significa que encontro aunque sea un intruso en la red entonces debo de mandar el correo.
  • Luego de eso simplemente mando el correo pertinente con el archivo adjunto y borro la info del intruso.

Link para descargar script

Luego lo que hice fue agregar a cron el script de la siguiente manera:

Y luego puse lo siguiente:


Lo puse para que se ejecute cada 15 minutos, algunas capturas de pantalla:









Como muestra la imagen llega el correo con el adjunto que posee la info del intruso.

Si no entienden algo o encuentra algún error por favor me avisan así lo soluciono, como siempre digo la idea es aprender entre todos....

Espero que les resulte interesante y compartan....

Si tienen ideas de script que pueden llegar a ser útiles no duden en contarme y ver si los puedo ayudar a realizarlos....

Saludos amigos

      Jueves 28 de enero de 2016

      Sergio Gonzalez

      Sergio Gonzalez
      hackendemoniado

      script para automatizar tareas (PARTE 2) - Controlar logins fallidos y mandar alerta por email

      Hola seguimos con el tema de los script, ahora vamos a dar un pequeño paso más en esto de los script con cosas bastante útiles, la cosa es muy simple controlar los intentos de login en nuestro equipo por el momento a nuestros usuarios osea controlar la cantidad de intentos de acceso y en caso de ser necesario que nos llegue un email a nuestro correo reportando alguna actividad y de paso esta opción la podremos ocupar en el futuro para otros scripts y obviamente utilizaremos algunas cosas de la parte 1.
      Vamos a necesitar un corrego en gmail, y tener conocimentos en comandos variados de linux y programación básica,  pueden leet la parte uno para empezar desde cero porque hay cosas que ya las explique en esa parte y no da que repita lo mismo, todo lo nuevo obvio lo explico paso a paso para no perderce.

      Bueno pasemos directamente a trabajar:

      1. Primero creamos un archivo y le damos los permisos necesarios para ejecutar dicho script:
      2. Bien pasemos de lleno al script voy a explicar línea por línea:
        • La variable unahoramenos sirve para tener guardada una hora menos que la actual, osea si son las 20 horas va a guardar la hora 19, se entiende?? esto lo utilizo para que cuando ejecute el script empiece a controlar no desde la hora actual sino desde una hora antes y revisar la cantidad de intentos de acceso, obvio eso ustedes los pueden manipular como ustedes más gusten.
        • La variable horaactual obtiene la hora actual del sistema sin los segundos.
        • El comando "lastb" es lo principal de este script porque es el que lista los intentos fallidos en el sistema para todos los usuarios con información relevante como fecha, hora, etc. con la "-s" indicamos un horario en el cual queremos revisar para que no nos liste absolutamente todo desde el origen de los tiempos, obvio primero lo hacemos para algún usuario en particular en mi caso el mio (| grep hackende) y luego lo redirigimos a un txt (loginfailshackende.txt).
        • Con el comando "wc -l" lo que hacemos es contar la cantidad de lineas que tiene el archivo de txt que creamos en la línea anterior para saber exactamente la cantidad de intentos fallidos en el sistema y lo redirigimos a un txt (cantfailhackende.txt).
        •  "awk" lo que permite es manipular los strings, y precisamente sacamos lo que tiene la primer columna es decir la cantidad de intentos fallidos y lo guardamos en la variable "contador".
        • Para la variable "dia" utilizamos el comando "awk" de nuevo pero obteniendo la columna 5 que tiene justamente el número del día en que sucedio el intento de acceso del archivo "loginfailshackende.txt" con el comando "head -n 1" hacemos que solo lo haga para la primer línea porque sino guardaria la columna entera y seria ineficiente tener cosas de más.
        • En la variable "hora" justamente guardamos la hora.
        • En la variable "diahoy" guardamos el número del día de hoy.
        • Ahora llega el momento de explicar "if [ $contador -ge 3 ] && [ $dia -eq $diahoy ]; then" bueno es solo un condicional que realizara alguna acción si se cumplen uno o varios factores determinantes que permitan tomar el control para alguna acción en particular, para nuestro caso es muy simple, decimos "si [lo que tiene la variable "contador" es mayor igual a 3] y [la variable "dia" es igual a la variable "diahoy"]" hacemos...., osea simplemente controlamos 2 factores, primero que la variable contador sea mayor a 3 porque en ese caso posiblemente alguien este intentando demasiadas veces entrar y debemos actuar al respecto; y el segundo punto que solo se realice para la fecha de hoy.
        • Acá mandamos directamente el email porque se supone que se cumplieron los 2 factores en la linea de control IF, bueno yo utilice mutt para mandar el email, para instalar simplemente hacemos:Luego lo configuramos modificando el archivo "nano /root/.muttrc":Debemos de cargar los datos para configurar correctamente a mutt para eso hacemos:Esto es solo pegar lo anterior y acomodarlo a su gusto, obviamente cuando lo utilicen se darán cuenta para que se utiliza cada cosa pero obviamente yo solo lo probé en gmail (en hotmail hay que investigar un poco pero bueno como yo ya tenia ese correo lo deje...) una ves echo eso ya estamos listo para mandar email desde la consola, en nuestro script lo realizamos con un "echo" que indica el texto que aparecera en nuestro email como texto simple en nuestro caso la advertencia¡¡¡ luego con una tuberia llamamos a mutt con "-s" para indicar el encabezado del email a enviar.
        • Todo lo demas dentro de ese bucle ya lo conocemos de la parte 1.
      3. Luego el siguiente paso es mandar el script a que se ejecute con cron:
      4. Y solo agregamos la ruta del script al igual como lo hicimos en la parte 1: "3 * * * * root /home/hackendemoniado/Documentos/scripts/login_hackendefail.sh" yo lo configuro para que se ejecute cada 3 minutos para probarlo pero en realidad hay que dejarlo cada una hora eso seria cada 59 minutos o ponerlo dentro de la carpeta que se ejecuta cada hora (al script copiarlo dentro obvio) o como ustedes quieran.
      5. Para root es exactamente lo mismo solo que buscamos todo para root:
      6. Bien pasemos de lleno al script voy a explicar línea por línea:
      7. como ven es casi lo mismo pero adaptado al ususario root, luego lo agregamos a cron como hicimos para nuestro usuario anterior y listo
      8. Imagenes:





      Como ven efectivamente llego el email luego de probar a traves de laterminal el acceso como root y poner 3 veces la clave mal, obvio funciona tanto para root como para nuestro usuario, es algo que me parecio curioso de hacerlo y de paso compartirlo, espero que les sea útil a ustedes y cualquier cosa me consultan porque se pueden precentar una variadad de errores que lógicamente están todos controlados con el script y con la configuración de mutt (igual como digo siempre todo puede fallar¡¡¡¡ jeje) asique ya saben consulten sus dudas y ya estare publicando la parte 3.....

        Domingo 08 de noviembre de 2015

        Sergio A. Alonso

        Sergio A. Alonso
        Bunker Blog

        Taller de Linux y Ruby on Rails

        Hace tiempo que no posteo en el Blog
        Sepan disculpar: no solo no me he retirado, sino que gracias a mis dos últimos empleos, Belatrix y Supercanal (donde sigo trabajando) he aprendido mucho y apenas me ha alcanzado el tiempo para transmitir conocimientos nuevos
        Como para no dejar completamente de lado la docencia, lanzo la cuarta edición de este Taller, con muchas novedades.
        Si bien el Taller es presencial, incluye un aula virtual propia con todo lo necesario para crear los primeros algoritmos en Ruby, diseñar aplicaciones web, hacer scripting, y armar ambientes reales de producción.
        El taller es muy intenso: incluye varios meta conocimientos alrededor de esta tecnología adquiridas a lo largo de 20 años de experiencia: intercambio de llaves, GIT, seteo de Apache, balanceadores de carga, debug sobre el terreno, despliegue de nodos, deploy en clouds, y una larga lista de habilidades tanto del desarrollador web como de esa nueva profesión que se viene gestando llamada DevOp.


        Ejemplo del aula, la cual gracias a Screen y al fantástico Codebox IDE me permite asistir rápidamente a los alumnos:

        Para los impacientes, aquí les dejo un enlace a la descripción del Taller, clase por clase: https://goo.gl/ngQ2BE

        Enlace hacia la nota completa: http://goo.gl/BLyqdy

        Se agradece su difusión.

        Lunes 07 de septiembre de 2015

        Sergio A. Alonso

        Sergio A. Alonso
        Bunker Blog

        Shot of work's laptop




        A typical work session with Arch, Mate Window Manager, Numix Theme + my own colors.

        Vim Janus with Molokai theme, Oh-my-zsh with Agnoster theme, Terminator, Tig, and Fuck correct typos. 

        Wallpaper is one of my favorites related to Owl's Moving Castle, downloadable from here: http://www.allmacwallpaper.com/get/iMac-21-inch-wallpapers/-Howl's-Moving-Castle-1920x1080/5226-9.jpg

        Lunes 31 de agosto de 2015

        Martín Albisetti

        Martín Albisetti
        Martin Albisetti's blog

        Developing and scaling Ubuntu One filesync, part 1

        Now that we’ve open sourced the code for Ubuntu One filesync, I thoughts I’d highlight some of the interesting challenges we had while building and scaling the service to several million users.

        The teams that built the service were roughly split into two: the foundations team, who was responsible for the lowest levels of the service (storage and retrieval of files, data model, client and server protocol for syncing) and the web team, focused on user-visible services (website to manage files, photos, music streaming, contacts and Android/iOS equivalent clients).
        I joined the web team early on and stayed with it until we shut it down, so that’s where a lot of my stories will be focused on.

        Today I’m going to focus on the challenge we faced when launching the Photos and Music streaming services. Given that by the time we launched them we had a few years of experience serving files at scale, our challenge turned out to be in presenting and manipulating the metadata quickly to each user, and be able to show the data in appealing ways to users (showing music by artist, genre and searching, for example). Photos was a similar story, people tended to have many thousands of photos and songs and we needed to extract metadata, parse it, store it and then be able to present it back to users quickly in different ways. Easy, right? It is, until a certain scale  🙂
        Our architecture for storing metadata at the time was about 8 PostgreSQL master databases where we sharded metadata across (essentially your metadata lived on a different DB server depending on your user id) plus at least one read-only slave per shard. These were really beefy servers with a truck load of CPUs, more than 128GB of RAM and very fast disks (when reading this, remember this was 2009-2013, hardware specs seem tiny as time goes by!).  However, no matter how big these DB servers got, given how busy they were and how much metadata was stored (for years, we didn’t delete any metadata, so for every change to every file we duplicated the metadata) after a certain time we couldn’t get a simple listing of a user’s photos or songs (essentially, some of their files filtered by mimetype) in a reasonable time-frame (less than 5 seconds). As it grew we added caches, indexes, optimized queries and code paths but we quickly hit a performance wall that left us no choice but a much feared major architectural change. I say much feared, because major architectural changes come with a lot of risk to running services that have low tolerance for outages or data loss, whenever you change something that’s already running in a significant way you’re basically throwing out most of your previous optimizations. On top of that as users we expect things to be fast, we take it for granted. A 5 person team spending 6 months to make things as you expect them isn’t really something you can brag about in the middle of a race with many other companies to capture a growing market.
        In the time since we had started the project, NoSQL had taken off and matured enough for it to be a viable alternative to SQL and seemed to fit many of our use cases much better (webscale!). After some research and prototyping, we decided to generate pre-computed views of each user’s data in a NoSQL DB (Cassandra), and we decided to do that by extending our existing architecture instead of revamping it completely. Given our code was pretty well built into proper layers of responsibility we hooked up to the lowest layer of our code,-database transactions- an async process that would send messages to a queue whenever new data was written or modified. This meant essentially duplicating the metadata we stored for each user, but trading storage for computing is usually a good trade-off to make, both in cost and performance. So now we had a firehose queue of every change that went on in the system, and we could build a separate piece of infrastructure who’s focus would only be to provide per-user metadata *fast* for any type of file so we could build interesting and flexible user interfaces for people to consume back their own content. The stated internal goals were: 1) Fast responses (under 1 second), 2) Less than 10 seconds between user action and UI update and 3) Complete isolation from existing infrastructure.
        Here’s a rough diagram of how the information flowed throw the system:

        U1 Diagram

        It’s a little bit scary when looking at it like that, but in essence it was pretty simple: write each relevant change that happened in the system to a temporary table in PG in the same transaction that it’s written to the permanent table. That way you get transactional guarantees that you won’t loose any data on that layer for free and use PG’s built in cache that keeps recently added records cheaply accessible.
        Then we built a bunch of workers that looked through those rows, parsed them, sent them to a persistent queue in RabbitMQ and once it got confirmation it was queued it would delete it from the temporary PG table.
        Following that we took advantage of Rabbit’s queue exchange features to build different types of workers that processes the data differently depending on what it was (music was stored differently than photos, for example).
        Once we completed all of this, accessing someone’s photos was a quick and predictable read operation that would give us all their data back in an easy-to-parse format that would fit in memory. Eventually we moved all the metadata accessed from the website and REST APIs to these new pre-computed views and the result was a significant reduction in load on the main DB servers, while now getting predictable sub-second request times for all types of metadata in a horizontally scalable system (just add more workers and cassandra nodes).

        All in all, it took about 6 months end-to-end, which included a prototype phase that used memcache as a key/value store.

        You can see the code that wrote and read from the temporary PG table if you branch the code and look under: src/backends/txlog/
        The worker code, as well as the web ui is still not available but will be in the future once we finish cleaning it up to make it available. I decided to write this up and publish it now because I believe the value is more in the architecture rather than the code itself   🙂

        Jueves 02 de julio de 2015

        Che … ¿y los datos?

        Hace mas de un año, en abril de 2014, hice una presentación sobre Gobierno Abierto / Datos Abiertos para Libres del Sur / FAP.

        En dicha presentación me enteré que dentro de la Secretaría de Desarrollo Tecnológico se había iniciado un proceso de apertura de datos de la administración municipal.

        Como con todo aquello que hace el Intendente Pulti, me pareció bien la iniciativa pero me reservé las opiniones para mas adelante, ya que su costumbre siempre es patear para adelante y esperar que los reclamantes se cansen.

        Ah, y también hacer mucha parafernalia y ruido con poquitas nueces.

        Así fue como apareció el “Portal de Datos Abiertos” de la MGP. Y se hizo un Hackaton. Y un Concurso de Aplicaciones.

        Me voy a referir al primer punto, el portal de datos abiertos.

        Se suponía que allí uno iba a poder encontrar la información que necesitara sobre la Municipalidad y la ciudad, en formatos libres y abiertos, y actualizada.

        Lo que realmente se encuentra (con la excepción de los datos de llamadas al 147, que parecen ser extraídas directamente del sistema que usa el call center), es todo lo que publicaron hace un año y olvidaron ahí.

        Asi se ve la parte sobre datos sobre seguridad:

        datos_seguridad_20150701

        Así los referidos a medio ambiente:

        datos_medioambiente_20150701

        datos_medioambiente_osse_20150701

        Los de movilidad:

        datos_movilidad_20150701

        Los de economía y presupuesto:

        datos_economía_20150701

        datos_presupuesto_20150701

        Adicionalmente, en la página de Información Presupuestaria, los archivos que hasta el 2014 se publicaban en formato de planilla de cálculo, ahora han pasado a estar publicados en pdf, dificultando así cualquier análisis que uno quiera hacer, u obligando a convertirlos, con los problemas que implica cuando se tratan de datos en esquemas de tablas.

        Todo sigue igual. O peor. Pero manteniendo el relato.

        Domingo 17 de mayo de 2015

        25 años de Internet en Argentina

        patchcord_keyboardHoy es el día en que se conmemora el “día de Internet”. En realidad, el Día Mundial de las Telecomunicaciones y de la Sociedad de la Información, pero a veces es bueno simplificar un poco 😉 .

        Este festejo surge de una propuesta de la Cumbre Mundial sobre la Sociedad de la Información, que pidió a la Asamblea General de las Naciones Unidas instituir el 17 de mayo como Día Mundial de la Sociedad de la Información, lo cual resultó decidido en forma afirmativa. Luego, la ITU (International Telecommunication Union) decide unificarlo con su Día de las Telecomunicaciones, dado que en esta fecha, y de eso también hoy se festejan los 150 años, se fundaba dicha unión.

        Pero, lo que es la casualidad, resultó que un día 17 de mayo de 1990, en la ciudad de Buenos Aires y de la mano de Jorge Amodio, Argentina ponía en marcha su primer enlace a Internet.

        Como fue que esto sucedió pueden leerlo en el blog del propio Amodio, haciendo click aquí.

        También destaco este documento histórico: el e-mail en el cual se informa al administrador en USA que el enlace estaba funcionando.

        >From pete Thu May 17 19:55:20 1990
        >Subject: Line up ….
        >To: atina!umd5.umd.edu!rcoltun (Rob Coltun)
        >Date: Thu, 17 May 90 19:55:20 GMT-3:00
        >
        > Hi Rob,
        >
        > glad to contact you again, and very glad now because I’m
        >looking the Cisco console showing “line up” over our link.
        >
        > I sent to Glenn the formal Internet Number and Autonomus
        >System registration.
        >
        > Can you help me with the configuration of the Cisco router,
        >I believe that we are able to do real networking tests ( your words
        >sometime ago ) …
        >
        > I’ll wait your response,
        >
        > Best regards,
        > Jorge.

        Por esto es que quiero enviar mi saludo y las felicitaciones a quienes fueron los pioneros de Internet en Argentina, los que tras 25 años nos han dejado un legado de posibilidades extrarordinarias.

        Gracias colegas!!!

        Domingo 05 de abril de 2015

        A 10 años del ICANN Meeting en Mar del Plata

        Hace 10 años, un día 4 de abril de 2005, se iniciaba en Mar del Plata el ICANN Meeting XXII, el primero en ser realizado en nuestro país.

        No fue casualidad que se haya organizado en la ciudad donde vivo. Un año antes, un grupito de marplatenses propusimos que se hiciera en nuestra ciudad y tuvimos la suerte de que los costos de alojamiento y comida estuvieran, en ese momento, bastante mas bajos que en la Ciudad de Buenos Aires, lo que nos dio ventaja en la decisión final de donde se hacía.

        Y así empezó esta aventura que hoy es uno de los mas gratos recuerdos de mi vida profesional.

        El evento se llevó a cabo en el Hotel Sheraton de Mar del Plata, quien tuvo que acelerar la instalación de su red inalámbrica para poder brindar la conectividad a los que terminaron siendo 604 participantes de 80 países distintos, con 60 APs

        La conectividad a Internet se contrató a Comsat, quien tuvo que poner dos parabólicas de 2.5 metros de diámetro para poder brindar los 10 mbps simétricos que nos solicitaron con un rango /23 para contar con 512 Ips.

        6 servidores DHCP, DNS y SMTP, con una estación de monitoreo de red, 20 PCs de uso público, transmisión en vivo de las reuniones y hasta hacer de service de los equipos que se le iban rompiendo a los miembros de ICANN.

        Todo el grupo estuvo compuesto por gente de primera.

        En la organización, Oscar García, del Polo Informático Mar del Plata, Antonio Harris, de Cabase, OTI Internacional en los servicios turísticos y Congress Rental en servicios de audio, video en pantalla gigante, registración, traducción, etc.

        En la técnica, Steve Conte, Alexander Kulik, Tim Cole y Mike Evans, de ICANN, Guillermo Pereira Irujo, Claudio Roulliet, Alexis Bertola, Martín Salinas y yo, de Comtron, Marcelo Valencia y Hector Blanche, de Comsat, Juan Gimeno Rossi y German Paak, del Hotel Sheraton.

        Y, a continuación, la “medalla” que nos quedó de recuerdo, con la firma, nada mas y nada menos, que de Vinton Cerf.

        Para el final, el agradecimiento a Ignacio Marcos, que pasó una tarde para conocernos personalmente y que terminó a un costado, tomando un mate y mirándonos ir de un lado para otro, ya que gracias a el y a esa visita este blog existe como tal.

        Domingo 01 de febrero de 2015

        Martín Albisetti

        Martín Albisetti
        Martin Albisetti's blog

        Disassembling a DeLonghi eco310.r coffee machine

        After a few weeks of being coffee-deprived, I decided to disassemble my espresso machine and see if I could figure out why it leaked water while on, and didn’t have enough pressure to produce drinkable coffee.
        I live a bit on the edge of where other people do, so my water supply is from my own pump, 40 meters into the ground. It’s as hard as water gets. That was my main suspicion. I read a bit about it on the interwebz and learned about descaling, which I’d never heard about. I tried some of the home-made potions but nothing seemed to work.
        Long story short, I’m enjoying a perfect espresso as I write this.

        I wanted to share a bit with the internet people about what was hard to solve, and couldn’t find any instructions on. All I really did was disassemble the whole thing completely, part by part, clean them, and make sure to put it back together tightening everything that seemed to need pressure.
        I don’t have the time and energy to put together a step-by-step walk-through, so here’s the 2 tips I can give you:

        1) Remove ALL the screws. That’ll get you there 95% there. You’ll need a philips head, a torx head, a flat head and some small-ish pliers.
        2) The knob that releases the steam looks unremovable and blocks you from getting the top lid off. It doesn’t screw off, you just need to pull upwards with some strength and care. It comes off cleanly and will go back on easily. Here’s a picture to prove it:

        DeLongi eco310.r

        Hope this helps somebody!

        Martes 30 de septiembre de 2014

        Sergio A. Alonso

        Sergio A. Alonso
        Bunker Blog

        El Mundo Según JuanCPovE: Día de la Tierra, ese pequeño punto azul pálido en...

        El Mundo Según JuanCPovE: Día de la Tierra, ese pequeño punto azul pálido en...: Siempre en este día cito a Carl Sagan y su obra "Pale Blue Dot". Una buena razón para reflexionar y cambiar de una buena vez nue...

        Jueves 04 de octubre de 2012

        LugSaJu: La tecla que te salva del DESASTRE

        Jueves 09 de agosto de 2012

        Dear Martínez

        Dear Martínez
        La vida Linux

        Software de mensajería instantánea Jitsi 1.0

        La competencia entre los programas de mensajería instantánea a través de VoIP, video conferencia y más, es grande y todas satisfacen nuestras necesidades. Competidores somo Skype, Ekiga, lideran el poderío de uso, pero existen otras alternativas menos utilizadas por no ser famosas, pero de mejor dicción y predisposición de servicio al usuario, tal como Jitsi, antes conocido como SIP Communicator y que desde hace tan solo días, ha lanzado su nueva versión estable.

        Jitsi 1.0 Software de mensajería instantánea Jitsi 1.0

        El renovado Jitsi 1.0 reúne todas las funciones que se pueden encontrar en diversos programas con las herramientas VoIP, video conferencia, mensajería instantánea tanto para Windows como para Mac y GNU/Linux. Esta interfaz es sumamente cómoda y amigable, siendo intuitiva y fácil de utilizar. Es compatible con los protocolos más populares de mensajería instantánea y telefonía, pero también se le puede dar uso con las cuentas habituales de correo tales como Hotmail, Gmail o Yahoo, o bien otros como AIM, XMPP, Jabber, SIP y la posibilidad de emparejar la cuenta de la red social Facebook.

        Entre sus características más destacadas se encuentra la de transferencia de llamadas atendidas o ciegas, el cambio de estado automático cuando el usuario no se encuentre utilizando el ordenador, la autoconexión, además de permitir grabar las llamadas para seguridad del usuario y el cifrado de protocolos SRTP Y ZRTP. No obstante, también permite establecimiento de conexión de medios directa mediante protocolo ICE, streaming de escritorio, almacenamiento de contraseñas cifradas, transferencia de archivos, soporte IPv6 para SIP y XMPP, etc.

         

        Jueves 02 de agosto de 2012

        Dear Martínez

        Dear Martínez
        La vida Linux

        Aprende a tocar la guitarra con TuxGuitar

        Un nuevo software para los amantes de la guitarra y la música, además de para aquellos aficionados que siempre quisieron aprender, existe una herramienta llamada TuxGuitar, siendo un editor visual de tablaturas y partituras de código abierto. Esta aplicación ha de ser ideal para llevarla consigo a cualquier parte. Desarrollada hace tiempo, es una idea que surgió para crear una herramienta que le haga competencia al popular Guitar Pro, pero que esta pueda ser utilizada por todo el mundo de forma gratuita.

        Tux Guitar Aprende a tocar la guitarra con TuxGuitar

        La herramienta de Tux Guitar es muy útil para el aprendizaje de la música y el arte de utilizar cualquier guitarra, aunque también cuenta con bajo, teclado y batería con el cual el usuario podrá aprender lo que no, o poner en práctica lo conocido en la materia. Desarrollado por la compañía Java, se puede abrir y exportar ficheros GP3, GP4 y GP5, además de ser compatible con los archivos del Guitar Pro, permitiendo que se pueda utilizar las partituras creadas para ese programa.

        No solamente el Tux Guitar es un simple editor visual de partituras con el que se puede componer la música, sino también ofrece una gran variedad de efectos de sonido, soporte multipista, tempo, posibilidad de tercetos, scroll automático en la reproducción y muchas otras herramientas que lo ayudarán a formar su música tal como la disponga.

        Lunes 16 de julio de 2012

        Dear Martínez

        Dear Martínez
        La vida Linux

        Nueva versión de MythTV 0.25 con soporte para Windows

        El conocido reproductor de TV se ha escondido en la sombra de las noticias tecnológicas respecto a Linux durante un año y medio, sin tener novedades de ellas y varios retrasos en el desarrollo de la última versión del reproductor, por lo que MythTV anunció que ha sido liberado y trae 5200 cambios como si fuera poco. Muchos saben en qué consiste este software reproductor de TV y multimedia, por lo que les interesará saber sobre las novedades de cambios.

        MythTV Nueva versión de MythTV 0.25 con soporte para Windows

        En la versión 0.25 de MythTV se incluyen nuevas características que destacan el interés en los usuarios, como nuevas capacidades de aceleración de video, tales como VAAPI y video de DirectX2, mejoras de audio, incluyendo soporte para E-AC3, TrueHD y DTS-HD, mejoras de los metadatos que integra gestión de grabaciones y videos, una API para aplicaciones de terceros, para aprovechar la interacción con el frontend y backend, control del televisor y otros componentes AV a través del consumer electronics control, o la inclusión de un HTTP Live Streaming, para compartir el contenido de video en tiempo eral a través de la API integrada.

        También se destaca en el nuevo reproductor MythTV, el MythMusic que ha sido completamente reescrito y MythVideo que ahora se ha integrado completamente, en lugar de ser distribuido como un plug-in por separado. Además, a través de MythThemes, todos los temas, incluyendo los de terceros, se pueden descargar directamente desde el selector de temas de la interfaz.

         

        Jueves 05 de abril de 2012

        Soft-Libre: GNOME 3.4 disponible con interesantes novedades
        Soft-Libre: Wallpapers para Ubuntu 12.04 LTS
        Soft-Libre: LibreOffice adquiere capacidad colaborativa en la nube + LibreOffice 3.5.2

        Domingo 26 de febrero de 2012

        Luciano Bello

        Luciano Bello
        Luciano's webpage

        Lessons Learned: Fettisdagen y Semla

        Fettisdagen, (martes de carnaval). Fet es grasa, mientras tisdag es martes. El sufijo en es el artículo determinado. Por lo tanto, el martes graso

        Semla, Comida. Etimológicamente, viene de semilla. También llamado fastlagsbulle, es una berlinesa (bola de fraile, que le dicen) con crema y pasta de almendras en su interior.

        SemlaFlickr
        En el post sobre Lucía ya hemos hablado sobre lo sorprendentemente apegado que son los suecos a ciertas fiestas de origen religioso, incluso cuando solo el 23% de ellos dice cree en algo llamado dios (ya no decir "ser cristiano"). Este parece ser un nuevo caso de lo mismo.

        En Argentina, así como en muchos (por no decir todos) países de América existe el carnaval. En otras palabras, festejar y comer antes de los 40 día de ayuno y penitencia por la Cuaresma que comienza el día siguiente, es decir, el Miércoles de Ceniza.

        Acá, y en otros países nórdicos, no parece haber carnaval. Lo que sí hay es Fettisdagen. Éste podría ser un martes de lo más común, si no fuese porque se consumen enormes cantidades de semla.

        Casualmente, ese martes me tocó ser el anfitrión del PhD fika (cuando los estudiantes de doctorado nos juntamos a tomar café y conversar), por lo me subí a la tradición y los invité con semla de distintos sabores. El sabor está dado por la crema, que puede ser común, de vainilla, con canela y otras variantes.

        Los semlor (plural de semla) es algo tan popular en la cultura sueca que un detective de cuentos para chicos llamado Ture Sventon es adicto a estos (y también vuela en una alfombra mágica, pero no viene al caso).

        Y este podría no ser único caso sueco de adición a semla. En el siglo XVII, rey Adolfo Federico habría muerto (literalmente) de un atracón después de clavarse 14 porciones de semla (tradicionalmente servidos con un tazón de leche caliente) como postre.

        La receta, aquí.

        Domingo 15 de enero de 2012

        Luciano Bello

        Luciano Bello
        Luciano's webpage

        Corriendo Debian en un server fanless

        Debido a una reciente mudanza, he bajado unos servers que tenía corriendo en casa de mis padres. Sin embargo, en mi nuevo hogar estoy en proceso de generar una nueva DMZ, esta vez, sin ventiladores.

        El primer paso de este proceso ocurrió en forma de weekend project y consiste en hacerme de un "servidor". Las comillas hacen referencia a que no se trata de un gran server sino un procesador ARM de 200Mhz y 32MB de RAM, lo que es suficiente para que corra Debian y algunos otros servicios que pueden ser interesantes.

        Los ingredientes

        • Un all-in-one LAN server que es la forma en que DealExtreme llama a unos dispositivos con chips de la familia str8132. Dado que vamos a instalar snake-os en ellos (en este caso se trata de la versión 1.3.2-20111019), es importante chequear la lista de compatibilidad. En particular me hice de un NS-K330 por 40 dólares.
        • Storage USB, puede ser en la forma de stick o como disco portable.
        • Un RS232 to TTL level converter, también conocido como cable para Nokia N1200/1208/1650/2630/2670. Es para conectarse por serie a la consola. No lo necesitamos ahora mismo, pero está bueno tenerlo a mano en caso de brickearlo, aunque es un procedimiento que no explicaré esta vez.

        Instalación de Snake-OS

        Es realmente sencillo. Lo primero es bajar snake-os, desde la sección de downloads de la web. Es importante que el archivo sea de la forma snakeos-<versión>-from-original.zip Instalar el que dice from-snake lleva definitivamente al brickearlo y recuperarlo puede ser complejo.
        Desde la página de administración del dispositivo hay que subir el archivo snakeos-<versión>-from-original.bin contenido en el zip bajado. Confirmar el md5sum no está de más.

        Acceso inicial

        Los datos para acceder a la nueva interfaz con el browser:

        http://192.168.0.240 (si es que no hay un DHCP en la red)
        usuario: admin
        contraseña: snake

        Por SSH la contraseña de root la misma y, al cambiarla por la página de administración, se cambia en todos los accesos.

        Post instalación

        Incluso cuando Max opine que el uso de memoria virtual está rumbo a la extinción (lo cierto es que tal vez no es la mejor idea cuando el storage es de estado sólido como en los pendrives), activé el uso de SWAP desde el menú Service-Swapfile.

        Si se quieren las mismas prestaciones que se tenían con el firmware original, hay que instalar unos paquetes adicionales. El sistema de paquetes que utiliza snake-os es opkg y tiene que ser primero activado desde Service-Opkg. Los paquetes pueden bajarse desde la página de download de snake-os y se instalan desde System-Packages. En particular, pueden ser interesantes (siempre pensando en los features originales):
        Transmission: Es un cliente de BitTorrent, para dejar tus descargas corriendo. Es bastante mejor que el original.
        miniDLNA: Es el server de streaming compatible con DLNA/UPnP-AV. Está un poco verde, pero se está trabajando en su mejora.

        Corriendo Debian dentro

        Las instrucciones están acá. Aunque esto es lo más obvio y necesario:

        wget http://snake-os.googlecode.com/files/debian_chroot.tgz
        tar -xvf debian_chroot.tgz
        mount -o bind /proc /usb/sda1/debian/proc
        mount -o bind /dev /usb/sda1/debian/dev
        chroot /usb/sda1/debian/

        Esta instalación base requiere unos 200MB. Tiene todo el potencial de un Debian (¡porque lo es!).
        Claro que falta ajustar varios detalles, pero será la piedra inicial para el resto.

        Lunes 12 de diciembre de 2011

        Luciano Bello

        Luciano Bello
        Luciano's webpage

        Lessons Learned: Lucia

        Lucia, fiesta (13 de diciembre). Tradicional fiesta sueca asociada a Santa Lucía de Siracusa, el solsticio y las velas.

        Según el santoral católico, el 13 de Diciembre (o sea, en un par de horas) es el día dedicado a Santa Lucía. Dato que seguramente pasa totalmente desapercibido para la gran mayoría de la personas del mundo. A menos claro, que se sea habitante de Suecia (o de Sicilia, pero no viene al caso).

        El día de Santa Lucía, o simplemente Lucia como prefieren llamarlo acá, es de la fiestas más importantes de la cultura sueca. Y, como extranjero, me es sumamente difícil de entender como en un país tan poco religioso algo así tiene cabida. Así que analicemos los hechos.

        La santa en cuestión: Durante el siglo III y principios del IV vivió en Siracusa (una ciudad de Sicilia, Italia) una joven católica de familia potentada llamada Lucía, quien tenía intensiones de consagrarse a Dios. Pero un despechado pretendiente la denunció a la autoridades (eran tiempos de persecución a los católicos) y fue enjuiciada y sentenciada a muerte. La tradición cuenta que se ordenó torturarla arrancándole los ojos y que aún así siguió viendo por milagro divino (sí, lo que tiene en la bandeja de la estampita son un par de ojos). Más datos sobre su vida en la Wikipedia y referencias.
        Es, obviamente, patrona de los ciegos. También, aunque bastante menos evidentemente, de los electricistas, choferes, afiladores y cristaleros. Tal vez en este último caso exista alguna relación con el tradicional arte de soplar vidrio que existe en Suecia.

        Su asociación con la luz: El nombre Lucía, hace clara referencia al latín, Lux. La leyenda de los ojos también parecen referir a la luz (o a la falta de ésta). Aunque no pude encontrar referencias, algunas personas me comentan que Santa Lucía fue condenada a la hoguera y que el fuego no la consumía. Y que por esto hay velas durante la celebración. Aún más simpático es que parece ser que, por errores acumulados durante la Edad Media en el calendario Juliano, la festividad de Lucía coincidía con el día más corto del año, el solsticio de invierno.

        Conociendo lo odioso que puede ser la oscuridad en estos lares y lo fanático de las velitas y de los artefactos lumínicos que son lo locales, no parece ser tan loco que quieran festejar que los días empiezan a alargarse (aunque esto no ocurrirá hasta dentro de poco más de una semana).

        Las velas también pueden hacer referencia a una leyenda pre-cristina en que la noche más larga del año lo animales nocturnos adquirían poderes sobrenaturales (incluso podían hablar) y había que mantenerlos alejados con fuego.

        Luciatåg: Significa procesión de Lucia. Es el acto por excelencia y se celebra totalmente independiente de la fiesta religiosa. Se realiza en escuelas (especialmente en las guarderías) y en ámbitos públicos en donde una mujer representa a Lucia llevado "la luz" con una corona de velas (electrónicas en muchos casos, matando cierta divertida tensión macabra). La vestimenta es una túnica blanca ceñida por una faja roja, representando el martirio. Las tärnor (literalmente, golondrinas, aunque también puede ser las damas de honor o doncellas) acompañan a Lucia llevando velas en las manos y cantando canciones tradicionales. Hay más personajes, pero quedarán para otro post.

        Entre las muchas tradiciones gastronómicas asociadas a esta época del año, hay una que hace referencia directa a Lucia: los lussekatter. Son como unas facturas dulces de azafrán y que representan ojos. La palabra lussekatt se traduce como gatos de Lucia y se suele acompañar con Glögg, una especie de glühwein local.

        Para terminar, durante esta fecha se elige en Estocolmo la Sveriges Lucia. Es una especie de concurso por representar a Lucia a nivel nacional en donde cada ciudad propone su candidata. Las participantes representan a una entidad de beneficencia y tengo entendido que se valoran las cualidades para canto y la personalidad con entrevistas que son televisadas. Se puede votar por tu Lucia favorita a través de SMS, aunque creo que la votación para este año ya está cerrada. ¿Que qué se lleva la ganadora? No tengo idea...

        Pero acá les dejo las candidatas finalistas de este año:

        Lunes 07 de noviembre de 2011

        Punto Libre: サイトマップ

        Viernes 01 de abril de 2011

        Tecnoscopio: Clon de Counter-Strike Gratis en tu navegador

        Miércoles 30 de marzo de 2011

        Tecnoscopio: Gestor de Descargas para Megaupload Depositefiles y otros

        Lunes 28 de marzo de 2011

        Tecnoscopio: Generación de electricidad con peatones y tránsito de autos

        Miércoles 09 de marzo de 2011

        Punto Libre: デートを成功させる