面向人群

在校学生、网吧顾客

功能描述

顾客方面,按热门、最新等条件分页显示游戏运行图标,改善顾客体验;后台方面:对比更新,使用多路分流+还原穿透技术极大减轻工作量,统计热门游戏信息

极速加载

由于游戏数量比较多,达到100个以上,可以想像一下,在桌面里有100个图标,要全部显示出来也是要很久的。

再加上杀毒软件的干扰,会对访问的EXE文件逐一进行病毒扫描,还有游戏的启动程序基本达到3M以上,更加重了加载负担。

通过在服务端分离应用程序与ico文件实现了极速加载,使原来30秒才能加载完成的图标,能在1秒内完全加载。

辅助工具

右侧默认是公告内容。但如果游戏有相关的辅助工具、外挂等相关应用就会显示出来,供客户使用。例如主图标是QQ,但点到的时候右侧会自动显示珊瑚虫QQ。

自动导入注册表

主机是有还原系统的。但部分游戏需要一些注册表数据才能正常运行。

项目实现了注册表的自动导入,让游戏可以正常运行。

原来主机系统是需要安装一次游戏再封包的,自从加入此功能以来就不需要了。

没有游戏多余数据的干扰,也让母盘系统更纯净,系统启动更快。

对比更新

网络游戏更新是常有的事,当时的网络只有100M,不能完全通过无盘负载。

以有盘+无盘的方式实现更多的游戏。

有盘游戏是需要更新的,但动辄几个G的游戏更新,耗时耗力耗网络。

通过对比更新,只更新需要更新的游戏数据,加快了游戏更新速度并极大地减少了各种损耗。

穿透更新

游戏是在还原系统的保护下的,一旦重启数据就会恢复原状,更新完的游戏也需要再次更新。

穿透更新,让游戏更新数据可以穿透还原系统,更新后的文件在系统里面固化,重启后就不需要再次更新了。

多路分流

当时网络只有百兆,并不普及千兆网络。

服务器是通过一块4口百兆网卡跟局域网相连。

通过网线,让服务器跟多个网络交换机直连,这样的话,就相当于增加了4倍网速。

但是,这部分网速是不能直接利用的。

因为各交换机之间是百兆相连,交换机之间的带宽成为了瓶颈所在,甚至在跨交换机取服务器数据的时候,流量本身会影响到网络交换速度。

通过多路分流,让客户机直接跟所在交换机里,直连的服务器端口进行连接并获取数据,加速游戏更新、无盘的使用。

项目演示

因项目的运行需要服务端的配合,再加上特殊系统,专门的设备等等无法完全重现,只做基本演示。

开发背景

以前计生办都是用纸质办公,纸质登记,查找记录不方便。

为了解决这个问题,再加上当时单位企业在推广无纸化办公、电子办公,还有一些其他原因的推动下,公司收到了相关的解决方案的咨询,最终决定开发一个制证工具。

因为当时公司并不是开发公司,我在公司也不是开发岗位,公司也只是让我在业余时间里做,所以本项目虽然有公司背景,但在分类上是属于个人项目。

面向人群

乡镇计生服务站文员,计算机水平在仅会普通打字、打印(配备手写板)。

功能描述

高效率,少输入,易于使用。实时拍摄被登记人员照片,淘汰人手纸质登记,数据库设计,可按需统计每年、每月、各地登记人员信息,方便日后可开展多窗口同时登记业务。

自动操作

自动识别身份证、验证身份证正确,防止以往人手纸质登记时的错误。

自动根据登记者性别,选择手术类型,防止一些手术填写错误。

自动计算年龄,防止以往人手纸质登记时的错误。

项目演示

开发背景

继计生办制证完成后,对方比较满意,就再进一步推进电子办公。

其中有一个需要就是,希望能对工作人员的服务进行评价,以方便改进服务。

就决定继续开发,由公司提供触屏一体化电脑,帮助计生办解决问题。

面向人群

没接触过电脑的普通群众。

功能描述

