Day 2811 无痕搬家

所谓无痕就是对外毫无变动痕迹,与以前从一个地方搬到另一个地方是两码事。

这次换到GegeHost的香港主机,相比之前Linost的美国主机而言明显访问速度变快了,产生变化的原因不仅是因为地理位置的变化,还因为Linost的主机总是时不时地因为不明原因地被墙,即使加了独立IP似乎也没什么用,虽然不能怪主机商,但体验确实不太好,又正巧GegeHost在搞促销,就搬了。

本次搬家的唯一不同是没有迁移镜像小镇(东方小镇2010年数据镜像),毕竟小镇现在有撒旦管着,有稳定的安家地点,并且之前镜像小镇的访问量也连续数月为0,已经没有存在的必要。

以上。

Day 2759 舞影工作室:东方辉针城 1.00b 简体中文汉化版

Double Dealing Character 1.00b Simplified Chinese Edition Screenshot

程序修改:frydutchman
取用翻译:makoto02、innelysion
数据写入:洛城东华

使用方法:将所有文件解压缩到原版目录下,或将汉化包及BGM包文件放在同一目录下即可。

汉化版修改内容:

  • 对游戏内绝大部分可见文字进行了汉化
  • 对设置程序custom.exe进行汉化,并修正其目标系统使之可在XP下运行
  • 修改游戏数据目录,使录像、截屏、得分记录文件及配置文件均保存在游戏目录下
  • 修正原版游戏针对Vista但会在Windows 7下造成主题被切换到Aero Basic的问题

注意事项:

  • 由于原版程序的限制,游戏目录下必须存在BGM数据包thbgm.dat
    否则在游戏中按下暂停菜单时将会异常退出。
  • 由于与日文版共享得分纪录文件,故在中文版中查看已取得的SpellCard时将显示为乱码,同样的,在日文版中查看中文版的数据同样会显示为乱码。该情况不影响游戏的正常运行,如需修正只需将对应的SpellCard开一次练习模式即可(只需打开,不必打完)
  • 如需迁移日文版的得分记录等数据,请前往以下目录(假设系统安装在C盘、登录用户名为Owner):
    XP:C:\Documents and Settings\Owner\Application Data\ShanghaiAlice\th14
    Vista/7/8:C:\Users(用户)\Owner\AppData\Roaming\ShanghaiAlice\th14
    然后将其中的snapshot目录、replay目录、scoreth14.dat以及th14.cfg复制出来,放到汉化版的目录下即可。

同时特别感谢自家妹子帮忙进行后期测试。

汉化版下载:http://pan.baidu.com/share/link?shareid=3850688399&uk=3355682856
BGM数据:http://pan.baidu.com/share/link?shareid=2060941779&uk=3355682856

Day 2749 解决在安装了Hyper-V角色后无法直接卸载VMware Workstation的问题

VMWare和Hyper-V各有千秋,反正在单位的服务器上Hyper-V表现更好一些,VMWare开一天多之后卡得没法动,大概是所占用的内存被回收掉,需要从页面文件里重新读吧,虽然似乎128GB的内存不该有这个问题。

言归正传,如果先前在系统中安装了VMware Workstation,后来又启用了Hyper-V角色的话,试图卸载VMWare时会遇到This product may not be installed on a computer that has Microsoft HyperV installed(不允许在启用了Microsoft HyperV的计算机上安装Vmware)的错误,这个如果出现在安装的时候还好理解,但是卸载的时候是不是有点搞笑?

搜索之初,到处都是教「先删除HyperV角色,然后卸载VMware,最后重新启用HyperV」的方法,问题是一来VMware已有的虚拟机和HyperV并不冲突,二来服务器重启一次要15分钟简直让人崩溃,最后有个帖子给指了条光明大道:

找到以下文件:
C:\ProgramData\VMware\VMware Workstation\Uninstaller\bootstrap.lua
搜索CheckForMSHyperV(),在前面加上「--」将其注释掉,保存,再次卸载VMWare Workstation即可。

一试就灵。

