niyue

Archive for the ‘idea’ Category

变形金刚变形的数学基础

In ideaother on 8月 16, 2008 at 11:26 上午

前段时间看了一个TED上面的演讲,演讲人叫Robert J. Lang,是一位NASA的工程师。他有一个很有趣的研究,是关于将数学应用于日本的一种叫做Origami的折纸艺术(中国是不是也有,不知道谁早?)。通过应用高超的数学技巧,能够使用纸张折叠出异常复杂、逼真的三维的物体。在他在TED上的演讲中,就有不少例子,其中还有一个三菱的汽车广告,广告中的所有场景和物体(当然,除了三菱的汽车)都是使用这种方式构造出来的。他还有一个关于Origami的网站(似乎国内被GFW掉了,需要代理),里面也有很多例子。

同样的一张纸,通过不同的数学计算能够折叠出不同的形状,这不就像变形金刚的变形吗?可以想象一下,变形金刚的最初的形状其实是一大个二维平面状物体,通过应用类似的数学技巧,只要每次通过计算机计算折叠的方式,就可以转化成为三维的一个物体。也许不能像汽车飞机一样行动,但是在形状上模仿肯定是没有什么太大问题的,而且一个变形金刚应该能够通过不同的计算,变形成为多种不同的形状。如果做一个权衡,只要求变成一种形状,但是在特定的地方加一些特定的设备(如汽车的轮子或者飞机的推进器),是很有可能实现真正的变形金刚的变形功能的~更可能实现的,是基于这个做一个简单的变形玩具,肯定会卖疯的:-)

Google AppEngine

In ideaprogramming on 4月 15, 2008 at 10:43 上午

申请了Google AppEngine,前天刚得到批准,准备写点小东西看看。AppEngine是很有意思的一个东西,原来一直想写一些server side的应用,可惜一直没有环境来部署,也就一直没有实现。很多想做的东西也都因为没有Web环境来部署觉得用处不大就没有去做。不过现在有了AppEngine这些问题都迎刃而解了。

但是AppEngine只支持Python,开始想找个曲线救国的办法 – 找到一个Python实现的JVM或者Ruby VM,这样就可以在AppEngine上部署Java或者Ruby的应用(假设AppEngine的Python环境可以让这些虚拟机跑起来)。当然如果有Python-based JVM的话,还可以再这之上再跑Ruby的应用(JRuby)或者Groovy和Scala的应用了,想想就是一个很酷的事情。稍微花了些时间,可惜并没有找到这种的虚拟机实现,不知道是原来并没有这种需求还是技术上有什么难度,有PyPy为什么没有RuPy或者JaPy?

So *start learning Python* in this year~

Update:

这个(Compile Ruby to Python)已经很接近我想要找的东西了,可惜是用Ruby写的,如果是用Python写的话,那就应该可以在Google AppEngine的环境中动态的将Ruby编译成Python代码,于是就可以变成一个Ruby运行时了~

http://www.infoq.com/cn/news/2008/04/google-app-engine-simplifies-web

http://www.dougma.com/archives/81

http://ejohn.org/blog/running-java-in-javascript/

http://hotruby.accelart.jp/

这是引用了信息指纹及其应用一贴的某篇文章

In ideaother on 8月 10, 2006 at 9:21 下午

一直看GoogleChinaBlog,很想在上面留个言,不过那里好像不提供留言功能的说,唯一的留下自己痕迹的方法好像就剩下Backlink了.今天就借个机会backlink一下,本来还想顺便给自己的blog也加上backlink的功能的,不过好像本人RP实在太差,导致PR值也不高,”link:blog.niyue.com“在Google上面搜索了一下居然一个站点也没有链接到这里,加到这里反而变成自取其辱了,实在不能满足本人blogger ego的需要,于是就放弃了.
本来还想借这篇文章顺便提高一下PR值的(backlink了GoogleChinaBlog之后也会被link到GoogleChinaBlog上,不知道Google自己的网站连出去的站点会不会特地提高一下PR^_^),不过发现这种SEO的策略是行不通的,只能希望Google的爬虫还爬的到这里能够找到这个backlink,这样还能够借GoogleChinaBlog带点人气呵呵,如果你是通过GoogleChinaBlog上的信息指纹及其应用这篇文章surfing到这里来的,麻烦请留个名让我知道一下:-)

