2013年10月20日

WHITE ALBUM -綴られる冬の想い出- Original Soundtrack CUE文件

在网上下载了 WHITE ALBUM -綴られる冬の想い出- Original Soundtrack 这张专辑(flac),但却没有CUE。发现很多人都在求这个CUE,澄空的链接失效了,KFC上有人搞出来个,结果却没有共享。今天花了1个小时写了个生成CUE的小程序,把这张专辑的CUE生成出来了。

2013年10月13日

其来有自的音乐库(5)

导师一出差我就各种嗨,居然接连两天写博。那么今天继续我的大坑。

2013年10月12日

Smack 开发笔记(1)

上个月接到一个任务——开发一个XMPP客户端,准确地说来,是用XMPP协议实现在两台计算机之间互发消息。我建议用Java,因为我知道大Java不管什么东西,总有5个以上的开源解决方案。于是选了Openfire作服务器,Smack 3.3来开发客户端。
国庆参考了几篇博客文章[1][2][3],写了个控制台下的客户端,可以实现简单地收发消息。
综合这几篇文章,为了实现一个XMPP客户端的消息收发功能,我封装了一个Client.java类,其成员变量及方法如下(省略了具体实现代码,后面会详细说明):

2013年10月4日

Android差在哪儿?

前几天手机突然变砖,趁着这几天的假期,反反复复刷了3次。因此而带来的数次重装App、同步联系人等着实把我折腾得够呛。我也用过iOS,这里我尝试列举一些Android的缺点。

  1. 缺少一个官方的管理软件。

    苹果有iTunes,可以方便地管理iOS设备、媒体文件、App。但Google却始终不愿意推出一个官方的、类似iTunes的同步软件,哪怕没有媒体文件管理功能。没有原生地支持,搞得每个第三方同步软件争先恐后地往手机上装自家的连接软件。通常这些连接App又申请了相当数量且与个人隐私密切相关的权限(例如读取联系人、读取短信、电话记录等),Google都身陷棱镜门,这些国内公司又有几个敢拍胸脯保证自己绝不窃取用户隐私?

2013年6月15日

其来有自的音乐库(4)

距离该系列上一篇文章已经过去很久了。功夫网的阻隔是个很大的问题。但我还是尽量坚持更新博文。

  1. CHEMISTRY - regeneration

    CHEMISTRY,中文名称是化学超男子。《战场女武神2》的OP《Our Stroy》收录于这张专辑中。刚下载这张专辑的时候感觉还不错,现在常听的也就只有《Our Story》和《Life goes on ~Side D~》。战场女武神系列游戏都非常棒,一代和三代的难度都比较高。我还专门买了一张一代的游戏光碟用作收藏,这也是我唯一的一张PS3游戏光碟。最近听说一代汉化开坑,甚是高兴。

2013年5月12日

在IIS 7中使用HTTPS连接

做毕设的过程中,希望能使用Https安全连接。在网上查阅了相关资料,发现仅是以调试、测试目的而启用Https连接是相当简单的。
首先,需要解释一下Https,TSL,SSL以及证书的关系。我们知道,HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。SSL目前的版本是3.0,被IETF(Internet Engineering Task Force)定义在RFC 6101中,之后IETF对SSL 3.0进行了升级,于是出现了TLS(Transport Layer Security) 1.0,定义在RFC 2246。实际上我们现在的HTTPS都是用的TLS协议,但是由于SSL出现的时间比较早,并且依旧被现在浏览器所支持,因此SSL依然是HTTPS的代名词,但无论是TLS还是SSL都是上个世纪的事情,SSL最后一个版本是3.0,今后TLS将会继承SSL优良血统继续为我们进行加密服务。目前TLS的版本是1.2,定义在RFC 5246中,暂时还没有被广泛的使用。

Date.parse()在Chrome,FireFox,IE中的差异

我翻了好几篇关于Javascript中Date.parse()方法的博文。它们着重讲的是日期格式的问题,需要以Date.parse("MM/dd/yyyy HH:mm:ss")这样的形式方能在3种浏览器中正确运行。最近在做一个需要实时绘图的项目,其时间精确到毫秒,这时Date.parse()在3个浏览器中就有了不同的表现。请看以下代码:

var now=Date.parse("05/12/2013 15:24:27.53");

这行代码在Chrome里可以正确运行时间的毫秒部分也能正确地被转换。但同样的代码到了FF和IE里就报错了。经过排除,确认是这两种浏览器的Date.parse()方法最多支持到秒级。后来我又尝试了"05/12/2013 15:24:27,53","05/12/2013 15:24:27 53","05/12/2013 15:24:27,530","05/12/2013 15:24:27 530"等形式的字符串,均无法正确地在FF和IE中转换。如果要想解决这个问题,只好采取一种很别扭的方法:把字符串从秒处截断,前面的部分在3个浏览器中都可以正确转换。转换完毕后把后一部分再加上。

2013年4月16日

面试总结

昨天我去华北计算技术研究所参加笔试和面试。出发前在网上看了一下这个单位的评价——不太好——因2012年的招聘爆出诸多问题而被称为坑爹“坑爹十五所”。到了之后,人力资源的先拿了一套笔试题让我们做。说实话,笔试很随意,就随便让我们找了两个空的工位,让我们做。

2013年4月4日

ASP.NET 网站维护实例

我3月21日回到学校,就被告知,某个部门的网站坏了。最初是一个Excel导出功能无法正常工作,导出的文件并不是先前期望的那样。由于这并不是本文重点,我就一笔带过——问题在于Excel的DCOM配置,添加了NETSERVICE账户并赋予相应权限后,得以解决。随之而来的问题是:导出的文件没法从服务器上删除。我们又添加了log4net,输出了一些调试信息,发现是最后导出文件结束、关闭Excel进程时出的问题。网站以NETSERVICE这个账户运行,但Excel是以Administrator运行的,在执行Process.Kill()方法时会抛出异常。虽然作者在里面使用了try-catch块来处理异常,但似乎这个异常仍然没被catch到,抛上来,后面删除文件的代码也就没有执行。

即日起停止更新SuperSocket的研究系列文章

最初写这些文章是为了记录在学习SuperSocket 1.5官方文档时遇到的各种问题,多是官方文档中没有阐述清楚的地方,顺带将英文文档翻译成中文。目前已经有人将全部文档翻译完成,我也就不再更新了。如果还有使用上需要注意的问题,我还会再发文。

这里给出SurperSocket 1.5 中文文档(非项目作者翻译)

SuperSocket的作者也开始提供最新的中文文档,见SuperSocket 1.6 中文文档: SuperSocket