Viernes 20 de enero de 2017

Usemos Linux: El Rápido y Elegante KDE en openSUSE 13.2 Harlequin – Redes PYMES
Usemos Linux: Dale una nueva cara a Ubuntu Software Center con Arc Dark theme

Jueves 19 de enero de 2017

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

Miércoles 11 de enero de 2017

Javier Smaldone

Javier Smaldone
Blog de Javier Smaldone

Los garantes del voto electrónico en la Provincia de Córdoba

En la Provincia de Córdoba tenemos el triste privilegio, desde hace casi 30 años, de contar con un Consejo Profesional de Ciencias Informáticas de matriculación obligatoria (el CPCIPC). En virtud de una ley que supieron lograr en el año 1987, regulan el ejercicio de “la profesión informática” (como si tal cosa pudiera siquiera definirse). Sí, en Córdoba para desarrollar profesionalmente cualquier actividad relacionada con la computación hay que tener un “título habilitante” y pagar la matrícula del Consejo Profesional.

CPCIPC y Vot.Ar

Hace unos días, y desoyendo la voz de especialistas, la Legislatura de Córdoba aprobó una ley que ordena el uso de voto electrónico en las elecciones provinciales. Amén de implementar un sistema más que cuestionado, la norma pone en manos del CPCIPC la fiscalización (limitando la posibilidad de ser fiscal informático partidario a quienes estén matriculados) y seguramente sea también el CPCIPC quien asuma el rol principal en la realización de las auditorías del sistema informático a utilizar.

Lo que sigue es un ejemplo más del lamentable nivel de los informáticos nucleados en el CPCIPC.

El sitio web del CPCIPC

El programador Federico Heinz (que hace unos días publicó una excelente nota sobre el tema) hizo notar en Twitter que el sitio del CPCIPC tenía un ridículo sistema de autenticación para el acceso de los matriculados:

No pasó mucho tiempo hasta que algunos tuiteros comenzaron a ingresar al sistema usando los números de matrícula de las autoridades del CPCIPC (publicados en el mismo sitio) y su DNI (dato fácilmente obtenible si se tiene el nombre completo de la persona).

De nada sirvió el pedido de Federico Heinz, para algunos la tentación fue muy grande:

Alguien más encontró un error todavía más grosero: en el sitio del CPCIPC había un script que permitía descargar cualquier archivo del sistema que fuese accesible por el servidor web:

Este es el código del script “downloader.php” que se encontraba en el servidor:

¿Cómo es que los sesudos profesionales del CPCIPC cometieron este error digno de un principiante? Fácil: copiando y pegando código de la documentación de PHP:

Ejemplo de PHP

Pero evidentemente, los errores en el sitio del CPCIPC no se agotaban. Unos minutos después, ya alguien había modificado el contenido (reemplazando las fotos de las autoridades por la del dueño de la empresa MSA Sergio Angelini, vendedora de voto electrónico):

Más tarde, el sitio del CPCIPC ya estaba completamente “defaceado:

Disclaimer en el sitio

Hoy por la mañana, parece que ya estaban solucionando los problemas (o al menos algunos de ellos):

¿Algo más? Sí. Como era de esperar, y para completar la vergüenza, el servidor del CPCIPC ya había sido crackeado con anterioridad, por alguien que lo infectó con software que lo convierte en parte de un red de máquinas esclavas (botnet):

Infección en el servidor del CPCIPC

(Si, el servidor del CPCIPC podría ser usado por terceros para realizar ataques distribuidos de denegación de servicio. En definitiva, quienes lo descubrieron les hicieron un favor).

Conclusión

Esta es la gente que amenaza con denunciarme por “ejercicio ilegal de la informática” por presentarme en el Congreso de la Nación como programador y especialista en informática:

Amenaza de denuncia

Es la gente que “tutela el ejercicio de la profesión” y realiza inspecciones en la Provincia de Córdoba para determinar quién puede trabajar en informática y quién no:

También es la gente que se dedica a promocionar el sistema de voto electrónico de la empresa MSA y se ofrece a auditarlo en las elecciones:

Y es la gente que, gracias a la nueva ley provincial, tendrá el monopolio de la fiscalización electrónica en las votaciones por venir.

Gente que no puede implementar razonablemente un sistema de usuario y contraseña para autenticar a sus matriculados. Gente que no puede escribir una aplicación siguiendo los lineamientos básicos de seguridad. Gente que no puede ni siquiera mantener un servidor web sin transformarse en el hazmerreír de los programadores del resto del país. Ese es el Consejo Profesional de Ciencias (o “Carencias“) Informáticas de la Provincia de Córdoba.

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.


Miércoles 04 de enero de 2017

Ubuntips: ¿Por qué es importante usar software libre?
Ubuntips: Los mejores videojuegos para Linux

Sábado 31 de diciembre de 2016

Volviendo a lo básico, POO en Python ( herencia multiple, problema del diamante) (parte 8)

Volviendo a lo básico, POO en Python ( herencia multiple, problema del diamante) (parte 8)


Continuando con los artículos sobre programación orientada a objetos en python.

En el artículo anterior se explicó como trabajar con la herencia multiple. Ahora se  explicará el problema del diamante y como lo resuelve Python.

La herencia en diamante se muestra en la siguiente figura:

Donde la clase padre es la clase A, y la clase B y C heredan de ella, al final la clase D hereda tanto de B como de C y ambas clases como ya se saben heredan de A. ¿Por que vía se hereda de A, por B o por C?

Ese es en sí el problema del diamante; pueden encontrar más información en la página de wikipedia

Cada lenguaje tiene una forma de resolver este problema, para el caso de Python, este crea una lista de clases, que se buscan de izquierda a derecha y de abajo a arriba (D,B,A,C,A), luego elimina todas las apariciones de una clase repetida menos la última. Por lo que el orden de resolución queda D,B,C,A. 

A continuación se muestra un ejemplo en python: 




#!/usr/bin/env python3


# -*- coding: utf-8 -*-


"""multiple herencia, problema del diamante"""








class A(object):


    def __init__(self,mensajeA):


        self.mensajeA = mensajeA








    @staticmethod


    def quienSoy():


        return "Soy A"





class B(A):


    def __init__(self,mensajeA, mensajeB):


        A.__init__(self,mensajeA)


        self.mensajeB = mensajeB








    @staticmethod


    def quienSoy():


        return "Soy B"





class C(A):


    def __init__(self,mensajeA,mensajeC):


        A.__init__(self,mensajeA)


        self.mensajeC = mensajeC








    @staticmethod


    def quienSoy():


        return "Soy C"





class D(B,C):


    def __init__(self,mensajeA,mensajeB,mensajeC,mensajeD):


        B.__init__(self,mensajeA,mensajeB)


        C.__init__(self,mensajeA,mensajeC)


        self.mensajeD = mensajeD





    @staticmethod


    def quienSoy():


        return "Soy D"