卡啦OK点唱系统与数据可视化

In idea on 7月 30, 2006 at 11:09 下午

昨天去必爱歌唱了一个下午的卡啦OK,一人35RMB,唱了3个小时,还带自助餐,里面的设备也还不错,话筒还是无线的,就是有一点不爽–那里的点歌系统操作起来不是很方便.
回想一下其实其他的一些卡啦OK厅的点唱系统也都是类似的操作界面,按照语言或者地区,再然后按照歌手的名字来进行分类,组织成一个类似目录的结构.可能还带有一些如热门歌曲等特别的入口点,但是对于歌曲之间的关联等浏览方式都不支持,其实使用起来很不方便.
其实不用很复杂的技术,稍微使用一些数据抽取与可视化的技术就可以很容易的提升这一系统的可用性.卡啦OK歌曲的数据应该还是有一定的结构的,比如mp3的ID3标签等,如果能够结合Music Genome这类的数据就可以做出像Pandora以及MusicPlasma类似的应用了,如果能够结合社会网络的一些元素就能够更加Web 2.0 :-), 卡啦OK领域的last.fm也许就在这里.

Update:

IBM and Xing Revolutionize Karaoke Experience through Collaboration
IBM和Xing的东西好像满酷的,不过我感觉卡拉OK选歌还是应该采取浏览的方式来进行,而不是采取搜索的方式.因为在选歌的时候大多数人还不是开始就想好要唱的歌曲,而是先通过浏览来很模糊的查找需要的歌曲.

Feed Proxy

In idea on 7月 21, 2006 at 9:19 下午

在我把blog迁移到自己机器的WordPress之前,我使用的是W3Chinablog服务,使用的Feed服务是FeedBurner的.但是现在迁移到实验室的机器之后,没有办法使用FeedBurner了,因为这里的网络是校园网,国外没有办法访问到.
没有什么办法,只好退而求其次使用国内的FeedSky的服务,虽然支持中文好一些,但是和FeedBurner想必功能还是差了点,稳定性似乎也有些问题,不过也只能免强用了.这之后的问题是怎么处理FeedBurner上的这个feed呢?想了想还是决定指向FeedSky上面的这个feed,在做完这件事情之后突然发现,通过这一次relay,一经可以使得FeedBurner访问到我的feed信息了–使用FeedSky做一个代理.
除了我这种奇怪的需求之外,现在能想到的Feed Proxy的功能还很有限,FeedSky应该马上就会提供所谓的合烧功能,但是FeedBurner没有,这样就可以利用FeedSky的合烧mix几个Feed然后使用FeedBurner来发布:-).不过这种功能如果使用FeedDigest加上FeedBurner的话也可以实现,所以其他的功能要再发掘一下,谁有想法的请告诉我,any advice is appreciated.

Voice Printer

In idea on 7月 9, 2006 at 10:07 下午

我本身对模式识别和自然语言处理了解不多,不过这几天冒出来的似乎都是和它们相关的一些想法。前段时间买了一台打印机,主要目的是想把要看的一些论文什么的打出来,这样在车上或者在路上或者在那些没有电脑的时候看起来方便一些,另外paper-based的文档看起来也习惯一些。也不知怎么晚上突然又想到,假如有一个Text to Speech的软件,把我要打的论文转成语音文件,比如mp3或者wav这些格式的,这样就可以直接用mp3播放器来听而不用看了,毕竟听读的速度比阅读的速度要快的多(当然,e文的话听力好像会有点要求:( )。也就是说如果可行的话,我需要买的应该就是mp3播放器而不是打印机了。
Wikipedia上面一下就找到了想到的东西,大致看了一遍以后决定用FreeTTS试试看,它是Sun公司下面的一个Media Lab的员工建立的项目,应该还是质量不错的。试用了一下,用起来还是满简单的(虽然在我的Ubuntu下面声音设备有些问题似乎),但是结果确不是很好。输出输入只有英语也还算了,关键声音质量实在不敢恭维,听起来就像电影里面的机器人的声音。不知道机器人发声是怎么样的过程呢?好像应该也是类似先软件编程robot.speak(“Hello World”),然后语音合成这样的方式吧,基本和这个FreeTTS的工作方式一样了,也就是说,你现在在电影中听到的机器人的声音,很可能现实中未来的机器人的声音就是这样的:),赶快想象一下Start War里面的金属机器人的声音吧。

