Thursday, December 28, 2006

Java Web 日记:12.28

花了三天时间,才明白TomCat6.0是怎么连接数据池的。

虽说6.0的DBCP的部署有点变化,网上的文档有点过时。但是还是要怪自己太粗心,其实不是没有去注意%TOMCAT_HOME%\conf\server.xml里的Host标签,只是我没发现原来它隐藏在Service/Engine下面,server.xml里没有示例Context标签,这也是所有人都没有提及或干脆说错的.

真是越学越灰心,难道我不适合干这行?anyway,路要继续走,Java要继续学,强悍的人生,没有回头路!

下一任务:jsp语法

Tuesday, December 26, 2006

Java Web 日记....

12月23日:小心翼翼地按照网上地指点,配置并运行之,写出了一个最简的“hello TomCat”。没有感到什么难度,比起以前的JDBC连数据库简单多了,servlet的概念也不难理解,一个中间层的业务逻辑容器。

尽管如此,仍有一次次芒刺在背的感觉,目前为止,还不知道xml可以有多深,TomCat的能力和Eclipse面对 JSP、servlet、XML和Class综合考验的下的潜力如何,也不知道。但最感压力的,是再部署过程中,架构概念开始萌芽了,相比以前的轻量级编程,现在的感觉就像前面会有一座大山。真是摸着石头过河,不胜惶恐,不胜惶恐,谨慎谨慎,保持谨慎。

Well,某神的生日,我恐怕要和Eclipse一起过了。

教训一:要配置web.xml并重启服务器才能运行servlet,不重启就运行的方法......明天再识破.

12.25:这样的提示每次看了就烦:



INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path brbrbrrrrr...

于是回头又安装了一边TomCat6.0,把上次没有装上的native java library (听起来像是本地类库?)给装上,并copy到了jre/bin,在重启TomCat服务器果然OK了.上网看了看,ms这个小问题对Linux的新手比较困扰.咳,在Windows XP里用TomCat,该被鄙视的是我吧.

anyway,我现在最想知道的是如何修改文件而不重启服务器.修改不用重启的jsp肯定是一个;Eclipse下java及其编译出class也不用重启.也就是说,servlet只要在tomcat manager里reload一下就好了,烦的是配置文件:server.xml、web.xml还有.tld.OK,现在来做个试验.

我先写了个java,然后在一个新建的jsp中生成它的实例并调用它的方法.在浏览器中访问该jsp网页,提示信息:"HTTP Status 500-",看来这个java还没有编译成类,所以jsp调用时出了错.而在Eclipse里重新生成项目也是毫无效果.于是尝试TomCat的HttpManager,reload了该项目.控制台显示信息如下:

2006-12-25 22:46:39 org.apache.catalina.core.ApplicationContext log

信息: HTMLManager: restart: Reloading web application at '/HelloTomCat'

2006-12-25 22:46:39 org.apache.catalina.core.StandardContext reload

信息: Reloading this Context has started

计数器Servlet已释放资源

2006-12-25 22:46:40 org.apache.catalina.core.ApplicationContext log

信息: HTMLManager: list: Listing contexts for virtual host 'localhost'
虽然在classes文件夹中已经看到了编译出来的类,但是刷新jsp页面,依然时错误.再仔细检查jsp语法,原来没有import类。。。。。。。我真是废柴。于是在src下建了一个包mypackage,放入java,Eclipse自动生成了class。又试着访问这个新的jsp页面,成功了!看来javabean也不必重启来生成。

现在再来看看servlet和web.xml。在包mypackage里写了一个servlet,然后在web.xml添加它,在控制台可以看到,TomCat有一个listener监听配置文件的修改,并重载context.又费了一番功夫(我总是拼写错误,天啊~~),运行,OK,不用重启.好吧,那就玩大一点,我把刚才建立的servlet删除,虽然浏览器里还可以访问(这是必然的吧,已经贮存在内存中了),但reload项目后就不行了.删除掉web.xml与之相关的节点,重启服务器,再新建servlet,写入web.xml.最后浏览器中访问,OK!一切正常.