if __name__ == '__main__':


    ca = A("prueba de A")


    cb = B("prueba de A desde B","prueba de B")


    cc = C("prueba de A desde C","prueba de C")


    cd = D("prueba de A desde D","prueba de B desde D","prueba de C desde D","prueba de D")


    print ("Mensaje de A:",ca.mensajeA)


    print ("Quien es?: ",ca.quienSoy())


    print ("Mensaje 1 de B:", cb.mensajeB)


    print("Mensaje 2 de B:", cb.mensajeA)


    print ("Quien es?:",cb.quienSoy())


    print ("Mensaje 1 de C:", cc.mensajeC)


    print ("Mensaje 2 de C:", cc.mensajeA)


    print ("Quien es?:", cc.quienSoy())


    print ("Mensaje 1 de D:", cd.mensajeD)


    print ("Mensaje 2 de D:", cd.mensajeB)


    print ("Mensaje 3 de D:", cd.mensajeC)


    print ("Mensaje 4 de D:", cd.mensajeA)


    print("Quien es?:", cd.quienSoy())








Noten que no se usó super, ya que para poder resolver la evaluación se hace más fácil definiendo el objeto directamente en vez de usar super una llamada de la herencia. 


Al ejecutar el código se tiene la siguiente salida:

Mensaje de A: prueba de A
Quien es?:  Soy A
Mensaje 1 de B: prueba de B
Mensaje 2 de B: prueba de A desde B
Quien es?: Soy B
Mensaje 1 de C: prueba de C
Mensaje 2 de C: prueba de A desde C
Quien es?: Soy C
Mensaje 1 de D: prueba de D
Mensaje 2 de D: prueba de B desde D
Mensaje 3 de D: prueba de C desde D
Mensaje 4 de D: prueba de A desde D
Quien es?: Soy D


Como pueden notar la ejecución de la última clase muestra la secuencia explicada en este artículo.

El código de este ejemplo lo pueden descargar desde gitlab





Volviendo a lo básico, POO en Python ( composición) (parte 9)

Volviendo a lo básico, POO en Python ( composición) (parte 9)

Para terminar la serie de artículos sobre programación orientada a objetos con python

La composición significa utilizar objetos dentro de otro objetos sin usar herencia.

A continuación se muestra el diagrama UML de dos objetos A y B. 



A continuación se muestra el código de ejemplo: 



#!/usr/bin/env python3


# -*- coding: utf-8 -*-


"""Composición"""


class A(object):


    def a1(self):


        print("a1")





class B(object):


    def b(self):


        print ("b")


        A().a1()








if __name__ =="__main__":


    objetoB = B()


    objetoB.b()








Al ejecutar el código se tiene la siguiente salida:
b
a1


Este ejemplo es algo sencillo. La composición es otra forma de reutilizar código.

El código lo pueden ver en gitlab



Volviendo a lo básico, POO en Python ( Multipleherencia) (parte 7)

Volviendo a lo básico, POO en Python (multiple herencia) (parte 7)


Continuando con los artículos de programación orientada a objetos con python, en este caso se tocará el caso de multiple herencia.

La siguiente figura se muestra el diagrama UML:


Se tiene las siguientes clases y de quien hereda:
  • Direccion(object): Tiene un método init que recibe los  argumentos calle, ciudad, estado y codigo.
  • Contacto(object): Tiene un método init con recibe los  argumentos nombre y correo.
  • Amigo(Contacto,Direccion): Tiene un método init que recibe los argumentos nombre, correo, telefono, calle, ciudad, estado y codigo.
  • ListaContactos: Tiene un método buscar que recibe un nombre como argumento.
Clase ListaContactos:



class ListaContactos(list):


    def buscar(self,nombre):


        '''Retorna todos los contactos que contengan el nombre'''


        contactos_encontrados = []


        for contacto in self:


            if nombre in contacto.nombre:


                contactos_encontrados.append(nombre)


        return contactos_encontrados





Clase Direccion:



class Direccion(object):


    def __init__(self,calle, ciudad,estado, codigo):


        '''Inicializa la clase con la calle, ciudad, estado y codigo postal)'''


        self.calle = calle


        self.ciudad = ciudad


        self.estado = estado


        self.codigo = codigo






Clase Contacto:


class Contacto(object):


    '''Clase contacto que guarda una lista de los contactos e inicializa con el nombre y el correo del contacto'''


    todos_contactos  = ListaContactos()





    def __init__(self,nombre, correo):


        self.nombre = nombre


        self.correo = correo


        Contacto.todos_contactos.append(self)






Clase Amigo:


class Amigo(Contacto,Direccion):


    def __init__(self,nombre, correo, telefono,calle,ciudad,estado,codigo):


        Contacto.__init__(self,nombre,correo)


        self.telefono = telefono


        Direccion.__init__(self,calle,ciudad,estado,codigo)







La instanciación de la clase amigo se muestra a continuación: 



contacto = Amigo("Ernesto","seraph2@contacto.com","04155556565","paez","guacara","carabobo","2015")


print(contacto.nombre,contacto.correo,contacto.telefono,contacto.calle,contacto.ciudad,contacto.estado,contacto.codigo)







Al ejecutar el programa se tiene la siguiente salida:

Ernesto seraph2@contacto.com 04155556565 paez guacara carabobo 2015


El código completo de este artículo se encuentra en gitlab en el siguiente enlace.


Jueves 22 de diciembre de 2016

Javier Smaldone

Javier Smaldone
Blog de Javier Smaldone

NO al voto electrónico en la Provincia de Córdoba

El día 21 de diciembre de 2016, la Legislatura de la Provincia de Córdoba, de forma sorpresiva e inexplicable, aprobó una ridícula reforma electoral para reemplazar la boleta única de sufragio por el sistema de voto electrónico conocido como “boleta única electrónica“.

Conferencia de Prensa en la FAMAF

El 20 de diciembre, se llevó a cabo una conferencia de prensa en la Facultad de Matemática, Astronomía, Física y Computación de la Universidad Nacional de Córdoba, en la que expusieron especialistas en informática y derecho. A continuación, las palabras que los legisladores cordobeses al día siguiente ignoraron para aprobar la reforma impulsada por el gobernador Juan Schiaretti.

Javier Blanco

Javier Blanco es doctor en ciencias de la computación por la Technische Universiteit Eindhoven de Holanda y profesor asociado de la FAMAF.

Carlos Dionisio Aguirre

Carlos Dionisio Aguirre es abogado, director internacional de Ageia Densi y vicepresidente de la Asociación de Derecho Informático de Argentina.

Javier Pallero

Javier Pallero es analista de políticas públicas en la organización internacional Access Now.

Nicolás Wolovick

Nicolás Wolovick es doctor en ciencias de la computación y profesor adjunto de la FAMAF.

Nota: también puede ver la conferencia completa.

Miércoles 21 de diciembre de 2016

Javier Smaldone

Javier Smaldone
Blog de Javier Smaldone

El retroceso electoral de Córdoba

Ante la imposibilidad del Gobierno nacional de implementar voto electrónico en la Argentina para el año 2017, varios gobernadores están impulsando reformas provinciales para implantarlo localmente. En la Provincia de Córdoba, a pesar de haber descartado la idea hace pocos meses, el Poder Ejecutivo ha presentado un ridículo proyecto de ley, que se aprobará casi sin discusión en los próximos días.

Voto electrónico by Schiaretti

