In: 自制软件
10 Jul 2010这是一个紧急发布的版本。只是修复了2个BUG,集成了最新的列表,虽然没有新的功能,还是看一下图吧。
最近工作和生活上忙的不可开交。。完全没有时间来做1.6版。。向各位耐心等待的漫友说声抱歉。。
1.6版还需要时间。。顺利的话,争取这个月底发布。
修复的BUG:
修复了漫漫看不能下载的问题
修复了图片不存在时导致程序崩溃的问题,并增加缺失图片的占位文件,说明该图片无法下载
改进的功能:
图片下载时使用.cdl的扩展名标记正在下载
更新方法
直接把文件解压覆盖1.5版就可以了,原有的数据不会丢失,启动时会有一个更新数据的提示,需要一点时间,请耐心等待。
当然,如果是第一次下载的话,可以直接使用,不需要之前的版本。
下载地址
标准版(10.5M):本地下载
不带虚拟机版(1.58M):本地下载
分流下载:非凡软件 多特软件 ZOL软件
好久没写关于自己的东西了。
最近参加了网易的有道难题。上周一共比了5场,2场练习赛+3场资格赛。
虽然是第一次参加有道难题,但是比赛的规则是ACM,甚至用的平台是北大的POJ,还是比较熟悉的。但唯一有一点区别的,也是很奇怪的一点,有道的OJ,注释只能写成/*…*/不能用单行注释,CE了几次。。不过CE不计算罚时,还好还好。
有道难题资格赛(1)
有道的资格赛每场比赛3道题,共3场,每场取前400名,共1200名进入复赛。我比了3场,大家应该能猜到,我都没进前400。但还是有收获的,第一场做出了前2题,最后只剩下半个小时做最后一题,在最后2分钟的时候做出来,但是很悲剧地在提交的时候选错了编译器,结果CE了。。虽然后面验证以后,答案也是错的。但还是觉得很遗憾。一看排名,1159。
有点难过,还以为做出2道题肯定能出线了呢。然后看了一下排行榜。发现和我一样做出2道题的,排在最前面的是275名,是可以出线的:
但是他们花的时间太短了,我根本不可能这么快做出来的。我这才发现,原来第一题是150分,第二题是300分,前两题加起来才450分,而第三题一道题题就有550分。换句话说,只要做出第三题就能直接出线。而且第一场比赛的第三题是有思路的,而且基本做对了,只是有几个细节问题没处理好,如果再给我半个小时,甚至是一个小时测试,一定能做出来。
有道难题资格赛(1) — 统计
抱着这种想法参加了后面两场资格赛,直接拼最后一题。因为就算我做出了前两题,我的罚时还是不能入围,而且没有时间做第三题。还不如孤注一掷,直接拼第三题。
我记得第二场的第三题很有意思,套用有道的招聘讲了个故事。说的是,今年HR招人用了个新规则,HR先招到一批人,每个人都有各自的特长。部门来要人,派出部门经理。把所有的部门经理和招到的新人随机排成一列。每个部门经理可以从自己的位置开始,向左右开始挑人,但是范围不能超过另一个部门经理。如果选中了一个人,那么这个人,连同之间的人都必须带走。这些人被选中了以后,当然不能被别的部门经理选了。然后每个部门都有自己的指标和需求,得挑某些有特长的人,问一共有几种选法。
看到题目以后,没思路。我的想法是先选出一个部门经理从自己的位置向左右分别开始挑,然后下一个继续挑,再下一个…这是顺着题目的思路做,但没想出可以套用的算法…结果很悲剧,没做出来。
第三场的第三题,也是蛮有趣的题目。说的是用火柴排数字,给你几根火柴,必须全部用上,能派出几种数字组合,当然0不能被排在最前面。问这些组合对给出的数求余以后的数是质数的组合有几种。
看到题目以后,马上有思路了,首先是一个排列组合问题。每一个火柴数字,都有固定的火柴根数,用固定的总根数能排出几种数字组合。首先要解决的是每排一个数字的时候,有几种选择?而没排完一个数字以后,接下来可以选择的数字有可能跟之前会有区别。所以这有不是一个简单的全排列问题。这里面还包含了背包问题,可以想象成,火柴数字是一个货物,而总根数就是背包,必须刚好把背包装满。顺着这个思路,我很快做了出来。可是现在,我才发现,原来这道题不仅仅是这两个问题,还有一个更大的问题。因为最多一共有10000根火柴,如果全部排1的话,可以排5000位的1。这又引出一个大整数问题。还涉及大整数判断质数,必须有除法和求余运算。这下可麻烦了,准备不够充分,没有现成的大整数类可以用,从头写一个肯定来不及。。。结果。。又悲剧了。
唉,特别难过,不过也是一份很宝贵的经历。特此记录。
In: 自制软件
17 May 2010迟到的1.5版终于来了。还是先上图:
关于1.5,要先说一句抱歉,这个月实在是很忙,断断续续进行着1.5的开发,效率很低,速度也很慢,让大家久等了。由于时间的关系,很多网友提出的暂停功能没有被加入,再说一声抱歉。由于之前的架构完全没有这个方面的考虑,虽然看起来只是一个小功能,但是要改起来还是比较麻烦的。。要进行整个架构的改写,需要比较多的时间。
但是,我相信1.5版不会辜负大家对我的期望的。1.5版重点加强了稳定性,提高了启动、运行和下载的速度,加入数据库升级功能,完美从1.4版升级数据,不丢失原有数据。并且增加了下载限速、使用代理连接和订阅功能。
订阅功能提示框如下:
下面重点讲解一下订阅功能,如果大家用过RSS,应该知道订阅的好处,就是不用自己去查看网站是否有更新,可以让程序告诉你网站更新了,然后你再去看就可以了。漫画下载器增加了一个这样的功能,可以自动帮你检查是否有最新话出来,可以选择在发现最新话的时候,就自动把这一话下载下来。这是不是很方便呢?这样你就不用在玩游戏的时候想着第xxx话出来了没有啊,我要去看看。。漫画下载器帮你搞定这一切。如果你不喜欢载下来看,我想漫画下载器的订阅也是一个不错的功能,在找到更新话时,可以在弹出的信息窗口直接点击链接,打开这一话的网页。而这个信息窗口类似QQ打开时右下角的提示窗口,如果没有操作,将在5秒之后自动消失。
下面看一下设置界面:
把“每话独立目录”移动到最上方,跟目录的设置放到了一起。
增加了下载速度限制的设置和代理的设置。
修复的BUG:
修复了判断漫画下载是否完成不正确的问题
改正了covers目录会被指定到跟漫画目录一起的问题,改成始终跟软件放在同一目录下
修复了漫画或者剧集名称中包含”.”时,图片命名错误导致只保存一张图片的问题
修复了漫画信息尚未加载完成时,点击收藏可能导致内存出错的问题
修复了图片地址没有取到时,导致程序崩溃的问题
修复了可能造成下载速度越来越慢的问题
改进的功能:
加快漫画列表的载入速度
搜索持续输入时不立刻进行搜索,提高操作流畅度
增加下载限速
增加代理连接功能(HTTP,IE设置)和测试连接
增加最小化到系统托盘
增加订阅漫画更新
对数据进行压缩,减小了软件的体积
增加数据库初始化/升级的UI提示
初始化新数据库时,保留原有数据
下载地址
标准版(10.3M):本地下载
不带虚拟机版(1.43M):本地下载
分流下载:非凡软件 多特软件 ZOL软件
最后还是例行PS一下,应某网友(对不起啊,忘记你的网名,如果你看见了请及时提醒我)要求在压缩包里加入了一个更新日志,让大家可以更好的了解漫画下载器一路走来的变化。
其实之前每发布一个版本,都非常开心和激动,现在更多的是冷静和理性。因为用户越来越多,大家提出了很多很棒的建议,也指出了很多漫画下载器存在的问题。非常感谢大家的关注,大家的关注激励着我继续做下去,慢慢把漫画下载器完善,越做越好。我还是希望把发布的周期控制在一个月一个版本,所以每一个版本都必须做到稳定,不能有太大的问题。
希望大家继续关注和支持漫画下载器
对了,忘了说,这回可以直接覆盖原来的文件,原来的收藏和常用列表以及配置信息都不会丢失。
In: 自制软件
7 Apr 2010千呼万唤始出来,1.4版终于跟大家见面了。按照惯例,还是先上图:
我更新的宗旨是小改动,大变化。一方面老用户不用重新学习软件的使用,另一方面可以延续上一个版本简单易用的体验,让新用户快速上手。
1.4版外表的区别还是很小的,但它的内部发生了翻天覆地的变化。很感谢使用了1.3版,并给我反馈的广大漫友。很多漫友反应内存占用太大,并且存在无故退出的问题。1.4版重点优化了内存,修复了内存泄漏的问题,内存不再不断增长,并加强了稳定性,修复了一些可能造成退出的错误,还有在外部包了一层全局错误控制,使得整个程序更加健壮。
在功能上,应漫友要求,增加了收藏功能。收藏很简单,只要点击右边漫画资料上方的星星,使其变成实心的,就收藏了这部漫画。漫画简介也被移动到了上方的小文档标志里面,鼠标移动到文档标志上方,就可以显示漫画简介了。1.4版还将记录你上一次完成下载的剧集,这样就不会因为太久没有关注这部漫画,而忘记看到第几集了。由于漫画是从漫画网站上抓取的,为了保护源网站的权益,在漫画资料中增加了“来源”的链接。另外增加常用漫画列表,可以把下载过的漫画按照下载次数排序,可以快速定位到常用却忘记收藏的漫画。目前漫画数量已经增加到了9200部以上,相信大部分漫画都可以从这里列表中找到了。还有一个好消息,就是可以同时下载多部漫画啦。下面请看详细更新情况。
修复的BUG:
解决漫画或剧集名称太长时无法显示
修复下载过程中的线程管理可能出现异常导致程序出错退出
修复名称中有非法字符时出现的错误
修复图片不存在时,重试导致图片数量超出上限
修复Sqlite多线程插入导致程序出错的问题
解决了内存泄漏的问题
解决了漫画重名时,封面显示同一张图片的问题
解决了搜索或者切换列表选项可能造成重复绑定列表造成的性能问题
改进的功能:
同时下载多部漫画
增加收藏功能,增加收藏列表和常用列表
漫画列表的更新按钮从jennal.cn取得最新的列表,并在本地缓存
右侧漫画信息增加“最近下载”和“来源”
右侧漫画信息重新排列,并增加收藏按钮和简介按钮
左中右三部分分别增加了一个读取图标,当该部分正在载入数据时,将显示该图标
增加更多的漫画,增加站点来源,并组织成列表缓存在jennal.cn服务器上
改变了目录命名的方式,主目录采用漫画名称,内部子目录采用剧集名称
搜索漫画时按上下键,上下移动选中目标
增加全局的出错控制,程序更加稳定
增加同时下载多部漫画的功能
工作原理
自1.3版发布以来,有些网友反映图片下载不全或者某一话被跳过了。其实是还没有完成下载,如果能耐心等到全部下载完成,你就会发现不会有缺页或者缺某一话的情况。这是漫画下载器的工作原理造成的。它是一个多线程的智能程序,它默认使用5个线程分析网页,2个线程下载图片。而这5个线程则包括分析图片列表页(取得图片页)和分析图片页(取得图片地址,交给2个线程进行下载)。就象好多人排队去坐过山车,而这个过山车有5部车子,每部车子上只能坐一个人,但是这个过山车很特别,5部车子不在一个轨道上,所以谁能先跑完不是确定的,但是一旦有人跑完,排在队伍最前面的人就可以上去。
当然,不能排除出现意外的情况。例如有人坐了一半觉得不舒服,要下来。很幸运的是,这个过山车可以立刻让他停下来,然后换别人从头开始跑。但他来坐这个过山车是带着任务的,所以他又跑去队伍的最后面继续排队。这就是重试机制。也是这个机制造成了可能有些图片或者某几话没有按照顺序被下载下载,但你会发现,当你载完其他话以后,这些缺失的话会被补回来。除非这些图片或者话重试了太多次,那就有可能真的并不存在。
下载地址
标准版(10.2M):本地下载
不带虚拟机版(1.37M):本地下载
分流下载:非凡软件 多特软件 ZOL软件 天天精品 泡泡网
最后,还是例行PS一下,有点抱歉的是这个版本不能保留上一个版本的设置,所以如果修改了设置,还请重新设置一下。
这个版本我花费了很多心血。最近一直熬夜修改BUG和增强稳定性,希望可以得到漫友们的支持和肯定。当然,有什么意见和建议和欢迎提出来。还是那句话,你们的支持是我最大的动力!
In: 自制软件
5 Mar 2010又是激动人心的时刻,漫画下载器 v1.3来了。废话不多说,先上图:
表面上看,这个版本同上一个版本并没有什么区别。细心的网友可能发现了,漫画的数量增加到了1540部,并且搜索的时候不再仅显示搜索到的漫画数量了,并且显示总漫画数量。不知细心的你是否还发现了搜索的秘密?对了,就是拼音搜索。新版本增加了拼音首字母和全拼搜索的支持。这个版本着重改善搜索漫画的用户体验,再也不用通过中文来搜索了,几个简单的拼音首字母,就能帮你快速定位到你想要的漫画。这只是用户体验改善的一小部分,下面来看看这个版本的更新情况吧。
修复的BUG:
修复了漫画列表没有加载完成时就关闭程序,出错的问题。
改进的功能:
优化了分析引擎,使得分析更加稳定和快速,并且易于扩展,为以后添加更多漫画作好了准备
漫画数量增加到1540部,漫画的数量大大增加,希望漫友们都能找到自己喜欢的漫画。
增加漫画在本地的缓存,大大加快启动时间
漫画搜索增加了拼音搜索功能,包括全拼和拼音首字母的支持
鼠标移动到漫画简介上时,右边将显示全文内容,对于陌生的漫画也能通过完整的简介来了解。
环境需求降至.net framework 2.0,该版本为Vista以上系统自带
为使用XP且不想安装.net framework的漫友提供了虚拟机,即使没有安装.net framework也可以启动程序了
下载地址:
不带封面缓存版(9.7M):本地下载
不带虚拟机版(837K):本地下载
分流下载:非凡软件 多特软件 ZOL软件
PS:由于新版本漫画数量太多,说实话,我自己都没载完所有的封面,这里就不提供封面缓存的版本了。
这里说明一下,同上一个版本相比,体积明显大了好多,这是由于内置了.net framework虚拟机的缘故,虚拟机的体积占了9M之多。为了版本的统一,就不分离不带虚拟机的版本了。相信10M左右的体积,漫友还是可以接受的吧。
最后还想说的是,1.2版受到了广大漫友的支持和好评,我真的很开心。我收到的大部分反馈都是要求增加更多的漫画,所以这个版本的更新重点是提供更多的漫画,并且做了一些用户体验的微调,希望能给漫友们带来更好的体验。也希望漫友们能多提宝贵意见,只要能做到,我都会尽量满足你们的要求。
In: Javascript| Web前台相关
23 Feb 2010javascript中要判断一个变量是否为array通常是比较困难的,因为
var a = [];
alert(typeof a === ‘object’); // true
通常的做法是判断
a.constructor === Array // true
可是这个方法有一个问题,如果一个数组是来自另一个frame中的,那么它的constructor 将是另一个对象。
YUI中用了如下的方法:
isArray: function(o) {
if (o) {
return L.isNumber(o.length) && L.isFunction(o.splice);
[...]
In: Javascript| Web前台相关
23 Feb 2010修正了几个BUG,已经在实际项目中使用,没有问题。
Array.prototype.indexOf || (Array.prototype.indexOf = function(value) {
for (var i in this) {
if (this[i] == value) {
return i;
[...]
In: 自制软件
12 Feb 2010不怕您说我俗,我就是这么俗。漫画下载器 v1.2要赶在2010春节来临之前,给广大漫画爱好者拜个早年。愿大家在新的一年里事事顺心,身体健康,财源广进。
漫画下载器 v1.2在v1.1版的基础上做了修复了一些BUG,并在用户体验上做了很大的改进。
修复的BUG:
修复了多部漫画同时分析时,总是显示最后一部分析完成的漫画,很有可能不是当前选中的漫画,容易造成误解。
修复了下载图片超多的剧集时出现界面假死的情况。
新增的功能:
增加了排序和刷新的按钮,剧集列表增加了全选的按钮,方便用户下载整部漫画。
增加了漫画和排序的记忆,下一次开启将还原上一次打开时选中的漫画。
增加了漫画资料的显示,包括漫画封面、作者、最新话、状态和简介。
增加了打开目录的按钮,方便用户即时打开选中漫画的目录。
增加了设置窗口,提供更多的设置选项,不用再手动修改配置文件,并在选项上增加一定的限制,增强程序的稳定性。这里应网友要求,增加了不在每一话下载时建立独立目录的选项,有这一困扰的同学可以把这个勾去掉。
增加了新版本检查的功能,及时得知新版本的发布。
下面来看截图:
漫画下载器 v1.2 — Jennal.Cn
设置界面:
漫画下载器 v1.2 设置界面 — Jennal.Cn
设置统一放到了设置界面,更整齐划一,没用的东西不用天天见,嘿嘿。
值得一提的是最后一个选项:每话独立目录。这个选项如果选中,将按照原来的规则,为每一话建立独立的目录。如果不选中,则直接下载在漫画名称的目录下,试试看吧。PS:特别感谢马少华同学的建议,特增加此功能。
线程数量上也做了限制,绝对保证原有的快速下载体验,加上更稳定的运行。
页面分析线程:5-10
图片下载线程:2-5
连接重试次数:10-20
下载地址:
因为这个版本加入了封面的预览,所以放出两个版本:
带封面缓存版(3684K):点击下载
不带封面缓存版(62K):点击下载
PS:不过放心,就算没有缓存,封面还是会从网络上动态下载,并在本地缓存,只会下载一次,所以第2次打开的时候,就不会重新下载了。
最后再提醒各位使用XP的新用户:本软件需要先安装.net framework 3.5才能够运行。
祝大家使用愉快!
In: PHP
31 Jan 2010前一阵给TTT弄了个博客:http://ttt.jennal.cn/
TTT周五有个要求,她要博客的首页可以看到评论,不要点进去才能看到,那样太麻烦。
在网上找了很多资料,没有找到单独对这个进行介绍的。所以只好找了其他很多资料,加上不断的尝试,昨晚做到快4点,为了防止这次伟大的事件在我的记忆中被删除,还是写下来纪录一下。
要在首页显示评论,我们需要修改四个文件(可能你的文件命名会有些不同,没有关系)。
这些文件都位于wp-content/themes/我的主题目录下
index.php : 首页模板
homepage_comments.php : 评论模板
functions.php : 放回调函数,当然你也可以写在homepage_comments.php里面
comments.css : 放评论的css,当然你也可以写在homepage_comments.php里面
index.php很简单,在你要放评论的地方加上如下代码,当然要放在日志的循环里面:
$withcomments 是一定要设置的,首页默认为0
至于comments_template这个函数,它会帮你comments先取出来,供你的模板使用。如果有看文档的话,应该知道有一个wp_list_comments函数,这个函数的参数没有接受postId,它是不做数据库查询工作的,具体它是怎么工作的,我也没有深究,只是用到它的回调功能来自定义我们的comments列表,这个在下面会提到。
下面我们来看一下homepage_comments.php怎么写
本来以为直接在comments模板里面写结构和样式就可以了。但是发现不行,除非直接去取$wp_query->comments,但是这样不好,最好还是调用它的API,不然以后版本升级可能要出问题。
这里我把wp_list_comments的全部参数都列出来了,其实没有必要,只要设置你想要的参数就可以了。
这里要补充一下需求,我不希望把所有的评论都列出来,我只要列出最新的3条,而且要倒序,就是最新评论的在最上面。所以我把per_page设置成3,reverse_top_level设置成true。但是这样有个问题,显示的时候是显示最后一页,可能你有4条评论,那它只会显示第4条。在不改变和添加新API的情况下,我没想出解决的办法。如果在看这篇文章的你知道怎么解决,请告诉我。顺便说一下,type如果设置成别的可能会出问题。我之前就学别的模板,把它设置成comments,结果每个post的comment全变成一样了。然后设会all就好了,这个问题也不去深究,有兴趣的自己看源码/wp-includes/comment-template.php。
重点来了,重点是’callback’ => ‘homepage_comments’这个参数。顾名思义,这是设置回调函数,那homepage_comments就是函数名。为了代码的整洁和统一,我把这个函数放在functions.php里了。那在循环遍历comments的时候,就会调用这个函数。
下面来看functions.php这个文件
姓名:郑玏
性别:男
职业:程序员
爱好:KTV、乒乓球、台球、五子棋、围棋、编程
语言:中文、英语、闽南语
Email: