Viernes 30 de enero de 2015

Luis Armando Medina

Luis Armando Medina
Como Instalar Linux

Comandos Linux: grep con ejemplos prácticos y útiles (parte 2)

Cuando quieres encontrar "ese" dato que necesitas dentro de algún archivo o en un texto generado por otro comando siempre tienes a la mano un de los comandos mas útiles que hay en Linux: el comando grep. Y aquí te muestro algunos ejemplos avanzados para sacarle todo el jugo a grep en linux.

Jueves 29 de enero de 2015

Gustavo Rubio

Gustavo Rubio
Ahí vamos

Grim Fandango y reviviendo otros muertos

Leía entre mis noticias hace un par de días sobre el remake de “La Bella y La Bestia” de Disney que protagonizará Emma Wattson y en dicho artículo de titulado “Why Is Disney Trying So Hard To Dilute it’s Brand?” (que traducido sería mas o menos algo así como “¿Por qué Disney se esfuerza en desaparecer su escencia?“) me llama la atención lo siguiente:

News of a Beauty and the Beast remake indicates that the corporation is less and less worried about approving unoriginal products as long as they’re guaranteed moneymakers.

¿Se trata entonces del simple hecho de repetir fórmulas probadas en vez de intentar evolucionar en el medio del entretenimiento? Difiero y estas son mis razones.

Solía haber un tiempo en el que las películas eran buenas, MTV ponía buenos videos musicales y en general la industria del entretenimiento valía la pena.

Lo anterior es uno de los comentarios mas comunes y latosos que escucharemos de cualquier persona pasada de sus 30’s. Es normal, es natural y es parte de la adultéz. Cuestión melancólica más guiada por puro sentimiento que por otra cosa.

A veces cuando me preguntan si he escuchado alguna canción en el radio de alguna nueva (o no tan nueva banda) suelo responder con un inocente y penoso “no, no me suena” y es que hace ya un tiempo que dejé de escuchar radio y simplemente cargo con mi colección de música para todos lados, ya sea en mi carro, en mi teléfono, en mi computadora, etc.

Inicialmente uno pensaría que la razón es porque la “nueva música” no es de mi agrado o me parece de poca calidad, sin embargo conforme he ido analizando el asunto me he dado cuenta que no es que esté cerrado a “nuevas propuestas”, es simplemente que lo que suelo escuchar es demasiado bueno para no escucharlo una y otra vez. Con algunas excepciones, pocas veces un disco nuevo o película contemporánea a marcado mi vida de manera que necesite volver a escucharla o verla de nuevo, sin embargo, eso no necesariamente significa que esta nueva música, o estas nuevas películas sean de mala calidad.

Me gusta pensar que me “he enamorado de los clásicos”, es decir, ¿A quién no le gustó Volver al Futuro? Cuando la primera entrega de esta saga salio al cine yo probablemente estaba en los brazos de mi madre, y mucha de la música que escucho se hizo cuando ni siquiera había nacido, decir que estos elementos artísticos me agradan porque son de mi generación sería hipócrita de mi parte, lo menos.

¿Cómo es que le tomé gusto a Los Beatles, Led Zeppelin, Hall & Oates Star Wars, Back To The Future, etc.? Bueno, porque simplemente son demasiado buenos para pasar desapercibidos. Y habrá quien no guste de estas bandas o de las mencionadas películas, pero para un grueso de la población simplemente son joyas, tesoros, patrimonio y debe compartirse tras generaciones tal como otras expresiones artísticas como la literatura, la pintura, etc. Simplemente se vuelven clásicos.

Dentro de estas expresiones artísticas existe un nicho que comparte, particularmente, la misma crítica que el cine y que la música para quienes lo consumen: Los Videojuegos.

Podría autodeclararme si bien no necesariamente un gran jugador si una persona que creció con la evolución de los mismos; desde NES con juegos clásicos como Mario, Contra, “El de los patos” hasta consolas actuales. Crecí con arcades o “maquinitas” como les decimos en muchos lugares pero en realidad nunca me convertí en fan ni jugador empedernido salvo por honrosas excepciones como Zelda en 64 y algunos otros títulos de SNES.

Una crítica concurrente entre los declarados “videojugadores genuinos” y a los que consideran como simples mortales son la diferencia entre el amor y pasión a los videojuegos e incluso apreciacion del arte dentro de los mismos y como los segundos simplemente lo ven como otro hobbie o pretexto para entretenerse. Los primeros aseguran que un buen videojuego debe contar con una historia que sumerja al jugador lo suficiente para apreciar este como algo más que un programa de entretenimiento. Aquellos que juegan títulos como Call of Duty, FIFA, Grand Theft Auto y otros títulos “AAA” suelen ser rebajados a n00bs.

Lo cierto es que mucha de la generación actual videojugadora simplemente usa lo que tiene a la mano, juega lo que el mercado le vende, no es tan sencillo como con la música o las películas. Uno puede simplemente comprarse un disco (o descargarselo) y escucharlo o ver una película hecha hace 40 años en un formato moderno con un dispositivo actual, no sucede lo mismo con los videojuegos. Estos últimos suelen estar creados para plataformas mas anticuadas y lo que sucede es que, a diferencia de la música o de las películas, un videojuego es una pieza electrónica de software que requiere interacción mas compleja con el dispositivo, es decir, no puedo tomar un cartucho del viejo NES y simplemente jugarlo en un Play Station 4 o un XBox One.

Y precisamente la razón por la cual es más sencillo que una persona contemporánea, joven de edad, adquiera gusto por discos musicales y títulos de películas clásicas más fácilmente. Remasterizar música y video es relativamente sencillo, “portar” un videojuego a nuevas plataformas no lo es.

Podría decir que me considero parte de los videojugadores que prefieren las buenas historias a unos gráficos que me dejen con la boca abierta. Me intriga más una buena ambientación en un videojuego que la facilidad de jugarlo en línea con otras personas. Y no es precisamente porque sea un hipster o melancólico, es porque afortunadamente me tocó crecer con títulos así.

Cuando comencé a jugar videojuegos por voluntad propia fue cuando tuve acceso a una computadora. Si bien mi hermano mayor y yo tuvimos la fortuna de tener consolas desde muy pequeños, nunca me volví “vicioso“. Tampoco solía gastarme el poco dinero extra que tenía en las maquinitas, nunca existió un enamoramiento de mi parte hacia los videojuegos de consolas, pero eso cambió conforme pude jugar en una computadora ya que ahí los juegos solían ser mucho más desarrollados, con historias más ricas, extensas, mapas mejor diseñados y detallados, ambientación, soundtrack, etc. La experiencia simplemente era abismal comparado a las consolas.

Uno de estos juegos que me cautivó fue Grim Fandando. Videojuego que casualmente será relanzado el día de hoy remasterizado. Un juego que se desarrolló hace casi 20 años por Lucasarts, casa desarrolladora de videojuegos del corporativo de George Lucas, ya inexistente por cierto, y que ahora es parte de los derechos de autor de Disney toda vez que esta última adquirió los derechos de mucho de lo que Lucas había creado con anterioridad.

El videojuego cuenta la trama de Manny Calavera, un personaje en el mundo de los muertos, muy al estilo de la reciente película “The Book Of Life“, pero en videojuego. Este, además de contar con una historia que envuelve y una ambientación “noir”, toma elementos de películas de antaño como “Casablanca” y “El halcón maltés“, todos por cierto, considerados clásicos del cine.

Es obvio que Disney sabe crear clásicos y tiene suficiente talento para crear nuevo material, sin embargo, como menciona el artículo que citaba al principio, pareciera que Disney, y muchas otras empresas se han quedado sin ideas y simplemente pretenden retornar a fórmulas probadas o bien comprar los derechos de productos de incluso otras industrias (como Grim Fandango) para generar ganancias, vivir de los refritos pues.

Creo que si bien en parte lo que busca Disney y otras empresas “reiniciando franquicias” es generar dinero, también el hecho de poder distribuir este material considerado clásico, a nuevas generaciones, es una buena jugada.

Tal como se ha estado desempolvando viejos títulos de cine y relanzando con éxito también se está trayendo clásicos de los videojuegos a aquellos que, como yo con algunos discos musicales, ni siquiera habían nacido. Para mi es algo positivo y definitivamente como consumidor me alegra la noticia.

Como dicen por ahí, “Los clásicos nunca pasarán de moda

Extra:

Además de haber sido remasterizado, Grim Fandango puede ser comprado desde Steam para plataformas Mac y Linux!

Miércoles 28 de enero de 2015

Julio Mayorga

Julio Mayorga
Blog 123Hosting.com.mx

Evita que se duerma tu PC con Caffeine

 

Caffeine es un programa que sirve para que impedir que la computadora se duerma o se bloquee mientras hay otros programas corriendo. Como por ejemplo, cuando estamos viendo una película y se bloquea la pantalla con el bloqueo automatico. Ahora con Caffeine podemos evitar este tipo de cosas.

Otro de los puntos a favor que tiene este programa, es que tiene una interfaz gráfica muy sencilla, la que permite crear listas de programas con prioridad, lo que evitará el bloqueo de la pantalla.

Para la instalación de este programa, tipeamos lo siguiente en una consola:

$ sudo add-apt-repository ppa:caffeine-developers/ppa
$ sudo apt-get update
$ sudo apt-get install caffeine

Para usarlo, vamos al menú de inicio de nuestro sistema operativo y escribimos Caffeine y este lo abrirá

Martes 27 de enero de 2015

Emerson Posadas

Emerson Posadas
toxickore BLOG

Bicicletas de última milla + automóviles modulares

En la mañana venía pensando sobre una idea. Primero pensé que las pizzas del perro negro son como una aberración culinaria pero a pesar de eso mucha gente las ha tomado como wow. Pizza de chiles rellenos? al menos no es para mi, pero para todo tenemos gustos.
Me pareció una idea aberrante, pero para algunos es cautivadora y atractiva, pensé.

¿Que tal si tuviéramos un auto-bici? fué mi siguiente pensamiento en analogía a una pizza y chiles rellenos; hummmm auto+bici. Y si tuviéramos algo así como bicicletas con algún tipo de motor modular, que pudieran anexarse a otras 3 para formar algo como un automóvil?

Vamos por partes.

1) Una bicicleta que se anexe a otras
2) 4 Bicicletas "anexables" formarían un automóvil
3) Este automóvil formado por 4 bicicletas podría tener un mejor desempeño al tener por dar un ejemplo mas caballos de fuerza

Pensemos en las implicaciones o incentivos de esto:

1) Motivaría esto a mas personas a hacer algún tipo de "bicicarpooling"?
2) Podríamos hacer la última milla en nuestro "módulo"
3) Podríamos cubrir las distancias largas en el automóvil formado por 4 módulos bici

No creo ser el primero en pensar en esta idea pero supongo no es viable por el momento y nadie lo ha desarrollado.

Un auto equivalente al teléfono modular de google.
Alex Callejas

Seguridad y Hardening en Servidores Linux

knowledge

Lo mejor que podemos hacer por otro no es sólo compartir con él nuestras riquezas, sino también mostrarle las suyas - Benjamin Disraeli

El pasado Noviembre presente este tema durante un evento, el cuál les quiero compartir, en caso de que no hayan podido asistir:

Ver en YouTube

Además, la tira de Dilbert presentada ese día:

Ver en YouTube

Aquí la presentación.

Espero les sirva…

Sábado 24 de enero de 2015

Lo que no me gusta de nativos digitales

El año que paso lo he discutido bastante en clase y por lo que estuve medio leyendo por ahí varios lo han estado discutiendo en la red, igual menciono los puntos que me parecen importantes.

En más de un momento he expresado que no me gusta la categorización de Nativos Digitales / Inmigrantes Digitales (Prensky 2001[1]), para hablar sobre los estudiantes que tienen facilidad con las TIC, me parece que es un concepto incompleto ya que se basa en un corte por fecha o por decirlo por edad, el cual se sostiene solo en zonas con solvencia económica.

Hablar de que son más inteligentes por estar expuestos a la tecnología también me parece un despropósito, creo que hay dos cosas que especialmente dejan de lado quienes apoyan esta categorización con fiereza, 1) los chicos no solo tienen acceso a la tecnología, tienen mucho tiempo libre para usarla 2) No tienen temor a equivocarse (todavía) por lo mismo a prueba y error descubren como usarla.

Noten que entonces con estos dos puntos no es que nazcan con nuevo chip, que nosotros hayamos nacido con transistores o nuestros padres con bulbos, cada generación dependiendo de su capacidad económica, cultural y otros parámetros ha tenido una exposición diferenciada ya no digamos uso y apropiación a las diferentes tecnologías disponibles.

Pero el punto que más me lleva a pensar sobre esta generalización es que mucha gente mayor que de por si se siente presionada por la velocidad con la que los jóvenes utilizan ahora la tecnología, se siente hoy día más presionados y se auto sabotean al pensar que ellos deben usarla así de rápido, cuando en realidad ellos ya saben mucho más que los otros y si deben aprender cosas, pero no las mismas y en los cursos de formación digital, estamos poniendo énfasis en intenciones distintas, valga el ejemplo que he mencionado en clase y que alude a mi entorno de trabajo.

En algún momento estas materias se sacaron del currículo con la justificación de que todos saben usar una computadora, por lo mismo no hay necesidad de tener una materia que enseñe a usarla, es decir se confundió el medio con el fin, para ponerlo en una metáfora, todos tenemos pies y todos aprendimos a caminar… y no,  yo prefiero ponerlo en, si todos caminamos, pero no por tener pies mañana vamos a participar en un maratón y siquiera terminarlo, hay que aprender a usar las herramientas de las mejores formas o dicho de otra forma no vamos a enseñar a usar la computadora, enseñamos a usar la computadora para hacer cosas escolares y profesionales.

[1] http://www.marcprensky.com/writing/Prensky%20-%20Digital%20Natives,%20Digital%20Immigrants%20-%20Part1.pdf

Viernes 23 de enero de 2015

Luis Armando Medina

Luis Armando Medina
Como Instalar Linux

Comandos Linux: grep con ejemplos prácticos y útiles (parte 1)

Cuando quieres encontrar "ese" dato que necesitas dentro de algún archivo o en un texto generado por otro comando siempre tienes a la mano un de los comandos mas útiles que hay en Linux: el comando grep. Y aquí te explico con ejemplos prácticos como sacarle todo el jugo a grep en linux.
Julio Mayorga

Julio Mayorga
Blog 123Hosting.com.mx

Permisos en Linux

Cuando uno empieza en sistemas linux el tema de los permisos es una verdadera paja, pero es necesario, tarde o temprano hay que entender como funcionan.

Aquí va una breve explicación mas o menos didáctica de como funcionan.

las lineas que comienzan con el signo # son solo comentarios.

Todo esto se aplica a linea de comandos.

Hagan pruebas y experimentos, no es tan engorroso como parese.

Cualquier cualquier duda, háganla, les responderé a penas pueda.

#para ver los permisos que tiene el contenido de la carpeta donde estamos
ls -l

#cambiar permiso de carpeta o archivo
#agregar -R para que sea recursiva “osea que los permisos se apliquen a todo el contenido del directorio”
chmod -R permiso carpet|archivo

#donde permiso es la combinacion de un numeros compuestos por tres digitos, que se explica mas abajo.
#ejemplo de chmod con permiso para lectura escritura y ejecucion para el propietario, el grupo, y otros:
chmod -R 777 carpeta

#se dividen en tres caracteres, de izquiera a derecham el primero es el propietario, el segundo el grupo al que pertenece y el tercero es otros.

La “regla” de los números quedaría mejor explicado y entendible si la explicas en binario:
// el 1 activa el permiso, el 0 lo apaga

Lectura escritura ejecución
0 0 0 = 0
0 0 1 = 1
0 1 0 = 2
0 1 1 = 3
1 0 0 = 4
1 0 1 = 5
1 1 0 = 6
1 1 1 = 7

0 = Ningún permiso (Lectura = 0 + Escritura = 0 + Ejecución = 0)
1 = Permiso de Ejecución (Lectura = 0 + Escritura = 0 + Ejecución = 1)
2 = Permiso de Escritura (Lectura = 0 + Escritura = 2 + Ejecución = 0)
3 = Permiso de Escritura y Ejecución (Lectura = 0, Escritura = 2, Ejecución = 1)
4 = Permiso de Lectura (Lectura = 4 + Escritura = 0 + Ejecución = 0)
5 = Permiso de Lectura y Ejecución (Lectura = 4 + Escritura = 0 + Ejecución = 1)
6 = Permiso de Lectura y Escritura (Lectura = 4 + Escritura = 2 + Ejecución = 0)
7 = Permiso de Lectura, Escritura y Ejecución (Lectura = 4 + Escritura = 2 + Ejecución = 1)

Cód Binario Permisos efectivos
0 0 0 0 – - –
1 0 0 1 – - x
2 0 1 0 – w –
3 0 1 1 – w x
4 1 0 0 r – -
5 1 0 1 r – x
6 1 1 0 r w –
7 1 1 1 r w x

