博文

最近迷上了平泽进

一句话可以概括他:“跟他比前卫,你就败了啊” 在《Quit》里面狂笑了整整一分钟,在《白虎野の娘》里面无比诡异的和声,各种元素都可以体现在他的音乐中。听他的音乐感觉就像是看着不断的跃出创意的火花,总可以让人眼前一亮的感觉。 当然了,提到他基本上都会提到三大最有名的了 《剑风传奇》里面的《Forces》、《千年女优》里面的《Lotus-2》、《Paprika》里面的《白虎野の娘》,不过其实CD也有很多可圈可点的 比如我一直都很喜欢《千年女优》里面的《千代子のテーマ MODE-3》那种丝丝入扣的钢琴音,与整张CD的紧凑形成了强烈的对比,和同一张CD里面的《千代子のテーマ MODE-2》少了很多和声,给人的感觉就极大的不同了。 当然了,如果不介意前卫,可以听《聖馬蹄形惑星の大詐欺師》之类的囧歌…… 转一下歌词: BERSERK ~Forces~ 作詞:平沢進/作曲:平沢進 編曲:平沢進/歌:平沢進 時は雲をつくような波をたて襲うよ 消されて夜道を這う声たちに答えて 時代彷如要衝破雲層一般 捲起浪濤襲擊而來 回應著所有被消除而匍匐於夜路的聲音 忘れはしない キミのことは かなわぬ道に なおひとり立ち 不會忘記 你的事情 即使是無法實現的道路 仍然一人獨立 撃たれた鳥のような 優雅さで雨に耐え 宛如被攻擊的鳥兒 優雅地承受風雨 癒えない地上の血に洗われて眠る 星よ壮絶に 物語れ この夜を 受那無法痊癒的大地之血洗滌而眠 星辰啊 以壯烈之勢 訴說此夜 忘れはしない キミのことは 凍えて夜を ただひとり生き 不會忘記 你的事情 在嚴寒夜晚 獨自生存 消えない声よ今 蘇れ力へと 不消逝的聲音啊此刻 向那復甦的力量呼喊 Hai Yai Forces Hai Yai Forces Hai Yai Forces Hai Yai Forces 聞けよ 風さえ泣き そびえ立つ影の塔 撃たれて夜道を這うキミに灯をともせよ 聽啊 連風都不禁哭泣 那聳立的影之塔 為受攻擊而匍匐於夜路的妳 點亮燈火 忘れはしない キミのことは かなわぬ道に なおひとり立ち 不會忘記 你的事情 即使是無法實現的道路 仍然一人獨立 行けよしょうぜつの 影よ来て導け 走吧那險峻的 身影啊...

我还是从了MySQL的客户端好了...

之前一直在用PHP手写代码来操作数据库,虽然也算是能够用,但是总感觉很不是那么回事,万一写错了我就泪流满面了…… 之前也用过一款MySQL的客户端,也就是上传一个PHP文件,然后就可以通过那个类似探针一样的PHP文件来处理SQL请求,比PHPMyAdmin这样的重量级的需要在VPS上上传很久的家伙友好多了。 可惜已过去这么久了,我连那款软件的名字都忘了,现在还是重新找了…… 于是就找到了 Navicat……虽然本身是收费软件,但是Navicat Lite版是免费的,我也用不到那么多的功能,它给我一个SQL窗口我就很满足了,把PHP探针传上去,然后改个诡异的名字,配置好MySQL的用户名和密码就可以使用了相当的方便。另外发现这个软件居然还支持Oracle和SQLite之类的,真是不错~

利用客户端缓存优化服务器带宽