用手指点两下即可完成评价。管理员密码限制以及每月报表数据导出功能,方便局上级领导检查各乡镇情况。

项目成果

获全县16个乡镇计生服务站连同触屏一体化电脑统一采购使用。

项目演示

项目统一硬件标配触屏一体机,没有鼠标键盘。

在线演示

管理员帐号:admin
管理员密码:12345678
可自行注册普通帐号
前台访问地址:http://s.dm1.in/A
后台管理地址:http://s.dm1.in/B

开发工具

Nginx 1.7.8+PHP 5.6.5+MySQL5.6.23+Scite+Dreamweaver CS6+PhotoShop CS3+ Smarty 3.1.21

功能描述

前台实现用户注册登录,浏览、搜索、推荐图书,申请借书,借书管理,个人资料管理等功能。后台实现图书上架下架,搜索分类,借书还书管理,借书统计报表。

开发时间

2015年1月24日至1月29日

项目截图

后台截图

在线演示

管理员帐号:admin
管理员密码:12345678
可自行注册普通帐号
前台访问地址:http://s.dm1.in/8
后台管理地址:http://s.dm1.in/9

开发工具

Nginx 1.7.10+PHP 5.6.6+MariaDB 10.0.16+PHPStorm 8.0.3+Dreamweaver CS6

开发框架

ThinkPHP 3.2.3

功能描述

前台主要实现用户注册登录、浏览、搜索商品,将需要商品添加购物车、收藏夹,生成订单,结算,支付、确认收货等。后台实现商品的上架下架、隐藏、库存管理等,订单发货、订单收益统计,年度、月度收益统计报表等功能。

开发时间

2015年2月25日至3月5日

项目演示

后台截图

开发背景

每天坐地铁通勤,总觉得很浪费时间。

不如找几本小说充实一下自己。

基于这种想法,开始了地铁小说阅读之旅。

首先,我的小说都是自己下载的。找过几个小说阅读器,总有那么点问题。

比较典型的,就是无法记录阅读进度,关闭重开后就从第一页重新开始。

还有就是白纸黑字,看久了始终觉得不舒服。

综合来说,Adobe Acrobat Reader这个老牌的PDF阅读器却是最好的。

但是有一个比较麻烦的问题,就是我小说里, PDF格式的太少,多数是zip/rar的压缩包,里面是小说扫描图,这种情况下要使用Adobe Acrobat Reader的话就得自己去转格式了,始终是不方便。

于是,就开始设计DreamReader项目。

夜间模式

看小说的话,如果是实体本,白纸黑字也是可以的。在以前貌似有推广过一段时间的黄纸黑字的笔记本,说是可以降低对比度保护视力。

但是,对于电子小说来说,白底黑字实在是不适合,对比度太大了,长时间阅读会导致眼睛不舒服。在晚上看的时候,再是照得自己一脸白的,就像是对着手电筒一样。

这时候使用夜间模式就比较合适了,降低屏幕发光的部分,减少眼睛负担。

特别是近年来大力推广的Amoled屏幕,黑色的像素不发光,还能节省电池。

闹钟功能

原名DreamAlarm。

可能有人觉得我在一个小说阅读器里加一个闹钟,设计是有点奇怪。

但这个整个DreamReader应用,本身就是为了方便我的日常生活而设计的。

当然我也可以单独再做一个DreamAlarm,只是觉得功能有点少,单独再开一个APP似乎有点浪费,就放一起了。

休息闹钟

其实我一直以来都对传统闹钟的功能不满。

为什么闹钟都要设定响的时间,而不是不响的时间呢?

作为一名上班族,上班才是最平常的事,尤其在一个经常加班的公司,休息才是最稀有的事。

以传统闹钟的做法,每当休息日关闹钟,麻烦不说,一旦不小心还会忘记在工作日重新打开闹钟,后果很严重。公司是大小周制度,固定周一至周五的闹钟是行不通的。

所以决定反其道而行之,在DreamAlarm里设定的都是休息时间,也就是闹钟不响的日期。

