
Un nuevo cacharro informático
…o, tal vez, desde una época en la que no estuvimos muchos de nosotros. Leo en un artículo de El País la noticia de un nuevo cacharro informático; es una fusión entre un netbook y un smartphone (de ahí el nombre), y entre otras cosas destaca su gran duración de la batería (cosa que está muy bien; hago viajes largos y me vendría bien poder trabajar durante todo el viaje; aunque no sé cuánto tiempo durará la batería, ya que supongo que en unos dos años no será ni un 40% de lo que es recién comprado). Pero lo que más me llama la atención del artículo es la naturalidad con la que dice:
“Se acabó el esperar un par de minutos para que se encienda y se conecte a la Red.”
Hace referencia a que este nuevo artilugio podrá estar encendido todo el tiempo tal y como lo hace un móvil actualmente; pero dando datos concretos. ¿ Es normal que un ordenador tarde dos minutos en arrancar ? Es cierto que conozco personas que encienden el ordenador y se van a tomar un café mientras arranca; sé que a veces da pereza arrancar el ordenador y el navegador y poner una dirección web y dar a enter, y seguro que es mucho más rápido tenerlo encendido y sólo escribir.
Pero creo que hay que basarse en algunos datos:
- Mi portátil, con 3 años y medio de antigüedad, tarda unos 30s.
- Un netbook que configuré hace unos días tarda exactamente 40s.
- En una pequeña encuesta en Facebook, sólo los usuarios de Windows tienen que esperar 2 minutos o más para arrancar (por lo general), mientras los usuarios de Mac y Linux tardan menos de 1minuto.
Nos encontramos en la carrera de los tiempos de arranque:
También es verdad que muchos usuarios todavía usan Windows Vista, y sus tiempos de arranque son muy altos; aunque si pensamos en el orden lógico de las cosas, en los ‘90 mi ordenador no tardaba dos minutos arrancando, y hasta 2004 fue creciendo el tiempo a medida que tenía un ordenador más potente… todo hasta que me pasé definitivamente a GNU/Linux, por qué será. Parece que sólo Microsoft se demora por el momento, aunque hayan conseguido que W7 arranque en 11seg (aunque no al alcance de cualquiera).
Foto: nDevilTV
Categories: Comunicación, General, facebook Tags: arranque, batería, conectividad, el pais, espera, Linux, smartbook, smartphone, windows
Y me auto-felicito mi santo / festividad onomástica desde este blog como Gaspar que me llamo.
Y aprovecho también para felicitar a tod@s l@s Adoraciones, Agurtzanes, Altagracias, Altairs, Alterios, Baltasares, Baltazares, Dimanos, Epifanias, Gaspares, Jafets, Macras, Melchores y Reyes ( fuente: http://www.aniversalia.com/santo-de-san-Julian-6257-J )
Hace un mes o así publiqué un método para extraer las palabras de una cadena en un Array, ahora traigo un nuevo fragmento de código cuya misión es no estar tan limitado, y no tener que decir con antelación y con ello no tener que reservar memoria precipitadamente.
Dejo dos códigos fuente, en el primero, la reserva de memoria para almacenaje de información es palabra por palabra, es decir, me llega una palabra reservo memoria, me llega otra, amplio en 1 elemento la memoria reservada y así hasta recibir todas (incluyo el código para probar la función):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| #include <stdlib.h>
#include <stdio.h>
#include <string.h>
/**
******************************************************************
* @brief Extrae palabras de una cadena y las coloca en un puntero
* doble E/S (triple, por tanto).
*
* @param orig Cadena inicial
* @param delim Las palabras vendrán delimitadas por uno de los
* caracteres de esta cadena
* @param args El primer puntero hace reservas de las direcciones
* donde se colocarán los fragmentos de cadena.
*
* @return Número de palabras extraídas. (max_args+1) si en la
* cadena hay más de max_args palabras.
*
******************************************************************/
int extrae_argumentos_dd (char *orig , char *delim , char ***args )
{
char *tmp ;
int num =0;
/* Reservamos memoria para copiar la candena ... pero la memoria justa */
char *str = malloc (strlen (orig )+1);
char **aargs ;
strcpy (str , orig );
aargs =malloc (sizeof(char**));
tmp =strtok (str , delim );
do
{
aargs [num ]=malloc (sizeof(char*));
/* strcpy(aargs[num], tmp); */
aargs [num ]=tmp ;
num ++;
/* Reservamos memoria para una palabra más */
aargs =realloc (aargs , sizeof(char**)*(num +1));
/* Extraemos la siguiente palabra */
tmp =strtok (NULL, delim );
} while (tmp !=NULL);
*args =aargs ;
return num ;
}
int main ()
{
char cadena []="Bienvenido al blog Poesía Binaria. Esto es una prueba del extractor de argumentos con puntero triple";
char **args4 ;
int i ;
int nargs ;
nargs =extrae_argumentos_dd (cadena , " ", & ;args4 );
printf("CADENA: %s\n", cadena );
for (i =0; i <nargs ;i ++)
printf("Palabra %d: \"%s\"\n", i , args4 [i ]);
} |
En el segundo ejemplo, la memoria se reserva por grupos, es decir, 10 punteros ocupan muy poco, así que en vez de estar molestando siempre al sistema pidiendo memoria poco a poco, voy a pedir de 10 en 10 punteros (configurable vía DEFAULT_EXTRAE_RESERVA):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| #include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define MAX_ARGS 90
#define MAX_CADENA 100
#define DEFAULT_EXTRAE_RESERVA 5
/**
******************************************************************
* @brief Extrae palabras de una cadena y las coloca en un puntero
* doble E/S.
*
* @param orig Cadena inicial
* @param delim Las palabras vendrán delimitadas por uno de los
* caracteres de esta cadena
* @param args El primer puntero hace reservas de las direcciones
* donde se colocarán los fragmentos de cadena.
*
* @return Número de palabras extraídas. (max_args+1) si en la
* cadena hay más de max_args palabras.
*
******************************************************************/
int extrae_argumentos_ddg (char *orig , char *delim , char ***args )
{
char *tmp ;
int num =0;
/* Reservamos memoria para copiar la candena ... pero la memoria justa */
char *str = malloc (strlen (orig )+1);
char **aargs ;
int reserv = DEFAULT_EXTRAE_RESERVA ;
strcpy (str , orig );
aargs =malloc (sizeof(char**)*reserv );
tmp =strtok (str , delim );
do
{
if (num ==reserv )
{
reserv =reserv +DEFAULT_EXTRAE_RESERVA ;
aargs =realloc (aargs , reserv *sizeof(char**));
}
aargs [num ]=malloc (sizeof(char*));
aargs [num ]=tmp ;
num ++;
/* Extraemos la siguiente palabra */
tmp =strtok (NULL, delim );
} while (tmp !=NULL);
*args =aargs ;
return num ;
}
int main ()
{
char cadena []="Bienvenido al blog Poesía Binaria. Esto es una prueba del extractor de argumentos con puntero triple";
char **args4 ;
int i ;
int nargs ;
nargs =extrae_argumentos_ddg (cadena , " ", & ;args4 );
printf("CADENA: %s\n", cadena );
for (i =0; i < ;nargs ;i ++)
printf("Palabra %d: %X \"%s\"\n", i , *args4 [i ], args4 [i ]);
} |
Hace algún tiempo que buscaba algo parecido, y aunque tiene tiempo creo que ahora está en un punto bastante importante de su desarrollo, y al alcance de todos (veo mucha gente con smartphones por la calle). Nokia parece que pone en nuestras manos un universo de posibilidades para sus smartphones con Symbian; y es que ahora podemos desarrollar aplicaciones web, gracias a PAMP. Es el port para S60 de una de las compilaciones de software más famosa en servidores web.
…y, ¿para qué quiero yo un servidor web en mi móvil?
Esto tiene muchas posibilidades, a medida que todo avance, que está avanzando a pasos agigantados, podremos disponer seguro de más y más equipos portátiles capaces de tener un servidor web. Por ejemplo, vía web podemos sincronizar información de los dispositivos y otros equipos más grandes vía WiFi.
…pero, ¿qué ventajas a mí como desarrollador me brinda esto? Podemos crear software con interfaz web (olvidándonos un poco de gestionar objetos en pantalla, que ya lo hace el navegador); hacer el procesamiento de información en el móvil; y además, un lenguaje como PHP que te da muchas cosas hechas viene muy bien a veces. Es una forma fácil de poder trabajar sin estar conectado y luego tener la posibilidad de volcar la información cuando tengamos conexión (todo eso sin complicarse demasiado la vida).
…yo ya tengo python para s60, ya PHP es mucho… sí, puede ser, pero no diréis que no es una opción interesante.
La gran pega es que ocupa muchísima memoria, necesitamos un teléfono con al menos 128Mb de RAM para que funcione decentemente (sólo el servidor web ocupa unos 9Mb, sin hacer ninguna petición), y que, si accedemos desde fuera a las páginas puede hacer que nuestro terminal se vuelva muy lento; pero por eso yo prefiero que sea para aplicaciones locales (por lo menos en el Nokia 5800 podemos acceder desde el navegador a http://127.0.0.1/ y cargamos la web local). Dejo aquí la captura de pantalla del teléfono:

Últimos comentarios