Google Brain——未来的Google,你相信吗?
先看看这段视频吧。声明:Google还没有实现视频演示的那样的功能。
其实我觉得这种方式还不如直接用关键字搜索来得方便呢。
一大堆思想的碎片……
像我这种经常看外文材料的人自然少不了一个翻译软件。今天重温了一下stardict,真是比前几年进步不小啊。stardict(中文名:星际译王)是一个开源的词典类软件。既然是开源的,那它的资源就非常丰富了。当然刚刚安装好的stardict是不带有任何词典的。在它的项目主页上你可以找到很多的词典包下载,甚至都有Wikipedia的词典!在资源上比国内有名的“金山词霸”要丰富多了——并且还是免费软件。
stardict需要GTK运行时,在项目主页上就可以找到下载,安装也很容易。唯一的缺点是界面太简陋,这也是GTK程序一贯的问题。
Posted by Unknown 于 2:52 下午 0 comments
Labels: Software
Google Adsense放上两天了,发现Google对我的Blog学习得很快,投放的广告都非常准确,绝大部分都是我感兴趣的内容。一个机器程序能做到这种程度,真叫我大开眼界了。
透过Adsense,在维护自己的Blog时顺便就能发现很多有趣的东西。感觉就像一个自动的信息源,而且垃圾信息还比较少。实在难以想象这样的玩意儿还能带来经济收入(我的印象中网站一但和“钱”扯上关系那它的质量就下降了)。
最喜欢的是文章上面Google提供的“链接列表”,占地不多,却像一个导航栏一样。它似乎知道我的爱好。昨天我还挺纳闷儿,我的Blog里并没有出现VC,Matlab之类的文字,它怎么就知道我也喜欢那些东西呢?
Posted by Unknown 于 5:39 下午 0 comments
Labels: Google
今天才发现我的Blog用IE浏览器打开时显示的是乱码,显然是IE不能自动识别出UTF-8编码,需要我手动调一下。
观察了一下其他在IE中显示正常的UTF-8编码的网页,发现在<head>...</head>中有一行<meta content="text/html; charset=utf-8" equiv="Content-type">,而我的却没有。这下就好说了,直接把这一行添加到HTML模板里,保存,再打开发现一切都正常了。
以后一定要重视多在不同的浏览器里检查一下,特别是那个让我又爱又恨的IE。
Posted by Unknown 于 12:15 上午 0 comments
下个星期就要开始上课了,终于要学到那些艰深的专业课了,什么数据结构、计算机组成原理、汇编语言……虽然想想也挺有意思,不过无论如何也要和Python、PHP这些我更加喜欢的东西先疏远一下了。到时候这个Blog的更新也就不会很频繁了。其实我是刚刚才发现写Blog的乐趣的——当然了,对于我来说,有兴趣的事是什么都阻挡不了的;对Blog而言,大可放心。
写Blog很像我在中学时老师要求写随笔。当时是很不情愿的,不过我仅仅在一两天之后就产生了兴趣,导致这个“毛病”一直延续到现在——只不过是从纸上挪到了网上,而且内容更杂了。如果兴趣都能这么容易地产生,那该多好啊!
回想上学期所学的,最失败的就是很多人还没有学会在网上用搜索引擎查找资料,还仅仅认为网络是娱乐的地方。我除了感到无奈,觉得什么有用的事都做不了……
不过最幸福的是认识了很多的好人,像彦坤哥哥、玉培姐姐、长涛哥哥、江华哥哥、玲弟姐姐……而且还和以前的一些朋友们保持着通信联系。我又是多么的幸福啊!
5月份考程序员,预祝我能交上好运。
Posted by Unknown 于 8:34 下午 0 comments
Labels: Misc
今天上午11点多的时候Adsense小组终于给我回信了,当然了,我的Adsense申请是被批准了的。
仔细阅读了一遍使用说明,然后迫不及待地把Adsense代码安上,一遍遍地看看效果,还得提防自己:千万别点广告!另外稍微感到奇怪的是,Google说刚安装上Adsense时会显示一段时间的公益广告,访问量小的可能会在48小时后才出现商业广告;而我的居然放上后没过一小时就出现商业广告了,真是纳闷。难道是我的人品好?哇哈哈……
Google Adsense虽然不错,但毕竟是属于广告,可千万不能影响网站的质量呀。看着有些网页里面塞满了Google的广告,怎么看怎么捌扭!自己今后可别成为那个样子呀。
Posted by Unknown 于 6:01 下午 0 comments
这些天磨磨蹭蹭地看完Python 2.5的文档的第三章了。结束部分举了个例子,更是让我为Python拍手称奇!
a,b=0,1
while b<10:
print b
a,b=b,a+b
a,b=0,1
while b<10:
print b,
a,b=b,a+b
1 1 2 3 5 8
Posted by Unknown 于 11:38 下午 0 comments
Labels: Python
把一堆东西东西放在一起就构成了一个List,当然这个“一堆”不一定指一个以上,也可以仅仅有一个,甚至是什么都没有。
>>>a=['spam','eggs',100,1234]学过其他语言的可能会觉得这有点像数组,下标从0开始;但又有所区别。看上面的例子得知,一个List中的元素类型不一定是同一种。要重点指出的是,Python淡化了类型的概念。
>>>a
['spam','eggs',100,1234]
>>>a[0]
'spam'
>>>a[1:-1]再举两个List运算的例子:
['eggs',100]
>>>a[:2]+['bacon',2*2]List中的元素是可变的,这一点了字符串不太一样:
['spam','eggs','bacon',4]
>>>3*a[:3]+['Boo!']
['spam',eggs',100,'spam','eggs',100,'spam','eggs',100,'Boo!']
>>>a也可以改变List中的一个Slice,这样可以相当直观的进行删除插入操作:
['spam','eggs',100,1234]
>>>a[2]=a[2]+23
>>>a
['spam','eggs',123,1234]
>>>a[0:2]=[1,12]List中元素的个数可以用len()来取得:
>>>a
[1,12,123,1234]
>>>a[0:2]=[]
>>>a
[123,1234]
>>>a[1:1]=['bletch','xyzzy']
>>>a
[123,'bletch','xyzzy',1234]
>>>a[:0]=a
>>>a
[123,'bletch','xyzzy',1234,123,'bletch','xyzzy',1234]
>>>a[:]=[]
>>>len(a)刚才说List的元素类型不限,可以推想,一个List也可以作为另一个List的元素:
8
>>>q=[2,3]注意这里:q和p[1]引用同一内存区域,对其中一个的改变都会影响到另一个。
>>>p=[1,p,4]
>>>len(p)
3
>>>p[1]
[2,3]
>>>p[a][0]
2
>>>p[1].append('xtra')
>>>p
[1,[2,3,'xtra'],4]
>>>q
[2,3,'xtra']
Posted by Unknown 于 10:53 上午 0 comments
Labels: Python
刚才有一阵google.com又上不去了,无奈这中这好使用百度,没想到百度居然发现了我安装了Google工具栏,给了我一个建议:稍后我用IE来打开百度(刚才用的是Firefox),却没有发现这个提示(IE没有禁用脚本),为什么它只是在Firefox中出现呢?莫非……
但愿不是什么不详的征兆。
Posted by Unknown 于 3:10 下午 2 comments
Labels: Internet
为自己总结一下,也督促自己严格遵守。
Posted by Unknown 于 1:22 下午 0 comments
Amaya作为被W3C推荐的HTML编辑器,居然不能正确的处理中文!一直把中文字符当成两个半个字符来对待。倒不是说一个汉字也显示不了,可你如果想打“下载”两个字,你就会发现“载”字成了个小方框。如图:
Amaya可是被W3C推荐了多年了,记得三年前就发现了它对中文的不友好,本以为如今会大有改进的,没想到还是老毛病。
作为国际互联网标准化组织,W3C居然一直在推荐一个如此不重视国际化的软件,真不知道那些人是怎么想的。
Posted by Unknown 于 8:43 下午 0 comments
Unicode
使用Unicode字符串很简单,只需在前面加个“u”就可以了。
>>>u'Hello world!'
u'Hello world!'
>>>u'Hello\u0020world!'
u'Hello world!'
Posted by Unknown 于 3:10 下午 0 comments
Labels: Python
以前看过一个名为Powers of ten的短片,演示了宇宙有多大,原子的世界有多小。看后真觉得过瘾,不禁感叹人类智能的伟大:我们的认识尺度已远远超过了我们生活的世界。
Powers of ten
刚才又看了和这个短片相关的一段视频,也挺有震撼效果的。一同来分享一下。
Cosmic Zoom
Posted by Unknown 于 2:18 下午 0 comments
Labels: Misc
表示方法
在Python中,像'single quotes'和"double quotes"这样包含在单引号或双引号里的内容称为“字符串”。和数值类似,字符串也可以认为有一个值——就是它本身。例如:
>>>'single quotes'
'single quotes'
>>>'Doesn\'t'
"Doesn't"
>>>"Doesn't"
"Doesn't"
>>>"Doesn\'t"
"Doesn't"
>>>'You asked: "I can\'t understand."'
'You asked: "I can\'t understand."'
>>>"You asked: \"I can't understand.\""
'You asked: "I can\'t understand."'
>>>"line 1\nline 2"
'line 1\nline 2'
>>>print "line 1\nline 2"
line 1
line 2
>>>print "line 1\\nline 2"
line 1\nline 2
>>>print r"line 1\n line 2"
line 1\nline 2
>>>str="hello"+" world"
>>>print str
hello world
>>>print "hello! "*3
hello! hello! hello!
>>>str="word"也可以指定一个下标区间,这样就得到了子串:
>>>str[2]
'r'
>>>str[0:2]需要注意的是,[m:n]实际上表示的是[m,n),即不包括下标为n的那个字符。而且下标的用法也很灵活:
'wo'
>>>str[:3]用len()可以得到字符串的长度:
'wor'
>>>str[2:]
'rd'
>>>str[:]
'word'
>>>len(str)
4
Posted by Unknown 于 2:24 上午 0 comments
Labels: Python
我为这个Blog开能了Google Analytics——一个专业的网站统计分析工具,只需按照提示在HTML模板里加上几行代码就开始工作了。
功能似乎挺复杂的,我也没怎么弄明白。不过我觉得最有意思的是它能告诉我有哪里的人来过我的Blog,他们是怎样找到的。看看这两个图:
居然有来自美国和日本的?
Posted by Unknown 于 4:34 下午 0 comments
虽然中文网站提供免费空间的很少,而且多有许多限制,但要在Google上搜索free web host,就能轻易地找到一大堆。而且空间小则100MB,多达8GB,多数还支持PHP和MySQL,甚至已经把Mambo,WordPress,XOOPS等许多免费软件的压缩包准备好了,让你无需自己上传,只需简单地选择一下就可以在线安装了。这可以说是建站者的福音了。
不过遗憾的是,支持ASP的免费空间寥寥无几,我想可能是大部分服务器都不是Windows系统的吧,也有可能是版权的问题,才使得PHP和MySQL的免费空间上如此流行。
Posted by Unknown 于 11:22 上午 0 comments
今天在免费空间上试用了几个PHP程序,觉得挺好玩儿的。把软件安在别人的机器上让自己享用,这种美妙的感觉以有还没有过。如今比较稳定的免费空间大多是国外的,而国外的免费空间又有相当一大部分是支持PHP+MySQL的,因此构建在PHP和MySQL上的软件是大有用武之地的。
刚才还发现了一个好事——被封多年的Freeweb.com被解封了,我是在用Google搜索free web时发现的。顿时有一种欣喜若狂的感觉。多年以前我还在上面做了我的第一个小小的网站,我用当时的用户名登录进去。哈!居然还给我留着呢!而且里面的东西一样也不少,真不错!想想国内的那些提供“免费空间”的网站,几乎没有会给你保留那么长时间的,而且还会给你加上很多五颜六色的广告。
说到广告,我最喜欢的还是类似于Google的文字广告。记得看过一句话,说广告在合适的场合下就是一种很有用的信息(大意如此)。而Google又能根据网页的内容自动投放合适的广告。所以我给我的这个Blog申请了一个Google Adsense,不过现在还没被批下来。我是不指望用它来得到收入的,我知道我的Blog的访问量小得可怜。想加入Google的广告仅仅是想为访问我的Blog的人提供更多的信息。
盼望Google Adsense的代码早日收到。
Posted by Unknown 于 9:05 下午 0 comments
虽然早就开通了Google的“网站管理员”功能,而且添加了ggggqqqqihc.blogspot.com,不过一直也没能添加Sitemap文件,这显然对Google机器人来说不太友好。
今天在Joour的如何将blogger的blog提交到google sitemaps一文中找到的解决方案,没想到竟然简单到都不用自己制作Sitemap,Blogger已经做好了!
原来你的Sitemap文件就是:
http://your_username.blogspot.com/atom.xml
Posted by Unknown 于 8:02 下午 0 comments
三门问题又叫蒙提霍尔问题。说的是在一个电视游戏中,参赛者面对三扇一模一样的关闭着的门,其中一扇门后面是汽车,另外两扇后面是山羊。参赛者选择了一扇门,但并没有打开;这时主持人开启了另外一扇门,后面是山羊。主持人问参赛者要不要换另外一扇关着的门。问题是:换另一扇门是否会增加参赛者赢得汽车的概率?
注解(引自Wikipedia):
大多数人都会认为不会增加赢的概率,理由是在剩下的两扇门后,肯定是一只山羊一辆汽车,无论选择哪个赢得汽车的概率都是1/2。Mueser和Granberg透过在主持人的行为身上加上明确的限制条件,提出了对这个问题的一种不含糊的陈述:
- 参赛者在三扇门中挑选一扇。他并不知道内里有甚么。
- 主持人知道每扇门后面有什么。
- 主持人必须开启剩下的其中一扇门,并且必须提供换门的机会。
- 主持人永远都会挑一扇有山羊的门。
- 如果参赛者挑了一扇有山羊的门,主持人必须挑另一扇有山羊的门。
- 如果参赛者挑了一扇有汽车的门,主持人随机在另外两扇门中挑一扇有山羊的门。
- 参赛者会被问是否保持他的原来选择,还是转而选择剩下的那一道门。
问题的答案是可以:当参赛者转向另一扇门而不是继续维持原先的选择时,赢得汽车的机会将会加倍。
有三种可能的情况,全部都有相等的可能性(1/3):
- 参赛者挑山羊一号,主持人挑山羊二号。转换将赢得汽车。
- 参赛者挑山羊二号,主持人挑山羊一号。转换将赢得汽车。
- 参赛者挑汽车,主持人挑两头山羊的任何一头。转换将失败。
在头两种情况,参赛者可以透过转换选择而赢得汽车。第三种情况是唯一一种参赛者透过保持原来选择而赢的情况。因为三种情况中有两种是透过转换选择而赢的,所以透过转换选择而赢的概率是2/3。
如果没有最初选择,或者如果主持人随便打开一扇门,又或者如果主持人只会在参赛者作出某些选择时才会问是否转换选择的话,问题都将会变得不一样。例如,如果主持人先从两只山羊中剔除其中一只,然后才叫参赛者作出选择的话,选中的机会将会是1/2。
另一种解答是假设你永远都会转换选择,这时赢的唯一可能性就是选一扇没有车的门,因为主持人其后必定会开启另外一扇有山羊的门,消除了转换选择后选到另外一只羊的可能性。因为门的总数是三扇,有山羊的门的总数是两扇,所以转换选择而赢得汽车的概率是2/3,与初次选择时选中有山羊的门的概率一样。
Posted by Unknown 于 2:22 下午 2 comments
用IE在Blogger上写Blog是一种痛苦的经历。光是登录就得用好几分钟的功夫,最后还经常停留在一个空白页上。我就想不明白它咋就那么慢?IE出问题的可能极小。因为访问其他的网站都没有问题。换用Firefox以后感觉就好多了,甚至当我在登录了Google帐号以后就不必再登录Blogger帐号了。据我观察Blogger上的很多功能都是用Javascript实现的。虽然早就听说Firefox对Javascript的支持比较好,但没想到能差这么多。
以前用TiddlyWiki的时候,在IE中也是不一会儿速度就变得非常慢,而Firefox中就没有问题。推测可能是IE的Javascript脚本引擎做得不够细致。看来面对大量的Javascript时,还是Firefox能挺得住。
虽然目前还没有足够的水平能读懂Blogger的Javascript代码,但这也说明被Google收购的Blogger在“浏览器中立”的方面做得还不够好。
后记:刚才在另一台电脑上试了一下,没想到竟然真的是我的IE的问题。不过这个毛病实在是太不显眼了。看来在下结论之前要做充分的调查。
Posted by Unknown 于 9:37 下午 0 comments
Labels: Software
Python,听这名字有点儿吓人。其实这里的Python不是那种没有腿的令人恐惧的动物,而是一种编程语言,一种在开源世界很流行的编程语言。Python这么多年来已经发展得十分强大,但在人口众多的中国,知道它的人还是相当少,更别说这方面的专家了。
好了,废话不多说,现在切入正题。
获得Python的开发环境很容易,Python社区出的解释器和开发工具都是自由软件,可以很方便地下载。还有一些手册、教程之类的文档,所有这一切都可以在http://www.python.org上找到。
安装完成后会发现它自带了一个叫IDLE的Python开发环境。我建议使用它来学习Python,而不提倡在黑乎乎的“命令提示符”写一行行地写代码——虽然这看上去很cool,IDLE有语法加亮和自动缩进的功能,写代码能省不少力气。
我认为Python和其他语言最多的不同点就是它把缩进作为语法的一部分,不像C++、Pascal那样用特定的标记来划分区块。因此学习Python就会养成良好的编排习惯。相比之下,对于刚开始学诸如C之类的编程语言的人来说,可能要过相当长的一段时间后才能养成代码缩进的习惯。
现在打开IDLE,上面显示了一些有关Python的信息,不必管它。要注意的是光标闪烁的地方,有一个“>>>”的提示符,表明Python解释器已经准备好,随时待命了。现在输入:
2+2
并按下回车键,发现了什么?下一行出现了“4”。Python最简单的功能就是当成一个计算器。
加减乘法没什么问题,除法就稍微复杂一些了。试试5/2?谁都知道结果是2.5,但Python给出的却是2。怎么回事?
Python如果发现分子分母都是整数,就认为你想要的商也是整数,而且这个整数是小于或等于真实值的最大的整数。举例来说,就是8/3=3,-7/3=-3。如果你想要得到小数的结果,只需保证分子分母不都是整数就行了,如5.0/2,8/3.0等等。
Python还可以进行复数计算:
>>> 1j * 1J
(-1+0j)
>>> 1j * complex(0,1)
(-1+0j)
>>> 3+1j*3
(3+3j)
>>> (3+1j)*3
(9+3j)
>>> (1+2j)/(1+1j)
(1.5+0.5j)
complex的作用就是合成一个复数。a+bi在Python中要写成complex(a,b)。
Posted by Unknown 于 2:25 下午 0 comments
Labels: Python
刚有电脑的时候总是喜欢试用各种各样的软件,没多久系统就会凌乱不堪,运行越来越慢,最后当然是不可避免的重装系统。结果很快地,装系统对我来说就已经很熟练了。
上学期看一个师兄的电脑上有个软件就PowerShadow,我就好奇地问那是做什么的。他说那叫“影子系统”,运行以后就像是给硬盘分区创建了一个“影子”,无论什么操作都不会对被保护起来的分区造成影响。我问他是不是做了什么备份之类的东西,那样的话就太占硬盘空间了,然而他说不是。我当时还不是很相信。于是放假回家时了解了一下PowerShadow,居然还是免费软件!看看网上的评价还是蛮不错的。我决定试试(现在已经不喜欢试用新的软件了,难道是老了,不愿意接受新事物了?),结果令我非常满意。心想以后试用软件时可以先把它打开,看看软件里到底有没有病毒,有没有流氓软件,反正无论怎么一重启机器也就什么多没了。就像是海滩上的沙雕,海潮过后什么痕迹都留不下。
这下好了,无聊时又可以下载一些好玩儿的软件玩了,再不用担心把系统玩儿坏了。
Posted by Unknown 于 11:38 下午 0 comments