后续:第二天就把Hyper-V删掉了,因为服务器上装的是Westmere架构的E5处理器,微软官方也有解释(http://support.microsoft.com/kb/981791),由于Westmere架构使用了新的虚拟机管控缓存机制(because Intel Westmere processors have a new Virtual Machine Control Structure(VMCS) caching feature),Hyper-V无法正确使用这一功能,会导致STOP 0x0000001a Memory Management停机错误,而微软对此提供的的Hotfix居然在服务器上装不上(提示「此更新不适用于您的计算机」)。

Day 2735 按下Ctrl+Alt+Shift+V后出现Version对话框

同事发消息来求助,说是一按InDesign的原位粘贴快捷键Alt+Shift+Ctrl+V就冒出一个对话框,长这个样子:

casv_version

 

在接下来的排查中发现这个对话框有以下几个特点:

1、在许多程序中按下Ctrl+Alt+Shift+V都会蹦出来,但资源管理器等系统程序里不会;

2、关掉已知会抢占热键的程序(比如QQ等)并不能解决问题。

3、将InDesign这个原位粘贴快捷键更换为其它组合即恢复正常。

网上没有任何答案,一头雾水地到处搜索。考虑到很多程序里都会弹,估计热键被注册成全局了,但究竟哪个程序的Version是1.0.14.161呢?

Google把一堆IP查询网站的结果给了这串长得很像IP地址的数字,一开始以为什么都搜不到了,后来转了一大圈在最后一页找到这么一个俄文网站:

fact_of_ver1_0_14_161

 

立马回头去问同事让他看任务管理器,果然有这个进程,Kill掉之后原位粘贴恢复正常,再找到百度影音的卸载项卸载,重启,再没发生。

百度你能不那么流氓不?你认为这么长的快捷键谁都按不到吗,还敢注册成全局热键……

我讨厌一些国产软件不是没有原因的。

Day 2691 PHPCMS v9 自导入数据不统计点击数

我还在苦那啥地写网站……

这个网站有不少用自写SQL从外部导入的数据,过程中遇到很多问题,其中一个就是这些自行导入的数据无法统计点击数。经查证得知,PHPCMS v9统计点击数是通过调用名为count的API进行的:

$db = pc_base::load_model('hits_model');
if($_GET['modelid'] && $_GET['id']) {
...
$hitsid = 'c-'.$modelid.'-'.intval($_GET['id']);
$r = get_count($hitsid);
if(!$r) exit;

其中最后一句很关键,意思是如果找不到点击数的记录就直接exit,于是这些可怜的自导入数据就失去了被统计的权利。

解决方法:自己写SQL为没有统计记录的条目们建立记录,可参照如下查询进行写入:

INSERT IGNORE INTO `[$db_prefix]_hits` (`hitsid`) SELECT CONCAT('c-[$modelid]-',`id`) FROM `[$db_prefix]_[$source_model_table]`;

其中的$db_prefix、$modelid、$source_model_table需自行按实际情况进行替换,IGNORE的意思是跳过已有记录。

Day 2687 Motorola Milestone 3 充电指示灯

battd_replace

手机出问题了,重新刷了一遍系统,找ROM的时候看见一个小东西,终于知道原来USB口旁边那个小点不是没用的,而是充电灯,只是MOTO给屏蔽掉了(一说充电异常会亮但没见过),文件据说是Defy上来的,实装后充电时效果图如上(右边亮的是从没用过的MiniHDMI)。

修改方法:将附件中的battd复制到/system/bin,注意备份源文件,并将权限修改为一致的rwxr-xr-x(755)。

推荐修改完毕后:
1、清空/data/battd下的内容(不要直接删除目录);
2、删除/data/system/batterystats.bin;
3、重启手机。

bin文件:battd_from_defy.7z

Day 2682 PHPCMS v9 会员注册总提示【请输入正确的手机号码】

单位要求一周内写出一个略有规模的网站来,从头写又要防范太多问题是要死人的,于是用PHPCMS v9垫底。

在重写会员注册模板时出现一个问题:手机号(字段名mobile)原则上是可选项,但无论是否POST上去mobile值,都提示【请输入正确的手机号码】。百度没有任何结果(请别吐槽,Google搜索大陆only的东西真的不大行)只好自己想办法,最后在modules\member\index.php的第115行发现问题:

if(isset($model_field_cache['mobile']) && $model_field_cache['mobile']['disabled']==0)

这一行的上方写的是【查看当前模型是否开启了短信验证功能】,一开始被这行字误导,根本没有向下看,后来逐行脑内运行的时候才发觉这里有问题,如果当前模型有mobile字段且没有禁用,那么前台没有提交info[mobile]时,下面的代码就会出问题:

$mobile = $_POST['info']['mobile'];
if(!preg_match('/^1([0-9]{10})/',$mobile)) showmessage(L('input_right_mobile'));

前台就算提交了input name为info[mobile]的值也没有用,不知道是不是我的理解有误([‘info’][‘mobile’]看起来应该不是info[mobile]),不过PC官方论坛上有人用原始版本关闭短信验证也会出现这个问题,所以更像是原版程序的纰漏。

不知道PC v9当时设计时为什么把短信验证是否开启用这两个条件(模型mobile字段是否存在并且没有禁用)作为判断条件?不应该是调取后台【会员模块配置】的【手机强制验证方式】的值嘛?

修改方法:对于不需要短信验证的站点,将判断条件随便改一下(比如…[‘disabled’]改成 != 0)即可。目前时间紧,没有时间研究真正应该使用的条件,先这样。

Day 2619 洛奇割羊毛新方法:用砸的

mabinogi_wool_collecting_by_hunting4月4日更新后,新开了收集彩蛋的活动,持有篮子追击兔子即可获取彩蛋。

该篮子归属剑类别,所以在剑精通未满的人物上会显示剑精通获得经验,但YY上有人发现了新用途:剪羊毛!

而且剪羊毛的动作和打铁一样!SE也是打铁的声音!可怜的羊……

于是去查了一下彩蛋篮和铁匠榔头的属性:

铁匠榔头:

/equip/righthand/tool/blacksmith/blunt/steel/hammer/02/weapon/Blacksmith_Hammer/smith_repairable/not_ego/

彩蛋篮子:

/equip/righthand/weapon/edged/steel/blade/no_scale/not_dropable/destroyable/not_dyeable/not_enchantable/expiring/not_holyfire/onlybaseattack/misc_repairable/

二者重合的属性有equip(装备)、righthand(装备到右手)、steel(铁的),并无其它交集,猜测彩蛋篮子可以采集是出于weapon(武器)属性,而敲打声来自steel(铁的),至于挥舞的动作,如果打铁属于采集大类下的动作,那么也可以用steel解释得通。