Implementación de voto electrónico con un sistema que la ley no especifica ni define, controles a los equipos informáticos en 300 metros a la redonda de las escuelas y prohibición de fiscalizar a quienes no posean título universitario y estén matriculados en el tristemente célebre “Consejo Profesional de Ciencias Informáticas“. Córdoba pasará de tener uno de los mejores sistemas electorales del país, a plegarse a la movida “modernizadora” argentina de implementar un sistema que los países más avanzados del mundo han descartado.

No importa la amplia experiencia internacional, ni el contundente pronunciamiento de los departamentos de computación de cinco de las principales universidades nacionales (dos de ellas, cordobesas). Tampoco importa que Córdoba haya implementado exitosamente el sistema de boleta única de papel en el año 2011, ni siquiera las declaraciones del líder del oficialismo en la Legislatura, Carlos Gutierrez, hace sólo seis meses:

“Nos vamos a quedar con la boleta única que tenemos hoy. Córdoba ha avanzado y creemos que tenemos una buena herramienta que ya ha dado muestras de que es eficiente y práctica para la gente. Sí buscaremos, a través de algún mecanismo digital, la manera de acelerar los tiempos para tener resultados confiables en mejores tiempos”

No importa nada de esto. En un subrepticio e inexplicable arranque reformista, el Gobierno de Córdoba ahora impulsa la utilización de computadoras como medio de votación. Y lo hace mediante un proyecto de ley que hace que la lamentable iniciativa nacional demorada en el Senado parezca una pieza jurídica brillante. Por ejemplo, así es como nuestros legisladores creen que impedirán sabotajes, manipulaciones y violaciones del sistema informático de votación:

Artículo 12o.- Utilización de medios electrónicos por particulares en el acto
electoral.
La utilización por particulares de computadoras portátiles y de otros medios electrónicos que puedan interceptar o alterar el software empleado en la elección, podrá ser fiscalizada por las fuerzas de seguridad en la vía pública adyacente al establecimiento hasta un radio de TRESCIENTOS (300) metros del mismo y por las autoridades de mesa en su ámbito de jurisdicción, respetando el derecho a la inviolabilidad personal y ejerciendo el máximo de prudencia para el caso.

Sí, la nueva ley electoral limitará el uso de computadoras y otros equipos informáticos en un radio de 300 metros de las escuelas donde se vote (afortunadamente aclara que esto se hará “respetando el derecho a la inviolabilidad personal” y con prudencia). Pero la cosa no termina ahí. Como si fuera posible realmente fiscalizar una elección realizada con medios electrónicos, la ley agrega una dificultad adicional: los partidos políticos no pueden elegir libremente a sus fiscales informáticos, ya que se les exige tener un título universitario y estar matriculados en el infame Consejo Profesional de Ciencias Informáticas (otro engendro cordobès, también a contramano del mundo).

Quiero detenerme en este punto para destacar que curiosamente (o no tanto), el CPCIPC me amenazó con denunciarme por “ejercicio ilegal de la profesión informática” (aclarando que nada tiene esto que ver con ningún sistema de votación):

Amenaza del CPCIPC

Curiosamente, por un lado la ley restringe la libertad de los partidos para elegir a sus fiscales (y de los ciudadanos a fiscalizar), pero pretende esto de los ciudadanos que sean designados presidentes de mesa:

En caso de que se utilizaran medios electrónicos de votación, el presidente de
mesa examinará el o los dispositivos de votación, a pedido de los fiscales o cuando
lo estime necesario, a fin de cerciorarse que funcionen correctamente.

¿Será capaz cualquier ciudadano cordobés de asegurarse de que una computadora (tanto su hardware como su software) funciona correctamente? Modestamente, este programador sin título y sin matrícula profesional (con una década de experiencia en sistemas de votación electrónica) opina que no.

Tal parece que el nefasto proyecto de reforma electoral se aprobará el próximo miércoles 21 de diciembre, contra la experiencia internacional, la opinión de los expertos informáticos del mundo (no matriculados en el CPCIPC) y la racionalidad. Porque el Presidente de la Nación —al fallar su intento de implementar voto electrónico a nivel nacional en 2017— mandó a sus gobernadores aliados a modificar las leyes electorales provinciales con urgencia para votar usando computadoras (que algunos sospechan ya fueron adquiridas). El Gobernador de Córdoba garabateó un proyecto de 17 artículos en pocos días, Y la legislatura provincial dará curso al pedido sancionando la ley sin ningún tipo de discusión. No se me ocurre algo más parecido al feudalismo.

Adenda (21 de diciembre de 2016)

En el día de ayer, se realizó una conferencia de prensa en la Facultad de Matemática, Astronomía, Física y Computación de la Universidad Nacional de Córdoba, de la que participaron especialistas en informática y en derecho, alertando sobre los peligros de la reforma electoral propuesta.

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!

Miércoles 02 de noviembre de 2016

Ubuntips: ¿Qué programas funcionan mejor en Linux?

Sábado 01 de octubre de 2016

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.

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

Lunes 13 de junio de 2016

Javier Ledesma

Javier Ledesma
Ubuntronics

Richard Stallman nos explica: ¿Por que no usar celulares?

Richard Matthew Stallman (nacido en Manhattan, Nueva York, 16 de marzo de 1953), con frecuencia abreviado como «rms» es un programador estadounidense.


Es principalmente conocido por el establecimiento de un marco de referencia moral, político y legal para el movimiento del software libre, como una alternativa al desarrollo y distribución del software no libre o privativo.

Continuar leyendo »

Domingo 12 de junio de 2016

Javier Ledesma

Javier Ledesma
Ubuntronics

¿Cómo crear una lista de los paquetes instalados con Pacman y Yaourt?

Hacer una lista de todos los paquetes instalados en nuestro sistema ─en mi caso Arch Linux─ por medio de los gestores: Pacman y Yaourt, ¡es muy fácil!


Con ejecutar un solo comando en un Terminal es posible conocer los paquetes que hemos instalados, a excepción de los paquetes "base" y "base-devel".

Continuar leyendo »

Lunes 06 de junio de 2016

Javier Ledesma

Javier Ledesma
Ubuntronics

Jugar a Game Boy Advance en Linux con mGBA

Game Boy Advance (abreviada como GBA) es una popular consola de videojuegos de la compañía Nintendo. Hubo juegos de todos los géneros para esta consola que también, es compatible con todos los juegos de Game Boy y todos los de Game Boy Color.


mGBA en un emulador de Game Boy Advance con el que podrás disfrutar de todos los juegos de la fantástica consola de Nintendo en tu ordenador.

Continuar leyendo »

Jueves 26 de mayo de 2016

Linux Adictos: SuSE anuncia la disponibilidad de SLES for SAP Applications en AWS

Miércoles 25 de mayo de 2016

Linux Adictos: CentOS 6.8 ya está disponible
Linux Adictos: Comienza el desarrollo de OpenSUSE Leap 42.2

Martes 09 de febrero de 2016

Eduardo Federico

Eduardo Federico
Paraiso Linux

Usa tu smartphone para cuidar tu salud