结论:在TomCat6.x中,jsp、class、servlet、web.xml(估计还有server.xml)可以动态修改,无需重启服务器甚至不必重载项目.口可口可,我总算赶上了好时代.

好吧,我收回关于server.xml可以动态修改这句话.目前来看,动态修改只限于具体的web应用程序上

Sunday, December 17, 2006

firefox在处理setInterval()、clearInterval()上与IE不一样吗?

在常去的firefox中文论坛上又看到了小白发问了:window.clearInterval(obj)为何不能停止循环计时呢?

随手测试了一下,确实不行,IE就不用问了,肯定是行的.反复调试和查阅后,可以发现,firefox对如何kill loop似乎另有看法.

<script type="text/javascript">
var intervalId;
var count=0;
function setUpInterval(){
intervalId=setInterval("showalert()",1000);
}
function showalert(){
count++;
document.getElementById("dispCount").value=parseInt(count);
}

function tran(){
clearInterval(intervalId);
}
</script>
<input name="btn1" type="button" id="btn1" value="开始循环" onclick="setUpInterval()" />
<input name="btn2" type="button" id="btn2" value="结束循环" onclick="tran()" />

按下“开始循环”按钮,执行上面的代码,循环不会终止.为了寻求答案.去MDC查看gecko的DOM文档,发现clearInterval()并没有什么特殊的值得注意的地方(想来也是,不就一个最基础的方法么?).于是仔细查看自己的代码,发觉在触发js事件的代码周围有一个

so,谜底揭晓了,答案就是这么简单:因为在某些位置的代码不规范,导致Firefox无法正确执行其它代码;而IE由于容错性高而爱怎么来就怎么来.第二个结论是:微软真阴险.

Thursday, December 14, 2006

我又博上了。。。

我终于还是回头博客了,俗话说“浪子回头“。但如果是回头作恶呢?我终于还是低估了自己的无聊。然而出师不利,再犹犹豫豫和欲拒还迎之间,偶的卡全输光了。更糟糕的是,由于操作的失误以及hoopchina管理层的恶心,马甲的账户被封了,唯一剩下的百八十卡也被银行冻结。这次可真是白手起家了。无奈,只好先写了个自动更新的脚本安在greasemonkey身上,刷一刷在线时间骗点卡了。我的天啊啊啊啊。无语了,接着奋斗吧。

Sunday, December 10, 2006

何处可寻Idaho?

已经很久没有体验这样的缓慢、忧伤,当我被现在的生活裹挟了快整整半年。半年长吗?不够我寻找Idaho;半年短吗?我已经遗忘了这份沉静的忧伤;半年快吗?这无味的人生还在继续;半年慢吗?鲜活的记忆以超乎估计的速度逐渐湮灭,即使我从不曾期待诸如“永远、一辈子“这样的宏大叙事。

无论我如何毫无压力的嘲笑Keanu Reeves——这个年过不惑的男人,他那片被指认为“呆”的眼神在1991可以显得如此清澈,映照着火堆旁蜷缩成一团的瘦弱男孩的无力的身影。那一刻,爱的前缀词是卑微、禁忌,Scott终究没有翻越自己心中的那座断背山,而Mike在登顶后坠落。从此,渐行渐远;从此,咫尺天涯。

Mike抽搐,失溺于黄色的回忆:空旷的荒草与原野,一个木屋,有时是黄的,有时是白的,门前走廊上的微笑的母亲,怀中的婴孩直愣愣看着自己。我忽然想起我有一阵子我爱上了回忆,以为自己真的心境老了,像狗屁的网上测试描述的那样,心理年龄是实际数字的两到三倍。现在看看,无非是对现状的不满,因此产生了与将来的人老后对当下岁月的流逝毫无珍惜的同等反应。

Mike追寻着最后的温暖,然后倒在了Idaho。而我,还要继续前行,借那辆状况不稳的小黄摩托——Norton Commando 750cc——来追寻我的温暖,我的Idaho。耳边的风传来他凄婉的笑和亦幻亦真的呓语...

"This road will never end.It probably goes all around the world."