(r) = lectura
(w) = escritura
(x = ejecucion
(-) = ninguno

Miguel de Icaza

Miguel de Icaza
Miguel de Icaza

In Defense of the Selfie Stick

From the sophisticated opinion of the trendsetters to Forbes, the Selfie Stick is the recipient of scorn and ridicule.

One of the popular arguments against the Selfie Stick is that you should build the courage to ask a stranger to take a picture of you or your group.

This poses three problems.

First, the courage/imposition problem. Asking a stranger in the street assumes that you will find such a volunteer.

Further, it assumes that the volunteer will have the patience to wait for the perfect shot ("wait, I want the waves breaking" or "Try to get the sign, just on top of me"). And that the volunteer will have the patience to show you the result and take another picture.

Often, the selfista that has amassed the courage to approach a stranger on the street, out of politeness, will just accept the shot as taken. Good or bad.

Except for a few of you (I am looking at you Patrick), most people feel uncomfortable imposing something out of the blue on a stranger.

And out of shyness, will not ask a second stranger for a better shot as long as the first one is within earshot.

I know this.

Second, you might fear for the stranger to either take your precious iPhone 6+ and run, or even worse, that he might sweat all over your beautiful phone and you might need to disinfect it.

Do not pretend like you do not care about this, because I know you do.

Third, and most important, we have the legal aspect.

When you ask someone to take a picture of you, technically, they are the photographer, and they own the copyright of your picture.

This means that they own the rights to the picture and are entitled to copyright protection. The photographer, and, not you, gets to decide on the terms to distribute, redistribute, publish or share the picture with others. Including making copies of it, or most every other thing that you might want to do with those pictures.

You need to explicitly get a license from them, or purchase the rights. Otherwise, ten years from now, you may find yourself facing a copyright lawsuit.

All of a sudden, your backpacking adventure in Europe requires you to pack a stack of legal contracts.

Now your exchange goes from "Can you take a picture of us?" to "Can you take a picture of us, making sure that the church is on the top right corner, and also, I am going to need you to sign this paper".

Using a Selfie Stick may feel awkward, but just like a condom, when properly used, it is the best protection against unwanted surprises.

Jueves 22 de enero de 2015

Curso: Seguridad en el Desarrollo Web

El día 27 de enero participare en escuela.it un proyecto de desarrolloweb.com, dando el tema de Seguridad en Servidores, en el cual se verán las amenazas comunes que puede sufrir un servidor conectado a Internet. Aprenderemos a monitorear los servidores y a protegerlos frente a este tipo de ataques maliciosos evitando que se conviertan en un blanco fácil para cualquier tipo de atacante.

Sí te interesa saber más checa el programa con cursos.

Dinámica de las sesiones
El objetivo general de esta nueva inciativa es capacitar al profesional para incorporar técnicas de Seguridad tanto a su profesión como a sus aplicaciones. A lo largo de tres semanas llevaremos a cabo una sesión diaria de una duración aproximada de 90 minutos + turno de preguntas a cargo de algunos de los mejores profesionales internacionales en el mundo de la seguridad online.

La plataforma elearning donde se imparten las sesiones te permitirá visualizar la exposición y práctica de cada ponente en tu propio equipo con la máxima calidad, además podrás plantear tus dudas en directo mediante chat o mediante audio y disfrutar de un completo set de herramientas con las que sacar el máximo partido con el mínimo esfuerzo.

Todas las sesiones se celebrarán a las 20:30 horas España (península), es decir 13:30 horas de México, 14:30 de Colombia y Perú, o 16:30 horas de Chile y Argentina. Además todas las clases quedarán íntegramente grabadas en vídeo por lo que no tendrás que preocuparte si por cualquier compromiso no puedes asistir a una o a todas las sesiones.

¿A quien se dirige este Congreso?
A todos aquellos desarrollares, diseñadores y administradores de un sitio web que quieran crear o participar en proyectos robustos gracias a un código seguro protegiéndo la información sensible y crítica manejada en una aplicación web.

Más info[+]

Julio Mayorga

Julio Mayorga
Blog 123Hosting.com.mx

Diferentes formas de emular Android en PC

En algunas ocasiones ya hemos hablado de cómo poder conectar nuestros dispositivos Android a nuestro PC o incluso de cómo controlar ciertas cosas desde el mismo. Así hemos visto por ejemplo cómo recibir las notificaciones de Android en el PC.

Pero no todo queda ahí, pues hemos podido incluso emular Android en nuestro PC. Y eso vamos a tratar precisamente en este artículo, enumerando algunas de las mejores formas de emular Android en el PC.

Android en una máquina virtual

En primer lugar, puede ser que queramos tener una instalación para algún fin concreto en nuestro PC. Para ello, podemos utilizar un gestor de máquinas virtuales, como puede ser VirtualBox o VMWare, e instalar una copia limpia de Android en la misma. A partir de ahí, el resto será administrarla como una máquina virtual más.

celulares
De hecho, en El Androide Libre ya os enseñamos un tutorial paso a paso para montar una máquina virtual con Android.

Andy OS

Otra forma de poder usar nuestras apps favoritas en Android en el PC es el uso de algún software que permita la instalación de dichas aplicaciones en nuestro sistema operativo (por ejemplo, Windows). Una alternativa es Andy OS, un software que ofrece una experiencia Android completa directamente desde el PC, permitiendo tanto correr sus aplicaciones como mostrar toda la interfaz gráfica del sistema de Google en su emulador.

Hola
Además, soporta Google Play, por lo que podremos instalar las apps que deseemos. Así que si echas de menos alguna aplicación de Android en tu PC, ya sólo debemos instalarte este emulador.

BlueStacks

Otra alternativa a la anterior es el uso de BlueStacks, un software que ha conseguido una gran evolución, llegando también a incorporar Google Play, Amazon Store y 1-Mobile. Además, está disponible para MAC y Windows 8.

adios
Pero llegan un paso más allá, y tendremos disponible una aplicación con la que sincronizar las aplicaciones del teléfono y el PC, de modo que cualquier cambio se hará efectivo en ambos dispositivos.

Emuladores de la SDK

Otra opción viene de la mano de la SDK de Android, donde disponemos de una serie de emuladores que podemos crear y ejecutar. En esa lista no sólo contaremos con dispositivos genéricos, sino también con modelos específicos, como pueden ser los Nexus o algunos modelos de Sony Xperia.

Android
De hecho, de la mano de Android Studio podremos incluso emular dispositivos wearables con Android Wear, por lo que esta opción se convierte en una de las más usadas para todos los desarrolladores especialmente.

ArChon

ARChon es una extensión para Google Chrome que, con unos simples pasos, nos permite ejecutar casi cualquier aplicación de Android en nuestro ordenador sin complicaciones ni historias varias. Y en El Androide Libre ya os hemos explicado cómo instalarlo y usarlo, tanto para PC Windows, como Linux o MAC.

7 maneras para tener Android en tu PC
Que sea posible pasar aplicaciones de Android a Chrome con un esfuerzo significativamente pequeño es una gran señal: puede que la unificación entre escritorio y móvil se encuentre mucho más cerca de lo que pensamos, algo que serían grandes noticias para todos.

Genymotion

Otra forma de virtualizar Android en nuestro ordenador es a través de Genymotion, una herramienta compatible con Windows, Mac o Linux que crea una máquina virtual de Android para ofrecer una interesante emulación en tiempo real completa, totalmente compatible con ADB, soporte para varios sensores (GPS, cámara, sensor de batería..) y hasta aceleración de hardware OpenGL.

celulares
Genymotion es fácil de instalar como ahora veremos. Para poder funcionar en nuestro ordenador necesitaremos contar con al menos 2GB de RAM, 100MB de espacio. Y aquí puedes ver cómo instalarlo.

Manymo

Esta es la última opción que os mostramos: Manymo, un emulador de Android en la web. Una web que nos ofrece un emulador rápido, ligero y fácil de usar para que un desarrollador pueda mostrar su aplicación en la web y los usuarios puedan probarla. Este emulador puede ser incrustado en cualquier web.

Hola

 

Alcance Libre: Elastix MT
Alcance Libre: Linux Todo en Uno

Martes 20 de enero de 2015

Miguel de Icaza

Miguel de Icaza
Miguel de Icaza

In Defense of the Selfie Stick

From the sophisticated opinion of the trendsetters to Forbes, the Selfie Stick is the recipient of scorn and ridicule.

One of the popular arguments against the Selfie Stick is that you should build the courage to ask a stranger to take a picture of you or your group.

This poses three problems.

First, the courage/imposition problem. Asking a stranger in the street assumes that you will find such a volunteer.

Further, it assumes that the volunteer will have the patience to wait for the perfect shot ("wait, I want the waves breaking" or "Try to get the sign, just on top of me"). And that the volunteer will have the patience to show you the result and take another picture.

Often, the selfista that has amassed the courage to approach a stranger on the street, out of politeness, will just accept the shot as taken. Good or bad.

Except for a few of you (I am looking at you Patrick), most people feel uncomfortable imposing something out of the blue on a stranger.

And out of shyness, will not ask a second stranger for a better shot as long as the first stranger is within earshot.

I know this.

Second, you might fear for the stranger to either take your precious iPhone 6+ and run. Or even worse, that he might sweat all over your beautiful phone and you might need to disinfect it.

Do not pretend like you do not care about this, because I know you do.

Third, and most important, we have the legal aspect.

When you ask someone to take a picture of you, technically, they are the photographer, and they own the copyright of your picture.

This means that they own the rights to the picture and are entitled to copyright protection. The photographer, and not you, gets to decide on the terms to distribute, redistribute, publish or share the picture with others. Including making copies of it, or most every other thing that you might want to do with those pictures.

You need to explicitly get a license from them, or purchase the rights. Otherwise, ten years from now, you may find yourself facing a copyright lawsuit.

All of a sudden, your backpacking adventure in Europe requires you to pack a stack of legal contracts.

Now your exchange goes from "Can you take a picture of us?" to "Can you take a picture of us, making sure that the church is on the top right corner, and also, I am going to need you to sign this paper".

Using a Selfie Stick may feel awkward, but just like a condom, when properly used, it is the best protection against unwanted surprises.

Lo que dejo el año viejo

  • Gallery [1] dejo de ser soportado a mediados del año y me entere justo antes de salir de vacaciones, tengo que buscar un remplazo.
  • Zenphoto no me gusto como remplazo… y creo que tiene un rato que anda descuidado [2]
  • Coppermine no me gusta como remplazo de Gallery [3]
  • Aprendí mucho más de Moodle, Claroline y otros muchos LMS [4] de lo que hubiera deseado y espero también se publique un articulo al respecto.
  • Logre pasar unas vacaciones offline casi por completo.
  • Dormí como no había hecho en un buen rato.
  • Planetalinux se movió lejos, pero ahora ya esta de regreso, geográficamente esta lejos, se encuentra cerca y me involucre un poco más.
  • Aprendí que las prioridades cambian con el tiempo, de primera mano
  • Y que es cierto eso de que hay cosas que no se pagan con dinero, sobre todo las satisfactorias.
  • Todavía queda mucho por hacer este año, mucho por organizar y más por concretar, esperemos como lo he planeado pueda sacar el mejor provecho del mismo.

[1] http://galleryproject.org/time-to-hibernate
[
2] http://www.zenphoto.org/
[3] http://coppermine-gallery.net/
[
4] http://seminarioplataformas.cuaed.unam.mx

Lunes 19 de enero de 2015

Gustavo Rubio

Gustavo Rubio
Ahí vamos

The invented here syndrome

lazywebCuenta la historia que, hace muchos años, cuando los programadores eran hombres y se escribían sus propias rutinas, clases, funciones y módulos, un fenómeno conocido como reutilización de código comenzaba a volverse hip, igual que las canciones de MC Hammer, los trolls y otras cosas espantosas de la epoca. Para entonces, los más viejos, y no por ello sabios, arraigados a sus ortodoxas, anticuadas y puercas formas, sufrían de lo que se le conoce hoy como el “Not Invented Here” syndrome, o el síndrome de “No se hizo aquí” que significa, en breve, solo utilizar recursos propios de la empresa y evitar a toda costa aquellos de externos, palabras más, palabras menos.

The “Not invented here” syndrome

Desarrollar software es una de las disciplinas más complejas que existen. Quien se dedique a esta biznaga lo sabrá, y quienes no probablemente no lo comprenderán. Y es que, como siempre comento, para desarrollar software útil uno debe no solamente entender su propia profesión relacionada con código, lenguajes de programación, lógica, razonamiento, matemáticas, cálculo y demás chunches sino que además debe entender perfectamente bien el negocio para el cual está desarrollando el producto, sería tonto pensar que solo con saber ciencias computacionales podríamos ser útiles a la sociedad. Para realizar un artefacto (virtual, en este caso) que ayude a mejorar el flujo de trabajo, ahorrar tiempo y eficientar procesos de otros sectores laborales es imperante que uno como ingeniero en software, programador o desarrollador entienda perfectamente bien el problema que intenta solucionar, de hecho, y la mayoría de las veces, aun mejor que quien nos paga para solucionar dicho problema.

Habiendo entonces tantos problemas que solucionar, diagramas que diseñar, juntas, análisis, levantamiento de requerimientos, etc. queda, sino mínimo, sí muy limitado tiempo para hacer lo que nos gusta, “tirar código“, como dicen mis colegas, y es por esta razón que conforme la computación se volvió mas accesible y sobre todo el Internet, se propuso, de manera extra oficial, ayudarnos los unos a los otros, como dice por ahí en algunas escrituras.

Verán, el hecho de reutilizar el trabajo de otros no es nada nuevo. Una de mis frases favoritas, y probablemente lo he dicho un millón de veces es aquella de Sir Isaac Newton, aplicable siempre a muchos de mis posts:

If I have seen further than others, it is by standing upon the shoulders of giants

Mi estimado Isaac se refiere al hecho de que, reutilizando y apoyandose en el trabajo de terceros es posible progresar, de alguna manera, el poder invertir nuestro preciado tiempo solucionando otros problemas nos permite tener mejores resultados, es decir, si ya existen motores que nos permiten mover vehículos es más inteligente reutilizar las leyes de la física, comprobadas, de un motor de bobina o de combustión que reinventar uno nuevo basado en alguna otra cosa. “If it works, don’t try to fix it” es el motto de muchos ingenieros.

Sin embargo, a pesar de esta filosofía, existe aún mucho programador decidido a utilizar solamente su código o aquel de sus colegas propios del mismo empleador. Verán, el programador es un animal sumamente ególatra, celoso de su trabajo y posesivo y hará lo que sea para demostrar que sus dancing moves son los mejores, aun cuando, francamente, a nadie le importa.  Lo anterior se conoce como el not invented here syndrome, o el sindrome de “No está hecho aquí” y aunque cada vez se ha vuelto menos común esta actitúd, aun existe, sobre todo en aquellos de la vieja escuela, no dispuestos a aceptar que hay alguien que probablemente lo haya hecho mejor que nosotros.

El sindrome de “No está hecho aquí” se ha desterrado de muchas industrias a lo largo de los años, no solo de la del desarrollo de software, por ejemplo, hace años, cualquier empresa de manufactura de electrónicos probablemente diseñaría la mayoría de los dispositivos, microcontroladores, tarjetas y chips de una televisión, hoy en día esta misma industria probablemente solo ensamble componentes, hechos en diferentes empresas, de diferentes países, globalización le llaman. ¿Por qué? Bueno porque permite una línea de ensamble muy rápida a menores costos lo cual se traduce a mejores ganancias, o sea lana.

Por otra parte, el hecho de tener enfocado a un equipo de trabajo o empresa en un área específica es sumamente redituable ya que especializa a dicho equipo o empresa a ser líder en su sector o ramo específico y sobre todo de invertir tiempo, dinero e investigación en problemas muy particulares mientras que su vecino de nave industrial hace lo mismo; dedicarse a resolver otros problemas muy particulares.

En nuestro estado, Baja California, existen infinidad de fábricas, o maquilas, como se les conoce, que se dedican a mercados verticales muy específicos, por ejemplo, asientos para aviones, marcos para ventanas, cajas de cartón. Si! Uno podría pensar, y bueno ¿Quién estaría interesado en fabricar marcos para ventanas exclusivamente? Bueno, toda la industria de construcción, hotelera, compañías dedicadas a materiales y muebles, etc. El beneficio es que quien se encarga de uno de estos mercados verticales lo hará perfectamente bien con procesos muy eficientados y esto se vuelve una cadena donde al final la suma de esos mercados verticales se traduce a un producto final para el consumidor de calidad.

El software no es muy diferente a estas otras industrias. Una aplicación requiere de infinidad de componentes y módulos que bien nos pueden llevar años terminar, es por ello que también existen casas de desarrollo y empresas dedicadas a vender productos para nosotros, los programadores, que podemos ensamblar y agregar extras para tener una aplicación útil para el consumidor en un tiempo relativamente corto, el tiempo es dinero así que entre más rápido se saque un release es mejor.

Recuerdo mis primeros pininos intentando hacer algo útil con un lenguaje de programación. Era más difícil de lo habitual, tenía uno muy pocas herramientas a la mano y había que hacer casi todo “a pata”. Alguna vez intenté hacer una aplicación de chat, que se conectara a la recién nacida red de Microsoft MSN, sin embargo, conforme pude juntar los requerimientos para mi aplicación en Visual Basic 6, me dí cuenta que inevitablemente tendría que programar un módulo de sockets TCP para realizar dicha comunicación. Logré realizar un pequeño cliente capáz de iniciar sesión y enviar mensajes, nunca recibirlos. Al final decidí que era más complicado de lo que parecía y tiré la toalla, de cualquier modo ni siquiera me pagaban por ello.

Si hubiera tenido el cuerno de la abundancia de componentes de terceros que existen ahora, y que permiten solucionar problemas muy específicos, otro gallo me hubiera cantado.

Los años dorados

Tiempo después de mis intentos (o varios) de aplicaciones, hace unos 15 años ya, el Internet mejoró no solo la comunicación de los mortales, como nos gusta llamarle a los usuarios comunes a nosotros los geeks, sino que además permitió a quienes ya estábamos metidos en esto volvernos más creativos; salas de chat de temas específicos donde podíamos compartir ideas, foros de Internet donde hacer preguntas cuando alguien estaba atorado en alguna parte de su código y claro, componentes o software de terceros, bien sea pagados o descargados, “de prestado” de algún FTP.

Por ejemplo, mi primer lenguaje de programación oficialmente fue Pascal, con Turbo Pascal de Borland. Aplicaciones de consola en Ms-Dos. No había mucha creatividad que explotar. Tiempo después me di cuenta que no llegaría muy lejos con dicha herramienta y me pasé Visual Basic 6 ya que era lo más fácil de tomar para alguien de la epoca, bien era esto, Visual C++ o Delphi. ¿Por qué no pasarme directamente a Delphi, si era la evolución natural de Turbo Pascal, con la misma empresa, y el mismo lenguaje que ya conocía pero orientado a objetos? Bueno, por los componentes!

Aquellos eran tiempos dorados para ambas empresas. Por una parte, Borland tenía con Delphi sus VCL’s que permitían crear interfaces de usuario en poco tiempo y con mucha funcionalidad, Microsoft Visual Basic 6 incluía ya también componentes que encapsulaban elementos de GUI’s que nos llevarían meses pulir en MFC de Visual C++. ¿El resultado? Bolsillos llenos de dinero tanto para ISV’s como para quienes extendían estos componentes y los vendían como 3rd party libraries listas para usarse, justo como tu madre dejó de hacer caldo de pollo para el guisado y comenzó a comprar cubos de Knorr Suiza.

La segunda ronda

Poco duró el gusto a quienes se estancaron desarrollando aplicaciones para el escritorio. Conforme hubo más Internet y velocidades de acceso más rápidas las aplicaciones web se volvieron un estandard, y con ello, las interfaces de usuario basadas en nuevas tecnologías como HTML con CSS para el diseño y Javascript para la interacción con el usuario. Pero así como Delphi, Visual Basic 6 y Microsoft Visual C++ tenían sus pormenores dependiendo la versión del sistema operativo, del compilador y de las librerías así nos pasó con el desarrollo web: diferentes versiones de navegadores suponían (y suponen aun, hasta el día de hoy) problemas de compatibilidad entre el mismo código, es parte de nuestro trabajo sí, pero lo hace más complicado, y nos quita tiempo, es una de esas cosas las cuales optamos por dejarle a alguien mas resolver mientras nosotros nos enfocamos en solucionar los problemas para los cuales nos ha pagado nuestro cliente o nos pagara nuestro usuario final.

Es así como nacen librerías como Dojo Toolkit, jQuery, script.acolo.us y otras que nos permiten encapsular funcionalidad general para varios navegadores y desarrollar interfaces de usuario compatibles entre distintos entornos de una manera fácil.

El web developer vs el programador

Hay quienes onerosamente y con mucho orgullo se hacían llamar web developers. Una especia de nueva profesión nacida del programador de hobbie y con fuertes influencias de aquellos programadores de Visual Basic 6, a quienes seguramente estoy ofendiendo con la comparación, pero veamos, alguien que se dedica al “desarrollo web” suele ser usualmente alguien que:

  • Viene de la industria del diseño o alguna otra área creativa, completamente diferente a la del desarrollo de software
  • Busca maximizar la productividad con el esfuerzo mínimo
  • Entiende conceptos básicos de programación pero no el ciclo de desarrollo de software o teorías computacionales

Por otra parte, quienes se bautizaron en la industria del software con tecnologías como Visual Basic 6:

  • Tendían a ser personas con estudios técnicos con mucha práctica y poca teoría
  • Buscaban entregar productos con la mayor cantidad de características con el esfuerzo mínimo
  • Encapsulaban la mayoría de la carga pesada en el código de sus aplicaciones en componentes de terceros

Siendo que las industrias y sectores ajenos al del software no logran comprender la complejidad del nuestro, es común que buzzwords como web development se vuelvan una moda y se invierta buena cantidad de dinero en ser parte del movimiento, tal como en estos días todo es la nube, para gerentes, CTO’s y otros ejecutivos.

Y como vivimos en la selva y cada quien se tiene que rascar con sus propias uñas, no era raro que quienes ayudados por estos componentes de terceros, content management systems como joomla, drupal o wordpress y conocimientos básicos de programación se hayan vendido como… bueno, web developers.

A diferencia de un web developer, un programador suele conocer los fundamentos del desarrollo de software, metodologías, herramientas y teorías de ciencia computacional que al otro le parecen bien aburridas, pérdida de tiempo o simplemente difíciles de comprender.

Si bien un buen programador e inteligente, usará el trabajo de otros para agilizar su trabajo, conoce el balance entre uso y abuso porque, creanlo o no, como todo en esta vida, es posible abusar también del trabajo de terceros.

El sindrome de “Está hecho aquí

Hace apenas unos días, una situación que ocurrió en el trabajo, me hizo pensar y motivó a escribir este artículo. Era día de release o entrega al cliente, se probó una nueva versión del producto, todo parecía haber funcionado a la perfección tanto en el equipo del desarrollador de frontend encargado de este feature como en la mía al momento de hacer QA, se realizaron pruebas también en el servidor de producción de este feature, todo funcionaba correctamente.

Pasó el fin de semana y recibí un correo de nuestro cliente indicando que uno de los features no funcionaba. Pensé que algo mal habría hecho el cliente ¿Qué podría haber fallado? Es decir, pruebas en todos los entornos se realizaron sin que este feature en especial hubiera fallado.

El lunes al llegar a la oficina probamos el deployment hecho al servidor, efectivamente había un problema en una de las páginas, problema que NO se manifestó cuando inicialmente se hizo el deployment a producción. Después de un par de horas encontramos el problema, problema que fue causado por el framework de UI que utilizamos, AngularJS.

¿Cómo pudo haber pasado esto?

Muy sencillo, a pesar de haber probado el feature A, contra el entorno de producción, y sin problemas, posteriormente se hicieron otras actualizaciones totalmente diferentes al feature A y que de ninguna manera afectaban su funcionamiento, sin embargo hubo un factor diferente, ajeno a nuestro propio código: el script que se corre cada vez que actualizamos realiza un build o empaquetado del frontend por medio de bower:

bower install && bower update

Si, el culpable estaba ahí, no en nuestro código, sino en uno de los (muchos, muchísimos) plugins que utiliza AngularJS, específicamente uno encargado de las rutas de la aplicación.

Una de las veces que se ejecutó este comando, después de haber probado feature A, se actualizó el plugin dejando este feature A, que ya se había probado, con problemas. Es decir, la actualización de código que no controlamos introdujo un problema.

¿Cómo pudimos solucionarlo?

Básicamente tuvimos dos opciones:

  1. Actualizar el plugin, volviendo a ejecutar el comando, pues ya existía una nueva versión con este fix aplicado
  2. Ajustar la versión a una específica dentro de nuestro proyecto, a una que sabemos funciona sin problemas, de manera que bower no actualice nunca el plugin

Y, temporalmente, decidimos aplicar la opción 1, en lo que lograbamos entender realmente el problema y buscar una solución adecuada y de largo plazo.

¿Nos hemos vuelto holgazanes como programadores?

Esta es una pregunta que me hago, y les hago a mis compañeros de trabajo, en repetidas ocasiones. Tal como en algún momento, los programadores de Visual Basic 6 abusaron de los componentes de terceros siento que aun, en pleno 2015, seguimos aplicando las mismas tendencias y malas prácticas, las trajimos del desarrollo de software de aplicaciones de escritorio a las aplicaciones web.

Si bien no estoy en contra de librerías que encapsulan funcionalidad para manipular el DOM entre navegadores, object relational mappers para acceso a base de datos, etc. sí estoy en contra de su abuso.

Alguna vez en uno de mis anteriores empleos, mientras desarrollábamos una aplicación en ASP.Net, uno de mis compañeros, encargado de la parte de UI decidió que era buena idea agregar un DLL como dependencia extra para ahorrarnos trabajo en la generación de cierta parte del código, y, ¿Cuál era esa parte? Un menú, un menú de 5 elementos, una simple lista con 5 enláces para el cual agregamos una dependencia de 1.2Mb solo porque mi colega era demasiado huevón (o inútil) para agregar unas 20 líneas de código HTML y CSS para crear dicho menú pero, oh, nuestro componente incluso tenía un editor visual!

Esta misma aplicación, con esta dependencia contaba además con:

  • jQuery
  • Dojo
  • ASP.Net Ajax Toolkit
  • Otros…

Y esto solo como parte del UI. Podrán imaginarse la aplicación entera, dependencia sobre dependencia, con tiempos de compilación ridículos para lo que debía hacer nuestra aplicación.

La razón por la cual se utilizaron tantos frameworks y librerías es que algunos implementaban features que otros no tenían, es decir, siempre se buscó la manera de complementar la falta de características o plugins de uno con el de otro, pero jamás les pasó por la cabeza la solución mas cercana, obvia y al final del día razón para la cual nos habían contratado: programarlo nosotros mismos.

Hay quienes podrán criticarme y mencionarme términos como DRY, KISS y otros principios de desarrollo y yo les digo: fuimos contratados para programar y resolver problemas.

Es decir, no somos una línea de ensamble, aunque existan empresas que claramente eso quieren y necesitan. Aun, particularmente en entornos donde no necesariamente se vive un ambiente de “maquila de software” se vive un frenesí casi absurdo de dependencia de terceros, donde si utilizamos algo hecho por nosotros esté probablemente mal, porque, ¿sábes? alguien más ya lo hizo en github, pero ¿lo has probado? No! pero no voy a complicarme…

Herramientas como nuget, composer, gems, npm y demás si bien nos han facilitado la vida también nos han vuelto holgazanes, esperando siempre que alguien más resuelva nuestros problemas.

A esta holgazanería la he bautizado como “El sindrome de está hecho aquí”, queda estrictamente prohibido utilizar nuestro código en primer plano de prioridad porque, somos tontos, inferiores y menos inteligentes que cualquier otro indivudo en github.

Las consecuencias de la co-dependencia absurda en tiempos modernos

¿Existen consecuencias de abusar del uso de estos componentes de terceros? Claro! De hecho, todos los extremos son malos, ustedes saben, el ying y el yang.

Una de las cosas que hacen más estables a sistemas como Linux es la filosofía UNIX: cada componente del sistema debe realizar una tarea específica, y realizarla bien. El problema es que que ya no vivimos en tiempos de UNIX cuando los hombres eran hombres, y los programadores programaban. La facilidad y encapsulación de los nuevos lenguajes de programación de muy alto nivel nos han vuelto maquinas ensambladoras y menos pensadores, cuando se desarrollaron la mayoría de las herramientas base de UNIX había otro pensamiento entre el mundo de los ingenieros.

Aun cuando consideramos que cada componente debe realizar una tarea específica y bien hecha y que seguramente quien realizó dicho componente puso empeño en realizarlo con altos estándares de calidad, existen problemas naturales derivados de que quien realizó dichos componentes sufre de un mal común: ser humano. Los humanos no somos perfectos y nos equivocamos así que es muy común que nuestro software contenga bugs o problemas con cada versión, es entendible y natural.

El problema real se asoma cuando, en la búsqueda de volvernos más productivos, nos volvemos consumidores enfermizos del trabajo de otros. Una de las razones por las que más se quejaban los usuarios de aplicaciones a finales de los 90’s y principios de los 2000’s, sobre todo en entornos de Microsoft Windows era la poca calidad y estabilidad de los productos. ¿Adivinen quienes eran los culpables?  DLL’s, librerías de terceros, componentes hechos fuera de casa. Mientras que el fabricante de dicho software esperaba ansiosamente una actualización de dicha librería para solucionar el problema, problema que naturalmente estaría fuera de sus manos resolver pues era código sobre el cual no tenía experiencia, ya habría pasado suficiente tiempo para que tanto el producto como el fabricante fueran tachados como mala calidad, chafa, chino, etc.

No mucho ha cambiado desde entonces ya que solo nos movimos a otras plataformas. He visto aplicaciones web “modernas” utilizar librerías de terceros de una manera abusiva, helpers de bases de datos que agregan megabytes y megabytes a nuestro build solo para realizar algunas pocas validaciones, 35 plugins de node para poder hacer funcionar un pequeño componente de UI en angular.

Tal como los programadores, en su momento, y aun en dias actuales, de C++ y otros lenguajes de mas bajo nivel no temen crear sus propias librerías, frameworks y utilizar componentes de terceros cuando es estrictamente necesario así quienes nos dedicamos a desarrollar aplicaciones web y otras plataformas no deberíamos temer aplicar nuestros conocimientos para crear software inteligente y no solo ensamblarlo, basado en código de otros, código que en cualquier momento puede fallar y del cual no solamente no tenemos el suficiente conocimiento para mantener sino además los recursos.

La colaboración es una de las cosas más extraordinarias que nos ha dado el Internet y las tecnologías distribuidas y hacen nuestro trabajo emocionante e interesante, pero también pensar como solucionar problemas propios y no temer a hacer lo que se supone sabemos hacer es una de las cosas más gratificantes que puede haber, aun cuando podamos pensar que alguien más lo hizo mejor que nosotros. Nunca debemos subestimarnos, pero sobre todo, nunca hay que dejar de sorprendernos a nosotros mismos con lo que podemos hacer individualmente o en un mismo equipo de trabajo.

Y es que colaborar no es un delito pero la mente humana está desarrollada para tomar las mejores decisiones si el sujeto u objetivo en cuestión es uno mismo, ¿Cómo podría siempre, alguien más, decidir la mejor manera de hacer algo?

Existe una anécdota extraída del libro Gabby: A story of courage and hope, de Gabrielle Giffords y Mark Kelly, este último, piloto de la NASA quien llevó varias veces el transbordador allá arriba y esposo de la primera, ex-congresista de EUA y quien recibió un disparo en la cabeza en Arizona hace unos años:

as the doctor described the massively invasive surgery his wife would require, Kelly thought back to the poor decision-making at NASA that had resulted in two fatal accidents. Post-Challenger and -Columbia, NASA set up a conference room to facilitate good decision-making. One wall bears the warning “None of us is as dumb as all of us.”

Determined not to let the medical team march off in lockstep, Kelly gathered all the doctors and residents in a small break room at the hospital. “At NASA, one thing I’ve learned is you can’t ask the space shuttle commander or the flight director or the chief engineer their opinion first. You’ve got to seek out the opinion of the junior people,” said Kelly. So he chose the youngest looking person in the room–an opthamology resident–and asked for her opinion on the injury and procedure. He then went around the room until everyone had had a chance to voice their views. Ultimately, the doctors performed the operation.

Tal como Kelly lo menciona, “None of us is as dumb as all of us” así que quizá, y solo quizá, si de vez en cuando individualizamos nuestro trabajo como ingenieros de una manera objetiva e independiente, de manera que, pensemos en la mejor opción para resolver nuestro propio problema y no el de todos los demás (o el de alguien más en particular) entonces podamos tener mejores resultados. La NASA tomó esta filosofía después de los desastres del columbia y el challenger, no veo porque nosotros como ingenieros en software no podamos aplicarla también… de vez en cuando.

Saludos.

Viernes 16 de enero de 2015

Luis Armando Medina

Luis Armando Medina
Como Instalar Linux

ClipGrab: descargar videos en Ubuntu nunca fue tan fácil

Muchas veces me han preguntado ¿como descargo un video de youtube a mi laptop? y muchas veces depende de que sistema operativo o que navegador estés usando y la verdad que no es una respuesta sencilla, pero ahora esta aplicación ClipGrap que funciona tanto en Windows como Linux (y mac) puede hacer esta tarea de forma simple, como debería ser. Con ClipGrap puedes descargar videos de Youtube, Vimeo, Metacafe, Dailymotion y otros.
Gerónimo Orozco

Gerónimo Orozco
Patux's booring news

OpenStackGDL Meetup Enero 2015

Registrate


Jueves 15 de enero de 2015

Itzcoalt Alvarez Moreno

Itzcoalt Alvarez Moreno
Itzcoalt (itz) Álvarez

Buscando la Pasión

Recientemente y ante ciertos acontecimientos, me he puesto a pensar el papel que como padres tenemos en la elección de la carrera universitaria de nuestros hijos.

En teoría, la elección es de ellos, sin embargo, en muchas familias, la opinión de los padres o tal vez la tradición familiar los inclina hacia una profesión, padre contador, madre contadora, hijo contador, por mencionar un ejemplo.

Pero, me pregunto, ¿quiénes somos nosotros para definir o acaso influenciar en tan gran decisión a nuestros hijos?

Pues nadie, aun cuando nosotros paguemos la carrera, además, esta influencia puede ser perjudicial para ellos, porque, como siempre he mencionado, lo importante es que ellos encuentren la pasión que los alimente a seguir adelante, la pasión que les permita ser felices estudiando y haciendo lo que les gusta.

De nada sirve un Médico, que no ejerce, porque lo suyo es el baile clásico, se convierte en un mal médico, si es que alguna vez entra a ese mundo.

O peor aún, que tal si ellos no desean una educación universitaria, o si a lo que desean dedicarse no está basado en una licenciatura.

Finalmente es la decisión de ellos, y debemos respetarla, no obligarlos a hacer algo que no quieren.

Lo que si es importante, es ayudarles a encontrar su pasión, algunos lo hacen pronto, otros por desgracia nunca la encuentran y vagan de un oficio a otro.

Domingo 11 de enero de 2015

Farid Bielma

Oportunidades de la Reforma Energética para ingenieros

Recientemente, para un grupo de trabajo de la carrera de ingeniería industrial del Tecnológico de Monterrey, me hacían la pregunta: para ti, que ventajas trae la reforma energética que podamos aprovechar? Es oportuno mencionar, que por definición, costumbre o necesidad, egresados de esta ingeniería se especializan en temas de gestión de la calidad, sin embargo, con la reforma, existen un mundo que oportunidades que podrían aprovechar.

Enumero una lista de áreas de trabajo a los qué egresados de ingenierías podrían especializarse:

- Identificando o creando necesidades en el mercado
- Analizando la cadena de suministro y creando las oportunidades para optimizar algún proceso
- Diseñando y mejorando métodos de trabajo y resolviendo fallas de mercado
- Simular procesos de extracción
- Ayudando a detectar áreas de mejora para la incorporación de tecnología en la producción
- Participación en concursos públicos y/o privados: licitaciones

Viernes 09 de enero de 2015

Libertad de expresión

Ayer con los hecho terribles en Francia[0] , leí una cantidad de tremenda de opiniones y comentarios sobre los hechos, mucho de política y de religión y otras cosas que tal valiera la pena tocar más a fondo, pero varios que leí, iban en el tenor de que, escudándose en la libertad de expresión medios que no son “periódicos” o por decirlo de otra forma medios tradicionales de comunicación habían hecho sátira de un grupo y entonces me viene a la mente la máxima atribuida a Voltaire “podre no estar de acuerdo con lo que dices, pero defenderé hasta la muerte tu derecho a decirlo” [1].

Y no notan lo ridículo del asunto, pongámoslo en un contexto más cercano, imaginemos que los católicos entran a las instalaciones del periódico Machetearte ese de cuatro páginas que se reparte por cooperación voluntaria en el metro y que con machete u otra arma contundente acallaran la opinión que los molesta o que un grupo de testigos de Jehova asediaran y asesinaran a los que publican el sitio web de noticias satíricas Deforma, así de incongruente y terrible es la situación o una más que un grupo de ateos enojados masacran a el equipo editorial semanario católico Desde la Fe.

El gran problema no es “si te escudas tras la libertad de expresión”, es que por eso existe uno debe poder ser libre de expresarse, si yo escribo en este blog o si lo hago pagando en un papel y lo distribuyo, a menos que difame y publique cosas que no puedo comprobar existe una legislación al menos en México que me puede meter en problemas, pero por ejemplo si se me antoja como ahora escribir que me parece que ahora que los católicos abolieron el limbo no estaría de más que lo hicieran con el purgatorio, y pudiera escribir largo y tendido sobre el limbo mi opinión, mi critica y hasta hacer sátira y algo de humor negro de lo mismo y seguro vendrán y se quejaran quienes se sienten ofendidos, pero a mi me parece muy sano que lo que escriba pueda aparecer y no tenga porque ser censurado, vayamos más lejos en política nos hemos parado de pestañas de que los políticos se quieren aventar la puntada de censurar lo que se publica en las redes sociales sobre los gastos, dispendios y otros demonios que se hacen en política… ¿por qué? Si una cadena de servicio me cobra un precio diferente del que marco en su etiqueta por “error” y no me ajusta la diferencia estoy en mi derecho de expresarlo, entonces yo creo que muchos no terminamos de entender que los “nuevos” medios electrónicos tan solo evidencian las viejas practicas de intolerancia, radicalismo y violencia que no han cambiado y que también con estos medios se ha evidenciado mucho más existencia.

Como alguna vez he mencionado por ahí si antes podías hacer una llamada ebrio en la madrugada (drunk dialing) e incomodar a algún ex, quemándote en el circulo pequeño | familiar, hoy puedes escribir en las redes sociales en la misma condición y crear un lio de tamaño global… los medios cambian las actitudes y problemas… son lo que tenemos que actualizar.

No tengo tiempo ahora, se que el articulo 1[2] y 6[3] de la constitución son los principales, pero estoy casi seguro que varias legislaciones nacionales e internacionales, así como un par de leyes federales protegen la libertad de expresión, si alguien las tiene presentes o sabe bien que ando todavía sin café a la mano póngalo en los comentarios.

[0] http://www.jornada.unam.mx/2015/01/08/mundo/028n1mun
[1] http://en.wikiquote.org/wiki/Voltaire#Misattributed
[2] http://info4.juridicas.unam.mx/ijure/fed/9/2.htm?s=
[3] http://info4.juridicas.unam.mx/ijure/fed/9/7.htm?s=

Oswaldo Villa

Oswaldo Villa
Villatux Blog <--

Vaciar la cola de correo en postfix

Es una de las cosas secillas pero no menos importantes a la hora de administrar un servidor de correo.

Mostrar los correos encolados:
mailq

Eliminar un correo en cola:

postsuper -d queue_id

Ver contenido de un correo:

postcat -q queue_id

Eliminar TODOS los correos en cola:

postsuper -d ALL

Lunes 05 de enero de 2015

Héctor Daniel Cortés

Héctor Daniel Cortés
'Aztec Eagle' Turbo

Fedora 21 (Twenty One)

Año nuevo (2015), Fedora nuevo (21).

Como ya es bien sabido, en esta ocasión hay tres sabores de Fedora: WorkStation, Server y Cloud. Siempre he dudado si Fedora es una distribución adecuada para servidores. En su lugar prefiero Scientific Linux. En cuanto a la nube... habrá que probrarlo.

Mi workstation (en realidad no es mía, pero la UNAM me la presta) requiere la siguiente instrucción para el proceso de actualización:

# fedup --product=workstation --iso Fedora-Server-DVD-x86_64-21.iso --network 21

Ya ha terminado de descargar los archivos... así que volveré cuando termine la instalación.

Sábado 03 de enero de 2015

Alcance Libre: Disponible Parrillada 1.6.2.

Viernes 02 de enero de 2015

Gunnar Wolf

Gunnar Wolf
Gunnar Wolf

Status of the OpenPGP keyring: 1024D is a thing of the past!

Having seen the end of December and the beginning of January, this is the time of year where we say "Happy new year!"

But this is a very interesting new year: We have also went past our much announced deadline for the <2048 bit keys to be removed from the Debian keyrings. And yes, our highly efficient keyring-maint team managed to deliver on the promised time — And, I'd say, with much success. Lets see the numbers — Only before that, refer to Jonathan's mail to debian-devel-announce for further, fuller information.

So, first of all, how do overall numbers look? Just remember, the following are not the number of DDs, just the number of active keys. That is, the holders to the 252 DD and 35 DM keys we removed are still valid Debian Developers/Maintainers, but have to get a new key accepted to perform many of their tasks in the project.

The graph above shows the sharp change between tags 2014.12.31 and 2015.01.01. But my definition of success is that we managed to get the number down to just 252+35=287 from what we had back in August, when we did our DebConf presentation and started the aggressive push: 490 DD keys and 49 DM keys. Since then, 34 DDs requested their retirement, becoming emeritus, and practically all of the rest managed to get their key transition done!

So, lets go again easiest-to-hardest. First, the Non-uploading Debian Developers keyring:

As this is the newest keyring in existence, and is also the smallest one, we were already without <2048 keys since 2011. Nothing to see, move along.

Then, as for the Debian Maintainers:

We did have a sensible migration from weaker to stronger keys, but it was not as sharp as I'd have liked. That makes sense, after all, since DMs have less involvement and compromise in the project in regard to DDs. So, we only processed 15 DM keys since August, which is almost a third of the keys we needed to process to reach the ideal 100% migration.

Now, as for our biggest and oldest keyring, and the one that denotes more project involvement, here is the graph for the uploading Debian Developers:

And yes, here you can see the sharp turn we saw in the second half of this year: By DebConf time, we were happy because the red and yellow lines had just crossed. But we were still sitting at 490 DD keys needing to be migrated. Half of the DD keys (compared to almost a fourth for the DM keys).

I'm almost sure we anticipated in our presentation (I know, I should check the video) that, by January 1st, we would have to retire around 300 keys. And I'm very, very happy and proud that we managed to get the number down to 252.

And, yes, people leave things to the end: We already have some more pending requests in the Request Tracker to introduce new keys for our fellow friends who were disabled. We will be working to make keyring pushes more frequent than our usual monthly uploads until requests go back to a sane level.

So, if everything runs smoothly, this will probably be the last of my posts in this regard. This has been quite an interesting (and exhausting!) experience!

Jueves 01 de enero de 2015

José Oviedo

José Oviedo
oviedo.mx

WordPress: Como actualizar wordpress y plugins sin necesidad de contar con FTP o SFTP

Si en tu servidor web donde tienes instalado worpress no cuentas con una conexión FTP o no la quieres agregar en la configuración de wordpress, pero al momento de quere actualizar cualquier plugin o versión de wordpress te solicita información de tu conexión FTP y te marca el error:

Ha sido imposible conectar con el servidor FTP localhost:21

Existe una solución para que todo este proceso lo haga directamente en los archivos de wordpress, solo se necesita agregar la siguiente linea en el archivo de configuración wp-config.php , lo pueden agregar hasta el final del archivo.

define(‘FS_METHOD’,’direct’);

Y listo!, cuando actualicen, ya no solicitará información de la conexión

Domingo 28 de diciembre de 2014

Por que y cómo hackearon a aede.es

La asociación de editores de diarios españoles, ha sufrido ataques por hackers, estos dejando mensajes “chistosos” o “memes” qué han echo sacar una carcajada a más de uno en su pagina principal, el motivo principal es la Ley de Propiedad Intelectual que ha desplazado a google (news) de españa siendo el primer país en hacer esto (en el mundo mundial):

Deface2

deface- Deface-2

La página de google news ( http://news.google.es/ )  envía a una pagina de soporte la cual especifica el por que:

Lamentamos tener que informarte que Google Noticias ha cerrado en España y que las publicaciones de los editores españoles ya no aparecen en Google Noticias, a raíz de los recientes cambios en la legislación española. Comprendemos que usuarios como tú podáis estar descontentos con esta nueva situación y por ello queremos explicarte las razones por las cuales hemos tomado esta decisión.
..

Tras la aprobación de la reforma de la Ley de Propiedad Intelectual hemos tenido que cerrar el servicio de Google Noticias en España. Esta nueva legislación obliga a cualquier publicación española a cobrar, quiera o no, a servicios como Google Noticias por mostrar el más mínimo fragmento de sus publicaciones. Dado que Google Noticias es un servicio que no genera ingresos (no mostramos publicidad en el sitio web), este nuevo enfoque resulta sencillamente insostenible

Las personas que están inconformes con esta ley han buscado la forma de hacerse notar en las Web con su desacuerdo, el objetivo la web de la a asociación de editores de diarios españoles: “aeda.es”, lo irónico usar google para descubrir por donde atacar:

google dork

 

La tercer pagina que google indexa “Zona Privada” claramente se nota un usuario y contraseña, el cual se deduce que contiene un form con un login para entrar algún panel de administración:

login_aede

Cómo siempre eh dicho el internet es un mar de conocimientos que cualquiera puede pescar lo que quiera y a su conveniencia, al encontrar un formulario cómo este se puede hacer varias pruebas de penetración y una de ellas la más básica poner un ' para saltar algún error:

error_deface

Aquí se puede ver que el mismo error te dice que hay hacer y ya depende de los conocimientos del atacante para poder obtener datos o modificar el sitio web:

sql_injecci

Antes de realizar este post se notifico al webmaster ;-) .

{+ google cierra en españa via abc.}

Miércoles 24 de diciembre de 2014

Gunnar Wolf

Gunnar Wolf
Gunnar Wolf

More on Debian as a social, quasi-familiar project

I have long wanted to echo Gregor's beautiful Debian Advent Calendar posts. Gregor is a dear project member and a dear friend to many of us Debianers, who has shown an amount of stamina and care for the project that inspires everybody; this year, after many harsh flamefests in the project (despite which we are moving at a great rate towards a great release!), many people have felt the need to echo how Debian –even as often seen from the outside as a hostile mass of blabbering geeks– is actually a great place to work together and to create a deep, strong social fabric — And that's quite probably what binds the project together and ensures it will continue existing and excelling for a long time.

As for the personal part: This year, my Debian involvement has –once again– reduced. Not because I care less about Debian, much to the contrary, but because I have taken several responsabilities which require my attention and time. Technically, I'm basically maintaining a couple of PHP-based packages I use for work (most prominently, Drupal7). I have stepped back of most of my DebConf responsabilities, although I stay (and will stay, as it's an area of the project I deeply enjoy doing) involved. And, of course, my current main area of involvement is keyring-maint (for which I have posted here several status updates).

