Seven Yu @ 12/17/2008 (10:30 pm)

Get Picasaweb Image URL – 获取 Picasa Web 纯图片地址猴子脚本

Picasa WebGoogle 旗下的免费电子相册服务。我看中他的原因有三:免费、空间大、允许外链。

但美中不足,Picasa Web 只提供图片页面地址和一个带链接的图片代码,而且只有 144px,288px,400px和800px四种尺寸(见下图)。其实还有从32px到1600px的23个尺寸。(详见sfufoet煎蛋上的介绍

为了更方便地取得图片地址(纯图片地址、带img标签的和bbcode三种形式),以及所有尺寸的图片(默认512px),Get Picasaweb Image URL 猴子脚本诞生了。(效果见下图)

同时感谢 sfufoet 童鞋给我的建议(图片地址三种形式和图片的多种尺寸) :wink:

BTW:此日志中的图片地址就是用该脚本取得的,hoho~~~ :cool:

附上脚本代码:

PLAIN TEXT >> JAVASCRIPT:
  1. // ==UserScript==
  2. // @name           Get Picasaweb Image URL
  3. // @namespace      http://phpz.org/
  4. // @include        http://picasaweb.google.com/*
  5. // ==/UserScript==
  6.  
  7. var __suj_picasaweb_isinit = false;
  8. var __suj_parent_input;
  9. var __suj_imgurl_input = [];
  10. var __suj_sizes = [32,48,64,72,104,144,160,200,220,288,320,400,512,576,640,720,800,912,1024,1152,1280,1440,1600];
  11. var __suj_default_size_id = 12// default 512px;
  12. window.addEventListener('load', init, false);
  13. function init()
  14. {
  15.     var hakelinks = document.getElementsByClassName('lhcl_fakelink');
  16.     for(var ind in hakelinks)
  17.         hakelinks[ind].addEventListener('click',function(){!__suj_picasaweb_isinit && createUI();}, false);
  18.     var imglinks = document.getElementsByClassName('goog-icon-list-icon-img');
  19.     for(var ind in imglinks)
  20.         imglinks[ind].addEventListener('mouseout', function(){setTimeout(function(){!__suj_picasaweb_isinit && createUI();}, 1500);}, false);
  21. }
  22.  
  23. function createUI()
  24. {
  25.     __suj_parent_input = document.getElementById('lhid_snippet');
  26.     if(__suj_parent_input)
  27.     {
  28.         __suj_picasaweb_isinit = true;
  29.         var selecter = document.getElementById('lhid_snippet_size');
  30.         selecter.options.length = 0;
  31.         var op;
  32.         for(var s in __suj_sizes)
  33.         {
  34.             op = new Option();
  35.             op.text  = __suj_sizes[s] + 'px';
  36.             op.value = __suj_sizes[s];
  37.             selecter.options.add(op);
  38.         }
  39.         selecter.selectedIndex = __suj_default_size_id;
  40.         var timgurl = document.getElementById('lhid_snippet');
  41.         timgurl.value = timgurl.value.replace(/\/s\d+\//i, '/s' + __suj_sizes[__suj_default_size_id] + '/');
  42.         var appendin = document.getElementsByClassName('gphoto-embed-options')[0].parentNode;
  43.         var mylabel  = document.createElement('label');
  44.         __suj_imgurl_input.push(document.createElement('input'));
  45.         __suj_imgurl_input.push(document.createElement('input'));
  46.         __suj_imgurl_input.push(document.createElement('input'));
  47.  
  48.         mylabel.innerHTML = '图片地址';
  49.  
  50.         var myp = appendin.appendChild(document.createElement('p'));
  51.         myp.appendChild(mylabel);
  52.         for(var ind in __suj_imgurl_input)
  53.         {
  54.             __suj_imgurl_input[ind].className = 'gphoto-sidebar-inputbox';
  55.             __suj_imgurl_input[ind].addEventListener('mouseover'function(){getImageUrl();this.select();}, false);
  56.             __suj_imgurl_input[ind].addEventListener('click'function(){getImageUrl();this.select();}, false);
  57.             myp.appendChild(document.createElement('br'));
  58.             myp.appendChild(__suj_imgurl_input[ind]);
  59.         }
  60.         setTimeout(getImageUrl, 500);
  61.     }
  62. }
  63.  
  64. function getImageUrl()
  65. {
  66.     var str = __suj_parent_input.value;
  67.     str.match(/<img\s+src\s*\=\s*\"([^\"]+?)\"/i);
  68.     __suj_imgurl_input[0].value = RegExp['$1'];
  69.     __suj_imgurl_input[1].value = '<img src="'+RegExp['$1']+'" />';
  70.     __suj_imgurl_input[2].value = '[img]'+RegExp['$1']+'[/img]';
  71. }

Seven Yu @ 09/03/2008 (9:38 am)

让人不得不用的浏览器 —— Google Chrome

Tags: , , ::

懒得看文字介绍? 直接去看 chrome 的功能介绍吧, 视频的哦~~~

刚装上,简单用了一下,感觉很不错。

首先可视区域很大,没有菜单栏,没有状态栏,甚至没有窗口的标题栏(取而代之的是标签栏)。占据空间的只有一排标签栏和一排地址栏,但功能一点不受影响:地址栏旁边的两个按钮完成了菜单栏的使命,状态栏也会在鼠标停在链接上或发起请求时适时地出现,不需要时会自动隐去。

你还可以随时拖拽任何标签出来成为一个独立的窗口,任何 chrome 窗口中的标签也可以拖拽合并到其他 chrome 窗口中。标签栏(窗口标题栏)空白处点右键,可以看到一个“任务管理器”菜单项,点击后出现一个小窗口,显示当前标签和插件的进程情况(内存,CPU,网络),可以结束任何进程。点击“傻瓜统计信息”会打开一个新标签页以列表形式显示各个进程的详细内存数据,如果打开了其他浏览器(IE, Firefox, Opera, Safari)则会同时显示他们的内存占用情况。

 

打开新标签页会显示快速拨号,这个功能是 Opera 最先实现的,后来 firefox 也有很多类似插件,是个相当方便的功能。不同的是 Opera 和 firefox 的插件都需要手动配置,而 chrome 的快速拨号则不需要,她会自动显示访问频率最高的几个站点。同时还显示一个搜索框和最近关闭的标签,以便恢复。

同时 chrome 还有拼写检查功能,地址栏功能更是帅的一塌糊涂,比 firefox 3 的地址栏功能更强。因为 chrome 的地址栏有自动完成功能,大部分时候只需打几个字符然后直接按回车就行了,而 firefox 3 的地址栏在输入后通常需要鼠标点击或按方向键选中正确的项,无形中 chrome 节省了一步甚至几步操作。

Chrome 还支持多种界面语言,可以根据需要随意设置。但经我测试,设置成英文版后,对中文字体的渲染就消失了,不过喜欢清晰字体的朋友可以尝试一下。 :wink:

相信 chrome 中绝对不止我发现的这些,一定还有更多超炫的功能等待你去发现,别犹豫了,去下载一个吧……

BTW:不得不佩服 Google 在用户体验方面下的功夫啊,只用了不到10分钟我就按捺不住来写这篇日志了。网上经常有人指责另外一些人,说这些人对 Google 盲目崇拜,Google 出什么东西都认为是最好的。我承认我就是被指责的 Google 崇拜者,但我不是盲目的,Google 的东西的确让我没话说,如果要指责,给我个不用 Google 产品的理由先……

Seven Yu @ 07/18/2008 (9:56 am)

[转]改进后的Flash索引

Tags: , , , ::

转载自谷歌中文网站管理员博客

Improved Flash indexing
发表于:2008年6月30日星期一,晚上9: 31

我们收到过许多期望我们改进对Adobe Flash文件索引问题的建议。今天,索引团队的软件工程师 Ron Adler Janis Stipins,将就我们最近在Flash文件索引编制上取得的改进与大家进行更深入的探讨和交流。

问: 目前哪些Flash文件能更好地被谷歌索引到呢?
我们改善了对所有类型
SWF文件中的文字内容的索引能力,其中包括像按钮或菜单这样的Flash“小工具”,独立自成一体的 Flash 网站,以及所有介于两者之间的Flash形式。

问:这些Flash文件中的哪些内容能被谷歌更好地索引呢?
用户在与您的
Flash文件互动过程中所看到的一切文本内容都将得到更好地索引。如果您的网站包含Flash,其中的文字内容会被Google用来生成您网站的摘要。同时,出现在Flash文件中的文字可以用来匹配用户在Google搜索框中输入的搜索查询。

除了索引Flash文件中的文本内容,我们现在也能够识别在Flash文件中的出现的URL,并且把这些链接纳入搜索引擎机器人爬行的目标队列中,就像对待那些非Flash网页中出现的URL一样。例如,如果您的Flash 应用程序中包含指向您网站内部页面的链接,Google现在能够更好地发现并抓取您的网站。

问:那么Flash文件中包含的非文本内容呢,比如图片?
目前,我们只能识别和索引
Flash文件中的文本内容。如果您的Flash文件里只有图片,我们将不能识别和索引出现在这些图片中的任何文字。类似地,如果一个Flash按钮没有任何附属的文字的话,我们将无法对这类指向特定链接的Flash按钮生成任何錨文本。

还应注意到的是,我们无法索引 FLV 文件,比如在 YouTube 上播放的视频,因为这些文件没有包含任何文字元素。

问: Google是怎样识别Flash文件里的内容呢?
我们开发出了一种算法,这种算法可以使Google机器人能够模仿人类通过点击按钮、输入内容等方式来了解
Flash文件。我们的算法能够记住沿途它遇到的所有文字内容,其后这些内容都能被索引到。我们无法告诉您更多的保密细节,但是我们可以告诉您,通过使用Adobe的新型可检索性SWF数据库,这种算法的有效性得到了进一步提高。

问:我怎样做才能使Google索引到我的Flash文件中出现的文本呢?
基本上,您不需要做任何事情。我们已经取得的技术改进,使这项功能的实现,无需网页设计者或网站管理员做任何特别的操作。如果您的网站上有
Flash内容,我们会在现有技术能力的基础上,尽最大能力对它们自动进行索引(详见接下来的问题)。

也就是说,您应该了解 Google现在已经可以识别那些展现在您网站访问者面前的文字信息。如果你希望 Google忽略一些次要内容,如"版权""加载"等信息,您可以考虑把那些文本替换为图片,这样它们就不会被我们抓取到了。

问:在索引Flash文件上,Google遇到的主要技术难题是什么?
目前的问题主要体现在三个方面,这也正是我们在努力解决的:

1Googlebot不能执行某些类型的JavaScript程序。因此,如果您的网页通过JavaScript加载Flash文件的话,Google可能无法识别该Flash文件,在这种情况下,它将不会被索引到。
2、目前,我们还无法把那些通过您的Flash文件加载的外来内容和您的Flash文件整合起来。也就是说,如果您的Flash文件加载了一个HTML文件,或一个XML文件,或另一个SWF文件等等,Google将分别索引这些资源,但是它们将不会被认为是您Flash文件内容的一部分。
3、虽然我们能够索引在网络上出现的几乎所有语种的Flash,但在识别用双向语言书写的Flash内容还有一定困难。在这个问题解决之前,我们将无法识别和索引Flash文件中的希伯来文或阿拉伯文的内容。

但是,在这些问题上我们也已经取得了相当的进展,所以,敬请期待我们进一步的改进!

附:

改进之前搜索结果中的Flash网站

改进之后搜索结果中的Flash网站, 搜索查询 [nasa deep impact animation]

Seven Yu @ 06/13/2008 (4:35 pm)

Google developer day 2008 上 Map APIs 实验室的一些例子

链接:http://chinamaps.googlecode.com/svn/mapsapi/gddcodelab/

链接中是 Google developer day 2008 上 Map APIs 实验室讲解的一些例子,其中还包括讲解的 ppt 文档。

例子演示了 Map API 的一些基础功能,了解了这些功能开发基本的基于 Google Map 的应用应该没什么问题了。


查看大图

Seven Yu @ 05/28/2008 (10:49 pm)

Google Ajax Libraries API (Ajax 共享库)

Tags: , , , ::

Google 真的是做了件好事,在这个 Ajax 风行的时代来这么一玩意儿确实灰常灰常贴心、灰常灰常及时。

这个 Ajax Libraries API 有点像 Adobe 的 RSL (Runtime Shared Library),作用就是当 A B 站共用同一个 js 文件,用户访问了 A 站后,这个 js 文件被浏览器缓存下来,当用户再去访问 B 站时,该 js 文件就不会再去下载了,而是直接用缓存中的文件,节省了一定的流量。

一个几十 K 的 js 文件看似不起眼,但是统计一下,用到 google 提供的那些常用 Ajax 框架的网站数和文件数综合起来也将是个很可观的数字,我想 google 一定会丰富这个共享库,提供更多的支持。

google 目前提供的 Ajax 框架有:

加载框架文件有两种方式,一种是直接加载相应的 js 文件:

PLAIN TEXT >> JAVASCRIPT:
  1. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>

一种是利用 google 提供的接口:

PLAIN TEXT >> JAVASCRIPT:
  1. <script type="text/javascript" src="http://www.google.com/jsapi"></script>
  2. <script type="text/javascript">
  3. // Load jQuery
  4. google.load("jquery", "1");
  5. google.setOnLoadCallback(
  6. function(){
  7. // something you want to do.
  8. });
  9. // 除了 load 方法还有其他一些方法,详情请看官网
  10. </script>

Seven Yu @ 04/18/2008 (3:04 pm)

AIR + Flex Lab. Google 论坛.

Tags: , , ::

为了方便交流, 建了一个 Google 论坛, 欢迎大家访问 :D

https://groups.google.com/group/air-flex-lab