Esto es sencillo y se puede resumir en una frase que vi por algún lado. "El sedentarismo es el nuevo tabaquismo". Hay varios estudios que se han realizado que demuestran exactamente eso. No tengo los links a esos estudios pero busquen en blogs mas especializados como vitonica y seguro los encuentran.

La cuestión es algo así: aun si dedicas una hora al día a correr o caminar pero pasas 8 o 9 hs al día sentado, ya sea trabajando o viendo anime, entonces estarás perjudicando a tu cuerpo, tu salud, por mas ejercicios que hagas antes o después de esa cantidad de horas sentado. Esto problemas son tan graves como aumentar la posibilidad de muerte prematura por problemas de corazón, obesidad (y todos los problemas derivados que esto trae) y hasta cosas "menos graves" como dolores de espalda que estoy seguro que muchos de los que están leyendo esto han padecido o lo están padeciendo en este mismo momento.

8 o 9hs sentado es poco en algunos casos. Ej: eres programador freelance. Entonces te levantas de la cama, te sientas en la pc, trabajas hasta la hora del almuerzo. Almuerzo que por supuesto comes frente a la pc viendo algun capitulo de las tantas series que te gustan, luego sigues trabajando. Y cuando has cumplido con tus horas laborales, llega la hora de ver algunos videos en youtube, leer en Internet sobre cosas que te interesen, jugar, etc. Y así hasta que llega la hora de dormir. Y nunca duermes suficiente por quedarte viendo mas series de algun anime o serie que te guste. Pufff...etc etc, pero al final una persona puede pasar mas de 14 horas al día sentado y hay que tomar conciencia del daño que eso esta causando aunque no lo notemos.

Entonces, la recomendación es que cada hora de estar sentados nos tomemos 2 minutos para caminar o hacer alguna pequeña actividad física.

Soluciones? pues lo primero que se me ocurrió fue comprarme un reloj o pulsera cuantificadora, tipo fitbit o nike fuelband. Se que muchas de ellas detectan si hemos estado sentado y sin hacer ninguna actividad mucho tiempo y entonces vibran en nuestra muñequa para que nos movamos. Eso es genial, pero al menos en mi país no son tan baratas y luego de mucho buscar encontré una app para Android que nos servirá de igual forma.

La app se llama Movn. Y se puede bajar desde play store.

Luego de instalarla y configurarla un poco con nuestros datos y metas básicos, llega la hora de usarla, y es muy sencillo. Les cuento como la uso yo.

movn salud en android

Básicamente tengo el smartphone en mi escritorio de trabajo, y pasada una hora este vibra y tiene una notificación sonora también, indicándome que ha pasado 1 hora sin que me mueva. Entonces agarro el smartphone, lo pongo en el bolsillo del pantalón y me levanto a caminar por mi casa por unos 2 a 5 minutos. Mientras aprovecho para hacer alguna llamada (usando el manos libres) de las que tengo que hacer en el día. Luego a sentarme y seguir trabajando o haciendo lo que sea en la pc.

Recomendación. Usa el manos libres si vas a hablar en esos 2 minutos que estas caminando, porque al menos a mi no me detecta que me he movido a menos que lleve el celular en el bolsillo.

Dentro de la aplicación verán que el único dato importante, o al menos en el que mas me fijo, es el que muestro en la captura de pantalla, que básicamente dice cuanto tiempo llevamos sin movernos.

Y también notaran que habrá un icono en el área de notificaciones todo el tiempo. Eso trae 2 problemas. Primero que la gente se vuelve loca por simplemente verlo ahí todo el tiempo y segundo que eso normalmente indica que la aplicación se esta ejecutando todo el tiempo, consumiendo la batería mas rápido de lo normal, pero si la duración de la batería es mas importante para ti que tu salud entonces seguramente no hayas ni llegado hasta este párrafo.

Bueno, ese es mi pequeño aporte para tratar de cuidar la salud de la gente, al menos de los pocos que lean este articulo. Si te gusto y quieres ayudar a tu familia y amigos a cuidar tu salud entonces...comparte!

La entrada Usa tu smartphone para cuidar tu salud pertenece a Paraiso Linux.

Viernes 05 de febrero de 2016

PCTux: Cupones de descuento en Argentina

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.

Martes 13 de octubre de 2015

¿Que es QRDA? #QRDA @QRDAve

QRDA nace bajo la idea de proveer soluciones tecnológicas a distintas organizaciones sin fines de lucro, a través del apoyo de twitter.com/delbosquetech y con el respaldo de la Comunidad del Software Libre en Venezuela.

Esta idea la propone Luis Ortiz, gran amigo y compañero de trabajo. Se desarrolla en una reunión social (agua, cerveza, jugos, refresco, pizza) por lo que es considerado un evento entre panas que buscamos un mismo fin: dar apoyo con nuestro conocimiento tecnológico para desarrollar proyectos determinados.

Luis en la Charla de Inicio de QRDA

Luego de establecer las bases que sustentarían este proyecto, se fueron creando diferentes tickets en github que permitieran establecer un orden a las actividades que se van desarrollando, para luego crear las diferentes listas de correo y comenzar a trabajar.

Al final de la actividad pudimos compartir con personas que se acercaron de diferentes parte de Venezuela y que integran la Comunidad del Software Libre, gente con la cual me identifico y que se ha ganado mi respeto.

La lista de agradecimiento es extensa, son muchos los involucrados en este maravilloso proyecto que, aún y cuando está comenzando, podría asegurar que ayudará a muchas personas y tendrá un crecimiento positivo. Muchas gracias a todos.

Les dejo las redes sociales de QRDA para que también puedan seguir este proyecto y, si lo desean, puedan unirse a nosotros:

https://twitter.com/QRDAve/
https://instagram.com/qrda.ve
https://www.facebook.com/QRDA.com.ve
http://qrda.com.ve

Nuevamente Gracias por venir.

Lunes 14 de septiembre de 2015

La accesibilidad web para personas con discapacidad visual