I have to say that we expected having a much harder time (read: Stronger opposition and discussions) regarding the expiry of 1024D keys. Of course, many people do have a hard time connecting anew to the web of trust, and we will still face quite a bit of work after January 1st, but the migration has been a mostly pleasant (although clearly intensive) work. Jonathan has just told me we are down to only 306 1024D keys in the keyring (which almost exactly matches the "200-300" I expected back at DC14).

Anyway: People predicting doomsday scenarios for Debian do it because they are not familiar with how deep the project runs in us, how important it is socially, almost at a family level, to us that have been long involved in it. Debian is stronger than a technical or political discussion, no matter how harsh it is.

And, as a personal thank-you: Gregor, your actions (the GDAC, the RC bug reports) inspire us to stay active, to do our volunteer work better, and remind us of how great is it to be a part of a global, distributed will to Do It Right. Thanks a lot!

Gunnar Wolf

Gunnar Wolf
Gunnar Wolf

On rogue states disrupting foreign networks

Much ink has been spilled lately (well, more likely, lots of electrons have changed their paths lately — as most of these communications have surely been electronic) on the effects, blame, assurance and everything related to the (allegedly) North Korean attack on Sony's networks. And yes, the list of components and affectations is huge. Technically it was a very interesting feat, but it's quite more interesting socially. Say, the not-so-few people wanting to wipe North Korea from the face of the Earth, as... Well, how did such a puny nation dare touch a private company that's based in the USA?

