Hace un año publiqué una lista de más de 270,000 cuentas ecuatorianas en Twitter. Hoy repetí el experimento y encontré 816,390 cuentas. Para saber más de la metodología y datos anteriores, ver aquí.
Como he explicado antes, hay varias consideraciones para esta metodología. La más notable es que mientras en cada ejecución se refina la metodología, los resultados anteriores pierden exactitud. Con la API 1.1 de Twitter (que se convirtió en obligatoria en medio de este mes) se facilita la recolección de tweets georeferenciados, que en el caso de Ecuador no son muy útiles (1% de las cuentas) Por lo tanto, como siempre, los cálculos de abajo están basados en las 816,000 cuentas conseguidas ahora (que, como antes, puedes bajar), y no en datos previos.
26% de estas cuentas usan Web para twittear, 19% Blackberry, 10% Android y 6% iPhone. Un 24% de las cuentas están potencialmente basadas en Guayaquil, y un 36% en Quito. Sin embargo, esa diferencia probablemente no sea tanta debido a la influencia de la variable timezone en el API de Twitter. Hay un 4% en Azuay, 3.8% en Manabí y un 28% de cuentas que no tienen una localidad particular. Solo 11,839 cuentas tienen coordenadas especificadas en sus tweets, y se ven así (no representativo, por limitaciones en el reverse geocoding)
La creación de nuevas cuentas supera mes a mes el promedio desde la explosión del 2011 (ver la gráfica de abajo) En Junio 2012 estimé que mi base crecía 20% trimestralmente.
Y aunque es lógico que las cuentas más nuevas tienen menos tweets y menos followers, el comportamiento continúa siendo un tanto frustrante: desde Enero 2012 el promedio de followers no ha subido de 100, y en 2013 en promedio se han escrito menos de 15 tweets/mes (en 2012 el promedio fue 20.5, con un pico de 25 en Mayo)
Hace años escribí sobre como uso Nginx como proxy de Apache en algunas instalaciones. En esa arquitectura contemplo Memcache. La configuración es muy sencilla, basta agregar a la sección location que queramos cachear lo siguiente:
set $memcached_key $uri;
memcached_pass 127.0.0.1:11211;
error_page 404 @fallback;
Y agregar el location @fallback correspondiente:
location @fallback {
proxy_pass http://localhost:8000;
}
El único problema, como algunas personas que han usado Nginx con Memcache, es que alguien tiene que llenar Memcache con objetos para que Nginx pueda leerlos.
Usualmente, los desarrolladores de la aplicación usarán las librerías del lenguaje de programación para acceder a Memcache y cargar allí algunos objetos. Esto funciona, y es como la mayoría de la gente implementa este escenario. Sin embargo, si uno quiere cargar varios archivos de forma rápida a Memcache, no hay muchas herramientas sencillas y fácilmente disponibles.
Por ejemplo, hace dos meses en la wiki de Nginx alguien publicó un método para precargar memcache con Python. Es un enfoque interesante, pero complicado de mantener y decididamente experimental.
Sin embargo, memcache ya incluye un cliente llamado memccp que permite cargar archivos en Memcache. El problema es que este cliente no permite definir la llave con la que el objeto se almacena en Memcache. Esa llave es $uri, por ejemplo algo como /wp-content/plugins/akismet/akismet.gif.
Cuando Nginx encuentra un cliente que hace GET a este archivo, lo sirve desde Memcache, lo que en este escenario nos ahorra abrir una conexión TCP a localhost, que Apache atienda y responda una petición, y potencialmente I/O de disco.
Este parche a libmemcached permite que se defina una clave con –key, lo que facilita precargar archivos como imágenes o CSS en Memcache. Su uso es sencillo y se puede invocar desde un shell script (probado en dash)
#!/bin/sh
BASE=”/var/www/mysite”
for file in `\
find $BASE -type f \
-name ‘*.jpg’ -or \
-name ‘*.gif’ -or \
-name ‘*.png’ \
| sed “s#$BASE##”`
do
echo “Adding $file to memcached…”
sudo memccp –key=$file –servers=localhost $BASE$file
done
Entre otros escenarios que puedes activar en este caso, está el poder almacenar archivos para distintos hosts virtuales. En este caso sugiero que configures $memcached_key para usar $http_host y $uri, y añadas una variable de prefijo a tu script. También puedes correr otro memcache, si en realidad lo necesitas. memccp tiene otros problemas, por ejemplo no maneja la codificación de caracteres muy bien. Pero para archivos binarios, usualmente estáticos, ahorra bastante trabajo.
El repositorio en GitHub es un paquete fuente de Debian. Si tienes las dependencias (sudo apt-get build-dep libmemcached-tools) puedes construir el paquete (dpkg-buildpackage -b) e instalar libmemcached-tools que contiene memccp.
Este escenario es uno de los que describo en mi próximo libro rápido sobre Debian para aplicaciones Web, que está actualmente en fase de edición.
For years I’ve used unstable on my personal laptop. The only problem with using unstable is that the upgrade paths are fuzzy, and if you can catch up with the upgrades (because you’ve been user other system, or you’ve been travelling, or you’ve been relying on the APT cache because you don’t have much disk space and/or bad connectivity) then you are basically on your own.
While dist-upgrade’ing this week, I got into a dpkg hard stop because the trigger contained an unknown ‘interest-noawait’ directive. If you are a Debian head then the solution is as clear and straigthforward to you as it was to me: install the newest dpkg first. Enjoy sid. Even if it eats your dog. See below:
bureado@oersted:~$ sudo dpkg -i /var/cache/apt/archives/install-info_5.1.dfsg.1-3_i386.deb
/var/cache/apt/archives/install-info_5.1.dfsg.1-3_i386.deb
(Leyendo la base de datos … 265182 ficheros o directorios instalados actualmente.)
Preparando para reemplazar install-info 4.13a.dfsg.1-8 (usando …/install-info_5.1.dfsg.1-3_i386.deb) …
dpkg: error al procesar /var/cache/apt/archives/install-info_5.1.dfsg.1-3_i386.deb (–install):
el fichero de disparadores ci contiene una directiva desconocida `interest-noawait’
Se encontraron errores al procesar:
/var/cache/apt/archives/install-info_5.1.dfsg.1-3_i386.deb
bureado@oersted:~$ sudo dpkg -i /var/cache/apt/archives/dpkg_1.16.10_i386.deb
(Leyendo la base de datos … 265182 ficheros o directorios instalados actualmente.)
Preparando para reemplazar dpkg 1.16.0.3 (usando …/archives/dpkg_1.16.10_i386.deb) …
Desempaquetando el reemplazo de dpkg …
Configurando dpkg (1.16.10) …
Procesando disparadores para man-db …
bureado@oersted:~$ sudo dpkg -i /var/cache/apt/archives/install-info_5.1.dfsg.1-3_i386.deb
(Leyendo la base de datos … 265194 ficheros o directorios instalados actualmente.)
Preparando para reemplazar install-info 4.13a.dfsg.1-8 (usando …/install-info_5.1.dfsg.1-3_i386.deb) …
Desempaquetando el reemplazo de install-info …
Configurando install-info (5.1.dfsg.1-3) …
install-info: warning: no info dir entry in `/usr/share/info/smbc.info.gz’
Procesando disparadores para man-db …
Siempre he tenido problemas con la electricidad estática. Algunos de esos problemas se agravaron cuando me mudé a Quito, pues el clima era un poco más seco, y ahora están significativamente peores.
¿Qué significa vivir con estática? Significa que tienes una reticencia quasi-Pavloviana a abrir puertas, encender luces, tocar aparatos con piezas metálicas, conectar periféricos al computador, bajarte de un vehículo, entre otras cosas. Y además, que cuando te rozas con alguien que está cargado de electricidad estática, tienes un desagradable chispazo que usualmente sobresalta y la gente te mira como si quisieran exorcizarte un demonio. Incluso si ese alguien es tu perro.
Hay muchos factores que agravan el problema. Remover o mitigar estos factores puede ayudar. Los principales son el clima seco y la fricción entre dos superficies (usualmente telas, aunque también los zapatos con la alfombra) El clima seco se puede mitigar con un humidificador o plantas, y agravar con aire acondicionado. Pero la fricción entre dos superficies (como tu pantalón y el asiento del carro) no se puede mitigar (existen zapatos que se descargan, pero eso es harina de otro costal)
Como no podemos mitigar eso, hay algunas técnicas que, con el tiempo y la disciplina, pueden ayudar:
Utilizar cremas y lociones en las manos, así como agua en spray (alguna gente utiliza agua y suavizante de ropas), frotarse láminas de secado (populares en Estados Unidos para suavizar la ropa en la secadora) o utilizar bolas para secar en la secadora, o productos como Static Guard también pueden ayudar.
Las alfombras son las principales culpables. Aplicarles Static Guard o limpiadores y luego aspirarlas, junto con humidificar un poco el ambiente puede ayudar. Anyway. Happy buzzing!
While attending the Open Business Conference (formerly the Open Source Business Conference) in San Francisco, I noticed how some people were referred to as “the open source guy at…” foo/bar/baz.
Gender issues aside, I think it is interesting to notice that lots of places don’t have open source “guys” anymore… but open source teams, with broad strategies in place. And the open source “guy” role has merged into the business, adding value to the business.
Don’t get me wrong, I understand the value of the “guy” – she’s a catalyzer for open source inside the business and liaisons with executive leadership. And perhaps I’m lost in translation – as a non-native English speaker perhaps I give it too much importance.
Agreed, Microsoft’s a different animal composed of several product groups with open source guys and girls, Microsoft Open Technologies, some Open Source labs, people doing standards, lawyers and also the field team that does Open Source from a Corporate perspective.
And meanwhile, if you’re the open source guy or girl at foo/bar/baz, I’d love to hear from you!
On Sunday, I flew with Virgin America for the first time on a Seattle – San Francisco PM flight. I was looking forward to the experience with this airline. They had cool things, such as the cabin lighting, the refined accent/pronunciation of some crewmembers, the cleanliness of the plane, etc. But in general I had some issues mostly due to Red, the inflight entertainment system, and a few non-related issues such as the boarding passes being unable to be saved/sent/printed, delayed departure and arrival, etc.
Back to Red. Red is very advanced. It allows you to chat with other seats, buy food and products and have them delivered to your seat, and consume content. It is not surprising since they seem to be running an X Server, thus Linux on the backend (although not as visible as Avianca-Taca’s Linux-based system)
Red is also a barrier that Virgin America puts between you and the flight attendants. This is a good thing, because flight attendants are not there for inflight service but for safety, including collaborating to a prompt departure from the gate. But the problem is that Virgin gives you little opportunity to workaround that barrier, should anything happens.
I ordered food and headphones. Seconds later, a flight attendant throwed me some pink headphones. I was startled by the headphones falling on my lap, then because they were bright pink headphones. When I turned my head up, she was gone. I couldn’t find a flight attendant button at my reach or a function on Red to call them. I wasn’t standing up my seat and/or reaching to the console above my seat for this. I decided to wait until they brought my food.
But they never did. They ran a cart across the cabin and delivered free drinks, but no food. I decided to shut up and see what happened. They ran by my seat and nothing happened. So I reordered water on Red (it was free) and when the attendant came I asked for my food and a blue set of headphones. She was really helpful and concerned that I didn’t get my stuff. At the end she made it right, though.
I love inflight entertainment systems, especially when they go above and beyond the trivial content consumption model and offer you more value such as communication, learning, shopping, etc. And I love that they are based on Linux and open source components that I know. In this case, Virgin is leveraging Red as a barrier but they need to work on mechanisms for people to workaround the barrier when they need it.
BTW, I would fly Virgin America again.
Now that Bitcoin has fallen in the trough of disillusionment, I think the best way to approach my thoughts on the thing is thru one of the most frustrating things Venezuelans have had to live for the past 10 years: a local brew of foreign exchange control.
Travel is Evil, and Fists for Chickens
For about 5 years I had to deal with this control as I travelled quite a bit. I saw it evolve, from $4,000/year allowances to 500-page guides on how to prepare your forms to ask for allowances. And after I moved, I had to explain it to people (even those coming from a couple other countries with foreign exchange controls, such as Brazilians and Indians) so I ended up drawing countless diagrams and exploring different narratives to explain something that simply doesn’t belong in this 21st century.
There are two great animated videos that explain it, but they’re in Spanish. So let me try to go thru it quickly: residents of Venezuela aren’t legally allowed to buy and sell foreign currency. They can hold money abroad, sure, but if you live in Venezuela and earn money there, you can’t freely get your money out of the country.
Like my friend Alexander, from Ecuador, who worked in Venezuela for a couple years, made some money, moved out without his money and now has lost about 80% of his net worth there. At one point, the government “suggested” to convert his money in bonds for the aluminum industry, which several reports suggest stagnated in the past months.
You have to go thru a bureaucratic process to earn the right to buy a capped amount of foreign currency, regardless of your net worth and/or needs to access foreign currency. In some cases, such as for online shopping (in foreign retailers such as Amazon, or to pay for services with PayPal, etc.) you get a yearly cap ($400) and in other cases you get a case-by-case cap (for example, for international travel, in which case the amount depends on length of trip and destination, among other factors)
It’s also a discriminatory system since it rewards you (I think it’s actually mandatory for several categories) for having credit cards which are hard to get (I couldn’t get one because of my age, for example, even though I had stable work history for years) and if/when you get access to (minimal) amounts of foreign cash, you are not supposed to bring it back to the country (since you can’t sell them freely, right?)
This system was set up, allegedly, to avoid large Venezuelan companies to move their money out of the country. It also immediately impacted foreign companies that repatriate earnings (such as the Colombian airline Avianca or the Spanish Telco Movistar which are very vocal about them cutting back on large new investments) and of course anyone that needs to import something and pay for it.
But it also means the bolivar is not accepted outside Venezuela anymore, debit cards are useless when travelling and that a black market exists for FX (even mentioning the trading prices is jailworthy) which is subject to all the nuisances of black markets: speculative forces, counterfeit notes, money laundering, etc.
So, one would guess that decades of evidence provide enough insight on what happens when you funnel the economy thru such a bureaucratic system. The results are not surprising: importers either resort to the black market (thus inflating prices) or just don’t import enough to cover local demand. On top of that, a consumist mindset, devaluation and speculative forces add up to a disaster: shortages, high prices, people lining up and fighting for chicken, etc.
Of course, the question I get from most people is: why do laypeople have to suffer for the sins of the large companies, the importers and speculators? Well, 10 years after I think we all agree there’s kind of a political will for denying access to foreign culture thru travel, online shopping and imports – especially high-tech related. And this is useless in a country like Venezuela, whose main business partner is the greatest cultural influence the country has had, from language expressions to the national sport (baseball) practically on par with the Spanish colonists, and where sizeable groups of people of all socioeconomic backgrounds still prefer foreign goods and culture.
While reading this, I remembered the saying: “fascism is cured by reading, racism is cured by travelling” So it’s important to mention that this nonsense also affects the availability of recent books. I recall my trips to Tecniciencia (a technical library) where the only affordable books were about 8086 and FORTRAN. I can’t even imagine how the situation is right now.
Sad stories abound. For technology conferences, for example, if local professionals can’t talk others to come and have the conference locally (which in turn is a hard pitch to make since visitors won’t be able to freely take money out the country) then they’re basically unable to attend. Or you have to pay 5x for an outdated gadget for learning, because using your own money to buy foreign currency to acquire that is superfluous. Even perceptions of technology are influenced by the lack of networking and access to international markets. Not to mention people studying or with relatives abroad, medical or any other urgent need.
The worst part is that 10 years of policy make it cultural. Youngsters are used to this. They don’t need to travel, to meet new people, because everything is just right. They are at the very cutting edge of progressivism, doing all the right things and taking all the right decisions. Or are they?
Hype and Progressivism
While the rest of the world praises Bitcoin for “changing everything”, recent developments give us a more clear picture of what it is, what it isn’t and why trying to make it fit to all discourses is… risky (it’s been interesting to watch a regional trend of groups of FLOSS communities and influencers trying to round their discourse with “new” things such as privacy, encryption and payment mechanisms)
Let’s take a look at them:
So, if it doesn’t change anything, then why people like it? Because it’s a hell of a payment mechanism. Direct, more secure, no commissions, difficult to trace, etc. Values such as privacy, security, and confidence show up. And there could be years until someone comes up with a more clever approach to it. I’m glad I’m not the only one to set it straight, it’s the top comment on this note about today’s loss of value: any other heavenly property you want to add to it, besides a good transaction method, is your own realm of magic… like your own economic island
And I really hope someone comes up with a better model for handling monetary policy, especially regarding foreign exchange in Venezuela. One that is humanist in nature, and conductive to Venezuela finding its rightful spaces in a global community, not necessarily buying and importing them. It seems that even inside the Government there are dissident voices about how to approach it, which might be a good thing.
I apologize to my Spanish-speaking readers for writing this in English, but I think it was worth it due to the foreign exchange explanation. But feel free to check out this great article about Bitcoin, in Spanish, that I really liked.
In 2005 I had the opportunity to travel to India as a speaker for the II World Forum on Free Knowledge.
It was a long flight (which I loved) with Lufthansa and Jet Airways to Frankfurt, then Delhi, Mumbai and finally Thiruvananthapuram in Kerala. I met with great people such as Marco Ciurcina, Anand Babu, Sasikumar, Aarti Sethi, as well as the staples, Juan Carlos Gentile and the Venezuelan team, etc. By the way, I think this is the only evidence of that event.
But I digress. This is a post about food.
I was way too young back then (just became 18) to actually care much about the deep roots of the Kerala cuisine and what I had there. It was very spicy, though, at a level that blacked out all other sensations. I recall I brought back to Venezuela different types of masala, and my dad (which has always been a foodie, and all about herbs and spices) was incredibly happy. I really liked the culture around the IT and I was amazed by everything I saw. But I never really digged into Indian food, and never had it back in Latin America.
This weekend I had the opportunity to visit Kastoori in Seattle. Well, not an opportunity per se, we really planned it. We researched a bit about the westernized Indian food and the options and we decided to take a late Saturday lunch there. We parked in 1st Ave, which seems to be a test of financial strength (I paid more for the parking than for the food) and a block away I could really start smelling the place. It smelled delicious.
And it tasted delicious, as well! They had their lunch buffet running (even though it was late) and we decided to sample from there. We had chicken tandoori, chicken tikka masala, spicy blackened chicken, basmati rice, lots of veggies and greens with tamarind chutney, dal soup and an amazing naan. We really liked it!
The tikka was great, especially with the naan. Tandoori had a flavor we never expected. All the vegetables were really savory. Dal soup was good although a bit heavy, and basmati rice makes a great side but it tends to overflavor other things with fragrance.
It was really a bargain, at about $10 per person, all you can eat. We left the fish and other things for our next visit, and we are now committed to start considering naan in our flatbread consumption. It was a great moment that took me back to our conference dinners, the hospitality from our hosts and an unforgettable trip to India.
I needed to boot a Debian Live USB stick on a new Lenovo Thinkpad X230, preinstalled with Windows 8 Professional, and with Secure Boot enabled.
This laptop did not have USB boot preset in the Boot Menu so I had to enter BIOS to add USB as a boot option.
While I was there, I disabled Secure Boot and changed UEFI/Legacy Boot method to “Both”.
The options were easily at hand, and it was not difficult to change them. Nobody asked me for a key, password or any other thing. I would have needed to go into BIOS anyways because USB HDD was not a boot option in the first place.
F10 to save, the laptop rebooted, F12 for the boot menu, selected USB HDD and voila.
I started blogging in 2003 or so, and used several platforms for it. I can recall Blurty, LiveJournal and Blogger, then Movable Type and others when I was hosted in the Venezuelan QTPD. I then moved to WordPress in my own servers, but I started doing heavy lifting in the servers which made blog maintenance really difficult.
That’s why I consulted with Lou, studied some public platforms and chose Posterous. I really liked it, but shortly after I joined it they announced the acquisition and stopped solving some serious bugs, such as the ones related with rich text and formatting when posting via e-mail, which I use a lot.
Finally, some weeks ago I downloaded my backups, hacked them so the non-ASCII characters would show up, moved to WordPress.com and upgraded.
Endut, Hoch Hech!