“La Accesibilidad” hoy en día es una de las palabras más utilizadas cuando nos referimos a las persona con alguna discapacidad, más específicamente la discapacidad visual. Ésta no solamente abarca los aspectos de software y hardware, sino que además se centra en la vida misma de estas personas, cómo puede hacerse más fácil la tarea de convivir con personas que no tienen este tipo de desventaja; debido a esto, las instituciones del Estado se han interesado y comprometido a realizar medios más accesibles para ellos, así por ejemplo tenemos los pasos peatonales, incluso hoy en día hablamos de la creación de páginas web o sistemas de información accesibles. Es importante resaltar que se debe hacer un buen uso de la tecnología para poder romper las barreras que se presentan.
La construcción de estos sistemas o páginas web son de gran ayuda para las personas que viven con esta discapacidad debido a que han sido de alguna forma discriminados, sin dejar a un lado que este grupo está ya formado por más de 30 mil personas en nuestro país, esto de acuerdo a las cifras arrojadas en el censo realizado por CONAPDIS (Consejo Nacional para las Personas con Discapacidad). Es por ello que en estos momentos se debe luchar por incluir a todas estas personas en las actividades cotidianas del hombre, más específicamente en el mundo de las tecnologías, permitiéndoles conocer, por medio de páginas web por ejemplo, todo el contenido que puede ser de su interés y así pueda salir adelante de una mejor manera. El objetivo principal es que estos sistemas estén disponibles para todas estas personas y que sean incluidas en el aparato productivo de nuestro país, además de que la misión es producir, transformar e implantar bienes y servicios lo suficientemente accesibles para ellos.
La tiflotecnología ha logrado grandes avances; a nivel mundial existen organizaciones dentro de las cuales podemos mencionar a La Once (Organización Nacional de Ciegos Españoles), la cual ha sido pionera en el uso de herramientas o dispositivos que ayudan a las personas con esta discapacidad, a ser independientes. También existen escuelas destinadas a la enseñanza completa de estas personas, como son la Lighthouse International en Estados Unidos, encargada de enseñar de manera completa con la finalidad de lograr el desenvolmiento de estos; les proporcionan ayuda en cuanto a la orientación, el uso del computador, el uso del bastón, además de otras actividades, todo con la finalidad de que cada uno de ellos no pase a ser una carga para sus familias, sino que sean personas independientes y capaces de desenvolverse tanto tecnológicamente como en las relaciones de su vida diaria.
La metodología aplicada en esta investigación es documental, ya que trata de ver lo que existe hoy en día, cómo se puede mejorar y cómo se pueden crear herramientas que verdaderamente sean útiles para el trabajo diario, ya que no tendría ningún sentido desarrollar aplicaciones sin tomar en cuenta a los usuarios interesados acerca de cómo se les puede ayudar.
Palabras Claves: Hardware, Software, Software Libre, Tiflotecnología, Discapacidad, Discapacidad Visual.

Este es uno de los tantos articulo arbitrado realizado en el proceso de postgrado, luego explicare las fases y las herramientas a usar.

Sábado 12 de septiembre de 2015

Instalar Samba en Debian

Primero que nada hacemos la instalación del paquete
root@orthanc:/home/julioh# aptitude install samba

En nuestro home creamos el nombre de una carpeta que vamos a usar para compartir
mkdir share
chmod 777 share

Luego modificamos el archivo de configuración de samba

root@orthanc:/home/julioh# nano /etc/samba/smb.conf


# Samba config file created using SWAT
# from UNKNOWN (192.168.42.219)
# Date: 2014/05/15 14:19:36
[global]
server string = %h server
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
usershare allow guests = Yes
panic action = /usr/share/samba/panic-action %d
idmap config * : backend = tdb
hosts allow = 127.0.0.1, 192.168.41.0/24, 192.168.40.0/24
#hosts deny = 0.0.0.0/0
#Comentamos el HostDeny para que me acepte los rangos de ip #de nuestra red interna
#[homes]
# comment = Home Directories
# valid users = %S
# create mask = 0700
# directory mask = 0700
# browseable = No

#[printers]
# comment = All Printers
# path = /var/spool/samba
# create mask = 0777
# printable = Yes
# print ok = Yes
# browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
[SALA]
comment = Archivos Compartidos
path = /home/julioh/share
#admin users = root, SalaP, sala01, sala02
#username = root
#hosts allow = 192.168.41.0
#read list = @users
#public = yes
#only guest = yes
#Le descomentamos para que puedan escribir
writable = yes
read only = yes
valid users = SalaP, root, sala01, sala02
write list = SalaP, root, sala01, sala02
# Lineas agregadas
# crear archivos con permisos rxw
create mask = 0700
# crear directorios con permisos rxw
directory mask = 0700

Luego Detenemos el demonio y lo volvemos a levantar
root@orthanc:/home/julioh# /etc/init.d/samba restart
[ ok ] Stopping NetBIOS name server: nmbd.
[ ok ] Starting NetBIOS name server: nmbd.
[ ok ] Stopping SMB/CIFS daemon: smbd.
[ ok ] Starting SMB/CIFS daemon: smbd.
[ ok ] Stopping Samba AD DC daemon: samba

Luego de esos podremos compartir archivos en un directorio seguro para una red interna.

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.

Martes 09 de junio de 2015

Eduardo Federico

Eduardo Federico
Paraiso Linux

Software libre para punto de venta

Todos aquellos que estén empezando un negocio, una pyme muy probablemente, lo primero que buscaran en cuestión de software es uno para punto de venta. Que es eso? Pues basicamente es aquel que va instalado en el lugar donde se cobra al cliente, la caja. Y es justamente de uno de programas del que les quiero hablar hoy.

Unicenta oPOS es justamente un software libre que sirve para cobrar al cliente cuando se vende un producto. Pero un software que solo haga eso no llama mucho la atencion y deja mucho que desear. Por suerte este no es el caso.

Las características de Unicenta son tantas que no voy a poder listarlas todas pero dejo las que mas interesantes me parecieron:

  • Interfaz con decenas de skins y ademas personalizable a gusto
  • Integración con scanners de código de barra
  • Integración con sistema de tarjeta de crédito
  • Integración con balanzas
  • Sistema de descuentos integrado
  • Soporte multilenguaje
  • Soporte para varias terminales/impresoras
  • Personalización de boletas/recibos
  • Distintos modos para distintos usos: restaurant, venta por menor, supermecado, etc.
  • Funciona en tablets (se recomienda una de al menos 10 pulgadas)

Me ha pasado, y estoy seguro que a ustedes también, de ver software privativo o a hecho a medida que parecía que alguien lo había diseñado con Paint en Hasefroch 95! En el caso de Unicenta me sorprende ver lo clara y limpia que es la interfaz.

unicenta software punto de venta

Ya me parece bastante como para tenerlo en cuenta pero no solo se encarga de registrar las ventas e imprimir un ticket. Sino que para hacer de este un sistema mas completo también cuenta con:

  • Gestión de inventario
  • Gestión de empleados
  • Gestión de proveedores
  • Gestión de clientes
  • Y un excelente sistema de reportes que completa esta solución para uso de los niveles gerenciales de un negocio.

Requisitos para instalar Unicenta

Un hardware mínimo: cualquier pc con al menos 512Mb de RAM.

Cualquier sistema operativo: Linux, Mac o Windows.

Que este instalado Java.

Y soporta multitud de sistemas gestores de base de datos: MySQL, Oracle Express, PostgreSQL e incluso soporta que tengas tu base de datos en la nube.

Es un software bastante fácil de instalar para alguien que tiene los conocimientos básicos de informática y pueden hacer uso de esta guía de este software para punto de venta.

Pero, si son dueños de un negocio y no tienen los conocimientos para instalar Unicenta, les aseguro que les sera mas económico pedirle a cualquier profesional o técnico que lo haga, a pedirle a ese mismo profesional pero con un software privativo en vez de usar este software libre.

Restricciones del software

Pfff....ninguna, te lo dan completo y como en la mayoria de esta clase de software ganan dinero gracias al soporte que algunas grandes empresas solicitan y a cambios particulares de desarrollo que se solicitan. Tambien pueden donar desde la pagina web oficial.

El software se puede conseguir desde su pagina oficial, desde sourceforge, incluso esta en los repositorios de algunas distros de Linux como en AUR de Arch Linux. Pero un detalle, siempre es mejor conseguirlo de esas fuentes, porque segun indican los mismos creadores hay gente ofreciendo este mismo software como si fuera privativo.