Of course, there's no strong evidence the attack did originate in (or was funded by) North Korea.

And... I have read very few people talking about the parallels to the infamous Stuxnet, malware written by USA and Israel (not officially admitted, but with quite a bit of evidence pointing to it, and no denial attempts after quite a wide media exposure). In 2010, this worm derailed Iran's nuclear program. Iran, a sovereign nation. Yes, many people doubt such a nuclear program would be used "for good, not for evil" — But since when have those two words had an unambiguous meaning? And when did it become accepted as international law to operate based on hunches and a "everybody knows" mentality?

So, how can the same people repudiate NK's alleged actions and applaud Stuxnet as a perfect weapon for peace?

Jueves 18 de diciembre de 2014

Miguel Barajas

Miguel Barajas
GnuOwned's Blog

Este es un pequeño tutorial que hicimos mi hijo Roberto y yo,...



Este es un pequeño tutorial que hicimos mi hijo Roberto y yo, sobre como construir una prueba de concepto para un panel de juegos estilo Jeopardy o 100 Mexicanos dijeron, con Arduino 2 leds, dos pushdown buttons y 3 resistencias.

Espero les guste :-)

Miércoles 17 de diciembre de 2014

El arte de buscar desde la terminal.

Para la mayoría de los linuxeros de hueso colorado esto es cómo el pan de cada día, el buscar desde la terminal se les hace más efectivo que entrar a una UI, aparte de que se ve más “und3rgr0unD”, existen varios comandos con sus diferentes atributos para poder crear la búsqueda perfecta de aquel archivo o palabra dentro de el, la mayoría opta por find qué es uno de los más conocidos.

find [ruta] [expresion_de_bosqueda] [accion]

Digamos que queremos buscar un archivo que se llama index, en el primer find, solo especifico el nombre con -name, el cual no me arroja un resultado, añado * el cual me buscará en cualquier carpeta dentro de donde este buscando, y ha arrojado unos resultados, en el ultimo especifico la carpeta www/ donde buscar:

root@1337 [/h/bucio]$ find  -name index
root@1337 [/h/bucio]$ find  -name index*
./tmp/webalizer/index.html
./tmp/webalizerftp/index.html
./public_html/index.php
root@1337 [/h/bucio]$ find www/ -name index*
www/index.php
root@1337 [/h/bucio]$

El comando find, tiene la opción ya sea mayúsculas y minúsculas:

root@1337 [/h/bucio]$ find www/ -name index*
www/index.php
root@1337 [/h/bucio]$ find www/ -iname index*
www/InDex.PhP
www/index.php

Podemos hacer uso de expresiones irregulares para la búsqueda:

  • “[0-9]*” #Todo lo que comienza con dígitos
  • “[Oo]*” #Todo lo que comienza con la letra “o” mayúscula o minúscula
  • “[b-f]*.txt” #Todo lo que comienza con una letra entre la b y f y sea un .txt

root@1337 [/h/bucio]$ find www/ -name "[0-9]*"
www/0ejemplo
root@1337 [/h/bucio]$ find www/ -name "[Oo]*"
www/OtroEjeplo
www/oTroEjemplo
root@1337 [/h/bucio]$ find www/ -name "[b-f]*.txt"
www/ejemplo.txt

Realizar una búsqueda de archivos ocultos:

root@1337 [/h/bucio]$ find www/ -name ".*"
www/.htaccess
www/.oculto.jpg
www/.oculto.php
root@1337 [/h/bucio]$ find www/ -name ".*.php"
www/.oculto.php
root@1337 [/h/bucio]$ find www/ -name ".*.jpg"
www/.oculto.jpg

El atributo -user nos puede ayudara buscar los archivos que pertenece a cierto usuario, también existe -perm para buscar por permisos:

root@1337 [/h/bucio]$ find www/ -user bucio
www/
www/.htaccess
www/index.php
www/cgi-bin
root@1337 [/h/bucio]$ find www/ -user root
www/OtroEjeplo
www/0ejemplo
www/InDex.PhP
www/ejemplo.txt
www/oTroEjemplo
root@1337 [/h/bucio]$ find www/ -user root -perm 777
www/ejemplo.txt

Para realizar búsquedas por fecha de modificación podemos usar -mmin (minutos), los valores pueden ser indicados de las siguientes formas:

  • +n busca valores mayor que n
  • -n busca valores menor que n
  • n busca exactamente el valor n

root@1337 [/h/bucio]$ find www/ -mmin -20 -type f #Archivos que hayan cambiado en los últimos 20 minutos
www/.oculto.jpg
www/.oculto.php
root@1337 [/h/bucio]$ find www/ -mmin 7 -type f #exactamente hace 07 minutos
www/.oculto.jpg

El comando find, contiene más atributos para la búsqueda por tiempos: -amin, -atime, -cmin, ctime, -mmin y -mtime (“min” es para periodos de minutos y “time” para periodos de 24 horas.):

find . -mtime 0  #busca archivos modificados entre ahora y hace un día
find . -mtime -1  #busca archivos modificados hace menos de un día
find . -atime 1  #busca archivos accedidos entre hace 24 y 48 horas
find . -ctime +1  #busca archivos cuyo status haya cambiado hace más de 48 horas

Los que empiezan con “a” (access) indica el tiempo en que fue accedido (leido) por última vez un archivo. Los que empiezan con “c” (change) indica el tiempo que cambió por última vez el status de un archivo, por ejemplo sus permisos. Los que empiezan con “m” (modify) indica el tiempo en que fue modificado (escrito) por última vez un archivo. {via Linux Total}

El poder de -exec

-exec permite ejecutar incorporar comandos externos para ejecutar sobre el resultado devuelto por find, este comando fue muy usado cuando los “hackers” hacían un “mass deface” y modificaban todos los index, la ventaja de poder ejecutar comandos hace a -exec algo “especial”… jaja.

root@1337 [/h/bucio]$ find www/ -size 0 -exec ls {} \;
www/OtroEjeplo
www/0ejemplo
www/InDex.PhP
www/ejemplo.txt
www/.oculto.jpg
www/.oculto.php
www/oTroEjemplo

En comando anterior sale el atributo -size en cual puse 0 para archivos vacíos, seguido de -exec el cual ejecuta ls que nos devuelve una salida de ls se indica la cadena {} que se sustituye por cada salida de find.

Digamos que sabemos que una persona usa el cliente filezilla y sabemos que los archivos .xml se guardan las configuraciones “las contraseñas” y “usuarios” de sus (s)FTP y nos prestan la maquina y solo tenemos 10 min y un USB:

root@1337 [/h/bucio]$ find .filezilla/ -iname '*.xml' -exec cp '{}' /media/USB_delmal \;
root@1337 [/h/bucio]$ }:)

En el 2011 escribí un post parecido donde el tema era la búsqueda de palabras dentro de los archivos *.html, donde yo use xargs:

$> find -name *.html | xargs grep  title *
./index.html:               'a class="lightbox-image" rel="prettyPhoto[2]" href="{{image}}" title="{{title}}"' +
./index.html:                   'img src="{{image_s}}" alt="{{title}}" /' +
>

En el cual hubo la participación de varios amigos, donde aportaron las diferentes formas que ellos buscaban la cadena en un archivo:

gwolf comment 2011

#Por Gunnar Wolf
>$ find . -name '*.html' -exec grep -r title \{\} +
..
#Por GnuGet
>$ grep -Hirn cadena_a_buscar .
#Por Gaspar Fernandez
>$ egrep -R 'loquequierobuscar' *.htm

Existen más comando cómo grep, egrep etc… El cual nos pueden ayudar a realizar búsquedas más poderosas. Por el momento me quedo con find y exec, el cual para mi hacen buena combinación.

Y tú ¿Qué usas para las búsquedas dentro de la terminal?

Viernes 12 de diciembre de 2014

Alex Callejas

Que hacer cuando algo falla: Episodio II

2BvbQ

No es desesperación, la desesperación es sólo para los que ven el final más allá de toda duda. Nosotros no lo hacemos…

Gandalf [J.R.R. TolkienLa Comunidad del Anillo]

Hace unos días, el buen Rod me comentó que tenía algunos problemas creando relaciones de confianza entre servidores utilizando llaves de SSH. La referencia obligada fueron dos posts anteriores: Mecanismos de confianza con llaves de SSH, donde compartí el procedimiento básico para generarlos, y Que hacer cuando algo falla, en caso de necesitar algún análisis de falla y poder encontrar la causa raíz de la misma, para solucionarla.

Sin embargo, después de varios días, el mecanismo seguía sin funcionar correctamente, por lo que hubo que analizar más a fondo el caso.

Escenario

El userA desde el serverA se debe conectar al serverB como el userB de forma automática sin contraseña.

esquema

Ambos servidores están instalados igual, en el mismo segmento. La única diferencia entre ellos, era que el home de userB en serverB se encontraba bajo /opt.

Primer Análisis

De inicio, no obviamos nada y revisamos lo básico:

En serverA

  • Que exista la llave privada
  • El contenido de la llave pública sea una sola línea y sea el mismo en el serverB
[userA@serverA ~]$ ls -la .ssh/
total 20
drwx------. 2 userA userA 4096 Dec 11 10:32 .
drwx------. 3 userA userA 4096 Dec 11 11:08 ..
-rw-------. 1 userA userA 1675 Dec 11 10:32 id_rsa
-rw-r--r--. 1 userA userA 410 Dec 11 10:32 id_rsa.pub
-rw-r--r--. 1 userA userA 796 Dec 11 19:24 known_hosts
[userA@serverA ~]$ wc -l .ssh/id_rsa.pub
1 .ssh/id_rsa.pub
[userA@serverA ~]$ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAz59j3eSrdkgnQPvYpiFXL3EVqdgCE8Q7v4hFfCzORxXxSprXNpZW18L2BkEfo5P/JO//qGTyFSMrZbqRHAm6s7PR/idWbSGtZfXLt3ri5Rw4OUyLcDrXVqzhbBo3bvSADksXXYVcjDu2h0P8p70EOc1mouRsOph5bE0l4Yk2/RYZ6JfMI8DDbtpU/nKfPfdsysjeLQwOJ7XiXrKWwnqSZ+rP3Irol336RkPrgMpoQDzenkoMiAkc68cUYy1K85k1kv34gxWLFYK9riiXp4OriUFm62z7Fx2jaeDNPbLndDOBzCcm65P4b2j8K5vv8MshJtddWUypen+cB34lH7rjbw== userA@serverA.example-rh.com

En serverB

  • Que los permisos del home de userB sean 700 y exclusivos del dueño
  • La llave pública se llame authorized_keys, en una sola línea y  con el mismo contenido que en el serverA
[userB@clientB ~]$ ls -ld ~/
drwx------. 3 userB userB 4096 Dec 11 19:20 /opt/userB/
[userB@clientB ~]$ ls -la .ssh/
total 16
drwx------. 2 userB userB 4096 Dec 11 19:20 .
drwx------. 3 userB userB 4096 Dec 11 19:20 ..
-rw-------. 1 userB userB 410 Dec 11 19:20 authorized_keys
-rw-r--r--. 1 userB userB 391 Dec 11 19:18 known_hosts
[userB@clientB ~]$ wc -l .ssh/authorized_keys 
1 .ssh/authorized_keys
[userB@clientB ~]$ cat .ssh/authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAz59j3eSrdkgnQPvYpiFXL3EVqdgCE8Q7v4hFfCzORxXxSprXNpZW18L2BkEfo5P/JO//qGTyFSMrZbqRHAm6s7PR/idWbSGtZfXLt3ri5Rw4OUyLcDrXVqzhbBo3bvSADksXXYVcjDu2h0P8p70EOc1mouRsOph5bE0l4Yk2/RYZ6JfMI8DDbtpU/nKfPfdsysjeLQwOJ7XiXrKWwnqSZ+rP3Irol336RkPrgMpoQDzenkoMiAkc68cUYy1K85k1kv34gxWLFYK9riiXp4OriUFm62z7Fx2jaeDNPbLndDOBzCcm65P4b2j8K5vv8MshJtddWUypen+cB34lH7rjbw== userA@serverA.example-rh.com