Thursday, December 07, 2006

编写Adblock Plus 过滤器

本文翻译自Adblock Plus0.7.2.2的帮助文档《Adblock Plus:Writing Adblock Plus filters》,原文链接:Adblock Plus: Writing Adblock Plus filters.
将大家喜闻乐见的过滤规则(filter)翻译为过滤器,因为"过滤规则"这个词让位于"filter rules"了.
Creative Commons,诸君自便.
------Jacky-Q

目录

Writing Adblock Plus filters

当前版本的Adblock Plus允许你用许多不同的方法"优化"你创建的过滤器.本篇文档阐述 了你所能拥有的选择以及使用之道.
免责声明:本篇文档所提供的过滤器范例仅供参考,非用于直接使用.

Adblock Plus过滤器简介(Introduction to Adblock Plus filters)

本章节所描述的功能理应足够满足仅仅是偶尔创建些过滤器的用户的需求.

基本过滤规则(Basic filter rules)

你所能定义的最常见的过滤器当然就是你想要干掉的那些横 幅广告的地址.不过,它们常常是变动的.比如这样一个例子 http://domain.com/ads/banner123.gif ,123就是个随机数.直接干掉这个地址无甚大用处,你需要一个更通用的过滤器 ----比如 http://domian.com/ads/banner*.gif 或者可能甚至是 http://domain.com/ads/* .
小贴士:注意不要替换出太多的通配符.过滤器 http://domain.com/* 绝对会干掉所有的横幅广告但同时也会干掉domain.com上 剩下的你想浏览的瓜瓜枣枣.

定义白名单(Defining exception rules)

有时你会发现有某条过滤器把一些本不应被干掉的东西也干净利落地阻挡掉了,你不想移除这条过滤器但是也不想那些东西被“光荣匹配”。 这时便显出了白名单的好处来——它可以定义一些可以在过滤器下幸存的东西。比如你对过滤器 advhttp://domain.com/advice.html 过滤掉很不爽,你 就可以定义一个白名单规则@@advice .白名单规则和过滤规则并无不同,你可以使用通配符或正则表达式,只不过还必须在每条白名单前面加上@@来声明它是个百名单罢了. 白名单还有其他用处.如果一条白名单规则以 http://https:// 开头(可以在之前加个竖线),那么它可以让该地址下的所有页面处于白名单保护之中.例如: 如果你给个白名单规则 @@|http: //domain.com ,然后打开一些domain.com的页面——Adblock Plus将对这些页面无能为力,没有什么会被阻挡掉.

注释(Comments)

任何以惊叹号开头的规则都会被标识为一条注释,并在过滤器列表中以灰色显示。Adblock Plus会忽略这条规则而不是真的试图按图索骥,所以在这里写下任何你想说的话是安全的。你可以在某条过滤器上面添加这样地注释来描述这条过滤器到底在干什么。或者你可以在你的过滤器顶部放上注释来表明原创作者(正如大部分过滤器 列表写手做的那样)。

高级功能(Advanced features)

本章节所讲述的功能通常给强悍的用户和过滤器列表写手使用。爱看不爱。

匹配地址头/尾部(Matching at beginning/end of an address)

Adblock Plus通常会默认所有过滤器的头部和尾部都有个通配符,像 过滤器 ad 和*ad* 就无甚区别.虽说基本上这不会造成问题,不过你有时难免希望能够让定义的某些过滤器只匹配地址的头部或尾部.例如你也许其实是想干掉所有的 flash ,但是如果添加的过滤 器是swf,那么这个地址:http://domain.com/swf/index.html 将会玉石俱焚. 这个问题的解决方案是:给过滤器加个竖条符来告诉Adblock Plus到地址的尾部去开展工作.例如过滤器 swf| 将会干掉 http://domain.com/annoyingflash.swf 而不是http://domain.com/swf/index.html .而过滤器 |http://baddomain.com/ 将会干掉http://baddomain.com/banner.gif 而不是 http://gooddomian.com/analyze?http://badomain.com .

指定过滤项(Specifying filter options)