Pagina oficial: https://unicenta.com/

La entrada Software libre para punto de venta pertenece a Paraiso Linux.

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!!!

Viernes 10 de abril de 2015

Dinno Vezzoni

Dinno Vezzoni
- GNU/Linux

Nuevo en linux. Ayuda de configuración.

Hola, soy nuevo usando linux, exactamente linux mint 17.1, y he estado intentando configurar diversas apps, para usar juegos y/o aplicaciones de Windows. He usado Wine y el problema es que no me arranca el office por ejemplo.
Ademas desconozco comandos de configuración. Alguien podria ayudarme?

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.

Descargar (PDF, 1.14MB)

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.

Sábado 04 de abril de 2015

Dinno Vezzoni

Dinno Vezzoni
- GNU/Linux

Solucion a Error Initramfs en arranque de Ubuntu

Buenos días hoy les traigo la solución al problema de arranque initramfs que aveces nos arroja Ubuntu.

1. Introducir el CD Live o Usb con SO, y arrancar sin instalarlo.
2. Abrir la terminal y escribir:

Código: You are not allowed to view links. Register or Login
sudo fdisk -l
Esto mostrara las particiones, nosotros nos preocuparemos y trabajaremos con la que dice solo "Linux"

Ejemplo
Código: You are not allowed to view links. Register or Login
Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: **********
Device Boot Start End Blocks Id System
/dev/sda1 * 1 30238 242886703+ 83 Linux
/dev/sda2 30239 30401 1309297+ 5 Extended
/dev/sda5 30239 30401 1309266 82 Linux swap / Solaris

Una vez hecho esto escribimos en la terminal lo siguiente (en mi caso es /dev/sda1)

Código: You are not allowed to view links. Register or Login
sudo fsck /dev/sda1
3. Montar esta partición, este paso pocas veces lo mencionan pero es esencial para que funcione.

Código: You are not allowed to view links. Register or Login
sudo mount /dev/sda1 /mnt
Y listo, problema resulto. Espero que les haya sido de ayuda.
Saludos,, Cronos.-

Sábado 21 de marzo de 2015

Dinno Vezzoni

Dinno Vezzoni
- GNU/Linux

Kali Linux 1.1.0 Español 2015 (Former BackTrack) (X32 / X64 Bits) (RG)

Kali Linux 1.1.0 Español 2015 (Former BackTrack) (X32 / X64 Bits) (RG)



Kali Linux es una distribución basada en Debian GNU/Linux diseñada principalmente para la auditoría y seguridad informática en general. Fue fundada y es mantenida por Offensive Security Ltd. Mati Aharoni and Devon Kearns, ambos pertenecientes al equipo de Offensive Security, desarrollaron la distribución a partir de la reescritura de BackTrack,que se podría denominar como la antecesora de Kali Linux.
Kali Linux trae preinstalados numerosos programas incluyendo Nmap (un escáner de puertos), Wireshark (un sniffer), John the Ripper (Un crackeador de passwords) y la suite Aircrack-ng (Software para pruebas de seguridad en redes inalámbricas). Kali puede ser usada desde un Live CD, live-usb y también puede ser instalada como sistema operativo principal.


Metasploit Framework

Dado que sigue una política llamada Kali Linux Network Services Policy, no tiene servicios de red, incluyendo servicios de bases de datos, corriendo desde la instalación del sistema. Entonces. se deben seguir un par de pasos para hacer funcionar Metasploit con soporte de base de datos.

Iniciar el servicio de Kali PostgreSQL. Metasploit usa como base de datos PostgreSQL por lo tanto debe ser iniciado el servicio de esta base de datos antes de empezar la ejecución de Metasploit. Para verificar que está iniciado el servicio se puede utilizar el comando ss-ant asegurándose que el puerto 5432 está a la escucha.
Iniciar el servicio de Kali Metasploit. La primera vez que se ejecuta crea una base de datos msf3. También inicia Metasploit RPC y los Web servers que requiera. Se puede ejecutar msfconsole para verificar la conectividad con la base de datos con el comando db status.
Se puede configurar el sistema para que ejecute Metasploit en el inicio.


Forensics Mode en Kali Linux

BackTrack Linux introdujo la opción Forensics Boot al sistema operativo y se vio continuada en BackTrack 5, existe al día de hoy en Kali Linux. Sirve para poner a trabajar las herramientas de software libre más populares en materia forense de forma rápida y sencilla.

Se realizaron algunos cambios importantes:

El disco duro no se utiliza en absoluto. Lo que trae como consecuencia que si existe una partición swap no va a ser usada ni se monta automáticamente ningún disco interno.
Se deshabilitó el automontado de medios removibles. Entonces, ni los pendrives ni las lectoras de CD van a ser montados automáticamente
Herramientas para pruebas de penetración

Hoy en día la cantidad de herramientas o scripts existentes, que realizan tareas similares, es inmenso.
Claramente ciertos casos pueden ser mejores que otros, o puede tratarse de preferencias personales, pero en si el universo de herramientas es enorme. Por lo tanto, mantener un repositorio, de herramientas para pruebas de penetración actualizado, puede llegar a ser una tarea sumamente difícil.


Por el motivo antes expuesto obliga al equipo de desarrollo de Kali a ser muy selectivo al momento de incorporar herramientas.

Algunos de los cuestionamientos planteados al momento de elegir una nueva herramienta son los siguientes: ¿Es útil la herramienta en un entorno de pruebas de penetración?, ¿Contiene la herramienta las mismas funciones de otras herramientas existentes?, ¿Está permitido la libre redistribución por la licencia de la herramienta?, ¿Cuántos recursos requiere la herramienta?, ¿Funcionará en un entorno “estándar”?, etcétera.

TAMAÑO: 2,92 GiB / 2,78 GiB
TIPO DE ARCHIVO: IMAGENES ISO
USAR WINRAR 5.10 PARA DESCOMPRIMIR LAS ISOS




x32 bits.

You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

x64 bits.

You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Editado por Jimeno. Eliminación de gif.

Martes 10 de febrero de 2015

Eduardo Federico

Eduardo Federico
Paraiso Linux

El prompt de tu consola en Linux mucho mas bonito!

Que es el prompt? Abre una terminal o consola. Ves eso que esta escrito? Ver lo unico que esta aparece? Eso es el prompt.

Normalmente tiene un simbolo $ indicando que estas usando la consola como un usuario normal o un simbolo # para indicar que estas usandola como usuario root. Y es muy probable que tambien tenga una barra vertical | o un guion bajo _ titilando para indicar que esta a la espera de una nueva orden.

Un prompt basico y normal se ve algo asi:

prompt basico

Lo que indica este ejemplo basico es:

  • tu nombre de usuario: yourname
  • nombre de la pc: yourhost
  • directorio actual: ~
  • tipo de usuario: $

Apuesto a que ni habias prestado atencion a esos pocos datos verdad?

Pero esto no se queda ahi, podemos hacer mucho mas, para lograr algo mas util y mucho mas vistoso y bonito. Una consola para presumir

