Optimización de Adsense

Por , 29 agosto 2007 18:29 pm

La primera vez que leí NeoTeo fue a trave? de una recomendación para entrar en un concurso de una Nikon D40. Reconozco que esta revista me ha enganchado. De vez en cuando leo cosas muy interesantes sobre gadgets (mira que me gustan esas cositas) y tecnología en general.

Un ejemplo claro de entrada interesante es “Como Optimizar Adsense“. El servicio de AdSense de Google hace coincidir los anuncios con el contenido de un sitio, y obtener beneficios cuando los usuarios hagan clic en ellos. Optimizar este servicio puede convertir a internet en una fuente de ingresos interesante para aquellos que sepan sacarle provecho. El servicio no es la panacea y requiere dedicación, pero con el tiempo se puede llegar a obtener un dinerillo extra para el bolsillo.

Cuidado con las trampas y suerte con Adsense.

ACTUALIZACIÓN: He encontrado una página muy interesante que explica como aumentar los ingresos a través de diferentes métodos. Visitalá aquí.

Technorati Tags:

Technorati Tags: , , ,

WUBI

Por , 29 agosto 2007 16:28 pm

Leo en NeoTeo que ahora es más fácil que nunca instalar (K) (X) (Edu) (U)Buntu que nunca. El proceso de instalación de un sistema operativo cada día se hace más sencillo y ahora gracias a WUBI podemos acceder a nuestro Buntu favorito como si se tratara de una aplicación más de Windows.

Technorati Tags: | | |

Technorati Tags: , , ,

Busqueda Ternaria

Por , 11 agosto 2007 10:04 am

En la entrada anterior publiqué código que usaba la técnica de divide y vencerás. Volviendo la vista atrás, recuerdo que en un examen de Metodología de la Programación II de la Universidad de Las Palmas de Gran Canaria no supe resolver bien un ejercicio que usaba la misma técnica. El ejercicio en cuestión era la denominada “búsqueda ternaria” mediante la cual se realiza una búsqueda de un elemento en un vector ordenado. La función compara el elemento a buscar con el que ocupa la posición n/3 y si este es menor que el elemento a buscar se vuelve a comparar con el que ocupa la posición 2n/3. En caso de no coincidir ninguno con el elemento buscado se busca recursivamente en el subvector correspondiente de tamaño 1/3 del original. Recuerdo bien que cuando fuí a la revisión de mi examen el profesor de la asignatura, Juan Carlos Rodríguez del Pino, me comentó que el fallo residía en que no había calculado bien los índices. Bueno, que se le va a hacer… más adelante en casa y ya sin la presión del examen me senté con calma y este fué el código que saqué:

ACTUALIZACIÓN: El código que sigue ha sido modificado para mejorar su legibilidad con respecto al código original. Gracias Alberto.

ACTUALIZACIÓN II: ¡Qué casualidad! En la convocatoria de Septiembre del 2007 he tenido que contestar de nuevo a esta pregunta. Esta vez si he superado el examen :-)


1 int busquedaTernaria (int v[], int linf, int lsup, int ele)
2 {
3 int tercio=0, dostercios=0;
4 if (linf == lsup)
5 {
6 if (ele == v[linf])
7 return linf;
8 else
9 return -1;
10 }
11 if (lsup-linf == 1)
12 {
13 if (ele == v[linf])
14 return linf;
15
16 if (ele == v[lsup])
17 return lsup;
18
19 return -1;
20 }
21
22 tercio = ((lsup - linf + 1) / 3) + linf;
23 dostercios = (lsup - tercio) + linf;
24
25 if (ele == v[tercio])
26 return tercio;
27
28 if (ele == v[dostercios])
29 return dostercios;
30
31 if (ele < v[tercio])
32 return busquedaTernaria (v, linf, tercio-1, ele);
33
34 if (ele < v[dostercios])
35 return busquedaTernaria (v, tercio+1, dostercios-1, ele);
36
37 return busquedaTernaria (v, dostercios+1, lsup, ele);
38 }