Adblock Plus允许你指定一揽子选项来修正过滤器的行为.做法是在过滤器尾部加上一个美元符,然后紧接着列出过滤项,并以逗号相隔.示例如下: */ads/*$script,match-case 这里 */ads/* 是真正的过滤器,script和match-case是它的过滤项.目前Adblock Plus的选项有:
  • 类型选项(Type options):决定过滤器可以过滤的网页元素类型(若是白名单则是非过滤元素类型).可以指定多个类型选项来通知过滤器对哪些元素类型下手.支持的类型包括:
    • script(脚本)——经由HTML的script标签对载入 的外部脚本.
    • image(图像)——一般图像,特别是由img标签载入的图 像.
    • background(背景)——背景图片,通常由CSS指定。
    • stylesheet(样式表)——外部层叠样式表文件.
    • object(对象)——由浏览器插件处理的内容.像Flash或Java
    • 链接 (link)——图像链接(需要启用"检查横幅链接"(check banner links)功能)
    • subdocument(子文档)——嵌套的页面,通常由框架载入.
    • document(文档)——页面本身(当且仅当白名单将之划 入保护范围)
    • other(其他)
  • 反类型选项 (Inverse type options):指定过滤器不会下手的网页元素类型。支持的类型包括: ~script,~image,~background,~stylesheet, ~object,~link,~subdocument,~document,~other
  • match-case——让过滤器只对匹配大小写的地址下手,例如过滤器 */BannerAd.gif$match-case 将会干掉 http://server.com/BannerAd.gif 而让http: //server.com/bannerad.gif 幸免于难.

使用正则表达式(Using regular expressions)

如果你想让过滤器匹配更多过滤策略但偏偏它却力有不逮, 你可以使用正则表达式.比如过滤器 /banner\d+/ 将会匹配 banner123baner321 而不是 banners,你可以查阅documentation on regular expressions来学习如何编写正则表达式。
小贴士:别指望用正则表达式来提高过滤器列表的工作效率.你可能经常听到那些建议但它是过时的——从Adblock Plus 0.7开始,基本过滤规则的工作效率已经超过了正则表达 式.

隐藏元素:基本规则(Element hiding: basic rules)

有时你会发现广告竟然干不掉,因为它们嵌入到了作为网页本体的文本当中去了.如果你查看网页的源代码你会发现像这样的玩意儿:
<div class="textad">
Cheapest tofu, only here and now!
</div>
<div id="sponsorad">
Really cheap tofu, click here!
</div>
<textad>
Only here you get the best tofu!
</textad>

你需要下载页面因此你也不得不下载了这些广告.此时你能做的就是隐藏这些广告,这样你就眼不见心不烦,这便是隐藏元素的意义所在. 上述的第一条广告被包含在一个类选择器(class)的属性值为"textad"的div元素里,以下的规则将准确隐藏掉这群乌合之众: #div(textad) .你也可以用同样的办法以它们的id属性隐藏之, #div(sponsorad) 将会隐藏第二条广告.你不需要指定元素名称, 规则 #*(sponsorad) 同样运转良好.你甚至仅凭元素名就隐藏掉元素.比如第三条广告就可以用上 #textad . 那么,如何知道该往元素隐藏规则里放点什么呢?你有两个选择:要么一头扎进网页源代码尝试找到广告在那里,要么使用 DOM Inspector(FFer 可以在安装FF时选择自定义安装并 勾选"Development Tools"来装上该扩展).不管哪条路,HTML的基础知识是 必不可少的.
小贴士:隐藏元素的规则和一般的过滤器非常不同.别说我没告诉你,它不支持通配符、过 滤次数统计以及白名单.

隐藏元素:特定域限定(Element hiding: limiting rules to certain domains)