Al comparar el md5 de ambos archivos de llave pública daba el mismo hash:

b02e3cc11c58c8ba36677316bf52ed74  .ssh/id_rsa.pub
b02e3cc11c58c8ba36677316bf52ed74  .ssh/authorized_keys

Sin embargo, al hacer pruebas, el mecanismo de confianza no funcionaba:

[userA@serverA ~]$ ssh userB@serverB hostname
userB@serverb's password:

[userA@serverA ~]$ ssh -v userB@serverB hostname
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
...
debug1: Next authentication method: publickey
debug1: Trying private key: /home/userA/.ssh/identity
debug1: Offering public key: /home/userA/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /home/userA/.ssh/id_dsa
debug1: Trying private key: /home/userA/.ssh/id_ecdsa
debug1: Next authentication method: password
userB@serverb's password:

[userA@serverA ~]$

Al revisar /var/log/messages y /var/log/secure no se encontraba evidencia alguna de la falla:

[root@clientB ~]# tail -f /var/log/messages /var/log/secure
==> /var/log/messages <==
Dec 12 12:33:30 clientB kernel: type=1305 audit(1418409210.149:4): audit_pid=952 old=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:auditd_t:s0 res=1
Dec 12 12:33:30 clientB kdump: No crashkernel parameter specified for running kernel

==> /var/log/secure <==
Dec 12 12:33:31 clientB sshd[1050]: Server listening on 0.0.0.0 port 22.
Dec 12 12:33:31 clientB sshd[1050]: Server listening on :: port 22.
Dec 12 12:33:40 clientB sshd[1192]: Accepted password for root from 192.168.122.1 port 40110 ssh2
Dec 12 12:33:41 clientB sshd[1192]: pam_unix(sshd:session): session opened for user root by (uid=0)
Dec 12 12:54:30 clientB sshd[1212]: Connection closed by 192.168.122.110
Dec 12 12:54:38 clientB sshd[1214]: Connection closed by 192.168.122.110
^C
[root@clientB ~]#

Segundo Análisis

Entonces revisamos la configuración de ssh, /etc/ssh/sshd_config, y lo modificamos para que sólo permita autenticación por llave y amarramos el nombre de la misma como authorized_keys2, para tratar de delimitar la falla:

[root@clientB ~]# cat /etc/ssh/sshd_config | grep ^[A-Z]
Protocol 2
SyslogFacility AUTHPRIV
AuthorizedKeysFile %h/.ssh/authorized_keys2
PasswordAuthentication no
ChallengeResponseAuthentication no
GSSAPIAuthentication no
GSSAPICleanupCredentials yes
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
X11Forwarding yes
Subsystem sftp /usr/libexec/openssh/sftp-server
[root@clientB ~]#

Generamos otra llave, de tipo dsa, y la copiamos en el serverB como authorized_keys2:

[userA@serverA ~]$ ssh-keygen -t dsa -b 1024
[userA@serverA ~]$ cat .ssh/id_dsa.pub
ssh-dss AAAAB3NzaC1kc3MAAACBAOpcPejQC+G/jRz3v9gUhaJy/CogjtOmXQG9zoL69pIOhKcMfjJy21GED49tS9kAw857WTpjEVzF3ssLJlS2LMqxIervQ/bsaH8WKSqUvueTMOw/4+fiwECbllCPE/g/ULozqJFssDUJlNdTAc+yA6qVbldqT69HVbNjyWeZc3dbAAAAFQDKiDJ5GwkZLiuXbYcJaElS881GtQAAAIEApXBcAfXHfewuQiHLHrBvnd0SePgjJmU8bUgfjWjwu4yoT4Z1aWy+FmtYoQGfc9SUHq4/u6EhwVUz9i7UXLW+WrEA+OtsAftEo0TjKjG8OeH4igcqsoSkosrj2QxLrf6I8l6YQnVIt5ufVtLoE4ZqCVrLtTnsS4elFeaR56hKKT8AAACAA83nEJaqK9tWm3k8RJQJZB5sEY/DAI0ZYd/TTtCKWIOXACz+G0iK+jj1JZtV40gZyJKzIFoD89FJh3RV8PZp1+UosK4kBYsxtP4WXvUjkhwVzh6PPu8A1/BJeEq/RvCqwBPinCY0rnAQrGwLCocMNkpnJxyqjg6ZLu2bsQo1HvE= userA@serverA.example-rh.com
[userA@serverA ~]$ 

[userB@clientB ~]$ cat .ssh/authorized_keys2 
ssh-dss AAAAB3NzaC1kc3MAAACBAOpcPejQC+G/jRz3v9gUhaJy/CogjtOmXQG9zoL69pIOhKcMfjJy21GED49tS9kAw857WTpjEVzF3ssLJlS2LMqxIervQ/bsaH8WKSqUvueTMOw/4+fiwECbllCPE/g/ULozqJFssDUJlNdTAc+yA6qVbldqT69HVbNjyWeZc3dbAAAAFQDKiDJ5GwkZLiuXbYcJaElS881GtQAAAIEApXBcAfXHfewuQiHLHrBvnd0SePgjJmU8bUgfjWjwu4yoT4Z1aWy+FmtYoQGfc9SUHq4/u6EhwVUz9i7UXLW+WrEA+OtsAftEo0TjKjG8OeH4igcqsoSkosrj2QxLrf6I8l6YQnVIt5ufVtLoE4ZqCVrLtTnsS4elFeaR56hKKT8AAACAA83nEJaqK9tWm3k8RJQJZB5sEY/DAI0ZYd/TTtCKWIOXACz+G0iK+jj1JZtV40gZyJKzIFoD89FJh3RV8PZp1+UosK4kBYsxtP4WXvUjkhwVzh6PPu8A1/BJeEq/RvCqwBPinCY0rnAQrGwLCocMNkpnJxyqjg6ZLu2bsQo1HvE= userA@serverA.example-rh.com
[userB@clientB ~]$ 

Sin embargo, la falla seguía presentándose:

[userA@serverA ~]$ ssh  -v userB@serverB hostname
...
debug1: Offering public key: /home/userA/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Offering public key: /home/userA/.ssh/id_dsa
debug1: Authentications that can continue: publickey
debug1: Trying private key: /home/userA/.ssh/id_ecdsa
debug1: No more authentication methods to try.
Permission denied (publickey).
[userA@serverA ~]$ 

Aumentamos el nivel de log de sshd:

[root@clientB ~]# grep LogLevel /etc/ssh/sshd_config
LogLevel DEBUG
[root@clientB ~]#

Al hacer pruebas, continúa la falla, pero el /var/log/secure ya nos daba indicios de lo que estaba sucediendo:

[userA@serverA ~]$ ssh userB@serverB hostname
Permission denied (publickey).
[userA@serverA ~]$

[root@clientB ~]# tail /var/log/secure 
Dec 12 15:40:29 clientB sshd[1432]: debug1: trying public key file /opt/userB/.ssh/authorized_keys2
Dec 12 15:40:29 clientB sshd[1432]: debug1: Could not open authorized keys '/opt/userB/.ssh/authorized_keys2': Permission denied
Dec 12 15:40:29 clientB sshd[1432]: Failed publickey for userB from 192.168.122.1 port 40376 ssh2
Dec 12 15:40:29 clientB sshd[1433]: Connection closed by 192.168.122.1
Dec 12 15:40:29 clientB sshd[1433]: debug1: do_cleanup
Dec 12 15:40:29 clientB sshd[1432]: debug1: PAM: cleanup
[root@clientB ~]# 

Revisamos los permisos especiales, y validamos las opciones de montado del filesystem:

[root@clientB ~]# lsattr /opt/userB/
[root@clientB ~]#
[root@clientB ~]# getfacl /opt/userB/
getfacl: Removing leading '/' from absolute path names
# file: opt/userB/
# owner: userB
# group: userB
user::rwx
group::---
other::---

[root@clientB ~]# df -hP /opt/userB
Filesystem                    Size Used Avail Use% Mounted on
/dev/mapper/vg_opt-userB_home 988M 1.3M 936M    1% /opt/userB
[root@clientB ~]#
[root@clientB ~]# tune2fs -l /dev/mapper/vg_opt-userB_home | grep -i options
Default mount options: (none)
[root@clientB ~]#

Tercer Análisis

Al no encontrar indicios en los permisos básicos y extendidos, procedimos a revisar los permisos desde el punto de vista de seguridad:

[root@serverA ~]# getenforce
Enforcing
[root@serverA ~]# ls -lZd /home/userA/
drwx------. userA userA unconfined_u:object_r:user_home_dir_t:s0 /home/userA/
[root@serverA ~]#

[root@clientB ~]# getenforce
Enforcing
[root@clientB ~]# ls -lZd /opt/userB/
drwx------. userB userB system_u:object_r:file_t:s0 /opt/userB/
[root@clientB ~]#

Al parecer, teníamos diferencia en los contextos de SELinux; entonces realizamos una prueba, deshabilitando momentáneamente la seguridad:

[root@clientB ~]# setenforce 0
[root@clientB ~]#
[root@clientB ~]# getenforce
Permissive
[root@clientB ~]#

[userA@serverA ~]$ ssh userB@serverB hostname
clientB.example-rh.com
[userA@serverA ~]$

Al deshabilitar SELinux la conexión se realizaba de forma exitosa; sin embargo, era un requisito del cliente tenerlo habilitado.

Para conocer exactamente el comando a ejecutar y restablecer el contexto correctamente; instalamos setroubleshoot, esta herramienta nos ayuda a diagnosticar los problemas con SELinux a partir de las alertas AVC generadas en el log de audit y las parsea para entregarnos información legible en /var/log/messages. Al hacer pruebas, encontramos dicho mensaje:

[root@clientB ~]# yum -y install setroubleshoot
...
[root@clientB ~]#
[root@clientB ~]# setenforce 1
[root@clientB ~]#
[root@clientB ~]# getenforce
Enforcing
[root@clientB ~]#

[userA@serverA ~]$ ssh userB@serverB hostname
Permission denied (publickey).
[userA@serverA ~]$ 

[root@clientB ~]# tail /var/log/messages 
Dec 12 16:56:32 clientB kernel: type=1305 audit(1418424992.590:4): audit_pid=952 old=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:auditd_t:s0 res=1
Dec 12 16:58:26 clientB setroubleshoot: SELinux is preventing /usr/sbin/sshd from search access on the directory /opt/userB. For complete SELinux messages. run sealert -l f963dd2e-ab81-4c3a-99ad-4d4d1e6736d5
[root@clientB ~]# 

Al ejecutar el comando recomendado, éste nos decía:

[root@clientB ~]# sealert -l f963dd2e-ab81-4c3a-99ad-4d4d1e6736d5
SELinux is preventing /usr/sbin/sshd from search access on the directory /opt/userB.

***** Plugin restorecon (82.4 confidence) suggests *************************

If you want to fix the label.
/opt/userB default label should be usr_t.
Then you can run restorecon.
Do
# /sbin/restorecon -v /opt/userB
...
[root@clientB ~]#

Ejecutamos la recomendación:

[root@clientB ~]# ls -lZd /opt/userB/
drwx------. userB userB system_u:object_r:file_t:s0 /opt/userB/
[root@clientB ~]#
[root@clientB ~]# restorecon -v /opt/userB
restorecon reset /opt/userB context system_u:object_r:file_t:s0->system_u:object_r:usr_t:s0
[root@clientB ~]#
[root@clientB ~]# ls -lZd /opt/userB/
drwx------. userB userB system_u:object_r:usr_t:s0 /opt/userB/
[root@clientB ~]#

Y al hacer pruebas:

[userA@serverA ~]$ ssh userB@serverB hostname
clientB.example-rh.com
[userA@serverA ~]$ 

Causa Raíz

El home del usuario esta montado en un volumen sobre /opt, realizamos una prueba, desmontando el volumen y revisando el contexto del directorio y encontramos:

[root@clientB ~]# umount /opt/userB/
[root@clientB ~]#
[root@clientB ~]# ls -lZd /opt/userB/
drwx------. userB userB system_u:object_r:usr_t:s0 /opt/userB/
[root@clientB ~]#

Lo que nos indica que, cuando el usuario fue creado, al montar el volumen no se restablecieron los contextos de su home.

Gracias Rod por la confianza! fue un gusto apoyarte a resolver este caso y poder compartir la experiencia.

Espero les sirva…

Fco. de la Torre Inguanzo

Fco. de la Torre Inguanzo
LINUXMANR4 » Linux y Software Libre

Como resolver problemas del reloj en Manjaro

Los problemas con el reloj que muestra una hora incorrecta es muy común en Manjaro particularmente si se tiene un equipo que arranca también con Windows.

Supongamos que el equipo inicia en Windows y todo normal, pero al entrar nuevamente a Manjaro podemos ver un desfase en el reloj que puede ser de varias horas.

Para resolver problemas del reloj en Manjaro me he valido de una herramienta que incluye la misma distribución y una instrucción que se ejecuta desde la terminal.

La explicación

Verán, existen dos estándares para el control del reloj, uno de ellos es localtime utilizado por Windows y el otro es UTC (Tiempo Universal Coordinado) que es el que usa Mac OS X, UNIX y muchas versiones de Linux.

UTC se obtiene a partir del Tiempo atómico internacional y como pueden suponer es el estándar mundial.

UTC almacena la hora local en el reloj del hardware

UTC almacena la hora local en el reloj del hardware

Ahora viene el problema, el estándar utilizado por el reloj del hardware se establece por el sistema operativo. Es decir cada sistema operativo controla el reloj de hardware para intentar mostrar la hora correcta en el reloj.

Linux sincroniza la hora correcta en el reloj de hardware, mientras que Windows hace lo contrario, sincroniza la hora UTC y hace el ajuste de zona horaria dentro del sistema operativo. Por eso al reinicar en Linux aparece la hora desfasada por varias horas.

Existe una forma para hacer que Windows utilice UTC en lugar de localtime haciendo ajustes en el registro, pero para ser honesto, son muy pocas veces las que inicio mi computadora con el sistema de Redmond y si lo llegara a hacer con un par de teclas corrijo el problema.

Timeset

Timeset es la navaja suiza para revisar y administrar la configuración de la hora de Manjaro.

Timeset se puede instalar directamente gracias a pacman.

sudo pacman -S timeset

Menú de opciones de Timeset

Menú de opciones de Timeset

En su pantalla inicial pueden ver un menú con varias opciones, pero lo que me interesa revisar antes que nada es el Time zone, porque si esta incorrecto de nada servirá actualizar la sincronización de la hora si el huso horario es incorrecto.

Claro que el Time zone se elige durante la instalación y en teoría no se cambia de manera frecuente, pero si existiera un error se puede ajustar buscando la Zona horaria correcta con la opción 2 Mostrar conocido Timezones(sic) y estableciendo la correcta con la opción 3 Establecer Zona Horaria del Sistema.

Verificando que la zona horaria este correcta

Verificando que la zona horaria este correcta.

Con la zona horaria correcta le toca el turno a la opción 4 Sincronizar hora de la red (NTP), eso hará que el sistema se sincronice con un servidor de horario estableciendo la hora correcta del sistema.

Escribiendo la hora al reloj de hardware

Otra opción es hacerlo “a manita”, si el Time zone es correcto, entonces se puede ajustar el reloj ejecutando la siguiente instrucción desde la terminal:

sudo ntpdate -u 0.pool.ntp.org && sudo hwclock -w

Sincroniza la hora desde un servidor ntp y además escribe esta hora en el reloj de hardware del sistema.

Esto resolverá muchos problemas de la hora, al menos hasta la próxima vez que se inicie la computadora con Windows, entonces solo se tiene que ejecutar nuevamente la instrucción y asunto arreglado.

Espero que este consejo les sea de utilidad.

The post Como resolver problemas del reloj en Manjaro appeared first on LINUXMANR4.

Emerson Posadas

Emerson Posadas
toxickore BLOG

Introducing Atlas: Netflix's Primary Telemetry Platform

http://techblog.netflix.com/2014/12/introducing-atlas-netflixs-primary.html


Miércoles 10 de diciembre de 2014

Xenode Systems: Mejorar rendimiento de drivers MESA en Fedora 21
Xenode Systems: Cómo instalar drivers propietarios NVIDIA en Fedora 21
Xenode Systems: Cómo instalar drivers propietarios ATI en Fedora 21

Martes 09 de diciembre de 2014

Emerson Posadas

Emerson Posadas
toxickore BLOG

System integration

Por que siempre se aprende algo nuevo:

http://en.wikipedia.org/wiki/System_integration

Sábado 06 de diciembre de 2014

Alex Callejas

Conociendo Docker

mccarthy

 Si las computadoras, que tanto he defendido, se convierten en los ordenadores del futuro, entonces la computación algún día puede ser organizada como un servicio público al igual que los sistemas de agua y telefonía son servicios públicos … La utilidad del cómputo compartido podría convertirse entonces, en la base de una nueva e importante industria.

John McCarthy
Discurso en el centenario del MIT, 1961

La tendencia de las nuevas tecnologías optimizan el uso de recursos mediante múltiples instancias de recursos elásticos a demanda (OpenStack), expandiendo el concepto de Cloud Computing. Uno de los proyectos más interesantes es Docker, una herramienta que, a través de containers (LXC), permite la construcción, manejo y ejecución de aplicaciones distribuidas. Lo cual facilita el ensamble de componentes de forma rápida, eliminando las barreras entre los entornos de desarrollo, QA y Producción.

docker

En este video, Solomon Hykes (Fundador y CTO de  dotCloud y creador del proyecto Docker) nos da una muy recomendable introducción a docker:

Ver en YouTube

En este link encontrarán más información acerca de Docker:

Espero les sirva…

Viernes 05 de diciembre de 2014

Gerónimo Orozco

Gerónimo Orozco
Patux's booring news

Simposio de Tecnologias de Software Libre



El Opensource Technology Center @ Intel tendra el proximo viernes 5 de Diciembre y sabado 6 de Diciembre de 2014 el Simposio de Tecnologias de Software Libre en las instalaciones del Intel GDC 9am a 4:30pm.


Programa completo:



https://01.org/stsl

Direccion:



Avenida del Bosque 1001, Colonia El Bajío, Zapopan, Jalisco


Martes 02 de diciembre de 2014

Fco. de la Torre Inguanzo

Fco. de la Torre Inguanzo
LINUXMANR4 » Linux y Software Libre

El problema /var/lib/pacman/db.lck

El problema /var/lib/pacman/db.lck es muy común en Manjaro. Ayer me dejó un comentario el buen amigo Holmes preguntando como solucionarlo y afortunadamente la solución es muy pero muy sencilla.

El problema de /var/lib/pacman/db.lck

El problema dice:

“if you’re sure a package manager is not already running, you can remove /var/lib/pacman/db.lck”

A veces pasa que por alguna razón se interrumpe el proceso de actualización, puede ser por un apagón, un reinicio forzoso o simplemente se presionó Ctrl+C para interrumpir de manera inesperada la tarea de actualización.

¿Se han fijado que no se pueden instalar otros paquetes mientras se esta actualizando el sistema? Eso es gracias al bloqueo que ejerce el archivo db.lck y como se interrumpió el proceso este archivo no fue eliminado.

La solución.

La solución es muy sencilla y esta en el mismo mensaje de error, si no se esta ejecutando otra tarea con un manejador de paquetes (pacman, octopi, pamac) simplemente hay que borrar el archivo db.lck:

sudo rm /var/lib/pacman/db.lck

Con eso es más que suficiente para quitar el bloqueo y la próxima vez que instalen un paquete o actualicen el sistema lo hará sin problemas.

The post El problema /var/lib/pacman/db.lck appeared first on LINUXMANR4.