实话说,用起来还真的是出乎意料的方便。

提前设置好往下1,2个月的单休、双休日,还有一些五一、国庆之类的假期,基本上整个月都不用烦恼要不要开关闹钟。

有时候临时开会说取消假期的话就把休息日取消掉就行了,当然,我也没见过有增加假期的例会就是了。

顺便还能记录下上班的情况。

海量音乐铃声

更换闹钟的音乐铃声也是十分常见功能的,毕竟连系统都自带这种功能。

但是同一个铃声,听个十来遍还行。但对于上班族来说,听多了,真的很烦。这时候就需要更换一个铃声了。

所以,一直以来都对传统的闹钟铃声设置有所不满。

为什么都只能设置一首音乐做为闹钟铃声了?

于是,在DreamAlarm里,允许海量音乐铃声。

把几部OST打包进去,每次闹钟随机播放,3个月不重样!

不过也有坏处,就是有时候听得好听了,会多听一会。

二维码识别

原名DreamQRcode。

这可能又是一个奇怪的功能,被加到小说阅读器里。

其实是因为工作里,有时候需要对二维码扫码,分析内部数据。

如果用微信之类的扫码,会直接跳到网页上,不太方便。

所以就干脆自己做一个扫码识别。

但是为了一个二维码小功能,单独做一个APP有点夸张,就直接放到DreamReader里了。

项目截图

开发背景

简单来说,就是原手机因为过度开发调试(自己和手机一起为公司项目牺牲了),导致各种故障。例如随机黑屏,突然死机之类的。

在这种情况下,也为了以后做iPhone应用方便,换了部iPhone手机。

在整部手机里,最舍不得的应用就是DreamReader,为了延续下去,就开发iPhone版本,把Android版移植过去。

开发过程

其实开发过程说不上顺利。说是移植,但实际上跟重新做差不多,毕竟Android的开发和iOS的开发还是有很大差异的,表面上看起来是差不多,但实际的实现方法是完全不一样的。

虽然说困难重重,特别是把Zip库直接重写了一遍,最后阅读器还是成功做出来了。

因为和Android的差异,在Android里是有文件管理器的,直接通过文件管理器把小说发送到手机就可以了。因为iOS没有文件管理器,就增加了小说下载功能,让手机可以直接下载到电脑里的小说。

也增加了3DTouch功能,减少误触,等等,看起来一切还好。

停止开发

按着当时的进度,真的有能力把Android的一切做进去,还能更好。

然而,却始终是绕不过iOS里永恒的难题:手机权限。

本来是想把闹钟功能做进去的,但是iOS限定最多只能响30秒,这对于闹钟来说是远远不够的,所以放弃了闹钟功能的移植。

同样的,二维码功能也是因为权限问题只得放弃。

小说功能是基本移植成功的。

然而,在开发者的权限下,应用只能在手机里运行7天。一旦超过7天就无法运行。

要解决的话要么每隔7天去重新联机更新一次应用,要么去买正式证书。

开始的时候定期联机更新APP还能接受,但次数多了,未免不厌其烦。

去买正式证书,首先证书也不是永久,得每年买一次,价格99美元/年。

如果我是专门做iOS开发的话,购买这个证书也是可以的。但是可惜,我既不是专门的iOS开发,所在公司也不提供这个职位。所以我买的话,就相当于是花99美元/年,来自己买自己开发的应用,心理上无法接受。

最后,小说阅读量越来越少,只能是考虑重新换部Android手机,iOS版停止开发。

真机运行

开发背景

在做一些采集项目的时候遇到一些问题。

主要原因是现在的网站为了更好的用户体验,大量使用AJAX技术,但这给采集带来很大的困难。

DreamJavaScript就是对这些脚本进行解释,协助采集项目完成工作的后端项目。

关联项目

DreamDownloader[开发中]

运行效果

项目演示

演示地址:http://s.dm1.in/C

开发背景

我自己的网站,是基于用户生成内容(User-generated content,简称UGC)模式开设的。网站的信息内容,都是由用户自行发布、维护的,目前信息总量达到150万条。