通常你想要隐藏一个指定站点的指定广告,你不想规则匹配到别的站点上去.比如规则 #*(sponsor) 它将会隐藏到一些站点的无辜代码.不过如果你把它写成 domain.com#(sponsor) 它将会被应用到 http://domain.com http://something.domain.com/ 而不是 http: //otherdomain.com/ .你可以指定多个域——只要用逗号把域分隔开就好: domain1.com,domain2.com,domain3.com#*(sponsor) . 小贴士:由于隐藏元素的实现方式,你真的只能写出域的全称来加以限制.你不能仅使用 地址的一部分或是使用 domain 来替代 domain.com,domain.co.uk .
小贴士:带域限制的隐藏元素规则可以用来隐藏浏览器的用户界面元素.例如过滤规则 browser#menuitem(javascriptConsole) 将会隐藏FF的工具菜单中的错误控制台项。

隐藏元素:属性选择器(Element hiding: attribute selectors)

某些广告对 你而言还真不是吃素的——它们的文字广告既没有id也没有class属性。不过你可以使用 其他属性来隐藏之,比如 #table(width=80%) 将会隐藏width的值设为80%的表 格.如果你不想指明属性值的全部, #div(title*=adv) 将会隐藏所有的title属 性值中含有"adv"字符串的div元素.你也可以检索一个属性的头部或尾部,比如 #div (title^=adv)(title$=ert) 将会隐藏所有的title属性值中以"adv"起头"ert"结尾 的div元素.如你所见,你 还可以使用多属性的过滤策略—— table(width=80%) (bgcolor=white) 会匹配width值为80%bgcolor值为 white的表格.

隐藏元素:使用贫民CSS(Element hiding: using raw CSS)

如果连元素选择器也无计可施,试试 让CSS选择器大展身手.例如以下规则将隐藏所有"adbeader"类的div元素: ##div.adheader+* .两个井字符表明该隐藏元素规则应当被解释为一个 CSS选择器(this particular one is a adjacent sibling selector) 小贴士:此功能仅适用于高级用户,你应当对CSS选择器得心应手才好使用它.Adblock Plus无法对你添加的选择器做语法检查,如果你使用了非法的CSS语法可能导致其他的合 法规则感到郁闷.可以在错误控制台查看CSS错误.

兼容性提示(Adblock以及其他不同的Adblock Plus 版本) (Compatibility notes)

本文档描述了ADblock Plus0.7的各种用法.不过,如果你想 搞腾出自己的过滤器列表并将之共享出来,你可能需要考虑下其他的Adblock Plus版本或 者Adblock.以下是各版本间不同之处的简短总结:
  • 匹配地址的头部/尾部:仅被Adblock Plus 0.6.1.2及更高版本支持.
  • 白名单:在Adblock 0.5和Adblock Plus 0.5前缀为"@@"的白名单仅支 持处理单个目标,不支持多页面,多页面的白名单处理方式是不一样的.注意第一个支持白 名单的Adblock版本是0.5.3.40.
  • 注释:Adblock0.5和Adblock Plus 0.7将会把注释解释为真实的过滤规则.不过这一般不会阻止过滤器写手的使用,注释发生误杀的几率是极其低的.
  • 过滤项:仅被Adblock Plus 0.7.1及更高版本 支持.
  • 隐藏元素:在Adblock Plus0.6.1版本中得到推介,但仅支持基本的 规则.属性选择器,贫民CSS和域限制出现在Adblock Plus 0.7版本中.Adblock Plus 0.5有个"DIV过滤(DIV blocking)"功能可以实现相似功能.虽然语法(有意的)相似,但 实现方式是完全不同的.因此将DIV过滤规则转化成隐藏元素规则或是反过来,都是 前 路曲折的.

译者注:
⑴:本文以斜体表示。
⑵:事实上最好的方式就是FF的"查看选中源代码”,定位迅速准确可视范围大.DOM Inspector的处理效率与页面层次成正比.
⑶what the hell is this?lol

Sunday, December 03, 2006

XML学习笔记

粗浅认识,冒死推出....虽然writely 的blogpost开始支持beta.blogger.com的模板,但是在一些格式上还有冲突,无法顺利迁移,比如本文...........所以,还是贴链接吧.
xml学习笔记(一)
xml学习笔记(二)
xml学习笔记(三)

维京战记

