WiFi gratuito de Google
El proyecto de Google de proveer de internet a San Francisco mediante una red WiFi gratuita con publicidad sigue adelante y con suspicacias.
Además de endofwires que reseñanamos en los breves de ayer:
Menéame
Denken Über
El proyecto de Google de proveer de internet a San Francisco mediante una red WiFi gratuita con publicidad sigue adelante y con suspicacias.
Además de endofwires que reseñanamos en los breves de ayer:
Menéame
Denken Über
Google ha lanzado la versión en español de Google Scholar, Google Académico, el cual permite buscar bibliografía especializada de fuentes como estudios revisados por especialistas, tesis, libros, resúmenes y artículos de fuentes como editoriales académicas, sociedades profesionales, depósitos de impresiones preliminares, universidades y otras organizaciones académicas.
Una buena noticia para los usuarios de habla hispana de Google, pues parecía que algunas herramientas solo iban a estar disponibles en inglés. Aún estoy esperando que en GMail saquen funcionalidades que no están disponibles cuando pones el idioma español, el botón de suprimir (un simple botón) ha tardado mucho en aparecer.
Google Académico
Vía / Cyberlatam
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 ;
Google acaba de lanzar un framework para realizar aplicaciones AJAX mediante Java de forma sencilla: Google Web Toolkit (GWT). GWT permite olvidarte de las dificultades que se producen cuando quieres dar al usuario el dinamismo de AJAX y el tener que cumplir estándares. Solo tienes que crear tu aplicación en Java y GWT se encargará de traducirla en Javascript y HTML.
Write AJAX applications in the Java language with Google Web Toolkit
VÃa / Digg
Aunque se trata de rumor y de especulación, no quita que pueda llegar a ser verdad. Debido a un artÃculo en el blog oficial de Google Code, en el que se dice que va a haber un nuevo servicio para la comunidad Open Source, Garett Rogers de ZDNet ve posible que a lo que se refiera sea un nuevo Source Forge o CodePlex que pudiera lanzar Google.
Posibilidades hay, como dice Garett, Greg Stein, el autor del post del blog de Google, a parte de ser el presidente de la Fundación Apache, ha trabajado en el proyecto Subversion (SVN), y WebDAV (Web-based Distributed Authoring and Versioning), con lo cual se le ve interés en estos temas.
Yo no sé que pensar, si, puede estar muy bien, pero es que Source Forge está del todo bien y ya está consolidado, ¿seguro que Google va a sacar una competencia?, veremos, con Google nada se sabe.
New Google service for developers
VÃa / Digg
En los últimos dÃas se está hablando bastante sobre el estado de la web 2.0 y se especula sobre si no acercamos al final de una nueva burbuja.
El artÃculo de Rogelio Bernal, español afincado en Sillicon Valley, en el que aseguraba que “hablar de Web 2.0 es sinónimo de ‘aquà huele a muerto'” daba en el centro de la diana señalando que no ha muerto el fenómeno sino el propio término.
Hoy Steve Rubel analiza los posts de TechCrunch y señala que la cifra de proyectos / empresas 2.0 desaparecidos durante este mes (7, entre ellas Performancing o FilmLoop) supera a las que lo hicieron en el primer cuarto del 2006.
Posiblemente se acerca el fin de la burbuja representada por la proliferación de pequeñas empresas que en base a una idea y/o una aplicación web medianamente interesante pretenden levantar un imperio o ser compradas por una pasta.
Pero ni ha muerto el concepto de Web 2.0 que representa a la madurez de un fenómeno como la web en si; a la web como producto bien hecho y sostenido por tecnologÃas, estándares y herramientas sólidos y establecidos, por el introducción de lo social en la web o por la aparición proyectos útiles y que se sostienen por si mismos.
Ciertamente, y como siempre que se habla de Web 2.0, depende de la definición del concepto.
La verdad es que tiro de vez en cuando Google Translate, pero sobre todo para temas personales, para alguna aplicación web no creo que sea muy útil, entre otras cosas porque a veces las traducciones en algunos casos son un poco raras, pero nunca vienen mal tener esta librería para realizar traducciones.
El uso es muy sencillo:
require_once('googleTranslate.class.php');
$gt = new GoogleTranslateWrapper();
/* Traduce una pagina web */
$page_contents = file_get_contents('http://some-web-page/');
/* Traduce al frances */
echo $gt->translate(page_contents , "fr", "en");
/* Si hay error lo muestra */
if(!$gt->isSuccess()) {
echo $gt->getLastError();
}
Google Translation PHP wrapper
Vía / PHPDeveloper.org
Actualización: me avisa Javier Martín que él ha implementado una librería parecida que añade algunas características interesantes como independencia de CURL.