Espero que esta vez los índices estén bien calculados… Si alguien ve algún error o quiere comentar alguna mejora, genial.

Un saludo a tod@s.

Technorati Tags: | |

Technorati Tags: , ,

Elemento N-M-ésimo de una matriz

Por , 10 agosto 2007 20:01 pm

Seguimos con un poquito de programación, esta vez en C. El siguiente código devuelve la posición ([FILA][COLUMNA]) de un elemento (sabemos a priori que este elemento existe) en una matriz de NxM. El código esta resuelto usando la técnica de “divide y vencerás“: (el siguiente código se convirtió a HTML con code2html)

 1 /* Se tiene una matriz de NxM enteros ordenada crecientemente por filas y por
2 columnas, y con todos sus valores diferentes. Escriba un algoritmo que busque la
3 posición de un valor x sabiendo que este se encuentra en la matriz. */

4
5 #include
6 #include
7 #include
8 #define M 4
9 #define N 4
10 void buscaeleenmatriz (int A[M][N], int linff, int lsupf, int linfc, int
11 lsupc, int elem, int *pos_x, int *pos_y)
12 {
13 int mitad = 0;
14 if ((linff == lsupf) && (linfc == lsupc))
15 {
16 if (elem == A[linff][linfc])
17 {
18 *pos_x = linff;
19 *pos_y = linfc;
20 }
21 else
22 {
23 *pos_x = -1;
24 *pos_y = -1;
25 }
26 }
27 else
28 {
29 if (linff != lsupf)
30 {
31 mitad = (int) ((linff + lsupf) / 2);
32 if (elem == A[mitad][lsupc])
33 {
34 *pos_x = mitad;
35 *pos_y = lsupc;
36 }
37 else
38 {
39 if (elem < A[mitad][lsupc])
40 buscaeleenmatriz (A, linff, mitad, linfc, lsupc, elem, pos_x,
41 pos_y);
42 else
43 buscaeleenmatriz (A, mitad + 1, lsupf, linfc, lsupc, elem, pos_x,
44 pos_y);
45 }
46 }
47 else
48 {
49 mitad = (int) ((linfc + lsupc) / 2);
50 if (elem == A[linff][mitad])
51 {
52 *pos_x = linff;
53 *pos_y = mitad;
54 }
55 else
56 {
57 if (elem < A[linff][mitad])
58 buscaeleenmatriz (A, linff, lsupf, linfc, mitad - 1,
59 elem, pos_x, pos_y);
60 else
61 buscaeleenmatriz (A, linff, lsupf, mitad + 1, lsupc, elem, pos_x,
62 pos_y);
63 }
64 }
65 }
66 }

Technorati Tags: | |

Technorati Tags: , ,

Programación – Fechas en Ada

Por , 10 agosto 2007 17:24 pm

Parece que cuando uno acaba las cosas con sudor, agradece más el tiempo invertido y más orgulloso se siente de su trabajo. Yo no me considero ni mucho menos un gran programador, pero si me considero un amante de la programación. Por muy freaky que esto pueda sonar, no me avergüenzo de ello ni mucho menos… más bien todo lo contrario. Algo que siempre he echado de menos es comentar de vez en cuando algunas líneas de código en mi blog. Así que de vez en cuando a partir de ahora, añadiré partes de código que yo haya escrito o que me ha parecido interesante (en este último caso siempre comentaré de donde proviene el código original).

Para empezar voy a poner la estructura que elegí en la especificación de un paquete “Fechas” en Ada:

type Fecha is record
dd: Positive;
mm: Positive;
yyyy: Positive range 1..9999;
end record;