我们可爱的祖国有许多操蛋的俗谚名言,虽然比人一直抱着批判吸收的精神,但其实总是批判-吸收-批判的总基调。但现在有句名言,让我有了更深的体会:终日打雁,反被雁啄瞎了眼


诚哉斯言。


前日从学校机房拷贝了一些项目资料,拷回自家机子上后就出了问题。后台出了不知名的进程,桌面的部分图标变得不清晰。心中嗝噔一下:中毒了!随即联想起在学校时听到的好友L的血泪控诉,讲述自己是如何倍受病毒的摧残。木有想到“秦人不暇自哀,而后人哀之;后人哀之而不鉴之,亦使后人复哀后人也”。故事总是老套的,只不过这次主角成了我……


然则我还是低估了自己的实力和病毒的危害力.这个叫做"viking"的病毒,绑架了explorer,修改了注册表,偷换了.exe文件关联,甚至堂而皇之的直接在注册表里自称"Trojan Program".我冷笑着,按照搜到的清除方法逐一操作,心中升起"识破了"的快感.重启,坏了!.exe文件都打不开,这才明白之前全是幻觉.然后是接着两天的梦魇,我使尽了手段,才在无意中发现是网上的错误转载误导了我-_-#.在一切尘埃落定之后,得到的经验如下:


  1. 学会了如何在linux下挂在光盘镜像.
  2. 学会了如何硬盘安装windows XP系统.
  3. 学会了如何在控制台下更改文件关联.
  4. 认识了增删改查window服务的命令,提高了效率.
  5. 提高了浏览修改注册表的能力.
  6. 对windows开机启动的流程有了更深的认识.
  7. 提高了对网络提供的solution的警惕性.

哦!谢谢你,viking.但是我不会再给你机会了,再见~~

居然又能上了.....

最近感觉某组织对goole的封禁愈加严厉了.常常第一次查询时就连不上,还不用等google所引出违禁内容来.更匪夷所思的是,连tor都不管用了.这次的解禁,其实和上次wiki的解禁是一个意思吧?一紧一松,把人折腾得够呛,最后还是关上大门,总之就是逗你玩....


感觉自己最近又进入到了一个低潮期,虽然失眠和迟到的问题得到了遏制,但是上进心开始有点不足,想着某某游戏ms很好玩,某某日剧真是非看不可.之前做的学习计划拉下老长一段.虽然告诉自己,骄奢淫逸必将亡国,但是无可奈何地变懒了.


so,继续保持郁闷.

Sunday, November 26, 2006

萌宣言

There is a plan to make all of this right.

Michael Scofield


然则太阳底下无新事,活在当下的幸运或者幸福,在于只要有钱,便能享受许多在以往不可想象的服务、产品;相对的,活在当下的悲哀在于你的所思所想所感所为,似乎都有人做过了。文明社会几千年,地球人口几十亿,你欢笑着别人的欢笑,悲伤着别人的悲伤,郁闷着别人的郁闷,兴奋着别人的兴奋,就这样不咸不淡地过着自己的“二手人生”。


当然不是要散布什么“历史的终结”。谁也没说复制是没有意义的。虽说非自己原创,但既然这一份拷贝已经属于自己的,便值得弥足珍贵吧。


然则我依然必是这样的想法,因为我还年轻,我渴望功成名就,做些什么有原创精神的事情,而不是简单复刻别人的人生。也就是说,像我这样的依然带着些理想主义的人,常常会有这样的信念:就算失败了,跌倒的姿势也要帅气得如此与众不同,这便是年轻没有失败的乐观主义冒险精神。


由此出发,很可以分辨出来谁是伪正太。那么,便让那些童颜巨乳的水货见鬼去吧。
以上,正太的萌宣言。


Saturday, November 04, 2006

Death Note――像中学生一样杀人

照例在开始先说几句废话,鄙人一向追看美剧日剧动漫小说,都是按捺着等作品出
到中途,让别人充分试错再跟进的。所以请尽量不要指责我的火星。。。。毕竟是
十月新番,不能算太��不是?