最近看了《构建高性能WEB站点》,非常有启发。于是立即着手开始改进Share站。 当然了,里面对现在的我来说最实用的的就是如何让动态脚本利用客户端缓冲的部分了(原书第6章内容),现在主要的改进方案也是依据与此章的内容。 首先先说下Share.popgo.org 站现在的缓冲策略: Share站主要采用的是XML+XSLT缓冲,其中XSLT为静态文件,由Nginx服务器端设置了Cache-Control:Max-age缓冲,缓冲时间为284400秒,相当长的时间了。 然后XML文件是服务器端通过静态文件缓冲,然后由PHP程序调用生成的,其缓冲策略为: 如果有客户提交新的种子或者编辑现有的种子,那么立即刷新缓冲; 如果在设定的时间段内没有刷新过缓冲,那么强制刷新,刷新的时间可以在后台指定。 刷新的时间判断由PHP来读取文件的最后修改时间来实现。 虽然XML是静态文件在服务器上,但是每次调用的是PHP,Nginx服务器把它认为是动态脚本,是不允许客户端进行缓冲的。现在我需要调整的就是让客户端也可以动态的缓冲这个XML文件,不用我每次都去读取和判断这个XML文件。最好是能够在我加载处理缓冲这几个类文件之前就做这个操作,也节约很多PHP程序处理的时间。 改起来就相当的简单了,首先先在所有的输出的地方加上: header("Last-Modified: ".gmdate ("D, d M Y H:i:s", time())." GMT"); 然后在开头的地方加上 $modified_time = $_SERVER['HTTP_IF_MODIFIED_SINCE']; if(strtotime($modified_time) && strtotime($modified_time) > time() - $getnewindex )//如果没有过期 { header("HTTP/1.1 304 Not Modified"); exit; } 就应该可以了……然后我满怀希望的打开FF+Firebug。结果发现在网络窗口中,依然每次返回的都是200而不是预想中的304…… 到底出了什么问题? ...

该死的武汉电信居然给我搞劫持

我是说最近怎么访问Share站的时候都会弹出很诡异的武汉新闻什么的广告... 心想:就算是hiei加广告也不至于加这么恶俗的广告吧...然后拿Firebug看了一下,地址来源于www.sosole.net:3437这个诡异的地址,然后后面带着参数desturl=http://share.popgo.org/,所以我也就没有太介意,毕竟后面似乎带着本站的参数,可能真的是加的广告吧... 不过那个广告非常怪异,并不是用JS的Document.write生成的,而是用的一个iFrame...这种土鳖的广告嵌入方式实在是很长时间都没见过了...囧rz 于是今天还是忍不住看了一下Share站里面XSLT的代码...结果竟然明明没有加入这个站点的任何广告.... 那么它是从哪里来的啊?orz 上网搜索一下,结果发现天涯上有人反映这是武汉电信的恶意弹窗...估计是Share站本身被伤了黑名单吧,毕竟我访问其他站点都不会有这样的情况,就Share站会被挂上广告...而且奇怪的是只有Chrome会被挂上这样的广告(我还装了Adblock插件的)....看来还需要再摸索一下...

果然视图的效率永远是跟不上表的啊

工作上的原因开始接触Oracle了...虽然Oracle在几年前就玩过了,但是基本上都是最基本得操作了,简单的存储过程,简单的触发器..... 现在到了新的公司,碰到了诡异的问题是一个针对地区的统计问题. 一个省下面有许多的市,需要统计这些市出现的次数,以及外省的数字. 本来这个是一个非常容易搞定的问题,但是现在却碰到了麻烦,那就是这个地址字段里面存放的并不是地区的代码而是地区的文本....orz 于是现在如果想要统计这种要么通过不断的LIKE来做Count(ID),然后UNION ALL形成最终结果了...但是仅仅面对20万左右的数据量,这条语句的执行时间居然长达3分钟以上. 然后想了一个办法,首先将所有符合条件的数据全部用视图的方式UNION ALL起来,添加一个虚拟的地区代码字段,然后再对这个视图做Group BY操作. 可惜,就算是这样做了,也仅仅只是把时间提升到了2分钟10秒左右. 没办法,只有想办法改动表结构了...我是一直不怎么想改动这个表结构的,因为不是我设计的,而且本身设计的很糟糕... 程序也是刚刚接手,都没办法整理,所以如果变动了表结构,就一定要通过触发器来解决后续的问题了... 不过抱着尝试的心态,添加了一个字段,然后简单的用LIKE来更新这个字段. 然后再用Group By来生成报表.这时惊人的效率提升终于出现了..只用了5秒. 但是只有20万的数据量的话,用5秒似乎也显得太多了一点 ,估计是没有使用到索引... 于是添加索引,以Where语句的字段和Group By后面的字段添加联合索引.再做测试... 速度终于提升到0.15秒左右了...正常范围内了(虽然赶不上MySQL的效率了,当然,这也是必然的)... 接下来就是触发器了...以前只是写过一个自增ID字段的触发器而已,而且还是网上直接抄下来的... 不过现在这个触发器也很简单就是了...所需要实现的就是在Insert字段的时候根据既有的字段中的某一个值(所在地区)得取值来确定我添加的那个字段的取值.并且将更新了的数据插入进去就可以了. 但是不得不说,我根本就忘了触发器怎么写了....orz 不过最后还是搞定了就是了...之前忘掉了使用for each row,导致一直都报告ORA-04082错误,添加那个字段后终于搞定...

SlikSVN安装小记

