Le esto: GNU Contributor Statistics for November 2010 y me pareció curioso crear un ranking con los 15 países que más colaboran:
| Country |
Contributors |
% contr |
| USA |
1308 |
28,0386 |
| Germany |
654 |
14,0193 |
| France |
360 |
7,7170 |
| UK |
208 |
4,4587 |
| Canada |
207 |
4,4373 |
| Japan |
196 |
4,2015 |
| Sweden |
178 |
3,8156 |
| Australia |
144 |
3,0868 |
| India |
127 |
2,7224 |
| Netherlands |
113 |
2,4223 |
| Italy |
109 |
2,3365 |
| Russia |
95 |
2,0364 |
| Austria |
88 |
1,8864 |
| Spain |
84 |
1,8006 |
| China |
79 |
1,6935 |
Como vemos, En España estamos en 15º. Ahora se me ocurrió ampliar esta información añadiendo la población estimada para 2010 de cada uno de los países. Extraída de Wikipedia. Y obtengo la siguiente lista de países (He excluído Luxemburgo, Lietchtenstein, Montenegro e Islandia por tener menos de un millón de habitantes y atentar con fastidiarme la estadística, por tener mucho porcentaje de colaboración por habitante):
| Country |
Contributors |
Population 2010 |
Contributors / Pop (ppm) |
% contr |
| Sweden |
178 |
9.401.925 |
18,9323 |
3,8206 |
| Austria |
88 |
8.396.760 |
10,4802 |
1,8888 |
| Denmark |
58 |
5.557.709 |
10,4360 |
1,2449 |
| Slovenia |
20 |
2.058.400 |
9,7163 |
0,4293 |
| Norway |
44 |
4.911.800 |
8,9580 |
0,9444 |
| Germany |
654 |
81.802.000 |
7,9949 |
14,0373 |
| New Zealand |
35 |
4.388.100 |
7,9761 |
0,7512 |
| Ireland |
32 |
4.470.700 |
7,1577 |
0,6868 |
| Netherlands |
113 |
16.629.600 |
6,7951 |
2,4254 |
| Finland |
36 |
5.374.600 |
6,6982 |
0,7727 |
| Australia |
144 |
22.534.000 |
6,3903 |
3,0908 |
| Canada |
207 |
34.323.000 |
6,0309 |
4,4430 |
| Israel |
44 |
7.653.600 |
5,7489 |
0,9444 |
| Switzerland |
44 |
7.782.900 |
5,6534 |
0,9444 |
| France |
360 |
65.447.374 |
5,5006 |
7,7270 |
Es esta tabla, en españa estamos los 25º, siendo más de 60… no está mal.
Dejo el archivo en formato ODS aquí (19Kb)
Matlab® es un lenguaje muy utilizado en ingeniería, ya que permite hacer de forma más o menos sencilla cálculos matemáticos muy complejos, y a veces necesitamos procesar gran cantidad de datos y llega a ser desesperante ver cómo tarda sin tener tan siquiera una ligera idea de cuánto queda.
El principio del código que voy a postear se basa en dos funciones: tic y toc. La primera de ellas marca el inicio de la cuenta de tiempo, y la segunda el final, indicándonos los segundos transcurridos entre tic y toc. Podemos por ejemplo hacer esto:
1 2 3
| tic
% Tarea que tarda mucho
toc |
Y nos devolverá los segundos en total que ha tardado.
Pero vamos a ir algo más allá. Imaginemos que tenemos una tarea iterativa de N iteraciones, queremos que cada N/20 iteraciones nos diga más o menos lo que queda (en cada iteración sería mucho, porque estaría todo el rato diciendo el tiempo, y además gastando tiempo en ello; por lo que tendríamos que esperar mucho más de lo necesario).
Éste es el código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| N= 2000;
aviso= 100;
tic % Inicia el contador de tiempo
for n= 0:N
% Calculamos el progreso total y los tiempos estimado y restante
if (mod(n, aviso )== 0)
progreso=n/N; % Progreso (Entre 0 y 1)
transcurrido= toc; % Tiempo transcurrido
estimado=transcurrido/progreso; % Estimamos el tiempo total
queda = estimado-transcurrido; % Tiempo restante
% Lo mostramos todo en pantalla
disp(sprintf('Progreso %2.2f%%. Tiempo Transcurrido: %ds. Tiempo estimado: %ds. Tiempo restante %ds.', progreso* 100, round(transcurrido ), round(estimado ), round(queda )));
end
% Esto se supone que es una tarea que tarda mucho tiempo
pause(0.01);
end
disp('Completado!'); |
Últimos comentarios