《死亡笔记》所展示的世界观、是非观云云,其实真的是十分幼稚。即使是掌握所有
人的生杀大权并且自身拥有的资源丰富得多的历代君王,也没有创造出一个太平世
界来,更何况是一个资讯全为媒体垄断的中学生呢?绝对的权力导致绝对的腐败等
等道理,那是也不必多说的了。反正当初写出来不就是给中学生看的么?


然则《死亡笔记》走上了日本漫画的经典成功模式(漫画→动画→电影→电视剧――虽然
目前没有,但也是指日可待的吧?),不是没有道理嘀。一是设定上的新意,拿个
本子涂涂抹抹杀杀人确实很high,对杀人规则的拓展演绎也相当令人着迷;二是将
KIRA和L的斗争写出彩了。没有出现龙套弱智化、主脚无敌化的情况,而是由令人
信服的逻辑推演,来展现有勇有谋的正太杀人魔和影子名侦探的高大形象,这在第
四话"谋略"中达到了小高潮。


目下《死亡笔记》在BT上已经发布了五集,有继续升温的趋势,童子们,便煎熬着等
待吧。

Sunday, October 15, 2006

闲来无事,发个Nokia的自编铃声

Nokia自编铃声之----《千里之外》


简谱是在这 个网站找的,感觉抓的谱还是比较准的。我这里发的是简化的模拟人声的版本。


================
8g1 4d2 8d2 4d2
 4.e2 4d2 8c2 4g1
 4.a1 4c2 8c2
 4c2 4.d2 1e2 4d2
 8d2 4d2 4.e2
 4d2 8c2 4g1 4.a1
 4c2 8c2 4c2 4.e2 
4e2 2d2 4g1
 4d2 8d2 4d2 4.e2
 4d2 8c2 4g1
 4.a1 4c2 8c2 8c2
 4d2 2e2 4d2
 8d2 4.d2 4c2 4d2
 8d2 4.d2 4c2
================

以上即是Nokia格式的手机铃声。。。不知道怎么编铃声的,请放狗搜查;非Nokia手机的,请自己转换格式;手机没有自编铃声功能 的,去找个老款手机吧。

;

Thursday, October 12, 2006

随手写写

这几天一直忙着做学期末的项目设计,这才发现并深深体会到自己在许多方面的不足。作为项目负责人,对组员的工作状态不甚了解,缺乏沟通;缺少对项目的认识,在设计阶段花费太多的时间;缺少对某些巩固能实现的难度评估,又拖延了进度;最要命的是,好像我没有想象得那么强,也没有想象的情绪热烈,简单的说就是眼高手低。

批判完了,现在总结经验教训三条:
1.不要熬夜,睡太晚影响第二天整天的情绪和灵感,还要占用上午的时间来睡觉,而且白天和晚上的coding状态没有想象的差距那么大,总的说来,非正常的作息其实得不偿失。
2.坚持每天都有新的代码写出,新的功能实现.控制网络小说的阅读量与阅读欲望,back to python!
3.加强与组员的沟通,激励他们与我探讨问题.

晤,这个项目写到后期的时候,一定要写一篇文档,总结这项目实战的体验.

说完了,然后.......结束这该死的beta期吧.

Sunday, October 08, 2006

好玩的博客--(一)

常常上网的人,难免会陷入无聊之中。唔,推荐几个博客,权作无聊时的消遣。

薛涌:华裔美国学者,对中美教育常有独到深刻见解,语言平实,脉络清晰.
缺点:老是叫卖自己的著作,不免令人反感.
更新速度:★★★★★
娱乐性:★★☆
文字水准:★★★☆

宋祖德:娱乐圈人士,好语出惊人,以揭露娱乐圈亦幻亦真的内幕为乐.
缺点:在首页贴自己好大一张极具喜剧效果的玉照,令拥有平庸审美观的读者胃部不适.
更新速度:★★★
娱乐性:★★★★★
文字水准:★★★

韩寒:少年作家?赛车手?歌手?其实韩寒波澜壮阔的博客生涯最常见的面目是"骂将",而且是段位极高的那种.
缺点:如果不开骂,便显平淡,无甚出奇.
更新速度:★★★
娱乐性:★★★★
文字水准:★★★☆