En primer lugar debes saber como modificar el prompt del bash. Para ello solo tienes que abrir el archivo .bashrc que esta en tu carpeta home (/home/tu_usuario/.bashrc) con tu editor de texto preferido. Al final de ese archivo tienes que escribir algo asi:

export PS1='cadena_de_texto'

donde cadena de texto se compondra de la suma de algunos de los controles que tenemos disponibles. Vamos a ver cuales son esos controles:

\d – La fecha en formato "Dia Mes Fecha" Ej: "Lun May 26")
\e – Caracter de escape ASCII
\h – El hostname
\H – El hostiname completo
\j – Numero de tareas corriendo actualmente en segundo plano
\n – Nueva linea
\r – Enter
\s – Nombre de la consola
\t – Hora actual en formato HH:MM:SS de 24Hs
\T – Hora actual en formato HH:MM:SS de 12Hs
\@ – Hora actual en formato am/pm de 12Hs
\A – Hora actual en formato HH:MM de 24Hs
\u – Nombre de usuario
\v – Version del bash
\w – Ubicacion actual completa
\W – Directorio actual
\$ – Tipo de usuario ($, #)
\\ – Una barra
\[ – Comienza secuencia de caracteres no imprimibles
\] – Termina secuencia de caracteres no imprimibles

Ejemplos:

Esto va a mostrar una carita distinta segun si el comando que se ejecuto se completo positivamente o si en cambio dio error:

PS1="\`if [ \$? = 0 ]; then echo \[\e[33m\]^_^\[\e[0m\]; else echo \[\e[31m\]O_O\[\e[0m\]; fi\`[\u@\h:\w]\\$ "

carita prompt

Como ves no solo se puede cambiar que es lo que se muestra sino dotarlo de funcionalidades si sabes programar un poquito.

Como encontrar mas ejemplos?

Lo mejor es usar google, no hay un solo lugar donde esten reunidos todos y la cantidad de diseños y usos que se le pueden dar son muchos. Les recomiendo buscar cosas como "bash prompt examples" o "ps1 prompts".

Generadores de PS1

Y si no tienes ganas de buscar entonces hay herramientas online para crear el tuyo propio. En estas herramientas solo tienes que arrastrar y soltar para crear configuraciones totalmente personalizadas, agregar todo el texto o simbolos que quieras y cambiar los colores.

Usa los comentarios para compartir tu configuracion. Si estas logueado podras no solo compartir el codigo que usaste sino tambien subir una imagen de muestra

La entrada El prompt de tu consola en Linux mucho mas bonito! pertenece a Paraiso Linux.

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!

Miércoles 21 de enero de 2015

Gabriel Talavera

Gabriel Talavera
gabrieltalavera

Tar sobre SSH sin tocar el sistema de archivos local

Command Line Kung Fu es un blog de tres eminencias en informática forense que ademas de publicar interesantes retos de linea de comandos entre ellos, (cada uno en su especialidad, bash, powershell y cmd) lo hacen con mucho humor y desmenuzando en detalle los comandos utilizados. Últimamente no postean con mucha frecuencia, pero aún así hay mucho material interesante para aprender.

Una de las joyas que descubrí hace poco es la del Episodio #164, básicamente, copiar un directorio completo creando un archivo tar que escribirá a traves de SSH a un archivo remoto sin tocar el sistema de archivos local.

tar zcf - localfolder | ssh remotehost.evil.com "cd /some/path/name; tar zxpf -"

En el ejemplo, tar creará un tarball de la carpeta "localfolder" y lo extraerá en el servidor remoto remotehost.evil.com sin dejar rastros.

Domingo 18 de enero de 2015

Gabriel Talavera

Gabriel Talavera
gabrieltalavera

Como cambiar el password de una clave privada SSH

Recientemente me vi en la necesidad de cambiar el passphrase mis claves privadas para conexiones SSH, lo hice mediante ssh-keygen:







  • -p: solicita cambiar el passphrase de un archivo de clave privada, al ejecutar ssh-keygen con este parametro deberás proveer dos veces la clave anterior y dos veces la nueva.
  • -f: indica la ruta al archivo de clave privada.

Este método también sirve para establecer un passphrase a a una clave privada creada sin contraseña.

Jueves 06 de noviembre de 2014

Martín Albisetti

Martín Albisetti
Martin Albisetti's blog

Click packages and how they’ll empower upstreams

As the pieces start to come together and we get closer to converging mobile and desktop in Ubuntu, Click packages running on the desktop start to feel like they will be a reality soon (Unity 8 brings us Click packages). I think it's actually very exciting, and I thought I'd talk a bit about why that is.

First off: security. The Ubuntu Security team have done some pretty mind-blowing work to ensure Click packages are confined in a safe, reliable but still flexible manner. Jamie has explained how and why in a very eloquent manner. This will only push further an OS that is already well known and respected for being a safe place to do computing for all levels of computer skills.
My second favorite thing: simplification for app developers. When we started sketching out how Clicks would work, there was a very sharp focus on enabling app developers to have more freedom to build and maintain their apps, while still making it very easy to build a package. Clicks, by design, can't express any external dependencies other than a base system (called a "framework"). That means that if your app depends on a fancy library that isn't shipped by default, you just bundle it into the Click package and you're set. You get to update it whenever it suits you as a developer, and have predictability over how it will run on a user's computer (or device!). That opens up the possibility of shipping newer versions of a library, or just sticking with one that works for you. We exchange that freedom for some minor theoretical memory usage increases and extra disk space (if 2 apps end up including the same library), but with today's computing power and disk space cost, it seems like a small price to pay to empower application developers.
Building on top of my first 2 favorite things comes the third: updating apps outside of the Ubuntu release cycle and gaining control as an app developer. Because Click packages are safer than traditional packaging systems, and dependencies are more self-contained, app developers can ship their apps directly to Ubuntu users via the software store without the need for specialized reviewers to review them first. It's also simpler to carry support for previous base systems (frameworks) in newer versions of Ubuntu, allowing app developers to ship the same version of their app to both Ubuntu users on the cutting edge of an Ubuntu development release, as well as the previous LTS from a year ago. There have been many cases over the years where this was an obvious problem, OwnCloud being the latest example of the tension that arises from the current approach where app developers don't have control over what gets shipped.
I have many more favorite things about Clicks, some more are:
- You can create "fat" packages where the same binary supports multiple architectures
- Updated between versions is transactional so you never end up with a botched app update. No more holding your breath while an update installs, hoping your power doesn't drop mid-way
- Multi-user environments can have different versions of the same app without any problems
- Because Clicks are so easy to introspect and verify their proper confinement, the process for verifying them has been easy to automate enabling the store to process new applications within minutes (if not seconds!) and make them available to users immediately

The future of Ubuntu is exciting and it has a scent of a new revolution.

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...

Miércoles 03 de septiembre de 2014

Gabriel Talavera

Gabriel Talavera
gabrieltalavera

Configuracion de targets iSCSI con tgtadm

Entre los objetivos del exámen EX436, no se mencionan dispositivos de almacenamiento basados en FC o FCoE, sin embargo, un conocimiento mínimo de iSCSI es fundamental. RHEL incluye tgtd como servidor iSCSI. En esta entrada vemos una configuración básica.

En el equipo que ofrecera los dispositivos de bloque o particiones a los demás nodos del cluster, instalar el paquete scsi-target-utils:
[root@san ~]# yum install scsi-target-utils

El servicio encargado de responder peticiones iSCSI es tgtd, y se administra con los comandos tgtadm y tgt-admin. El comando tgtadm no funcionará hasta que el servicio tgtd este corriendo, iniciamos este servicio y nos aseguramos de que sea persistente.
[root@san ~]# service tgtd start
Starting SCSI target daemon: [ OK ]
[root@san ~]# chkconfig tgtd on

Creamos un target con ID 1 nombrado iqn.2014-05.lab.demo:sharedStorageTest

[root@san ~]# tgtadm --lld iscsi --mode target --op new --tid 1 --targetname iqn.2014-05.lab.demo:sharedStorageTest

A pesar de que el target iSCSI ya esta listo para contestar peticiones, aún no tiene un dispositivo de bloque asociado (que podría ser, una unidad de disco, un volumen lógico, e incluso un archivo), con el siguiente comando comprobamos que el target esta listo. Puede apreciarse que aún sin añadir un backing store ya existe la LUN 0, que sería como una controladora lógica.

[root@san ~]# tgtadm --lld iscsi --mode target --op show
Target 1: iqn.2014-05.lab.demo:sharedStorageTest
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: null
Backing store path: None
Backing store flags:
Account information:
ACL information:

Creamos un archivo de 1GB para utilizarlo como backing store y nos aseguramos de que este en el contexto correspondiente de SELinux:

[root@san ~]# dd if=/dev/zero of=/var/lib/tgtd/sharedLUNS/sharedStorage1.img bs=1M seek=1024 count=0
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000229479 s, 0.0 kB/s
[root@san ~]# ls -ltrh /var/lib/tgtd/sharedLUNS/sharedStorage1.img
-rw-r--r-- 1 root root 1.0G May 12 13:21 /var/lib/tgtd/sharedLUNS/sharedStorage1.img
[root@san ~]# restorecon -R /var/lib/tgtd

Agregamos el archivo creado como backing store del target ID 1:

[root@san ~]# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store /var/lib/tgtd/sharedLUNS/sharedStorage1.img

Por ahora no nos adentraremos mucho en los aspectos de seguridad del protocolo iSCSI, como en su configuración por defecto tgtd no permite acceso a ningún nodo, abrimos el acceso a todos los iniciadores con el siguiente comando:

[root@san ~]# tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address ALL

Verificamos los targets activos:

[root@san ~]# tgtadm --lld iscsi --mode target --op show
Target 1: iqn.2014-05.lab.demo:sharedStorageTest
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 1074 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: rdwr
Backing store path: /var/lib/tgtd/sharedLUNS/sharedStorage1.img
Backing store flags:
Account information:
ACL information:

Para que los pasos realizados persistan a traves de reinicios, debe hacerse un dump de la configuración en ejecución y redireccionarlo al archivo targets.conf:

[root@san ~]# tgt-admin --dump
default-driver iscsi

<target iqn.2014-05.lab.demo:sharedStorageTest>
backing-store /var/lib/tgtd/sharedLUNS/sharedStorage1.img
</target>
[root@san ~]# tgt-admin --dump > /etc/tgt/targets.conf

Lunes 01 de septiembre de 2014

PCTux: Mejorar la velocidad de carga de aplicaciones con Prelink

Viernes 04 de julio de 2014

LaREPAWEB: WordPress merchandise

Viernes 06 de junio de 2014

LaREPAWEB: Concatenar filas de una tabla según la clave

Miércoles 30 de abril de 2014

LaREPAWEB: Monitoreo de Apache con Apache GUI en Windows

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.

 

Martes 24 de abril de 2012

David Doe

David Doe
e2391

Un alias para fbshot

Para capturar la pantalla en mi sistema sin X suelo utilizar fbshot. Amo este pequeño programa por su simpleza y permitirme documentar mis andanzas en la terminal. Lo único que siempre me da flojera es tener que especificar si o si el nombre del fichero de salida :P

Por eso cree este alias:

alias fbs=’fbshot -s 5 ~/Screenshots/`date +%F_%H:%M:%S_$HOSTNAME.png`’

Ahora mis screenshots están ordenadas por fecha, hora y nombre de la maquina :D

EOF

Lunes 23 de abril de 2012

David Doe

David Doe
e2391

Terminal monocromático

Jugando..

#4DC791
archlinux tmux

#4D6791
archlinux tmux

#898960
archlinux tmux

EOF

Viernes 20 de abril de 2012

David Doe

David Doe
e2391

CLI BASED SYSTEM: Archlinux en Olivetti Pentium III

archlinux tmux tty-clock newsbeuter vitunes vim conky

Ese es Archlinux corriendo en mi notebook Olivetti con un procesador Pentium III 700mhz, 180mb de RAM y un disco rígido de 18gb. Es una configuracíon muy minimalista al punto de no tener Xorg instalado. Todas mis tareas las realizo desde la tty valiéndome de distintas CLI apps. Mención especial para tmux  con el cual puedo ejecutar diferentes terminales virtuales en una misma tty.

Ahora ¿Que puedo hacer desde un entorno tan básico? Con newsbeuter leo mis feeds, a traves de elinks navego por la web y, si lo quiero hacer de forma grafica tiro con links. Gestiono mi mail con mutt, veo videos con mplayer, imagenes con fbi y pdfs con fbgs, escucho musica con vitunes, uso nano para escribir tonterias y editar ficheros de configuracion, vim para programar y hnb para tomar notas. Manejo ordenadores remotos con ssh, descargo torrents con rtorrent, chateo mediante irssi+bitlbee y pruebo la seguridad de mi red con aircrack entre otras cosas.

Cuando compre esta note, me la entregaron con una placa PCMCIA wifi con chipset RALINK, así que en cuanto a ese aspecto no tuve ningun problema. Para administrar mis conecciones utilizo netcfg+wifi-select que es de lo mas minimalista que hay.

El unico problema que tengo es con el brillo, no hay forma de que se lo pueda bajar. No molesta demasiado por suerte, pero no me quejaria si se pudiese modificar. Probe con varias distros y lo mismo, no hay forma. Asi que todavia ando investigando. Sacando eso todo funciona de diez.

Me gusta mucho usar este entorno, siento que aprovecho toda la potencia de esta vieja laptop. Del grub al login hay alrededor de 22 segundos y en el arranque consume unos 18mb de RAM mas o menos, lo que no esta para nada mal. Mas allá de lo que pueda parecer, me resulta muy cómodo usar este sistema. No soy dependiente del mouse y casi siempre me muevo con atajos de teclado por lo que no tarde en acostumbrarme demasiado a usar tmux. Además, el touchpad no es lo mio :P

Por ultimo comentar que me encanta el hecho de poder llevar a cabo tantas tareas en una computadora que tiene mas de una decada. Soy partidario de que los ordenadores viejos pueden reutilizarse de una manera u otra :)

EOF

Jueves 05 de abril de 2012

Soft-Libre: GNOME 3.4 disponible con interesantes novedades
Soft-Libre: Wallpapers para Ubuntu 12.04 LTS