Miguel de Icaza

Miguel de Icaza
Miguel de Icaza

.NET Foundation: Advisory Council

Do you know of someone that would like to participate in the .NET foundation, as part of the .NET Foundation Advisory Council?

Check the discussion where we are discussing the role of the Advisory Council.

Viernes 28 de noviembre de 2014

Fco. de la Torre Inguanzo

Fco. de la Torre Inguanzo
LINUXMANR4 » Linux y Software Libre

FreeFileSync una herramienta para sincronizar archivos

Freefilesync una herramienta para sincronizar archivos, es de esos programas que te preguntas porque no sabías de ellos antes.

Es realmente muy útil y fácil de utilizar, al principio llama la atención la interfaz un poco espartana pero al poco tiempo de usarlo te das cuenta de que todo esta en su sitio y perfectamente bien explicado.

Esta herramienta es ideal para sincronizar dos directorios y se puede usar también sin mucho problema como una herramienta de respaldos.

Lo mejor es que corre en todos los sistemas operativos principales, Windows , Linux o Mac OS X tanto en 32 como en 64 bits.

Tengo poco usándolo pero tengo que decirles que es simplemente genial.

Origen y Destino

FreeFileSync Paneles de Origen y Destino

Como pueden ver el diseño del programa tiene dos paneles, a la izquierda el origen, a la derecha el destino y entre ellos las opciones de copia.

En la esquina superior izquierda esta el botón azul de Comparar y en la esquina superior derecha el botón de Sincronizar ambos con sus respectivos botones de configuración.

El progreso

FreeFileSync - avance de la sincronización

Una parte importante del proceso de sincronización es poder vigilar el avance de la copia, información sobre el Tiempo Restante (ETA) y la velocidad de la misma, pero sobre todo si existe algún problema durante la copia de los archivos.

Al finalizar también entrega un registro (log) de la copia que podemos analizar detenidamente.

Guardar tareas

Todas las tareas de sincronización se pueden guardar en la interfaz para mandarlas llamar posteriormente, pero además tiene una opción de Guardar como tarea por lotes lo que facilita enormemente ejecutar una tarea de sincronización desde la terminal o programarla para que se ejecute cada cierto tiempo.

Todo esto lo hace la herramienta ideal para copias masivas de archivos tanto ocasionales como para aquellas tareas que son frecuentes como las de respaldo.

The post FreeFileSync una herramienta para sincronizar archivos appeared first on LINUXMANR4.

Martes 25 de noviembre de 2014

Eduardo Ruiz Duarte

Eduardo Ruiz Duarte
beck's site

Teorema de Hasse para curvas elípticas, núcleo de la demostración pero desde el twist cuadrático de la curva 1/2

Vamos a explorar un teorema que es una consecuencia directa de las Conjeturas de Weil demostradas por Pierre Deligne, si nos da tiempo veremos un sketch de como demostrar las conjeturas de André Weil en general.

El teorema de Hasse es muy importante en criptografía con curvas elípticas, ya que nos permite aproximar o incluso saber el número de elementos que tiene el grupo que forma una curva elíptica, este número de elementos en función del tamaño del campo finito, esto tiene aplicaciones a la ingeniería en la implementación, y también nos puede decir, si la curva es segura o no , es decir que su grupo no sea isomorfo a algo trivial.

El problema de la demostración de Helmut Hasse en 1936 es que es muy larga y complicada, aquí trataremos de dar los elementos necesarios, pero también extenderemos el teorema a otro espacio el cual nos permitirá analizar la estructura desde los endomorfismos de la curva.

Primero, trabajemos en un campos $latex \mathbb{F}_q$ con $latex q$ impar y con la forma de una curva elíptica $latex E$ en su forma reducida de Weierstrass, es decir $latex y^2 = x^3 + Ax + B$ , pero esta forma reducida de Weierstrass tiene el problema de que $latex j(E)=1728\equiv 0$ mod $latex 3$ lo que nos limita a trabajar con cierta familia (0) de curvas en característica 3, necesitamos que el $latex j$ invariante tome todos los valores de $latex \mathbb{F}_q$ entonces consideraremos las curvas $latex y^2 = x^3 + a_{2}x^2 + a_{4}x + a_6$ , pueden demostrar que el $latex j$ invariante de esta curva ya cubre todas las curvas elípticas de característica impar.

El teorema de Hasse dice.

Teorema (Helmut-Hasse, 1936): Sea $latex E$ una curva elíptica sobre un campo
$latex \mathbb{F}_q$, si $latex N_q$ representan el número de puntos de $latex E$ sobre $latex \mathbb{F}_q$ entonces:

$latex \mid N_q-(q+1)\mid \leq 2\sqrt{q}$

Este teorema se ve muy infensivo, pero no lo es... de hecho de manera preliminar podríamos comenzar a atacarlo

Si la ecuación de $latex E$ es $latex y^2 = x^3 + Ax +B =f(x)$ y $latex q$ es impar, entonces vamos a

suponer que el número de puntos que cumplen $latex f(x)$ están distribuidos uniformemente al ser evaluado $latex f$  $latex \forall x\in \mathbb{F}_q$ , por lo que tenemos que hay una raíz que es un punto de $latex E$ y como $latex q$ es impar, existen $latex \frac{q-1}{2}$ elementos que no son cuadrados en $latex \mathbb{F}^{*}_q$  lo que nos deja con los otros $latex \frac{q-1}{2}$ puntos que sí son cuadrados, pero hay 2 por cada uno ya que en $latex E$  tenemos $latex (\pm y)^2$ por lo que el valor esperado de $latex N_q$ es   $latex 1+2\frac{q-1}{2}=q$

Esto nos da la desviación de $latex N_q$ y nos muestra la parte izquierda de la desigualdad de hasse que es $latex \mid N_q-(q+1)\mid$ donde el $latex +1$ es porque se consideran los puntos de $latex \mathbb{F}_q$ sobre la linea proyectiva la cual tiene otro punto adicional en el infinito.

Teoría necesaria.

En el post anterior hablamos del anillo de endomorfismos de una curva, el j-invariante e isogenias.
Te recomiendo lo leas antes, aquí recordaremos algunas cosas pero si crees que falta algo, el artículo anterior tiene más detalles.




Sean $latex E_1, E_2$ dos curvas elípticas definidas sobre $latex \mathbb{K}$ y $latex \psi:E_1\rightarrow E_2$ un homomorfismo separable de curvas elípticas, es decir... que si consideramos el functor contravariante $latex \psi^{*}:\mathbb{K}(E_2)\rightarrow \mathbb{K}(E_1)$ que manda $latex f\mapsto f\circ \psi$ entonces $latex \mathbb{K}(E_1)/\psi^{*}\mathbb{K}(E_2)$ es una extensión de campos separable (i.e. los polinomios minimos de elementos de el campo grande con coeficientes en el campo chico no tienes raíces repetidas) , y definimos el grado del mapeo $latex \psi$ como:  $latex \partial\psi=[\mathbb{K}(E_1):\psi^{*}\mathbb{K}(E_2)]$



Motivación de la demostración de Hasse

Sea $latex \psi:E_1 \rightarrow E_2$ un morfismo separable entre curvas elípticas, tenemos que $latex \partial \psi=\sum_{P\in \psi^{-1}(Q)}e_{\psi}(P)$  $latex \forall Q\in E_2$ con $latex e_\psi(P)=\nu_P(\psi^{*}t_{\psi(P)})$ el índice de ramificación [Silverman II , 2.6a], ahora, si usamos [Silverman III 4.10 a,c] tenemos que $latex \psi$ es separable $latex \Rightarrow \psi$ no tiene ramificación lo que implica que $latex e_{\psi}(P)=1$, y como $latex \psi(P+Q)=\psi(P)+\psi(Q)$ es un homomorfismo de grupos tenemos que $latex \psi^{-1}(\infty_{E_2}) = Ker\psi \Rightarrow$  $latex \partial \psi=\sum_{P\in Ker\psi}e_\psi(P) = \sum_{P\in Ker\psi}1 =$ #$latex Ker\psi$


Sabiendo esto, podemos deducir algo interesante sobre la cardinalidad de la curva elíptica $latex E$, si usamos [Silverman III, 5.5] tenemos que si $latex \phi:E\rightarrow E$ es el endomorfismo de Frobenius que actúa en las coordenadas de los puntos elevándolos a la $latex q$ entonces el mapeo
$latex Id-\phi$ es separable y tenemos que $latex \phi(P)=P \Leftrightarrow P\in E(\mathbb{F}_q)$ y usando el párrafo anterior, $latex Ker(Id-\phi)$ consta de todos los puntos $latex \mathbb{F}_q$ racionales de la curva ya que se anulan con la identidad, lo que nos dice que $latex Ker(Id-\phi)=E(\mathbb{F}_q)$ por lo que igual con el párrafo anterior, $latex \partial(Id-\phi)=$#$latex E(\mathbb{F}_q)$



Me he tardado en escribir en mi blog, pero por ahora dejo sólo esta parte, después vamos a terminar la demostración, pero falta relacionar los morfismos de la curva elíptica con elementos de una torcedura cuadrática de la curva, y con eso, construiremos $latex Id-\phi$ pero visto desde puntos en otra curva definida sobre $latex \mathbb{F}_q(s,t)$ tal que $latex s^2 = f(t)$ es decir la misma curva $latex E$ será  $latex E^{TW}: f(t)y^2 = f(x)$ y los puntos equivalentes a la identidad y el mapeo de frobenius ahí serán $latex (t,1)$ y $latex (t^q,s^{\frac{q-1}{2}})$ , pero esto será después de establecer este isomorfismo $latex Mor_{\mathbb{F}_q}(E,E) \cong E^{TW}(\mathbb{F}_q(s,t)) \cong E(\mathbb{F}_q(s,t))$ el cual nos permitirá calcular la cardinalidad del Kernel que necesitamos mediante otra función entre puntos sobre la curva con puntos en el campo de funciones racionales utilizando el grado de los puntos Id y Frobenius (los puntos ya no son numeros... son cocientes de polinomios en la torcedura cuadrática).


Espero les haya servido.

Lunes 24 de noviembre de 2014

Oswaldo Villa

Oswaldo Villa
Villatux Blog <--

Bloquear y desbloquear direcciones IP con iptables

Una de situaciones más importantes como Administrador de sistemas es la seguridad, es por eso que en este post les mostraré como bloquear direcciones ip en un servidor para que no tengan acceso a el   o bien bloquear las conexiones salientes hacia una IP determinada (en el caso de que se use ese servidor como gateway/router)


BLOQUEAR

Bloquear acceso a ip: 

iptables -A INPUT -s 189.240.240.8 -j DROP

Bloquear acceso a ip pero en un puerto y protocolo especifico:

iptables -A INPUT -s 189.240.240.8 -p tcp --destination-port 25 -j DROP

Bloquear conexión hacia IP: 

iptables -A INPUT -d 189.240.240.8 -j DROP

DESBLOQUEAR

Desbloquear acceso de IP:

iptables -D INPUT -s 189.240.240.8 -j DROP

Desbloquear conexión a hacia IP:

iptables -D INPUT -d 189.240.240.8 -j DROP



Ver reglas de iptables:
iptables --list



REGLAS PERMANENTES

Si deseas que estas reglas se queden de manera permanente es necesario instalar :

apt-get install iptables-persistent

para luego ingresar las reglas que iptables cargará desde el inicio de el equipo.

Archivo para IPv4: /etc/iptables/rules.v4 

Archivo para IPv6: /etc/iptables/rules.v6




Domingo 16 de noviembre de 2014

Héctor Bautista

Héctor Bautista
Soy un Jedi » Gnu/Linux

Skype 4.3 en Debian Jessie AMD64

Resulta que en alguna de las actualizaciones de mi escritorio, la versión de skype que estaba usando dejó de funcionar. Como no recordaba como lo había hecho funcionar en un inicio, y recordando que al menos en Redhat, el rpm proporcionado por el sitio oficial, me dio un poco de lata, así que tienen una versión “dinámica”.

Luego entonces, fui a la web de Skype y me descargué la versión dinámica, como se muestra en las siguientes imágenes:

Skype Linux 01Skype Linux 02

Skype Linux 03Skype Linux 04

Una vez terminada la descarga, procedí a descomprimir el archivo, y ejecuté el binario:

 

hbautista@kenobi:~/Descargas/skype$ ./skype
./skype: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory
hbautista@kenobi:~/Descargas/skype$

 

Y me encontré con ese error, el detalle es que el paquete que se necesita es: libqtwebkit4 y no se encuentra en los repositorios de la arquitectura de 64 bits, pero sí en la arquitectura i386. Por si no tienen habilitada la opción de multi-arquitectura en Debian, estos son los pasos a seguir:

root@kenobi:~# dpkg --add-architecture i386
root@kenobi:~# aptitude update

Una vez que se hayan actualizado los paquetes, procederemos a instalar el paquete requerido de la siguiente forma, lo cuál también nos mostrará todas las dependencias:

root@kenobi:~# aptitude install libqtwebkit4:i386
Se instalarán los siguiente paquetes NUEVOS:
gstreamer1.0-plugins-base:i386{a} libaudio2:i386{a} libavahi-client3:i386{a} libavahi-common-data:i386{a} libavahi-common3:i386{a} libcdparanoia0:i386{a}
libcups2:i386{a} libfontconfig1:i386{a} libgssapi-krb5-2:i386{a} libgstreamer-plugins-base1.0-0:i386{a} libgstreamer1.0-0:i386{a} libk5crypto3:i386{a}
libkeyutils1:i386{a} libkrb5-3:i386{a} libkrb5support0:i386{a} libmng1:i386{a} libqt4-opengl:i386{a} libqt4-xmlpatterns:i386{a} libqtgui4:i386{a}
libqtwebkit4:i386 libsqlite3-0:i386{a} libxt6:i386{a}
0 paquetes actualizados, 22 nuevos instalados, 0 para eliminar y 29 sin actualizar.
Necesito descargar 22.5 MB de ficheros. Después de desempaquetar se usarán 72.9 MB.
¿Quiere continuar? [Y/n/?] y

Skype Linux 05En mi caso, también me descargué el paquete deb, así que procedí a instalarlo con dpkg:

root@kenobi:~# dpkg -i /home/hbautista/Descargas/skype
skype/                            skype-debian_4.3.0.37-1_i386.deb
root@kenobi:~# dpkg -i /home/hbautista/Descargas/skype-debian_4.3.0.37-1_i386.deb
Seleccionando el paquete skype previamente no seleccionado.
(Leyendo la base de datos ... 252325 ficheros o directorios instalados actualmente.)
Preparing to unpack .../skype-debian_4.3.0.37-1_i386.deb ...
Unpacking skype (4.3.0.37-1) ...
Configurando skype (4.3.0.37-1) ...
Processing triggers for dbus (1.8.8-2) ...
Processing triggers for mime-support (3.57) ...
Processing triggers for desktop-file-utils (0.22-1) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
root@kenobi:~#
Skype Linux 06Ya nada más nos queda ejecutarlo como un usuario normal

Skype Linux 09 Skype Linux 10

Y con eso se resuelve dicho problema

Fuente: LinuxQuestions

Notas relacionadas:

The post Skype 4.3 en Debian Jessie AMD64 appeared first on Soy un Jedi.

Viernes 14 de noviembre de 2014

Oswaldo Villa

Oswaldo Villa
Villatux Blog <--

Realizar conexiones SSH sin password

En este post le mostraré como hacer conexiones SSH sin utilizar password de manera permanente.


Escenario:



PC2 necesita conectarse a PC1 por ssh sin utilizar password



Procedimiento:

1 ) Generar la llave pública (en PC2)

ssh-keygen -b 4096 -t rsa

Te pedirá tres datos,  en todos ellos solo es necesario dar [ENTER] sin introducir información

2 )  Mandar la llave pubica de PC2 a PC1

ssh-copy-id root@192.168.0.2

Te pedirá por única ocasión la contraseña de PC1

A partir de este momento podemos hacer una conexion SSH a PC1 sin utilizar password:
Ejemplo:
ssh root@192.168.0.2


NOTAS:
* En ambos equipos es necesario tener el servidor ssh
* Se deben respetar los usuarios con los que se generan las llaves públicas ya que con esos mismos usuarios deberás hacer la conexión SSH para que no te pida password.  si usas otros usuarios te lo pedirá.








Miguel Barajas

Miguel Barajas
GnuOwned's Blog

Querido HeadHunter...

Hoy por la mañana hice un rant en Twitter en 10 tuits, en los cuales di un pequeño feedback a nuestros siempre amigos HeadHunter, sobre todo orientado a tecnología, a continuación esos tuits.

¿Qué opinas? ¿Qué otro agregarías?

Lunes 03 de noviembre de 2014

Marco Islas

Marco Islas
Marco Islas Blog

Cleaning the PS3

My PS3 is basically a Netflix client (the Wii do the same thing) for my wife and kids, but for me this is where I play, my MacBook Pro sucks at games because of the shitty HD3000 video chip which is fine for video play but not that good for gaming, which in some way Read More →

Sábado 01 de noviembre de 2014

Marco Islas

Marco Islas
Marco Islas Blog

Another thing that iOS needs to improve

I have to create an email for work, I usually respond to email in my computer but since it have no power (I left it like that, I’m doing the monthly maintenance), I tried to do it I my iPad. The message must contain a PDF file, the good thing is: that file is in Read More →

Jueves 30 de octubre de 2014

César Yáñez Fernández

Donación de Libros

En el área de cómputo, al igual que en otras áreas y ciencias, existe mucha literatura, libros de texto, manuales, documentos, artículos, etcétera. Uno cuando empieza a recabar esta información, llega el momento que necesitas espacio.

Un libro es como un ser vivo, que necesita ser adoptado para que siga cumpliendo su función, para que se mantenga vivo. Es por esto que me doy a la tarea de crear una lista de libros que se encuentran disponibles para adoptar.

Si alguien quiere uno de los libros listados, se sugiere cumplir las siguientes condiciones:

  1. El libro no está en venta, ni tiene un precio definido.
  2. El libro es donado, no hay costo por el libro.
  3. Para pedir un libro, me pueden contactar personalmente.
  4. El libro será enviado por DHL sin costo, Correos de México no está aceptando libros.
  5. Si es revista o comic, será enviado por Correos de México.
  6. Si el solicitante prefiere otro método de envío (DHL, UPS), el solicitante deberá pagar por el envío.
  7. Si se solicita más de 1 libro, revista o comic, el paquete será enviado por DHL, y el solicitante deberá pagar por el envío.

La lista de libros aún no está completa, y no sólo habrá libros de cómputo, esta lista se irá actualizando con más libros y se eliminarán los que ya fueron adoptados.

César Yáñez Fernández

Donación de Libros

En el área de cómputo, al igual que en otras áreas y ciencias, existe mucha literatura, libros de texto, manuales, documentos, artículos, etcétera. Uno cuando empieza a recabar esta información, llega el momento que necesitas espacio.

Un libro es como un ser vivo, que necesita ser adoptado para que siga cumpliendo su función, para que se mantenga vivo. Es por esto que me doy a la tarea de crear una lista de libros que se encuentran disponibles para adoptar.

Si alguien quiere uno de los libros listados, se sugiere cumplir las siguientes condiciones:

  1. El libro no está en venta, ni tiene un precio definido.
  2. El libro es donado, no hay costo por el libro.
  3. Para pedir un libro, me pueden contactar personalmente.
  4. El libro será enviado por DHL sin costo, Correos de México no está aceptando libros.
  5. Si es revista o comic, será enviado por Correos de México.
  6. Si el solicitante prefiere otro método de envío (DHL, UPS), el solicitante deberá pagar por el envío.
  7. Si se solicita más de 1 libro, revista o comic, el paquete será enviado por DHL, y el solicitante deberá pagar por el envío.

