niyue

Archive for July, 2006|Monthly archive page

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

In idea on July 30, 2006 at 11:09 PM

昨天去必爱歌唱了一个下午的卡啦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选歌还是应该采取浏览的方式来进行,而不是采取搜索的方式.因为在选歌的时候大多数人还不是开始就想好要唱的歌曲,而是先通过浏览来很模糊的查找需要的歌曲.

Vim extremely boosts my productivity!!!

In learning, programming on July 26, 2006 at 3:53 PM

使用Vim大概半年时间了,终于可以算走过了Vim最陡峭的那段学习曲线,现在越来越感觉到它的效率了.今天使用vim完成的一个工作真正体现了这一点。

这次的工作是要比较两个列表中的人名,看列表一中的人名是否在列表二中,每个人名占了一行。如果用一般的编辑器可就麻烦了,只能用鼠标选中列表一中的某一行,然后Ctrl+C,然后Ctrl+F,然后Ctrl+V,然后Enter查找是不是有相同的字符串在第二个列表中也有出现。第一个列表一共大概有80个人,都要这样来一遍可是非常痛苦的一件事情。于是Google了一下找到了一个vim approach来完成,效率和准确率都提高了不少。我是这样做的:

  1. normal mode: q a
  2. 0 v $ h y j
  3. :%s/Ctrl+R  “/&/g Enter
  4. q

以后查找每一行只要按@a就可以知道在列表二里面是不是有相同的人,如果有会高亮显示并且跳到列表二的这个人名,再按一次n又回回到列表一,没有比这个更方便的更好的效果了:-)

不过要克服前面的这个学习曲线可是很累人的一件事情,不过相信vim会给你带来回报的~

learning curve

Painting in AWT and Swing

In java, programming on July 23, 2006 at 10:24 PM

Java在desktop端好像一直没有得到过很大的应用,据说Mustang会在此做出很大的提高,不过不知道什么时候才可以正式release.最近想写一个Swing的程序,发现从server端换到desktop端写的东西还是有很大不同,尤其是Swing里面的painting实在是让人很疑惑–看不大懂那些API应该怎么组合才能正确的使用.网上search到的东西又都是很早的时候的东西(很多都是AWT的,在后来大家都发现java在desktop没前途转到server side去了).
找了一些tutorial和code eg是五花八门,在painting的时候就会用到好几个方法:

public void paint(Graphics g)
public void update(Graphics g)
public void repaint() 
protected void paintComponent(Graphics g)

到底overwrite哪些方法,其间又有什么不同呢,实在是很复杂的问题,好容易在sun的网站上面找到一篇文章,很全面的介绍了AWT和Swing中painting的机制,把这些问题都讲清楚了,可以参考一下.

Feed Proxy

In idea on July 21, 2006 at 9:19 PM

在我把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.

China-pub RSS订阅

In other on July 15, 2006 at 2:32 PM

今天上China-pub的时候,终于看到了China-pub提供了书籍查询和新书的RSS订阅服务.原来China-pub没有提供这一服务,对于跟踪新书很不方便,经常要登录到它的网站上去看,后来还用Feed43的服务自己定制了一个China-pub 15天内新书查询的RSS源,不过很不稳定,HTML页面解析模式经常有问题,现在有了官方的RSS源就简单多了,立即add to bloglines :-).
还顺便去DearBook也看了看,原来那里也已经有RSS订阅了,而且还是使用了FeedSky,看样子比China-pub应该要更早提供这个服务,也更有经验一些.现在另外一个比较期待的RSS源就是Chinaren校友录了,虽然Suho提供了订阅服务,但是一定要用它那个奇怪的什么狗的Feed阅读器,我认为会使用Feed进行新闻浏览的人一定都对这种作法很反感的,而不会用的人肯定也不会因此改变自己的阅读习惯,还是每次登录然后浏览,所以这完全是吃力不讨好的动作,要开放就开放的彻底一些吧.

Voice Printer

In idea on July 9, 2006 at 10:07 PM

我本身对模式识别和自然语言处理了解不多,不过这几天冒出来的似乎都是和它们相关的一些想法。前段时间买了一台打印机,主要目的是想把要看的一些论文什么的打出来,这样在车上或者在路上或者在那些没有电脑的时候看起来方便一些,另外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 July 7, 2006 at 9:13 PM

今天在看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的话就无从谈起了.