Update:

最近想买一个iPod听podcast,突然发现网上有提供将text-based的feed转化为podcast的服务,其实和我上面的想法很一致,尤其是audiolicious,等我买好了再来用。

Google Translate API Hack

In idea on 7月 7, 2006 at 9:13 下午

今天在看RSS Clustering的文章时候想到了分词的问题,文章里面介绍的时候讲的是英文的clustering过程,统计词频对英文很简单,但是对于中文来说就没有容易了.中文的分词一直是个麻烦事情,涉及到很多NLP的东西,我完全不懂,不过不考虑中文就做英文内容的处理的话又不太甘心,毕竟自己的母语是中文.
要怎么样才能绕开这个障碍呢,文章是在公交车上面看的,办法也是在公交车上想出来的,用Google Translate来搞定!Google的Translate可以把各种(也不是各种吧,总之很多种)语言翻译成英语,里面用了N种统计学加计算机科学方面的知识,应该来说效果还不错,假如我可以调用Google Translate的API来把所有的中文都翻译成英文,中文的分词问题不就解决了吗?
回来以后立刻Google了一下Google Translate的API,还去它的developer社区找了一阵,发现原来Translate没有API可以用的,真是令人失望啊,看来Google在这方面还是不够开放.不过偶然发现了有人也想到了Google Translate的API访问问题,还找到了调用的办法,cool,下次找个时间一定要来实验一下.
其实Google Translate的API不开放真的满可惜的,像这个点子很不错的其实,不过不能调API的话就无从谈起了.

语音识别改卷系统

In ideasoftware on 6月 18, 2006 at 10:24 上午

昨天帮老师改了大半天图形学的考卷,上次也改过一次,不过这次的数量可多多了.前面批的时候脑子还轻松些,到了晚上统计分数就很痛苦了,神经紧绷的算了半天,虽然都是100以内的加减法,但是终归不敢马虎大意,可能一不小心成绩就差了一个档次了.改了一个多小时,忙到9点世界杯开始才搞定.
今天事后回想了一下整个改卷的过程,突然想到要是当时找一个语音识别的工具包,利用这个工具包写一个小型语音改卷计算器,只要人工念一下10,2,5.5,8,over,就自动计算出74.5这个成绩,又准确又省力,不是很酷?不过原来只知道IBM的一个ViaVoice有这种功能,MS Office也有,不过Licence好像会有问题.今早冲到实验室立马找了一下相关的工具包,发现有不少free的Speech Recognition的工具包(Speech Recognition Software).可惜考卷已经改好了,没有动力去做些实验看看好不好用了,暂且先记下一笔.不知道高考的改卷系统里面的统计分数是如何做的呢?

Update:

今天下午老师又在进行最后的登分活动了,把所有考卷的成绩登记到成绩表上,看他登的真是那个辛苦.所有的考卷都乱序,成绩表上也是乱序,老师的做法是遍历所有的考卷,在成绩表上查找对应的学号并进行登记,时间复杂度O(n^2),方法有问题,这里应该有一个考卷登分系统,对试卷按照学号进行预排序,然后对有序数组进行二分查找只需要O(logn),n份卷子的话就是O(nlogn).对于前面的排序算法的话,人工排序好像用快排或者堆排序都不方便,用插入排序比较现实,不过也变成O(n^2)了,想了想可以用两路归并排序,人工排的话相对简单而且只要O(nlogn),这样总的时间复杂度只要O(nlogn).300份卷子每份卷子登记需要10秒的话大概可以节省14000分钟.呵呵,好像估算误差满大的,纯属娱乐锻炼下脑子.