La lista de libros aún no está completa, y no sólo habrá libros de cómputo, esta lista se irá actualizando con más libros y se eliminarán los que ya fueron adoptados.

Gerónimo Orozco

Gerónimo Orozco
Patux's booring news

OpenStack GDL November 2014

Registrate

Miércoles 29 de octubre de 2014

Eduardo Ruiz Duarte

Eduardo Ruiz Duarte
beck's site

j-invariante y anillo de endomorfismos de curvas elípticas (isogenias)

Ahora, estoy dedicándome a explorar el anillo de endomorfismos de una curva elíptica $latex C$
sobre un campo perfecto (todo polinomio irreducible sobre este campo tenga raíces diferentes) para poder hablar de aplicaciones criptográficas.

Estos campos perfectos por excelencia en criptografía son $latex \mathbb{F}_q$.

Vamos a definir algunas cosas para clasificarlas, ya que anteriormente nos habíamos dedicado a estudiar cada curva por separado, pero ahora queremos considerar TODAS las curvas elípticas sobre un campo $latex \mathbb{K}$ , y ver cuáles son isomorfas, y ver cada clase de curvas isomorfas como la misma curva,  como un sólo punto, este espacio es una espacio modular, y generalmente es estudiado como un esquema.

Algo interesante es que en las curvas elípticas es que este espacio tiene dimensión 1, y de hecho es una linea topológicamente hablando.