老罗:被写进wiki的中国自由主义者,著名傻逼老愤青.
缺点:对写博客不是很上心,常常随随便便一个链接了事.无法评论.
更新速度:★★★
娱乐性:★★★☆
文字水准:★★★☆

方舟子:打假专业户,并不可思议的以前是个诗人.持之以恒地打假到了别人审美疲劳的地步.
缺点:十分较真,令读者无法保持轻松闲适的看客情怀.
更新速度:★★★★
娱乐性:★★★☆
文字水准:★★★★

未完待续。。XD

警惕文本的力量

事情渐渐变得糟糕起来,我想我得了阅读强迫症。


当然,如果是阅读唐诗宋词,中外名著,这样的强迫症还算甜蜜和幸运,但事实是,我每天不由自主地阅读所有可见的文本。从大街上的广告,到网络上的小说,几乎统统不落下。要吃饭了,不能不看点什么吧?坐公车了,来份报纸吧。走路?太无聊,拿本杂志来。如果是古时,这样的习惯或许可以成为美德,但是在海量信息如喷薄之大潮的今天,这会是一场悲剧或灾难。我是如此的热衷于阅读文本,最初是因为认为日间的积累都是灵感的来源,所以要抓紧一切机会来充实自己。今年秋季的日剧《supplement》里就有这样的场景,广告设计者在一张白纸上不停的写着任意的词语,以求突然蹦出的绝妙广告语。但是现在愈演愈烈了,一天下来竟找不到喘口气的出口,直到要睡觉了躺倒在床上,稍稍解脱的大脑思如泉涌,塞满整个脑袋,让我一夜无眠。


我认为,文本有一种魔力。阅读的人,会陷入它的秩序,将自己的思维模式耦合其中,不可自拔。这样一种模糊的表述当然不令人满意,或许我现在概念还不清,或许我表达能力有限,anyway,我确确实实感受到了它的力量。为什么是文本而不是文字或者文章?文字,作为一个个体符号的存在,其实和图形带给人的信息是一致的,即它传递了某种信息,但是还不足够营造秩序的氛围。文章者,必须拥有完整的结构,对于营造秩序氛围来说,又有点牛刀杀小鸡。是的,准确来说,就是文本,一段文字,就足够达到效果。这种秩序带给人一种安全感,无需立会身外的世界,无需计较消逝的时间。那一刻,只有你和你的文本沟通交流,在某种意义上的宁静与纯粹。


从今天开始,摆脱这种状态!首先,拒绝不良、垃圾信息;警惕无意识状态下的文本阅读;吃饭、上厕所、走路、搭车停止随意的文本阅读;…………总之,提高自己的专注力,给自己留下沉思的空间。

Friday, October 06, 2006

第一个或第二十三个生日

10月5日,我的生日.


出生在这个日子,对于我,居然显得有点不幸。to believe or not to,这是我第一次拥有属于自己的生日蛋糕,在我第一个脱离学生生涯的生日里。换言之,过去的二十二年,虽不能称为暗无天日,但平淡无味确实是千真万确的了。幼儿园与小学时,家里穷,更没有过生日的理念,生日蛋糕都是从电视里见到的。到了中学,成为寄宿生,一到生日同学们就回去过国庆节了,更没有人陪我,到了大学,好吧,连我自己都快忘了自己的生日。


虽说物以稀为贵,但我其实是不在意自己有没有过上生日的。于我看来,多长一岁并不是值得称道的成就,所以庆祝生日的举动也完全是可有可无的。身为以自我为中心的80一代,不知道这样的想法算不算特立独行。然而现实生活中还有这样那样的烦恼要面对、事情要处理、不爽要反驳,还要为实现自己的理想而奋斗,所谓生日,便得过且过吧。唔,不是我没有情趣,只是欢欢喜喜的庆祝生日的场景从未成为我期待的画面之一。


22岁,我现在怎样?我将来怎样?我想要怎样?


22岁,sign~~~~

make some change for sure

pls call me idiot。。。。