默认装好了Ubuntu,结果发现在locale为zh_CN.UTF-8的环境下不能播放歌曲名为非UTF-8编码的曲目。其解决方法如下:
Beep Media Player “首选项” -> “插件” -> “媒体” -> “MPEG 音频插件的首选项” -> “标题” -> 选中“将非UTF-8标签转成UTF-8” -> “ID3编码”设为“GBK”
默认装好了Ubuntu,结果发现在locale为zh_CN.UTF-8的环境下不能播放歌曲名为非UTF-8编码的曲目。其解决方法如下:
Beep Media Player “首选项” -> “插件” -> “媒体” -> “MPEG 音频插件的首选项” -> “标题” -> 选中“将非UTF-8标签转成UTF-8” -> “ID3编码”设为“GBK”
Noticed that the trailers for X-Men 3 has just been put on Apple’s Movie Trailers. The release date is May 26, 2006, to which for sure I will be looking forward.
Have just emerged the newest browser release from Mozilla Foundation in my Gentoo box. Named Deer Park, this descendant of Firefox are now perfectly running in front of me. The biggest surprise it gives me is that, Chinese font in bold style is eventually supported now, for which I have been waiting for years. Click on the image below to enlarge:
Many thanks for the involved developers!
As it seems that every one is blogging, not surprisingly, my mom have started blogging her story, named 幽清. In English, it means “Quiet and Nice”.
http://spaces.msn.com/members/youyouqingqing/
Have a look!
有个成语叫做“才华洋溢”,是用来描述聪明的人的。我不是聪明的人,想了很久也没有想到一个成语来描述自己。在Tim Horton‘s里面坐了一下午,又在办公室坐到现在。人是好好坐着,但是心却像窗外的雪花一样,满天飞舞。最后,终于按耐不住要写下几个臭字,以泄我书写之欲。
一切都要从AJAX说起。这东西最近挺火的,很多搞网站的都在研究这个东西。我对搞网站的从来都很鄙夷,不过AJAX让我鄙夷了自己一把。从90年代中期一直到前些日子,我们的互联网被每时每刻地丰富着各种各样的功能,从最早的CGI,一直到红了好几年的ASP,PHP。其实这些技术,都是基于无态HTTP的。尽管它们提供了相当大的互交性,但还是建立在HTTP的POST/GET模型之上。当然,我们也有Java和Flash,但是这两个只能算是嵌入在页面的外部应用程序,是和浏览器无关的。无态HTTP,一个很大的缺点,就是每次交替信息的时候需要传输大量的冗余内容,比如一个页头、页尾,甚至任何不用变化的内容——如果假设缓存机制处于最差情况(Worst Case)——都要至少重新传输一次,从而造成一定的时间拖延。我们之所以没有怨言,是因为我们已经习惯了。就好像当世界还没有互联网的时候,今天的网虫们当年不还是乐此不疲地生活么?
AJAX,改变了这个状况。根据Wikipedia上面的定义,AJAX包括:
* 基于web标准(standards-based presentation)XHTML+CSS的表示;
* 使用 DOM(Document Object Model)进行动态显示及交互;
* 使用 XML 和 XSLT 进行数据交换及相关操作;
* 使用 XMLHttpRequest 进行异步数据查询、检索;
* 使用 JavaScript 将所有的东西绑定在一起。
通过上面这些技术AJAX能让无态的HTTP对话成为好像桌面程序那样的有态对话。我比较笨,不是很喜欢术语太多的定义,所以一般都是靠例子来理解新生事物的。这个例子很著名,应该很多人都接触过,就是Google Map。每一次进入Google Map,我们可以注意到在移动地图的时候,整个页面是没有重新刷新的。通过内部的JavaScript,图像数据可以迅速并完整地传输。假如用老的办法来实现这样的地图的话,页面上至少需要几个方向按钮和放大缩小按钮;而每次移动或者变换地图的时候,重新刷新页面的时间就相对来说很长。具体如何实现的,其实看一个实际简单的代码教程会很有帮助。除了传统的基于XMLHttpRequest
的AJAX之外,还有一种不用 XMLHttpRequest
的AJAX方法可以参考一下。
Google确实是个很善于给人惊喜的公司,除了它的地图查询,在其它服务,比如Gmail、Google Suggest、Google Reader当中,都广泛应用了AJAX技术。看起来好像很深奥,其实根据王建硕的话来讲,只不过是“老酒有了新瓶子”。确实是这样,绝大多数网站都可以在不用添加任何软件的前提下享受到AJAX带来的快感,包括His Story。在His Story主页面的右侧栏里找到Shoutbox,随便打个“你好,王小虎”之类的话,就可以看到效果了。是不是非常网络小资?
可惜的是,目前祖国大地上的这样的网络小资、大资数量还是很少的。很多大牌的门户站点,都还没有认识到集成AJAX到自己的页面里去其实是一件非常容易的事情。哪怕只有那么一丁点AJAX的影子,估计都能吸引众多眼球。其实中国业内的人士可以说是已经迫在眉睫了,除了上面综述过Google的那些基于AJAX的产品,微软马上也要推出它的Live系列服务,其中包含了大部分以前的桌面应用,只不过是摆在了浏览器里面。还有Yahoo!旗下的新秀Flickr,都是非常有竞争力的服务。
有这些巨人站在路中间,我们还可以做什么?这个问题很幼稚。MSN China做的再好,看新闻也是去大大小小的本地新闻站点;Google论坛做的再全,灌水发帖还是去星星点点的雷傲、动网论坛。他们插足中国市场至少也有段时日了,除了Google的那个搜索主页面和MSN那个Space,绝大部分服务页面且不说大多数老百姓,至少我周围的朋友和亲人都是没用过,甚至没听说过的。只要一说联众、QQ、网易、新浪这些名字,我保证我的父亲母亲至少一天内访问过其中一个站点多次。这样的巨人,在中国,可以说是失败的。他们聪明地看到了中国的市场,却没有看到中国的门路,直接把西方站点的CSS拷贝一通,然后收买几个本地小网站,汉化一下主页面……是统统不能给满分的。
那么我们可以用AJAX来做些什么呢?提示在上面,答案在下面:
博客
登陆页面:实时更新最新的博客文章和评论、实时按秒计算的排行榜、动态博客地图、不用切换页面的登陆途径……
书写页面:丰富文本模式的所见即所得、HTML模式的实时预览、实时显示刚刚发布的同类别文章的列表、地理位置附近有谁正在书写……
管理页面:不用刷新页面的删除和修改、实时显示按秒计算的点击率和引用站点、动态显示留言……
论坛
主坛版面:动态更新帖子标题、实时财产排行榜、实时公告、站内好友间即时通信……
子坛版面:动态更新每个帖子的点击率、实时显示正在访问当前版面的用户(“某人来此地不屑一顾地瞄了一眼,随即飘然而去”、“某人驻足此地已有时日,丫到底在想啥?”)
发帖页面:(同博客中的书写页面)
这些都是脑子里能立刻想到的,当然不是全部的。其他还可以扩展的服务,比如相册、拍卖,甚至网上做各种应用,包括可以直接在博客或者论坛发文章的独立丰富文本书写器……太多太多了。其实这些想法之前也可以做,只不过反复的刷新页面和冗长的延迟让这些想法变得不切实际。大胆地想象这一切有中国特色的构思吧,那样的一个Web 2.0时代将会给人们带来多少惊奇?终于想到用什么成语来描述自己了,那就是“欲火焚身”。年青人,总有顶着个硬邦邦的脑袋瓜子去闯事业的欲望——AJAX让我的这种欲望上升到了一个新的高度。
如果有人说我应该去演《大腕》里面的某个楼长,我会很开心的:说明一切还不算太晚。
本身不太熟悉6e的,只是一段时间之前听说过。今天忘了搜什么东西了,搜到了6e的网站上。之后辗转又发现了博索。Booso大概的功用据我几分钟之内的理解,是一个博客日记的搜索引擎。根据使用指南,加了Refer代码在主页的侧栏里。到目前为止还没有什么结果。过几天再搜一下吧。
Booso一个有意思的地方,是6e提出的“网页信噪比”的概念。具体是什么不太清楚,感觉起来NB1。搜了一下 wangxiaohu.com ,结果如下:
Result for http://wangxiaohu.com
分类::权重:网页信噪比
linux::
学校::
环境::
中国::
饮料::
声音::
软件::
考试::
电脑::
blog::
智慧::
写作::
物理::
污染::
数学::
视频::
生活::
商业::
论坛::
旅游::
竟然知道我最喜欢的话题是Linux。实际上我的Blog里并没有多少是讲Linux的,我不知道是怎么猜的——挺NB2的。有空好好研究一下。
更新:
既然可以分类了,博索应该尽快实现Yahoo!或者Google那样的博客分类目录。让计算机代替人工去做这样的工作,应该没几天就可以很完善了。而且也可以做一个脚本,让任何分类过的Blog上都可以显示有同样话题的Blog链接。不知道6e下一步有没有这样的计划,不过我猜会在互联网多少都要激起一片涟漪。
_______
1 NB = Not Bad
2 NB = 牛X
Introduced by one of best friend, Sui Huang, I recently learned how to use svd
function in Matlab to compress an image, which in my opinion is easier to be understood and implemented. Instead of the algorithm inside svd
, only its usage is discussed below.
svd
is a function which allows any matrix M with arbitrary size m by n, to be decomposited into 3 matrices, U (m by m), S (m by n) and V (n by n), such that
M = U * S * V'
.
S is a diagonal matrix with its non-negative elements sorted in decreasing order diagonally, whereas U and V are unitary matrices. Note that those elements with larger value in S are more important to the content of an image. The idea of compressing the image is that only first number of diagonal elements in S, with corresponding columns and rows in U and V are saved. Other elements in these matrices are not saved since they are less important to the image content. Depending on different saving selections, the quality of the image varies. The actual steps of compressing and restoring an image are shown in the following Matlab statements.
First we use imread
function to read a image into matrix M. Since usually the given image contains 3 layers, red, green and blue, to simplify the steps, we assume that only one layer, M, is to be compressed:
[M1, M2, M3] = imread ('filename‘,’format‘);
M = double (M1);
Here filename
is the file name of the image and format
is the image type of the filename
, such as jpg
, gif
and etc.
Next, we use svd
to decompose M into three matrices:
[U, S, V] = svd (M);
and we trim each of them with only first 10 valuable columns and rows saved:
U = U(:, 1:10);
V = V(:, 1:10);
S = S(1:10, 1:10);
Now we restore the image using new U, V and S matrices, and save it to a file:
M = U * S * V';
M1 = uint8 (M);
imwrite ([M1, M2, M3], ‘filename‘, ‘format‘);
Thanks Sui for providing the full source code. With variable r
in the code set to 20 and 10 respectively, given an input image, two output images were generated:
As can be seen, the qualities of output images are very low, thus cannot be used in any image processing tasks that have high demands on picture quality, since this method just manipulate matrices, with no image analyzing at all. But still, it is possible to combine with other image processing techniques together, to compensate its weakness, and become useful for programs such as object recognition and video streaming.
Update:
According to the comments, we can use Lanczos method to compute “only large singular values and singular vectors (columns of U and V are actually singular vectors)“, to simply the calculation and save more memory during the process. Thanks to Sui Huang and Dr. Qiao.