Como sabemos, una curva elíptica tiene una estructura algebraica y una estructura geométrica, las curvas elípticas son el caso más simple de una variedad abeliana, éstas tienen dimensión 1 (Es decir, al considerar su anillo de coordenadas, su dimensión de Krull es 1, lo cual se traduce a que la cadena más grande de ideales por contención que se puede construir $latex \lbrace J_i \rbrace$ es de altura 1 por lo que $latex J_0 \subset J_1 \subset J_2$ tenemos que $latex J_1 = J_2$ lo que hace al anillo Noetheriano.

Vamos a explorar un poco lo que es una curva elíptica desde el punto de vista más formal, y construiremos relaciones de éstas, clasificaciones, y exploraremos cómo se comporta el anillo de morfismos de la curva en si misma, así como la relación que hay entre la traza y determinante de ciertos endomorfismos con el subgrupo de torsión de la curva en cuestión.


Curva suave de género 1, entonces es elíptica

Todas las curvas de género 1 son elípticas, como lo pueden ver en este post via el teorema de Riemann-Roch , y la construcción de la ecuación en la forma de Weierstrass ahora redefiniremos de una curva elíptica, recordemos que en la estructura algebraica de la curva siempre hay un punto distinguido que nos sirve como identidad visto como variedad abeliana, llamémoslo $latex \mathcal{O}$ , entonces si tenemos que una curva $latex E$ es suave de género g=1 y proyectiva , entonces por el teorema de Riemann-Roch tenemos que si $latex n>2g-2=0$ tenemos que $latex \mathcal{L}(n0)=n-g+2=n$  si $latex n=2$ y $latex n=3$ podemos encontrar dos funciones $latex x,y\in \mathbb{K}(E)$ que tienen exactamente 2 polos en $latex \mathcal{O}$ y $latex y$ tiene 3 polos en $latex \mathcal{O}$ , ahora si $latex n=6$, obtenemos una base para el espacio vectorial $latex \mathcal{L}(6\mathcal{O})$ la cual es $latex \lbrace 1,x,x^2,x^3,y,y^2,xy \rbrace$

La cual nos da la forma usual de la curva elíptica en la forma de Weierstrass como todos la conocemos.

$latex y^2 + f_1xy+f_3y = x^3+f_2x^2 + f_4x + f_6$

tal que $latex f_i \in \mathbb{K}$

Aquí fuimos de álgebra directamente a geometría.

Ahora, ya para geometrizar esto por completo, considera:

$latex \Phi: E \rightarrow \mathbb{P}^{2}_{\mathbb{K}}$
$latex (x,y) \mapsto [x:y:1]$

Ahora, también por lo anterior y Riemann-Roch tenemos que $latex [\mathbb{K}(E):\mathbb{K}(x)]=2$ y que $latex [\mathbb{K}(E):\mathbb{K}(y)]=3$ lo cual implica que $latex [\mathbb{K}(E):\mathbb{K}(x,y)]=1$, por lo que $latex \Phi$ tiene grado 1, como por hipótesis tenemos que $latex E$ es suave, sabemos que su discriminante $latex \Delta\neq 0$ ,  es decir $latex \Phi(\mathcal{O})=[0:1:0]=\infty$  es el punto al infinito.


Isogenias

La palabra "isogenia" no me gusta, pero no sé cómo traducirla, en inglés se dice "isogeny" , pero bueno, hay poca literatura en español sobre curvas isógenas (o no he buscado bien... o no he buscado más bien en español).

Lo que queremos hacer ahora es definir homomorfismos entre curvas elípticas, es decir queremos comenzar a compararlas de tal manera que ésta comparación respete sus propiedades geometricas y algebraicas.

Sean $latex E$ y $latex F$ dos curvas elípticas sobre $latex \mathbb{K}$ , una isogenia es un mapeo racional $latex \alpha: E\rightarrow F$ que induce homomorfismo de grupos de $latex E(\mathbb{K})$ y $latex F(\mathbb{K})$ (es decir entre los grupos abelianos inducidos por la curva elíptica)


Para entender esta definición, como ya lo había definido en el post antes citado en este post, vamos a redefinir lo que es un campo de funciones de una curva proyectiva en general para saber qué es un mapeo racional.

Sea $latex C(\mathbb{K})$ una curva proyectiva definida por $latex f(x,y,z)=0$ donde $latex f\in \mathbb{K}[x,y,z]$ es irreducible en $latex f\in \bar{\mathbb{K}}[x,y,z]$.

El campo de funciones $latex \mathbb{K}(C)$ son las funciones $latex g/h$ tal que

$latex g,h$ polinomios homogéneos del anillo $latex \mathbb{K}[x,y,z]$ de mismo grado
$latex h\notin (f)$  (el ideal generado por f)
$latex g_1/h_1$ y $latex g_2/h_2$ son equivalentes cuando $latex g_1h_2-g_2h_1 \in (f)$

Si te da miedo lo proyectivo, aquí te dejo la definición afín, pero debes trabajar proyectivamente, aquí te dejo un post anterior sobre el espacio proyectivo.

$latex \mathbb{K}(C)=Frac(\mathbb{K}[C])=Frac(\mathbb{K}[x,y]/(f))$

Decimos que un mapeo racional entre dos curvas proyectivas

$latex \Phi: E \rightarrow F$
$latex P\mapsto [\phi_x(P):\phi_y(P):\phi_z(P)]$

Tal que $latex \phi_i \in \mathbb{K}(E)$

Decimos que el mapeo es regular en $latex P\in E(\bar{\mathbb{K}})$  (puntos de E con coordenadas en la cerradura del campo) si existe $latex g\in\bar{\mathbb{K}}(E)$ tal que $latex [g\phi_x(P):g\phi_y(P):g\phi_z(P)]$ está bien definida y no todos son coordenada 0 ($latex [0:0:0] \notin \mathbb{P}^2$).


Si un mapeo es regular en todos los puntos, decimos que es un morfismo , puede verse en el libro Advanced topics in the arithmetic of elliptic curves (Silverman) que si $latex E$ es suave proyectiva, entonces todo mapeo racional de $latex E$ a una curva proyectiva $latex F$ es un morfismo.

Tambien decimos que un isomorfismo entre curvas elípticas es una isogenia invertible.

Como ejemplos que pueden trabajar en casa, consideren los mapeos sobre una curva $latex E$ sobre el campo $latex \mathbb{F_q}$  con $latex q=p^n$

$latex P\mapsto 2P$

Pueden demostrar que eso realmente es una isogenia

También
$latex \pi:E \rightarrow E$
$latex [x:y,z] \mapsto [x^q:y^q:z^q]$

Donde este mapeo es el endomorfismo de Frobenius y tenemos que
$latex \hat{\pi}:\mathbb{F}_q \rightarrow \mathbb{F}_q$
$latex x\mapsto x^p$

Este mapeo es muy importante , ya que es un automorfismo, y tenemos que

$latex \pi(\mathbb{F}_q)$ deja fijos a los elementos $latex \mathbb{F}_p$


Ahora queremos representar explícitamente las isogenias entre curvas elípticas.

Lema: Si $latex E$ y $latex F$ son curvas elípticas sobre $latex \mathbb{K}$  en su forma estándar de Weierstrass (como en los ejemplos) y si $latex \alpha$ es una isogenia no trivial, entonces tiene la siguiente forma:

$latex \alpha(x,y)=\Big( \frac{u(x)}{v(x)} , \frac{s(x)}{t(x)}y \Big )$

donde

$latex u,v,s,t \in \bar{\mathbb{K}}[x]$

y las fracciones están reducidas (numerador y cocientes son primos relativos)


Esto es fácil demotrarlo, te dejo los hints porque es mucha talacha para que tú lo hagas.

Considera lo que ya sabemos, supón que $latex \alpha$ está definido por el mapeo racional $latex [\alpha_x:\alpha_y:\alpha_z]$, y considera para todo punto afín

$latex [x:y:1] \in E(\bar{\mathbb{K}})$

$latex \alpha(x,y)=\Big ( r_1(x,y), r_2(x,y) \Big )$  donde $latex r_1(x,y)=\alpha_x(x,y,1)/\alpha_z(x,y,1)$ y $latex r_2(x,y)=\alpha_y(x,y,1)/\alpha_z(x,y,1)$

utilizando la relación de $latex E$ que ya conoces entre $latex x,y$ que es $latex y^2=x^3+ax+b$ elimina los factores $latex y^n$ y reescribe $latex r_1(x,y)=\frac{p_1(x)+p_2(x)y}{p_3(x)+p_4(x)y}$, multiplica el numerador y denominador por $latex p_3(x)-p_4(x)y$ y vuelve a reducir los $latex y^n$

Eso te dara otra versión de $latex \alpha$ que también tiene $latex y$, pero considera la simetría de la curva y el inverso de los puntos... sabes que $latex \alpha(x,-y)=-\alpha(x,y)$ por lo que deben haber cosas que se hagan 0, el argumento en $latex \alpha_y$ es similar.

El grado de una isogenia se define bajo esta representación tan cómoda como $latex \partial(\alpha):=max\lbrace u,v\rbrace$, y decimos que la isogenia $latex \alpha$ es separable si la derivada de $latex \frac{u}{v}$ NO es la función 0

El grado jugara un papel importante para despues definir otras cosas y jugar con la funcion zeta elíptica y el teorema de Hasse.

Corolario-Definición

Si $latex \alpha(x,y)$ es una isogenia como en el lema pasado, $latex v,t$ tienen las mismas raíces, y justamente estas raíces corresponden al kernel de $latex \alpha$



Teorema-Definición: 
Sea $latex \alpha: E\rightarrow F$ una isogenia con $latex \partial(\alpha)=n$ separable, entonces existe una única isogenia $latex \hat\alpha:F\rightarrow E$ tal que $latex \hat\alpha \circ \alpha = [n]$ , y le llamamos isogenia dual de $latex \mathbb{\alpha}$


Cosas que se pueden demostrar es que si $latex \alpha:E\rightarrow F$ y $latex \beta:E\rightarrow F$ entonces $latex \hat{\alpha+\beta}=\hat\alpha+\hat\beta$ y que $latex \alpha + \hat\alpha = 1 + \partial(\alpha)-\partial(1-\alpha)$, lo cual nos lleva a que definamos la traza  de un endomorfismo

$latex tr(\alpha)=tr(\hat\alpha)=\alpha+\hat\alpha$

Nota que tenemos que $latex \alpha\cdot \hat\alpha=[\partial(\alpha)]$ (en la misma curva elíptica) por lo que $latex \partial(\hat\alpha) = \partial(\alpha)$

Lo anterior nos lleva a un teorema importante que nos relaciona con un polinomio cuadrático cada endomorfismo.

Teorema: 

Sea $latex \alpha \in End_\mathbb{K}(E)$ , entonces $latex \alpha$ y $latex \hat\alpha$ son raíces del polinomio característico

$latex \xi(\lambda)=\lambda^2 - (tr\alpha)\lambda + \partial(\alpha) = 0$

Esto es muy fácil de probar

$latex \alpha^2 -(tr\alpha)\alpha+\partial(\alpha)=\alpha^2 - (\alpha+\hat\alpha)\alpha + \hat\alpha\alpha = 0$  lo mismo para $latex \hat\alpha$.

Ahora... como última parte de esta sección, consideremos el campo de caracteristica p y vamos a restringir los endomorfismos al subgrupo de torsión de la curva elíptica, es decir, sólo los evaluaremos en elementos de $latex E[n]$
y si $latex \alpha \in latex End(E)_\mathbb{K}$ a la restricción de $latex \alpha\mid_{E[n]}$ la redefiniremos como:

$latex \alpha_n$

Esta $latex \alpha_n$ es un endomorfismo del subgrupo abeliano $latex E[n]$ ya que $latex \alpha$ es un morfismo y manda puntos de torsión a puntos de torsión y como vimos anteriormente:

$latex E[n] \cong \mathbb{Z}/n\mathbb{Z} \oplus \mathbb{Z}/n\mathbb{Z}$, considera una base para $latex E[n]$ , llámale $latex (P_1,P_2)$

entonces podemos representar en forma de matriz a $latex \alpha_n=\begin{pmatrix}a&b\\c&d\end{pmatrix}$ donde $latex a,b,c,d \in \mathbb{Z}/n\mathbb{Z}$ y $latex \alpha(P_1)=aP_1\oplus cP_2$ y $latex \alpha(P_2)=bP_1+dP_2$ , la representación de la matriz depende de la base, pero la traza  $latex tr \alpha_n$ y $latex det \alpha_n$ no.


Lo que nos deja con este teorema que es MUY importante, ya que es la conexión más importante que hay entre los endomorfismos y las restricciónes a $latex E[n]$


Teorema: 
Sea $latex \alpha \in End_\mathbb{K}(E)$ con $latex E$ elíptica sobre $latex \mathbb{K}$  y sea $latex n$ un número positivo primo relativo a la característica de $latex \mathbb{K}$

entonces:

$latex tr \alpha \equiv tr \alpha_n \bmod n$   y    $latex \partial(\alpha) \equiv det(\alpha_n) mod n$


Con esto ya estamos bien equipados.

j-Invariante


Ahora, ya que sabemos que todas las curvas de género 1 son elípticas, hay una manera de clasificarlas muy eficientemente, consideremos $latex \mathcal{E}$ como el espacio de todas las curvas elípticas sobre $latex \mathbb{K}$ , entonces existe una función

$latex j: \mathcal{E} \rightarrow \mathbb{K}$

Llamada j-invariante que cumple que:

$latex j(E)=j(F)\Leftrightarrow E \cong F$ sobre $latex \bar{\mathbb{K}}$

Se ha demostrado que la función $latex j$ es suprayectiva, por lo que $latex \mathbb{K}$ es el espacio modular de dimensión 1y tenemos que las fibras $latex j^{-1}(x)$ son clases de $latex \bar{\mathbb{K}}$-isomorfismos de curvas elípticas definidas sobre $latex \mathbb{K}$

Las curvas elípticas que generalmente usamos en criptografía son de la forma

$latex E:=y^2 - x^3 - px -q $

Por lo que podemos expresar el j-invariante de manera más reducida como:

$latex j(E)=1728 \frac{4p^3}{4p^3+27q^2}$

Torsiones cuadráticas de curvas elípticas

Aquí no voy a entrar tanto en detalle porque tengo poca experiencia pero es importante.

Imagina que tenemos las curvas $latex E$ y $latex F$ definids sobre $latex \mathbb{K}$ tal que existe un isomorfismo $latex E\rightarrow F$ sobre $latex \bar{\mathbb{K}}$ pero no sobre $latex \mathbb{K}$ , decimos en este caso que $latex E$ y $latex F$ son torsiones.

Ejemplo:

Considera las curvas $latex E:y^2=x^3+11664$ y $latex F:y^2=x^3+1$

Ambas suaves y lindas definidas sobre $latex \mathbb{Q}$ , estas curvas NO pueden ser isomorfas sobre $latex \mathbb{Q}$ ya que $latex F$ tiene un punto de orden 2 $latex (-1,0)$ y $latex E$ no tienen ningun punto de orden 2 (el punto de orden 2 en este caso como son simetricas son el eje x , tendria que se un punto de weierstrass, lo cual implica que x=0 por lo que $latex y\notin \mathbb{Q}$)

Pero ahora considera las curvas en la extensión cuadrática $latex \mathbb{Q}(\sqrt{2})$,
aquí podemos definir el isomorfismo:

$latex \Psi: E \rightarrow F$
$latex (x,y) \mapsto (2^3 3^6 \sqrt{2}\cdot x , 2^2 3^3\cdot y)$

Por lo que decimos que $latex E$ y $latex F$ son twists cuadráticos.

Por lo anterior... deberían de tener el mismo j-invariante, el cual es claramente 0, por lo que todas las curvas existentes con j-invariante 0 , serán isomorfas a estas que ejemplificamos en alguna extensión del campo en el que estén trabajando.


Subgrupo de torsión y endomorfismo de una curva elíptica

Sabemos que el mapeo que manda a multiplicar por $latex [n]$ los puntos de una curva $latex E$ es un morfismo, al kernel de este mapeo le llamamos subgrupo de torsión y lo denotamos como $latex E[n]$ , y tenemos el siguiente teorema cuando $latex K$ tiene caracteristica p

$latex E[n]\cong \mathbb{Z}/n\mathbb{Z}\oplus \mathbb{Z}/n\mathbb{Z}$ si $latex p=0$ o $latex p\ndiv n$

o

$latex E[n]\cong \mathbb{Z}/n\mathbb{Z}$ o $latex \lbrace 0\rbrace 0$  si $latex p>0$ y $latex n=p^m$

Qué corolario de este teorema pueden deducir de $latex E[p]$ ?

Pero lo que diremos es que en un campo de caracteristica positiva , si $latex E[p]\cong \mathbb{Z}/p\mathbb{Z}$ le llamamos a la curva $latex E$ ordinaria, y si es $latex E[p]\cong \lbrace 0\rbrace $ supersingular.


Ahora, aquí el anillo de Endomorfismos  de la curva $latex E$ los denotamos como $latex End_\mathbb{K}(E)$
y tenemos que las isogenias $latex \alpha:E\rightarrow E$ son endomorfismos, y forman un anillo

bajo las siguientes operaciones

$latex \alpha,\beta \in End_\mathbb{K}(E)$

$latex (\alpha + \beta)(P)=\alpha(P)\oplus\beta(P)$
$latex (\alpha\cdot \beta)(P)=(\alpha \circ \beta)(P)$

donde $latex \oplus$ es la adición elíptica .

Tenemos que ahora con esto podemos construir una infinidad de elementos ya que $latex [n] \ in End_\mathbb{K}(E)$

esto debería ser para ustedes pero lo pongo.

$latex (\alpha\cdot [n])(P)=\alpha(nP)=\alpha(\bigoplus_{i=1}^n {P}) = \bigoplus_{i=1}^n { \alpha(P) }=n\alpha(P)=([n]\cdot \alpha(P)$

Esto nos dice que $latex \mathbb{Z}$ es un subanillo de $latex End_\mathbb{K}(E)$ , lo puedes observar viendo como se comporta la composición y la suma de $latex [n]$ y $latex [m]$ , verás que forman un anillo esos endomorfismos y son isomorfos a $latex \mathbb{Z}$

Este anillo de endomorfismos no sólo tiene a $latex \mathbb{Z}$ , como vimos, también está el endomorfismo $latex \pi$ de Frobenius (con $latex \mathbb{K}$ de caracteristica p>0 como el caso de criptografía) y pues por lo tanto todas las composiciones y sumas de éste con los isomorfos a $latex \mathbb{Z}$ cuando la curva $latex E$ es supersingular, este anillo de endomorfismos se comporta como un álgebra de cuaternios y no es conmutativo.



Espero les haya interesado, cualquier duda o corrección háganmela saber

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


Martes 28 de octubre de 2014

Marco Islas

Marco Islas
Marco Islas Blog

Disk speed

Although this is not the fastest SSD drive, it takes nothing to launch the apps I use every day. Please excuse me, I’m amazed. from Flickr http://flic.kr/p/pyniDg via IFTTT

Sábado 25 de octubre de 2014

Farid Bielma

¿Quiénes ganan y quiénes pierden con la Reforma Energética?

Promulgación de la Reforma Energética por el presidente Enrique Peña

Promulgación de la Reforma Energética por el presidente Enrique Peña

En recientes presentaciones me han preguntado sobre mi opinión personal de los pros y contras de la Reforma Energética y apertura del sector a inversión privada. En esta ocasión no quiero hablar sobre los contras, ya que deseo centrar este análisis en los beneficios que pueden obtener cientos de empresas mexicanas, aquí algunos de mis comentarios:

  • Llegarán un número importante de empresas extranjeras, muchas de ellas con su cadena de suministro de proveedores bien establecida, a pesar de ello, varias compañías desarrollarán estrategias de desarrollo de proveedores locales, solo las empresas con altos estándares de calidad, capacidad y recurso humano competitivo podrán aprovechar los nuevos proyectos que se desarrollarán. Es necesario que muchas empresas mexicanas superen la barrera del idioma al lenguaje de negocios: inglés, y que obtengan certificaciones de calidad ISO o alguna norma internacional.
  • El propio CONACYT ha detectado que existe insuficiencia en mano de obra calificada en el país y en número de empresas que ofrezcan valor agregado a sus servicios, por ello, impulsará un ambicioso programa para capacitar a 200,000 jóvenes en áreas de ingeniería del sector energético, además de ello, las empresas tendrán apoyos de Secretaría de Energía y Secretaría de Economía para desarrollar competencias internacionales.
  • Las empresas que tengan como modelo de negocio desarrollar nuevos productos, procesos y modelos para el sector, y que puedan detectar necesidades o fallas en el mercado tendrán un crecimiento exponencial, empresas que visualicen esas oportunidades y obtengan información de inteligencia competitiva estarán un paso adelante de competidores.

Viernes 24 de octubre de 2014

César Yáñez Fernández

Resucitando a BSD (en México)

Érase una vez...

Hace poco más de 10 años, que había mucho ímpetu y movimiento de grupos de usuarios, que además de los ya conocidos grupos de usuarios de Linux, los grupos de usuarios de BSD; siendo concretos, los de FreeBSD, los de NetBSD y los de OpenBSD, en esos se conocieron amistades largas...

Esos usuarios han crecido, se han casado, han creado familia, y muchos por cuestiones de responsabilidades y trabajo, hemos dejado a un lado los foros y listas de correo. BSD sigue usándose mucho, tanto en productos propietarios (como NetScaler de Citrix); y en empresas conocidas (el caso de Netflix).

La lista de correo de NetBSD México lleva meses sin actividad, y seguro no es la única; hay algunos artículos en borrador, pendientes de publicarse en el sitio, y hasta siento feo verlo acumulando polvo.

Hace unos años, escribí hacia dicha lista sobre qué se puede hacer para retomar estos trabajos, que si bien nuestras responsabilidades no nos permiten que lo tengamos actualizado diariamente, podemos darnos 1 hora a la semana para mantenerlo vigente.

Esos puntos que escribí en la lista, quiero exponerlos aquí, digo, son solo unas vagas ideas de qué se puede hacer; seguro habrá opiniones propias, pero que se pueden tomar en cuenta.

Unificar el contenido generado

Hay varios sitios con dominio MX que se rodean alrededor de FreeBSD, NetBSD y OpenBSD, que siguen todavía vigentes aunque los sitios ya no tienen actualizaciones, lo que creo mejor es que se unifiquen todos en un solo lugar, o que apunten a un solo lugar, y que se platique en general de:

De la misma manera, se pueden unificar los foros y listas de correo, manteniendo un idioma común.

Generación de contenido

Ya he comentado y dejado claro que el contenido ahí sigue, pero que ya no se ha generado seguimiento, es difícil para muchos escribir una entrada de blog en un lugar específico solo para decir: “¡FreeBSD 10 a sido liberado! ¡Yay!”.

Lo que se puede hacer es compartir información de cómo resolvieron un problema en algún BSD que usen; es contenido que no tiene que estar todo el tiempo actualizándose, pero se puede tener como referencia cuando tengamos un problema similar; con esto, también evangelizando acerca de estas tecnologías libres.

Tendencias

¿En qué lugar se puede colocar a los BSD con las tendencias tecnológicas actuales (llámese Virtualización, Nube, Big Data, etcétera)?

BSD aún tiene cabida en estos nichos, principalmente en NAS, SAN, Virtualización y Nubes públicas, hay que experimentar con las tecnologías abrigadas por algún proyecto BSD y compartir sus casos de uso.

Planeta

Va de la mano con generación de contenido. Planeta Linux es un excelente lugar para reunir diferentes blogs de usuarios, y no está peleado con BSD, se puede usar este, o también crear un Planeta BSD donde se indexen nuestros artículos relacionados.

Como he comentado, son ideas vagas que se pueden seguir, ojalá en poco tiempo podamos consensuar en una dirección, con muchos que no he conocido, de los usuarios que aún andan por ahí.

Antonio de Dios

Antonio de Dios
Webadedios » Linux

[fix] geany no inicia, “Attempt to unlock mutex that was not locked”

Hice una actualización, y después de unos días feliz intento abrir el editor geany y cual es mi sorpresa de toparme con el mensaje


toto@linux:~$ geany
Attempt to unlock mutex that was not locked
Abortado

Y pues efectivamente no abría, abortaba el inicio del programa.

corro entonces geany, dándole la instrucción geany -v, para leer el mensaje de donde podría estar el error, y veo que se detiene al momento de invocar los plugins


toto@sidux:~$ geany -v
Geany-INFO: Geany 1.24.1, es_MX.UTF-8
Geany-INFO: GTK 2.24.25, GLib 2.42.0
Geany-INFO: System data dir: /usr/share/geany
Geany-INFO: User config dir: /home/toto/.config/geany
Geany-INFO: System plugin path: /usr/lib/i386-linux-gnu/geany
Geany-INFO: Added filetype Go (58).
Geany-INFO: Added filetype Clojure (59).
Geany-INFO: Added filetype Genie (60).
Geany-INFO: Added filetype Scala (61).
Geany-INFO: Added filetype Cython (62).
Geany-INFO: Added filetype CUDA (63).
Geany-INFO: Added filetype Graphviz (64).
Geany-INFO: Loaded: /usr/lib/i386-linux-gnu/geany/autoclose.so (Autocierre)
Geany-INFO: Loaded: /usr/lib/i386-linux-gnu/geany/addons.so (Añadidos)
Geany-INFO: Loaded: /usr/lib/i386-linux-gnu/geany/defineformat.so (Definir formateador)
Attempt to unlock mutex that was not locked
Abortado

hago una prueba de llamar a geany, sin plugins, con la instrucción geany -p y abre perfectamente

toto@sidux:~$ geany -p

por lo que voy a ver (editar) el archivo ~/.config/geany/geany.conf para ver cuales plugins están activos y cual es él que esta dando problemas.

Solución

Después de probar quitando uno por uno, veo que es debugger.so el que da problemas, por lo cual borro de la lista, guardo, inicio geany y todo funciona bien nuevamente

la linea editada en la sección plugins, listado en active_plugins= quedo así después de borrar /usr/lib/i386-linux-gnu/geany/debugger.so; (efectivamente, tengo activados muchos plugins)


[plugins]
load_plugins=true
custom_plugin_path=
active_plugins=/usr/lib/i386-linux-gnu/geany/autoclose.so;/usr/lib/i386-linux-gnu/geany/addons.so;/usr/lib/i386-linux-gnu/geany/defineformat.so;/usr/lib/i386-linux-gnu/geany/geanypy.so;/usr/li
b/i386-linux-gnu/geany/geanymacro.so;/usr/lib/i386-linux-gnu/geany/multiterm.so;/usr/lib/i386-linux-gnu/geany/filebrowser.so;

Domingo 19 de octubre de 2014

Itzcoalt Alvarez Moreno

Itzcoalt Alvarez Moreno
Itzcoalt (itz) Álvarez

Seguros

Hace mas de un mes tuve un problema con el auto, por lo que la persona que daño mi vehículo llamo a su seguro a fin de responsabilizarse por los daños.

Debido al modelo de mi auto, seleccione que fuera atendido por la Agencia Nissan Fuji Automotriz, en donde fue recibido y empezo el proceso de reparacón.

Casi un mes después, paso a recoger mi vehículo y observo que vibra y que uno de los soportes del motor esta ROTO, lo reporto a la agencia, ellos a su vez al taller quien me dice que debo hablar directamente con la aseguradora.

Y en este momento, inician los problemas.

Para empezar, mi primera llamada no fue registrada en su sistema, y tuve que llamar 3 días después, el supervisor de calidad, me dice que el golpe fue de lado izquierdo, y que el soporte del motor esta del lado derecho por lo que no procede la reclamación, sin embargo, me indica que pasará su reporte y que contactaran al ajustador para validar con el la informacion.

 

Después de otras 4 días vuelvo a llamar, y el departamento de calidad de la aseguradora no desea tomarme la llamada, me canaliza nuevamente con el supervisor asignado a la agencia, y me indica que  ha recibido un correo en donde le indican que no procede, le pido copia del mismo, y se niega a proporcionarla.

Interesante que un departamento de calidad tenga problemas en la calidad del servicio que deben supervisar.

Es un hecho que antes del accidente el soporte del motor no estaba roto, sin embargo, la aseguradora no se hizo responsable, el ajustador incluyo en la orden de admisión la leyenda “mecánica a consecuencia“, sin embargo, ni la agencia, ni el seguro verificaron  que se le realizaran las pruebas necesarias al auto, a tal grado, que la propia agencia estaba entregándome el auto sin avisar del soporte roto, y la ¿calidad?, acaso, si no esta roto no implica que este “afectado”. donde queda la responsabilidad de la aseguradora y la agencia en estos casos.

Es preocupante que ninguna de las dos empresas se preocupen por el afectado y por la calidad de sus servicios.

Recomendaciones para casos similares.

1.- Tomen fotos de todos los ángulos del golpe, y de todo el motor.

2.- Valide o haga validar las fotos con el ajustador,  una forma fácil es tomar algunas con el de fondo :)

3.- El seguro y la Agencia no les importa lo que pase con tu auto y no te informaran del avance, llama,llama,llama, y si te es posible acude

4.- El seguro y la agencia solo se responsabilizan con lo que dice la orden de admisión y por ende, lo que dice el ajustador que esta roto, así que asegurarte te pongan todo, y apoyarte en las fotos en caso de problemas

5.- PROFECO es una opción,  sin embargo, esto llevara tiempo.

6.- Consideran la no contratación de aseguradoras que tienen este tipo de vicios en su organizacion.

 

Para el registro.

 

Aseguradora QUALITAS

Agencia: Fuji Automotriz.

 

 

Actualización.

Molesto por la atención recibida, pedí me indicaran el proceso para levantar una queja, me canalizaron al envío de un correo a la cuenta ccq@qualitas.com.mx.

 

El día 15 de Octubre envie el siguiente correo, y debo decir que hasta el día de hoy (18 de octubre) , no he recibido comunicación alguna por parte de la aseguradora, no hay correo de confirmación de recepción, no hay comunicación de un gerente, o en su caso de un departamento encargado de la atención al cliente, por lo que podemos decir, que es un buzon, que se va directo a  /dev/null

—- Correo —-

Numero de Reporte: 737617
Automovil: Sentra 2007.
Por medio del presente me dirigo a quien corresponda con el fin de levantar una queja en base a su servicio, y procedimiento de seguimiento hacia sus clientes.
Narrativa de hechos:

Soy el 3ero perjudicado dentro de un accidente ocurrido el dia 9 de Septiembre, quien golpeo mi auto tenia asegurada su unidad con ustedes.
El trato de su ajustador fue correcto, y fui canalizado a Fuji Automotriz. en donde el auto fue recibido y se procedio a la preparacion.

Anomalias:

Al recoger el auto, me percado que este VIBRA cuando esta encendido, procedo a revisar el motivo de esta vibracion y observo el soporte del motor Roto del lado opuesto a donde fue el golpe, la agencia me remite al taller automotriz, en donde en ninguna de las fotos que observamos se pude detemrinar el estado del soporte al momento de la recepcion del mismo y me indica que no esta cubierto este daño, que debo levantar una queja con Calidad de Quialitas.

Procedo a hacer esta llamada el dia 7de Octubre, en donde se me indica que lo canalizaran con el supervisor de Calidad, y que me llamaran, espero hasta el dia 10 de octubre sin respuesta alguna y decido llamar, y solo me entero que mi reporte anterior no fue levantado y que de acuerdo a la Base de datos de seguimiento no se reporto mi llamada, molesto les pido me auxilien por que tengo ya una SEMANA mas sin mi auto.

Atienden la llamada y ese mismo dia el supervidor de Calidad me llama para indicarme que de acuerdo a sus observaciones no procede el pago del soporte dañano. aun cuando comente que dicho daño no estaba antes del accidente, mis argumentos son desechados sin mayor afan que la de no cubrir el costo, toda que vez que aun que el no estubo en accidente, carece de la informacion del propio dueño y conductor del auto., el mismo supervisor me indica que el pasara su reporte a QUALITAS y que contactaran al Ajustador para verificar lo procedente, que Quialitas me llamará.

Pasan 3 dias y Quialitas no me llama, decido hacer la llamada personalmente para que me comuniquen con CALIDAD, y el area de calidad simplemente no me quiere tomar la llamada arguementando que el caso esta cerrado.

Punto importante, CERRADO si nunca Qualitas me llamo para darme esta informacion y quedamos en la espera de la informacion del Ajustador.

Quien me atiente, una recepcionista, tal vez sin el entrenamiento adecuado para las labores especifica del area de CALIDAD, me comunican nuevamente con el supervisor de CALIDAD asignado a la Agancia Fuji Automitriz, quien me informa que el dia de ayer recibio un correo en donde indican TEXTUALMENTE que no procede mi reclamacion, le pido me reenvie el correo, y me indica que no puede hacerlo.
QUEJA.

Cual es el seguimiento que dan a sus reportes, que ustedes como OFICINA CENTRAL no se comunicaron en ningun MOMENTO con un servidor para dar seguimiento a mi queja, en todo momento yo como cliente he tenido que hacer las llamadas para ver el seguimiento a una REPORTE de su area de CALIDAD.

Por que CALIDAD no desea contestar mi llamada argumentando que esta CERRADO el reporte y sin informarme el resultado del mismo, cual es el procedimiento para una queja de la CALIDAD del servicio que de su departamento de CALIDAD?

Por que la Agencia no reviso el auto antes de entregarlo y peor aun, por que la agencia no valido que la entrega de la unidas se haya realizado acorde a un protocolo.?, mas si dentro de la orden de admision se estipulo “MECANICA a CONSECUENCIA”, si la afectacion fuera en un soporte de la suspencion o en alguna otra parte que quedará dañada producto del accidente, este daño no seria identificado de manera VISUAL, luego entoces… hasta donde llega la responsabilidad en la reparacion de una unidad que ingreso con esa nota “MECANICA a CONSECUENCIA”

¿Que Pruebas se realizaron a la unidad para descartar otros daños? fuera de los observador VISUALMENTE por el ajustador?
En cuanto al hecho de no querer pagar el daño del soporte al motor, me parece un error, toda vez, que como dueño de la unidad les afirmo, el daño no estaba antes del Accidente, por que no me mostraron las fotos que tomo el ajustador y que integran el expediente?

Quedo en espera de sus comentarios y de acciones.

Atentamente.

Izcoalt Alvarez Moreno.

—- Correo —-

 

Lunes 13 de octubre de 2014

Eduardo Ruiz Duarte

Eduardo Ruiz Duarte
beck's site

Leyes fundamentales de la estupidez humana (Carlo M Cipolla)

Esto es algo que me llamó la atención, gracias a Omar Lara que me lo compartió
es un tratado formal sobre la estupidez humana, el artículo completo aquí


Introducción

"La humanidad se encuentra (y sobre esto el acuerdo es unánime) en un estado deplorable. Ahora bien, no se trata de ninguna novedad. Si uno se atreve a mirar hacia atrás, se da cuenta de que siempre ha estado en una situación deplorable. El pesado fardo de desdichas y miserias que los seres humanos deben soportar, ya sea como individuos o como miembros de la sociedad organizada, es básicamente el resultado del modo extremadamente improbable (y me atrevería a decir estúpido) como fue organizada la vida desde sus comienzos. 
Desde Darwin sabemos que compartimos nuestro origen con las otras especies del reino animal, y todas las especies -ya se sabe- desde el gusanillo al elefante tienen que soportar sus dosis cotidianas de tribulaciones, temores, frustraciones, penas y adversidades. Los seres humanos, sin embargo, poseen el privilegio de tener que cargar con un peso añadido, una dosis extra de tribulaciones cotidianas provocadas por un grupo de personas que pertenecen al propio género humano. Este grupo es mucho más poderoso que la Mafia, o que el complejo industrial-militar o que la Internacional Comunista. Se trata de un grupo no organizado, que no se rige por ninguna ley, que no tiene jefe, ni presidente, ni estatuto, pero que consigue, no obstante, estar en perfecta sintonía, como si estuviese guiado por una mano invisible, de tal modo que las actividades de cada uno de sus miembros contribuyen poderosamente a reforzar y ampliar la eficacia de la actividad de todos los demás miembros. La naturaleza, el carácter y el comportamiento de los miembros de este grupo constituyen el tema de las páginas que siguen. 
Es preciso subrayar a este respecto que este ensayo no es ni producto del cinismo ni un ejercicio de derrotismo social -no más de cuanto pueda serlo un libro de microbiología-. Las páginas que siguen son, de hecho, el resultado de un esfuerzo constructivo por investigar, conocer y, por lo tanto, posiblemente neutralizar, una de las más poderosas y oscuras fuerzas que impiden el crecimiento del bienestar y de la felicidad humana. "



1. Siempre e inevitablemente cada uno de nosotros subestima el número de individuos 
  estúpidos que circulan por el mundo

2. La probabilidad de que una persona determinada sea una estúpida es independiente 
  de cualquier otra característica de la misma persona

3. Una persona estúpida es una persona que causa un daño a otra persona o grupo de 
  personas sin obtener, al mismo tiempo, un provecho para sí, o incluso obteniendo un 
  perjuicio. 

4. Las personas no estúpidas subestiman siempre el potencial nocivo de las personas 
  estúpidas. Los no estúpidos, en especial, olvidan constantemente que en cualquier 
  momento y lugar, y en cualquier circunstancia, tratar y/o asociarse con individuos 
  estúpidos se manifiesta infaliblemente como costosísimo error. 


Carlo M Cipolla