Google Virtual Keyboard
Interesante API de Google para simular un teclado mediante Javascript, sobre todo es útil para evitar keyloggers y la captura de contraseñas.
Introducing the Virtual Keyboard API
Interesante API de Google para simular un teclado mediante Javascript, sobre todo es útil para evitar keyloggers y la captura de contraseñas.
Introducing the Virtual Keyboard API
Google ha sacado una nueva versión de su aplicación web Analytics, la cual nos permite llevar un seguimiento de las visitas en nuestras webs y obtener estadÃsticas sobre éstas.
Por ahora no está activa en todas las cuentas, pero en las próximas semanas lo estará para todas, siendo avisados mediante email cuando esto se produzca. Pudiendo acceder a ambas versiones a la vez durante un mes.
Uno de los cambios más importantes es el rediseño del interfaz de informes, mejorándolo en la personalización y en cuestiones colaborativas gracias al know how acumulado con la compra que hicieron de Measure Map.
Actualmente será más sencillo crear informes y compartirlos para facilitar la toma de decisiones. En un único informe podremos tener una buena impresión de qué es lo que pasa, en vez de tener varios informes que consultar.
Para la administración han habido pocos cambios, y la interfaz nueva no necesita de mucha adaptación, por lo que el paso de una versión a otra no deberÃa suponer mucha complicación.
Entre las novedades que ofrece nos encontramos con la posibilidad de envÃos programados y en el momento de informes en PDF por correo, una herramienta para búsqueda de informes, o poder comprar periodos de tiempo entre sà en una misma gráfica.
New Version of Google Analytics!
VÃa / Ajaxian
Actualización 10:52H: VÃdeo presentación de los cambios con subtÃtulos en español (VÃa / eCuaderno)
Aunque el mismo autor reconoce que el código no está muy optimizado, el hecho es que esta librerÃa de PHP para acceder a funciones de Digg, puede ser de suficiente utilidad por si queremos incluir las noticias de Digg actualizadas en nuestra web.
Muestra el número de diggs que tiene una historia, la categorÃa de la historia, cabecera, enlace a entrada original y el resumen.
TinyDigg
Ejemplo
VÃa / Good PHP Tutorials
Ayer Gabriel publicó la API para CSSMania, la cual nos ofrece información sobre los diseños web que se pueden encontrar en CSSMania.
Con una simple llamada:
http://cssmania.com/api/api.php?search=xxxxxxxxxxxxx
obtenemos en formato JSON los datos sobre:
Ahora que Google ha sacado el botón +1, puede ser interesante saber que puntuación llevan nuestros posts en Google. Una forma rápida (y un tanto cutre) sería crear un fichero (por ejemplo en la raíz del blog que tenga el siguiente código:
get_results("SELECT * from $wpdb->posts where post_status = 'publish' order by ID desc limit 20");
?>
+1 de Google de mis posts
$p) { $url = get_permalink($p->ID); ?>
Espero que os sea de ayuda
Buen ejemplo para obtener la URL que nos dibuja gráficas usando Google Graph mediante procedimientos almacenados de MySQL. Está sacado de este ejemplo, que a su vez está sacado de este otro para Oracle.
DELIMITER $$
DROP FUNCTION IF EXISTS `dm_midas`.`FNC_GOOGRAPH_DB_SIZE`$$
CREATE FUNCTION `dm_midas`.`FNC_GOOGRAPH_DB_SIZE` (
p_chart_type CHAR,
p_height INT,
p_width INT) RETURNS varchar(3000) CHARSET latin1
READS SQL DATA
BEGIN
/* Author: Walter Heck - OlinData */
/* Date: 20090216 */
/* Note: After an idea by Alex Gorbachev - Pythian */
/* http://www.pythian.com/blogs/1490/google-charts-for-dba-tablespaces-allocation */
/* variable declaration */
DECLARE v_done BOOLEAN default false;
DECLARE v_url varchar(3000);
DECLARE v_schema_name varchar(3000);
DECLARE v_data_length_sum int;
DECLARE v_data_length_total int;
DECLARE v_legend_labels varchar(3000);
DECLARE v_chart_labels varchar(3000);
DECLARE v_chart_data varchar(3000);
/* Cursor declaration */
DECLARE c_schema_sizes cursor for
select
t.table_schema,
round(sum(t.data_length + t.index_length) / 1024 / 1024) as data_length_schema
from
information_schema.tables t
group by
t.table_schema
order by
t.table_schema;
/* Handler declaration */
DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_done = true;
/* Initialize the variables */
SET v_legend_labels = '';
SET v_chart_labels = '';
SET v_chart_data = '';
/* Get the total data length + index_length for all tables */
select
round(sum(t.data_length + t.index_length) / 1024 / 1024) as data_length_total
into
v_data_length_total
from
information_schema.tables t;
/* Open the cursor */
OPEN c_schema_sizes;
/* Loop through the cursor */
get_data: LOOP
/* Fetch the next row of data into our variables */
FETCH c_schema_sizes INTO v_schema_name, v_data_length_sum;
/* if there is no more data, v_done will be true */
IF v_done THEN
/* Exit the loop */
LEAVE get_data;
END IF;
/* Add the schema name to the labels for the legend */
IF v_legend_labels = '' THEN
SET v_legend_labels = v_schema_name;
ELSE
SET v_legend_labels = concat(v_legend_labels, '|', v_schema_name);
END IF;
/* Add the total size of the schema to the labels */
IF v_chart_labels = '' THEN
SET v_chart_labels = v_data_length_sum;
ELSE
SET v_chart_labels = concat(v_chart_labels, '|', v_data_length_sum);
END IF;
/* Get the percentage of the total size as the graph's data */
IF v_chart_data = '' THEN
SET v_chart_data = ROUND(v_data_length_sum / v_data_length_total, 2) * 100;
ELSE
SET v_chart_data = concat(v_chart_data, ',', ROUND(v_data_length_sum / v_data_length_total, 2) * 100);
END IF;
END LOOP get_data;
/* Close the cursor */
CLOSE c_schema_sizes;
/* Build up the google graph url */
SET v_url = 'http://chart.apis.google.com/chart?';
SET v_url = CONCAT(v_url, 'cht=', p_chart_type);
SET v_url = CONCAT(v_url, '&chs=', p_width , 'x', p_height);
SET v_url = CONCAT(v_url, '&chtt=Database Sizes (MB)');
SET v_url = CONCAT(v_url, '&chl=', v_chart_labels);
SET v_url = CONCAT(v_url, '&chd=t:', v_chart_data);
SET v_url = CONCAT(v_url, '&chdl=', v_legend_labels);
/* return the url as the function's result */
RETURN v_url;
END$$
DELIMITER ;