之前的个人项目开发因为总是觉得项目量并不是很大,所以很大程度上无视了版本控制的存在。 毕竟就我一个人,怎么改都无所谓的。 但是在开发过程中还是出现了项目文件丢失、想要恢复到之前的版本却找不到备份等种种问题。 看来就算是一个人单干也还是需要版本控制配合啊。 于是想到了用SVN,至于为什么要选他,自然是因为PHP官方团队管理PHP的源代码也是用了SVN了…… 到SVN的官方玩站  http://subversion.apache.org/ 然后我选择了SlikSVN,因为似乎只有它提供了64bit的版本。官方网站: http://www.sliksvn.com/en/download 然后很正常的下载安装,安装过程中选择自定义安装,然后记得把Server端装上去,否则它默认就给安装一个客户端。 默不吭声的它就安装完了。可以说完全就是一个RAR打包之后也是同样的效果。自己到安装目录下找到/bin/svnadmin.exe,到CMD下运行它。 代码类似这个 c:\Program Files\SlikSvn\bin>svnadmin create D:\dev\popgo 意思就是建立一个工作区了,我的工作区在D盘下 然后该目录下就出现了一大堆生成的文件了,首先是编辑conf目录下的svnserve.conf了 里面所有的项目都是被注释掉的,消除以下行的注释 anon-access = none auth-access = write password-db = passwd authz-db = authz realm = My First Repository 这几项都没啥难度,指定用户的权限,指定Password文件的位置,指定权限指派文件的位置。 接下来编辑passwd文件,自己在后面建立一个就可以了,或者你可以用默认的那个 sally = sallyssecret 前面的代表用户名,等号后面是密码 然后编辑authz文件,[aliases]是代表用户的别名,如果需要定义的话是类似这样的 [aliases] sa=sally 不过使用别名的时候就需要用&符号放在前面了...

柴门文漫画略赏(一)

图片
很难得的,开始捧起我一直敬而远之的柴门文的漫画作品。之前一直久仰她的大名,也收集了她不少的作品,但是一直都害怕端起她的书……因为害怕纠结。 我手头拥有的包括了《东京爱情故事》、《同班同学》、《AGE 35》、《那个夏天的回忆》、《欺骗我的男人》、《无声地倾听》和《无声的音乐盒》共5本,当然了,是不完整的她的作品集,起码缺少了很有名的《爱情白皮书》。 仅就这几本而言,除了东爱有三本,AGE 35分上下卷之外,全是单行本的短篇或者短篇集。但是不得不说那一本的内容含量也是惊人的,至少比普通的漫画本子厚一倍左右。 昨晚到今天看完的是《AGE 35》、《欺骗我的男人》和《同班同学》,不得不说,看她的漫画我的进度非常的慢,原因自然是因为无比的纠结,甚至纠结到我经常要停下来休息一下,以便恢复一下我那纠结的思绪,但是也不得不说,她写人物的心理,无论是男人女人都是非常的到位的,纠结,但并不是制造种种狗血的剧情让读者们纠结,而是让读者陷入一种自己也难以取舍的难堪环境下左右为难,就算是把自己摆上那个层面上自己也难于做好,同时,她针对人物心理那种细致入微的描写非常的精妙,设计的人物的性格也没有什么大的拖沓,也不是像一般漫画里面的人物性格那般标新立异,都是非常普通的市井人物,而不得不说想写好一个性格突出的家伙很简单,要描写一个想法复杂的活人,那就很麻烦了。 《AGE 35》讲述的是四个年介35岁的男女的故事,都结婚了,男主角还和女主角有了两个孩子。但是自打剧情一开始,男主角就面临了一个大问题——他已经出轨了,而且爱上了第三者。随着剧情的发展,第三者愈来愈多的出现在了他的生活中,甚至他妻子的生活中。不得不说,这本漫画相当的现实主义,这个也和柴一贯的风格相吻合,我觉得其中最为出彩的就是她对女性嫉妒的那种细致入微的描写,那种就像是用刀子一点点削出来的雕像,非常的贴切。 柴门文《AEG,35》嫉妒 柴门文《AGE,35》 嫉妒 当然了,里面还是不乏柴门文系的传统“人生课堂”:处世之道的传授课程…… 但是怎么说呢?最后故事可以说被安排了一个更好的结局……让所有的人都能如愿以偿了吧,但是我想现实中一定没有那么好的状况吧。 不过觉得最后柴门文的话很对 整体来说,AGE 35不算是非常纠结的,虽然也有很多的旧情,也有犹豫,但是整体上的人物都是很果断...