Palabras clave: administración, ajayu, inactivo, memi
Aquilardo :: Blog de amigos
November 19, 2008
Enviado por Proyecto Ajayu | 8 Comentario (s)
July 27, 2008
- Colombia - 2,695,720
- Chile - 2,449,880
- Venezuela - 1,071,760
- Argentina - 508,600
- Peru - 167,940
- Brasil - 131,580
-
Bolivia - 125,660
- Ecuador - 94,220
- Uruguay - 52,760
- Paraguay - 8,740
Interesante. Sin duda, orkut es más popular en brasil.
Argentina no tiene tantos como esperaba, pero sin duda los argentinos son muy activos en internet, existen infinidad de comunidades, foros, etc. (ver Taringa xD.. o psicofxp)
Bolivia... nuestra querida bolivia, a pesar de tener menor población, y más aún, menor penetración de internet, no sale mal parada.
PD: me acabo de enterar que el lenguaje más hablado -por cantidad de personas- en sudamérica es... el portugués. (Fuente: Wikipedia)
Actualización
Para el 2006, la cantidad de usuarios de internet bolivianos fue 580,000. ¿ahora cuantos serán? ¿1 millón?
Si fuesen un millón, entonces el 10% de los bolivianos internautas estarían en facebook... lo cuál me parece una cifra grande, considerando que para el 2006 existían más de 8 millones de argentinos con internet.
A continuación la tabla completa, donde bolivia sólo supera a paraguay en cuanto a cantidad de usuarios de internet.
| País | Población | Usuarios | Año del dato | % población |
|---|---|---|---|---|
| Chile | 16,284,741 | 4,156,000 | 2006 | 25.52% |
| Brasil | 190,010,647 | 42,600,000 | 2006 | 22.42% |
| Uruguay | 3,460,607 | 756,000 | 2006 | 21.85% |
| Perú | 28,674,757 | 6,100,000 | 2006 | 21.27% |
| Argentina | 40,301,927 | 8,184,000 | 2006 | 20.31% |
| Venezuela | 26,023,528 | 4,140,000 | 2006 | 15.91% |
| Colombia | 44,379,598 | 6,705,000 | 2006 | 15.11% |
| Ecuador | 13,755,680 | 1,549,000 | 2006 | 11.26% |
| Bolivia | 9,119,152 | 580,000 | 2006 | 6.36% |
| Paraguay | 6,669,086 | 260,000 | 2006 | 3.90% |
(Fuente: CIA - The World Factbook)
Segunda actualización
Replanteando la pregunta.
¿cuál es el porcentaje de usuarios de facebook respecto usuarios de internet por país?
- Chile 58.95%
- Colombia 40.20%
- Venezuela 25.88%
-
Bolivia 21.66%
- Uruguay 6.98%
- Argentina 6.22%
- Ecuador 6.08%
- Paraguay 3.36%
- Peru 2.75%
- Brasil 0.31%
Existe un error de apreciación, los datos de facebook son actuales, y los de usuarios de internet del 2006, lo cuál puede llevar a conclusiones incorrectas. Seguro me harían repetir la clase de estadística
... pero sirven para el sensacionalismo.
Si la tendencia sigue igual, entonces, ¿se podría decir que facebook es dominante en bolivia?
Y quedan más preguntas en el tintero.
¿cuántos usuarios bolivianos de facebook lo visitan regularmente?
¿otras redes -como hi5- tendrán más usuarios bolivianos?
(tengo un par más... pero me las reservo para mi
)
Enviado por Rho | 6 Comentario (s)
May 25, 2008
Enviado por Rho | 1 Comentario (s)
May 24, 2008
Este es un script que utilizo para ayudarme en la documentación de código php. Con un simple Control+P inserta los valores más comunes en la clase, función o variable.
Vaya que es necesario tener código bien documentado, así los demás puedan seguir la evolución del código. ¿Ya dije que uso vim?
¿creen que vim es para masoquistas? Pues no, tiene todo lo necesario para lo que necesito: syntax highlighter, code snippets, autocomplete, search/replace, record actions, class browser, window split, etc. Y más todavía con los scripts disponibles en vim.org
Palabras clave: phpdocumentor, vim
Enviado por Rho | 1 Comentario (s)
May 22, 2008
A mi amigo le invitaron a entrar a Escas y a MKS, ellos son tranquilos, sólo pelean.
He entrado porque es mejor estar de su lado, que contra ellos. La pandilla me da protección....
Mi hijo está en una escuela donde predomina el inglés y se venía solo.... Lo peor es que estos pandilleros son hijos de familias adineradas, no sé qué está pasando en Cochabamba, pero estoy asustada. Ahora vamos a recoger a mi hijo.
Yo creo que lo malo esta en que somos una sociedad que es buenísima para hacerse la vista gorda. Ejemplos: maltrato infantil, violencia de género, familias disfuncionales, etc. Cosas que se sabemos que esta mal, pero que las toleramos.
Nos conformamos con tener nuestro carnaval, nuestro primer viernes, nuestro misa chico, nuestro bautizo, fiestita del santo, fiesta del barrio, etc.
No digo que este mal la diversión ni esparcimiento, sino que siempre se prefiere el cuetillo a otras cosas más importantes. Si hay paro, crisis nacional... pero llega una fiesta "grande", entonces cuarto intermedio.
Yo creo que parte mucho de los padres, pero muchas veces no se puede juzgar.
Quiero contar mi levemente mi caso, yo vengo de padres separados desde que era bebe. He vivido con ambos varios años, en Santa Cruz, Tarija, Sucre, Beni, Cochabamba, Potosi.
Estudie dos años en potosi, y el primer año conoci a chicos que no eran tan buenas influencias -aunque siempre he sido un cachón y rebelde-, pero estaban involucrados con "grupos" así, hasta quería empezar uno... eran de: "¿te quieres dar? Ok, vos treas a tus cuates, yo a mis cuates, y así nos damos". Un tiempo un cuate tenía una "mariposa" -esa navaja de tres-, y "practicabamos" eso de hacerle girar en una mano y etc.
Luego en cochabamba, cerca nuestro colegio había un billar, y lo frecuentabamos a la salida, o en las chachadas. Se conocía harta gente, pero tambien algunos involucrados en "esos grupos". Eran chicos con plata, con auto ya (hace unos 8 años). Y si, una parte tenía sus padres en el norte y tambien algunso se habían criado allá. Entre fiestas, salidas, farras, una y otra cosa uno se va involucrando sin querer...
Como el año pasado, sali con los cuates de un cuate de cole, uno de ellos había venido del norte con sus viejos, estaba aca, era de dinero tener, de brocas tener, de tener cuates "conocidos" en el ambiente. Siempre en peleas, mano rota, broncas, etc.
Pero lo último que supe es que se suicido...
Lo que quiero explicar, es que una persona si no encuentra el espacio para desarrollarse de buena manera, ni recibe orientación, no es difícil caer en malos rumbos.
No es tan fácil decir: "esos changos son malos, son menos, son una lacra, por qué no se dedican a mejores cosas".
Todos ellos son producto de la sociedad, nuestra sociedad.
Sinceramente no creo que una sociedad pueda cambiar, a menos que haya un evento extraordinario como una guerra similar a japón o alemania.
Mientras tanto, podemos atenuar nuestro entorno enseñando con el ejemplo, que al final son influencias.
Palabras clave: real-world
Enviado por Rho | 10 Comentario (s)
May 20, 2008
Ultimamente estoy usando Zend (framework php), yo ya más acostumbrado a django estaba buscando algo como
count = Comment.objects.filter(owner=1).count()
Pero en Zend la opción que encontre fue:
$table = new Comments;
$select = $table->select()->where('owner = ?', 1);
$comments = $table->fetchAll($select);
$count = $comments->count();
...tedioso!!!
e ineficiente, por que primero saca todos los resultados de la db, y
recién retorna la cantidad. En cambio todos sabemos que un SELECT
COUNT(*) es mucho más rápido, especialmente con tablas indexadas.
Entonces,
todos mis modelos heredan de Core_Db_Table que esta a su vez hereda de
Zend_Db_Table, añado un método para realizar mi querido SELECT COUNT(*)
[code=php]
class Core_Db_Table extends Zend_Db_Table {
// ...
public function count(Zend_Db_Select $select) {
$select = $select->from($this->info("name"), array("count" => "COUNT(*)"));
return $this->getAdapter()->fetchOne($select->__toString());
}
}
Listo, ahora ya puedo hacer cosas más decentes:
$table = new Comments;
$select = $table->select()->where("owner = ?", 1);
$count = $table->count($select);
No es tan hermoso como django.... pero algo es algo
. De ahí es un paso para permitir $table->count() o $table->count("owner = ?", 1)
Enviado por Rho | 4 Comentario (s)
Autor: Vesmar Camara
Info: http://softwarelibre.org.bo/mkx86/
== Introducción ==
El sistema mkx86 es el "Microkernel para la arquitectura x86".
Es una implementación académica que ejemplifica los conceptos de
diseño de microkernels como núcleos de SO.
Bueno, resumiendo... es un sistema operativo que viene desarrollandose
desde el 2001 y finalmente se hace publico.
Nota: http://softwarelibre.org.bo/vesmar/weblog/1884.html
Descarga: http://sourceforge.net/projects/mkx86
Palabras clave: bolivia, microkernel, torvalds boliviano
Enviado por Rho | 0 Comentario (s)
May 14, 2008
¿escucharon ese chiste?
"Si camina como pato, hae quack como pato... es un pato"
Se refiere al famoso Duck Typing, según la wikipedia:
In computer programming, duck typing is a style of dynamic typing in which an object's current set of methods and properties determines the valid semantics, rather than its inheritance from a particular class.
Hace años que lo leí la primera vez... pero recién lo entendí hace unas semanas en una presentación de Ernesto, dondé simplemente repitió lo mismo -más o menos palabras-.
Siempre me pareció chistoso el duck typing, pero ahora que lo entendió me da más risa 
Practicamente es suficiente añadir los métodos necesarios a una clase/objeto para que soporte cierto comportamiento. En python todo puede parecer un pato...
seguramente en cualquier lenguaje dinámico
Por ejemplo, la método para order algún lugar
def ordenar(lugar):
"""
Mi algoritmo para order cosas
"""
print '[+] ordenando %s' % lugar
for cosa in lugar: # lugar puede ser una lista
print 'encontrado: %s' % cosa
if cosa.sirve:
if cosa.esta_sucio:
print '\tlimpiando: %s' % cosa
limpiar(cosa)
if cosa.es_importante:
if cosa.tiene_lugar:
print '\tponiendo en su lugar: %s' % cosa
poner_en_su_lugar(cosa)
else:
print '\tguardando: %s' % cosa
guardar(cosa)
else:
print '\ta algún rincón: %s' % cosa
poner_en_un_rincon(cosa)
else:
print '\tal basurero:', cosa
al_basurero(cosa)
luego tengo objetos que pueden estar en algun lugar:
class MiLibro(Libro):
titulo = 'Duck Typing Redux'
autor = 'Rho'
# tambien puedo ser cadena
def __str__(self):
return 'Libro "%s"' % self.titulo
class Donald(Pato):
nombre = 'Donald'
def __str__(self):
return 'Pato Donald'
class Rho(Persona):
nombre = 'Rolando'
# print yo
def __str__(self):
return '%s' % self.nombre
Ahora podemos tener nuestros objetos:
libro = MiLibro()
pato = Donald()
rho = Rho()
Pero ninguno es una "cosa" ordenable, según los métodos/propiedades que necesita la función ordenar.
¿qué hacemos?
Pues enseñamos a nuestros objectos a ser "ordenables", o a decir ¡cuac!
# enseñando a ser "pato"
libro.sirve = True
libro.esta_sucio = True
libro.es_importante = True
libro.tiene_lugar = True
# pato patito
pato.sirve = True
pato.esta_sucio = True
pato.es_importante = False
# self
rho.sirve = False
Pero necesito un lugar que contenga las cosas, podría ser una simple lista pero quiero definir mi sala:
class MiSala(Sala):
lugar = 'casa'
cosas = [] # lista de cosas
def __iter__(self):
# nuestra sala es "iterable" (generator rulz!)
return (cosa for cosa in self.cosas)
def __str__(self):
return 'sala en %s' % self.lugar
Luego añado mis "cosas" a mi sala iterable..
y al final lanzo ejecuto ordenar() sobre mi sala
# mi sala con cosas
misala = MiSala()
misala.cosas.append(libro)
misala.cosas.append(pato)
misala.cosas.append(rho)
# ordenar todo
ordenar(misala)
Este es el resultado:
rolando@rhotergeist:~$ python ducktyping.py
[+] ordenando sala en casa
encontrado: Libro "Duck Typing Redux"
limpiando: Libro "Duck Typing Redux"
poniendo en su lugar: Libro "Duck Typing Redux"
encontrado: Pato Donald
limpiando: Pato Donald
a algún rincón: Pato Donald
encontrado: Rolando
al basurero: Rolando
¿fácil, no?
Moraleja: para pasar por pato sólo tienes que decir cuac y caminar como pato
¡mamá, ya entendí el chiste!
Palabras clave: cuac, duck typing, ducktyping, python
Enviado por Rho | 1 Comentario (s)
May 09, 2008
Este es un tip que encontre hace unos días para jQuery, pero una pequeña modificación y sirve para insertar cualquier javascript mediante su url en cualquier sitio web.
Esto es más útil con firefox y la extensión firebug; con su consola javascript se puede hacer directamente prototipos rápidos sin necesidad de guardar/crear un html/js.
PD: Añadan los enlaces como marcador, o simplemente arrastrenlos a su barra de marcadores
Palabras clave: javascript, jquery
Enviado por Rho | 1 Comentario (s)
May 07, 2008
En un principio, para crear scripts que automatizen cierto proceso escribía un script en python que empezaba por:
from django.conf improt settings
os.environ["DJANGO_SETTINGS_MODULE"] = "proj.settings"
from app1.models import *
# ....
Pero me entro la curiosidad por hacerlo de "mejor" manera. Entonces la opción que encontre es extender los comandos de administración (management), esos que estan disponibles mediante el script management.py:
rolando@rhotergeist:~/proj$ ./manage.py help
Type 'manage.py help <subcommand>' for help on a specific subcommand.
Available subcommands:
adminindex
createcachetable
dbshell
diffsettings
dumpdata
flush
...
A pesar de no estar documentado
, no es complicado crear "nuevos comandos". Estos son los primeros pasos para crear un comando básico:
1. elegir la aplicación (app en jerga django) y nombre del comando: sayhello
2. crear el "package" adecuado de comandos dentro nuestro app
$ mkdir -p app/management/commands
$ touch app/management/__init__.py
$ touch app/management/commands/__init__.py
Los __init__.py son importantes para poder hacer from app.management.comands import *, sino no "reconocerá" el módulo|package.
Luego creamos el archivo de nuestro comando sayhello en app/management/commands/sayhello.py:
# sayhello.py
from django.core.management import BaseCommand
class Command(BaseCommand):
help = "This command says hello"
def handle(self, *args, **kwds):
print "hello"
Eso es suficiente
rolando@rhotergeist:~/proj$ ./manage.py sayhello
hello
De ahí se puede interactuar con los models, parsear información e insertar en la db, etc. python style!
Tambien xisten más clases de comandos, ej: LabelCommand, NoArgsCommand, etc. dependiendo el tipo de comando que queramos hacer.
import this
Enviado por Rho | 0 Comentario (s)