Una función booleana (sobrecargando el operador “<") que me resultó muy útil para comparar dos fechas pasadas como parámetro (fecha1 y fecha2) y devolver verdadero si "fecha1 es menor que fecha2" o falso en caso contrario es la que sigue:

function “<" (fecha1: in Fecha; fecha2: in Fecha) return Boolean is
valor1,valor2: Positive;
begin
–convierto las fechas a formato numérico ponderado en base a los siguientes criterios: –año –> año x 10^10000 –mes –> mes x 10^100 –dia –> dia x 10^0
valor1:= (fecha1.yyyy*10000)+(fecha1.mm*100)+(fecha1.dd);
valor2:=(fecha2.yyyy*10000)+(fecha2.mm*100)+(fecha2.dd);
if (valor1then return true;
else return false;
end if;
end “<";

Por último, añadiré el código que escribí para calcular si un año es bisiesto (la especificación de este algoritmo fue entregada por el equipo docente de Estructura de Datos I de la Universidad de Las Palmas de Gran Canaria):

function Es_Bisiesto (A: in natural) return boolean is
begin
–Cálculo del año Bisiesto según las indicaciones del calendario Gregoriano
if (((A rem 400)=0) or (((A rem 4)=0) and ((A rem 100)/=0))) then
return true;
else
return false;
end if;
end Es_Bisiesto;

Además de compartir el código públicamente, me gustaría abrir un debate. Es decir, si alguien encuentra algún error o se le ocurre alguna mejora a alguna de las partes de este código, le agradecería enormemente su contribución.

Un saludo a tod@s.

Technorati Tags: | |

Technorati Tags: , ,

Gana una Nikon D40

Por , 3 agosto 2007 12:10 pm

La revista NeoTeo (revista gratis sobre tecnología), y Digitaltoyshop.com (tienda de accesorios para cámaras digitales) han abierto un concurso en el que se sortea una Nikon D40. Participar es muy sencillo, tan solo tienes que publicar una entrada en tu blog anunciando el concurso. Puedes leer más sobre el concurso aquí.

Un saludo a tod@s.

Technorati Tags: | | | |

Technorati Tags: , , ,

Banana Computer, ¡de vergüenza!

Por , 2 agosto 2007 19:12 pm

Banana Computer … ¡desastroso trato! Me presenté en este establecimiento de Las Palmas de Gran Canaria para comprar un accesorio para el Ipod de mi hermano. Más concretamente estaba interesado en adquirir un JBL On Stage II. Realmente desconocía que esta tienducha cerrara a las 19:00, pero yo me personé en su puerta a las 18:58 exactamente. Pues bien, a fecha de hoy (2 de Agosto de 2007) un señor bastante maleducado me cerró las puertas en las narices. Este personajucho ni siquiera se dignó a mirarme a la cara, simplemente se hizo el loco e hizo como que “aquí no ha pasado nada”. Menos mal que hay otros establecimientos en la ciudad donde poder adquirir productos Apple. Sobra decir que desde hoy mismo pienso mostrar mi disconformidad por el trato recibido e intentaré dejar claro lo malos profesionales que son los individuos que llevan ese local.

Por otro lado tendré que adquirir mi deseado MacBook Pro en algún establecimiento que me trate simplemente un poquito mejor. Y seguiré esperando con ansias … desde hoy más que nunca.. que Apple Store nos permita a los residentes en Canarias poder comprar directamente en su tienda on-line.

ACTUALIZACIÓN: Ayer (9 de agosto de 2007) recibí una llamada de D. Carlos Gallardo a las 19:55. Para los que no sepan quien es el Sr. Gallardo, es el director de Banana Computer. Me explicó que ayer han comentado el asunto que trato en esta entrada de mi blog y que esa no es la imagen que quieren dar a sus clientes. Después de disculparse me agradeció que escribiera sobre lo ocurrido porque así podrían aprender de sus errores. En lo que a mi respecta, el tema es agua pasada. Agradezco enormemente la llamada del Sr. Gallardo y de la misma manera que mostré mi malestar por el trato recibido hace unos días, considero justo también comentar que ayer el director de Banana Computer demostró ser todo un caballero, dispuesto a mejorar cada día y más importante aún … está al tanto de lo que ocurre y actúa con diligencia para solucionar posibles problemas. ¡Chapó Sr. Gallardo!

Un saludo a tod@s.

Technorati Tags: |

Technorati Tags: , , , ,

Panorama Theme by Themocracy