其中,有不少信息是用户通过图床发布的。因为网站位于境外,用户也比较喜欢使用Photobucket,Flickr等境外长效图床,也因此存在一些问题。

特别是近年来,图床在大力推广收费策略,导致原有的图片大量失效。

网站上的不少信息,特别是用户的专业翻译文章,有使用到图床,因此遭到损坏,实在是令人痛心疾首。

即使是引导用户改变习惯,但原有的各种精华信息的失效仍然非常令人痛心。

于是便在构思此项目,希望能解决图床因策略调整使图片失效,从而影响到用户发布的图文信息损坏,导致网站内容减少,质量下降的问题。

封锁突破

Photobucket的图片服务是非常长效稳定的,储存了超过10年的图片,现在仍然可以正常打开。但是,由于政策关系,国内铁通/移动网络的用户却无法打开图片。

Flickr在国内则经常因为域名被封锁,导致无法打开图片。

通过DreamPic,实现让图像可以对所有用户正常显示。

弹窗提示

网站是加密网站,当引用非加密内容(通常是外链图片)时,浏览器会出现不友好的弹窗提示。

通过DreamPic,可以实现图片的统一加载,消去这种弹窗提示。

故障容灾

这是一个真实发生的案例。

某知名图床发生故障,约2天无法正常访问。

此时,通过DreamPic让图像服务不中断,网站不受影响正常使用。

分流镜像

DreamPic对外使用(指对其他网站使用),是可以对图床破解,让受限的图像能正常显示。对内使用,通过配置也可以实现一些复杂效果。

DreamPic有图像缓存智能管理功能,通过配置多域名,实现同ISP加载图像。电信的加载电信的图片,联通的加载联通的图片,境内加载境内的图片,境外加载境外图片,让网页的加载速度进一步提高。

相关新闻

注意!受Photobucket政策“勒索”,亚马逊、eBay卖家产品图片受影响

http://www.cifnews.com/article/27242

效果演示

自己的网站不方便演示,就使用在考驾照时,报考网站上的一篇新闻做为示例。

防盗链功能

因项目的特殊性,极易被复制至第三方使用。

为避免被滥用,DreamPic有防盗链功能。

打开防盗链功能的话非指定网站使用就会有相关图像提示。

开发背景

因工作和个人需要,一直有使用远程控制的需求,使用过多款远程控制软件。

在Linux下,SSH能解决绝大部分的问题,但Windows是以GUI为核心设计的,而且软件大部分也是基于GUI设计的,所以命令行模式太弱,无法满足需求。

远程控制软件大部分都是基于CS模式设计,每次都要安装个不小的客户端(例如pcAnyWhere等),我希望的是随用随走,这实在是不方便。

而Windows Server自带的远程桌面功能,会生成一套前台和后台的远程桌面,桌面内容不相通,更重要的是远程桌面下不少软件因为权限、驱动等问题无法正常运行。

最终找到一款可以在网页上运行的远程控制软件,完美解决所有问题,用了好多年。可惜因为浏览器升级关系,不再兼容新版浏览器,非常可惜。

使用过多年的境外服务器,有部分是网页控制台可以直接使用远程功能的。Linux下的终端控制台做得很好,但Windows下只见过一次某服务商提供基于VNC的网页远程控制,但是需要安装Java插件且使用体验极差。

HTML5带来了更多的可能性,通过HTML5来实现一个基于浏览器的随用随走、免安装、免插件的远程控制,就是DreamRemote的开发初衷。

剪贴板

在使用里,经常需要把一些数据复制到远程主机,其中剪贴版文字更是特别多,所以做了这个剪贴板复制功能。

刷新速度

极速:10帧/秒,默认:5帧/秒,普通:2帧/秒,稍慢:1.25帧/秒,最慢:1帧/秒。

项目演示

因为项目的特殊性,可以直接对服务器进行控制,不方便在线演示,只提供现场演示。

项目截图