再次出现Win7无法无线上网的问题

今天老婆的笔记本突然无法无线上网,无线网卡显示有限的访问权限,这让我想起了上次遇到的问题。登录到路由器EchoLife HG520s的无线MAC过滤,把出了我和老婆的MAC地址保留外,其它都拒绝。问题解决。
具体操作如下:
1、先到DOS界面下,用Ipconfig -all|more查询本机的MAC地址(Physical Address)。

2、登录路由器无线MAC过滤页面,设置只允许通过的MAC地址。

Flash 3D赶超WebGL

最近感觉WebGL发展有些迟缓和延阻,虽然Opera也加入支持WebGL的浏览器行列,但是有些各自为战的事态。不同的浏览器对WebGL的BUG不断,支持也不一,性能上也没有太大提升。反观Flash 3D,Molehill 3D加速API的推出,让Flash在Web3D的舞台上风光灿烂,优越的3D性能,没有任何跨平台、跨浏览器的问题。这些都足以让我对Flash 3D表示乐观。

虽然Molehill的shader支持还不完善,Flash也没有像WebGL一样,和OpenGL更亲近,但我的感觉是Flash3D发展势头更猛,比WebGL给力。从3D性能我的测试来看,Flash在速度性能上优势明显。我看好Flash 3D。

Javascript Eval在Firefox3.6.16中无效

最近重装系统,也升级Firefox3.6.16,到刚发现Javascript调用 eval居然出错l,找不到eval返回的对象。

例如:obj=eval(“document.form.item_”+i);

使用DOM对象则一切正常:document.form[i]

在网上搜索了一下,发现只有Firefox有这个问题。但是没有找到官方的说明。Mozilla确实鼓励大家不要使用Eval,特别是在json的使用中。

但是不清楚,Firefox是什么时候禁用eval的。

收到一个莫名的投诉电话

首先声明:我的博客上的电话(020-87222523)只做网站业务联系之用,如果你遇到到任何其它和此电话相关的问题,均与本站和本人无关。

今天有个东莞的人(186769260**)就用手机电话过来,向我投诉到:“他在百度做推广,发现有人恶意点击他的广告。通过IP地址来源分析,发现那个IP地址的源头是我的电话。并且警告我不要恶意点击他的广告,否则会采取相关行动。”

我想说的是,这个电话确实有上网,但是有点常识的人都知道ADSL上网的IP地址是动态随机分配的,单单从一个IP地址和一个电话号码挂钩是很可笑。别以为在百度的推广后台就可以明辨秋毫,自己被人忽悠了,还拿着鸡毛当令箭,到处发傻飙。

最后,我想说的是,我对任何百度推广的广告都毫无兴趣,更不会恶意捉弄别人,才不会做出这种无聊之事。

 

从Windows7回到XP

前段时间我困扰于Windows7屏幕僵死的问题,后来通过不断提高分页文件大小(C盘15个G)来暂时缓解时常死机的问题。今天我终于沉不住气,决定给电脑挤出一个分区,装XP系统,以防不测。最终,我在D盘挖出了20个G的空间,装上了XP SP3,并且用Asus的XP驱动盘升级了一下BIOS。谁知装好后才发现windows7已经无法登录,系统自动登录到XP系统。好在有BCDautofix v1.0.5(在xp下运行BCDautofix v1.0.5直接还原原来win7的引导项),让我轻松回到windows7系统。

但是最让我惊讶想不到的是,windows7开始提示我用了一年多的系统是盗版。开始我还有点不甘心,试了试导入其它的Asus OEM Key,也通过电话激活来尝试,但是均告失败。就在我有些迷茫,犹豫不决的的时候,突然觉得干嘛那么在乎windows7这个系统,为了一个不停死机的系统浪费时间值得啊?

索性放弃Windows7,回到XP,远离IE9,顺便也可以多玩玩类Unix的免费操作系统。何乐而不为啊~毕竟,对于Windows7,确实没有什么新鲜感。以前用Windows7为了避免死机,我关掉了所有特效,仿佛回到win98;现在用XP,我可以效果全开,胜似win7,而且不用担心死机,整个C盘不到5G。轻松噻~!

VPS下IIS6网站的MYSQL无法自动启动的问题

今天发现VPS下的IIS6网站无法连接Mysql数据库,查看系统服务,Mysql服务并没有启动,奇怪的是在属性下面无法修改Mysql服务器的状态或者重启Mysql。解决办法:

  • 停止IIS6下的网站
  • 利用Mysql的服务器配置向导重新配置即可
    另外,如何让VPS重启以后自动启动IIS6,可以参考下面的bat脚本:

需要两个bat脚本,放在C盘根目录即可:

  • reboot.bat
    @echo off
    shutdown -r -t 60
  • rebootIIS.bat
    @echo off
    rem net stop w3svc
    rem net stop iisadmin /yes
    net start iisadmin
    net start w3svc
    最后按照各自重启服务器的需求添加到任务计划即可。

再次去香港买奶粉

在网上买了几个月的奶粉后,先后发现了两次奶粉的质量问题,发现固力果和明治奶粉的颗粒感都很强,不像以前在香港买的奶粉那么细和味道纯正。前者更有受潮的迹象。越想越怕,考虑再去香港购买奶粉。加上最近日本遭受大地震、大海啸的袭击,网上疯传日本奶粉断销,卖家疯狂囤货的消息。我最终还是决定了去香港看看情况。

到了香港以后,发现惠康和万宁超市里面奶粉供给并没有出现日本奶粉断货的现象,倒是我想买的牛栏奶粉3期在超市里面找不到,万宁看了三家都断货。其他1期,2期,4期都还有货。最后不得不去药店里找到。港铁车厢里面的电视屏幕上也在提示:香港并没有出现所谓的日本奶粉断货的现象。

mysql_real_escape_string在PHP5.2.9上的问题

按理说,mysql_escape_string和mysql_real_escape_string一样,除了mysql_real_escape_string接受的是一个连接句柄并根据当前字符集转移字符串。mysql_escape_string() 并不接受连接参数,也不管当前字符集设定。

可是今天却被我发现了问题,测试环境如下:

  • Apache/2.0.63 (Unix)
  • MySQL 客户端版本: 5.0.77
  • PHP5.2.9
  • MySQL 字符集: UTF-8 Unicode (utf8)
    在转义一个中文单词“碧桂园”的时候发现被转义成乱码,倒数第二节字符后被插入5c,成了著名的5c漏洞(单引号转义漏洞:0xbf27 addslashes 转换后变为 0xbf5c2)。连接句柄和数据库都是utf8码,看不出有任何问题。换个环境PHP5.2.17并没有发现问题。
    碧桂园
    有趣的是PHP5.2.9的时候用mysql_escape_string却没有出现问题。看来要注意检测中文字符后的5c转义问题。

安装Molehill和Away3D

今天终于有空配置Flash Pro CS5下的Molehill和Away3D环境,准备开始玩玩Molehill 3D. 我参考的教程有下面两个:

然后是设置,在CS5的SET->PREFERENCES选择Actionscript,点击3.0的设置,修改SDK Path为flex_sdk_4.5.0.17689的安装目录,library path里面增加$(FlexSDK)/frameworks/libs。

接着从blog.kaourantin.net下载teapot.zip,里面有个目录叫Copy Files Inside Folder To Your Adobe Flash CS5 installation,就是复制里面的文件和目录到Flash Pro CS5的安装配置目录下,如:C:Program FilesAdobeAdobe Flash CS5CommonConfiguration。

最后,在CS5里面打开teapot.fla,在publish setting里面的flash板块选择Flash Player 11,编译即可。

注意:编译后出现如下错误:VerifyError: Error #1014: 无法找到类 flash.display3D::Context3D。
不用惊慌,其实编译已经完成,只不过预览的player版本不够。用装好Incubator的浏览器即正常打开~慢慢享受吧~

给编辑器CKEditor3.5.2增加图片上传的功能

CKEditor是一款很适合PHP后台系统使用的HTML编辑器,功能强大,配置方便。唯独不足是缺少对图片上传的支持。CKFinder虽然是个解决方案,但是太过复杂,CKEditor的版本已经发展到3.5.2,网上很多解决办法还没更上,3.5.2的解决办法不太好找。考虑到ckeditor的复杂性,觉得用valums的ajax upload来配合最合适。

首先在ckeditor的pluginsimagedialodsimage.js里进行编辑,找到
children:[{id:’txtUrl’,type:’text’,label:b.lang.common.url
在后面增加内容变成:
b.lang.common.url+” <div id=”file-uploader” style=”display:inline;”>上传图片</div>”

然后在编辑器所在页面增加:
<script src=”fileuploader.js” type=”text/javascript”></script>
<link href=”fileuploader.css” rel=”stylesheet” type=”text/css” />
<script>
function createUploader(){
var uploader = new qq.FileUploader({
element: document.getElementById(‘file-uploader’),
action: ‘ajax_upload.php’,
debug: false
});
}
</script>

最后修改fileuploader.js,找到:

var item = this._getItemByFileId(id);
qq.remove(this._find(item, ‘cancel’));
qq.remove(this._find(item, ‘spinner’));
if (result.success){

将后面的内容替换成:

if (result.success){

if(document.getElementById(‘cke_109_textInput’)){
document.getElementById(‘cke_109_textInput’).value=result.img;
}

}

注意cke_109_textInput是源文件图片路径框的ID号。

iOS开发与Flash开发

最近花了点时间看了看网易的斯坦福大学iPhone开发公开课程,学习了一下Objective-c的开发。虽说Objective-c是完全基于C语言的超集,但是语法表达方式还是和C很不同的。方括号的表达方式让人印象深刻,但作为动态语言,学习的时候觉得和学习Flash开发没什么两样,只不过一个是XCode,一个是CS5。一个有巨大的App市场,一个有覆盖率很广的跨操作系统的占有率。

其实这两种开发我都是很有兴趣,但是考虑到开发的成本,苹果笔记本加九十九美元每年的开发费用,和Flash比起来,Flash可以说是免费开发的,不会有什么障碍。对于我这种新手来说,iOS开发的成本显得特别高昂。所以也加大了开发的风险,这不由得让我更加关注Flash的开发和应用。

今天还有个FLash 3D的好消息,就是基于Molehill 3D API的Pixel Bender 3D语言的推出,拉近了Flash在三维应用方面与iOS的差距。虽然和成熟的iOS App市场比,Flash还有很多不足和不完善的地方。但是我相信,这种差距早晚会被Flash所赶超。因为我自始自终还是看好跨平台和跨操作系统的应用。

当然现在iOS的开发如此火爆,iOS确实抢尽了市场的风头。新手对它的了解还是不可或缺的。

 

Windows7屏幕僵死的问题

前段时间工作的笔记本Windows7老是死机,很容易屏幕僵死,鼠标也被冻住毫无反应。只有强按电源键重启,很容易造成磁盘错误。本来以为是光电鼠标接触的问题,换回无线鼠标貌似问题解决,但是好景不长,很快问题依旧,但是死机的频率有所降低,不过出现了一个新的问题,系统会不停的短暂死机,就像一段动画被断断续续的播放。后来以为是系统的缺陷,更新到最新的升级包,安装软件也依次测试没有发现特别明显的问题。最后在高级系统属性里面视觉效果改为最佳性能还是仍然死机。就在最后毫无头绪之时我试着增加了一下虚拟内存里分页文件的大小,并且chkdsk /f系统盘,排除磁盘错误。貌似问题解决,经过这两天的实机观察,暂时没有死机的迹象。

Windows7下无法编辑注册表的问题

前段时间为了帮朋友找回忘记的密码,装过一个找回Windows星号密码的软件。今天Win7升级IE9后发现,IE的默认主页被恶意修改了。

本以为问题不大,查找注册表,发现注册表HKEY_USERS….SoftwareMicrosoftInternet ExplorerMain的Start Page被修改,谁知修改成about:blank的时候报错说没有权限编辑。

最终的解决办法如下:

用管理员身份运行C:Windowsregedit.exe,右键查看Main的权限,发现用户名是Everyone,只有读取的权限。点击高级,查看所有者,下面有个选项是替换子容器和对象的所有者。勾选此选项,确定后回到Everyone的权限设置,然后再勾选完全控制。修改成功,不再有权限限制。

不明白的是,IE都9.0了,主页还是那么容易被修改,难怪用IE的人越来越少。Windows的注册表机制还真是垃圾,可以一直被人玩弄到win7,也苦了我们这些普通的windows使用者。

体验租车

常在电梯里看见租车的广告,一个是租车网,还有一个是E嗨。趁着过年回家的机会决定租辆车来体验体验。在网上对比了两个网站,觉得租车网稍微实惠一些。但是考虑到网上选车的不确定性,我并没有在网上预订,只是注册了个账号。

到了目标城市后,很快联系到一个租车网的门店,得知所剩的车辆并不是太多,看来春节租车很是火爆。在400电话下单后,终于如愿以偿的拿到一辆雪弗莱,配上GPS导航仪和相关保险,出车的速度还挺快,唯一不足是车很脏,好在他们愿意免费清洗。

终于上了路,原来租车这么简单和容易,这应该是一门很好的生意,联想的眼光不错啊~另外开车回家过年的感觉的确很爽!当然一定要注意安全。

开发ShopEx Widget版块

根据客户的要求,需要给ShopEx商城定制一个产品展示橱窗的版块,这是我第一次做ShopEx的Widget版块开发,感觉费了点周章。不过总算开发成功,说说我的感受。

首先要进行ShopEx的二次开发,需要掌握一些额外的技术:

  1. MooTools Javascript脚本库
  2. PHP Smarty模板技术
  3. ShopEx的Widget和Theme的架构原理、目录结构
    Widget文件:_config.html default.html widgest.php widget_cfg_yourwidget.php widget_cfg_yourwidget.php
    Theme文件:index.html theme.xml info.xml
    系统模板:core/shop/view和controller
    其次需要认识ShopEx模板和Widget版块之间的关系。ShopEx模板有个主要特点是模板文件主要勾勒网页框架,而大部分细节的模板部分都放到Widget内部,这就是所谓的版块。

另外再加上一些小窍门,Widget版块的开发可以说是得心应手,水到渠成啦~
例如:

快速连接数据库:$db = &$this->system->database();

Mootools:
$$(‘.class’).addEvent(‘click’, function(){})
$(this).getParent().getStyle(‘height’).toInt()
$(this).getFirst(“div”)
$(this).innerHTML=””
$$(‘.link’).each(function(e){})

不过在我开发的过程中,调试模板花了一些时间,没有错误提示很难追踪错误源头。把}>漏掉了一个>还真不好找。

还有一个兼容性问题,Mootools在Ie9 Beta下,return document.id(this.createElement(a)).set(b)出现这样的错误“script5022: exception thrown and not caught”,但是在IE9的兼容模式下一切正常。

真假固力果奶粉?

今早老婆新开了一罐从网上买的固力果奶粉,发现这一罐和其它罐有些不同,和之前开的那罐比,然后又新开了一罐,明显这罐奶粉呈颗粒状,味道偏淡,隐约还有一些过期油味。想想有些心惊,三聚氰胺的阴影还残留在脑海,难道被我们撞上不成?仔细观察,发现奶粉罐底部有个撞凹的部分,怀疑是罐体变形漏气导致奶粉变质。仔细品尝了一下其它罐装奶粉,又发现并无异常。为了保险起见,还是决定再去香港买些原装的奶粉回来做个对比。

看来以后买奶粉要更加小心,奶粉还真是心里的一道坎啊!

ShopEx的模板

ShopEx是国内比较成熟的网上商城管理系统,用它的人也很多,ShopEx模板的定制自然就是一门生意。虽然ShopEx并不是完全开源,但是它的模板的灵活性和强大的可视化编辑功能足以满足用户对商城系统的各种需求。记得客户问我觉得ShopEx和Ecshop有什么区别,他给我的答案是“ShopEx后台很好用,也很容易用”。这也可以说是ShopEx的最大优势。

ShopEx4.8.5的模板主要保存在themes目录下,通过theme.xml来统筹可视化模板。和模板相关的挂件并没有放在themes里面,而是独立放在plugins的widgets内容。定制模板的过程很快,根本不需要写程序,不像zencart的模板定制,涉及到很多程序模块,开发效率来说高很多。一套基本的ShopEx的模板2-3天完全可以搞定。

Ucenter的终极通信失败

今天帮客户整合ShopEx和Ecshop到discuz x1.5,发现全新的discuz x1.5安装后,Ucenter仍然出现通信失败的错误。经过排查,排除掉IP和UC_KEY不吻合的问题。分析uc_server的function dfopen发现问题来自fsockopen,返回的是“HTTP 错误 403 - 禁止访问”。原来客户的虚拟主机不支持socke绑定,所以会出现host与实际ip不一致的情况。这可以说是uc_server和uc_client的终极BUG,这种认证方式在无法绑定socket或fsockopen被禁止的主机下完全无效。

如果你还在为你的通信失败伤透脑筋,奉劝你换个hosting试一试。否则只有泪奔的命!

再探香港奶粉

今天有空去香港,顺便又带了几罐奶粉回来。原本以为还有每人六罐奶粉的限制,出发的时候也没有带箱子来装奶粉。但是到了下午7点半回来进关的时候,一切出乎意料的简单,根本无人过问,看来选择合适的时间从香港带奶粉,带iPad,带什么都还是可以的。不过想想自己毕竟来回香港的次数不多,这个结论不具统计意义,还是以前的老话,真的看运气啊。

另外,关于奶粉,由于儿子喝的惠氏火气比较大,这段时间已经给儿子换过明治、雪印、固力果、美素和牛栏。发现去火效果比较好,同时根据大便的干燥程度,换喝这几种不同的奶粉。

这段时间也网购了几罐奶粉,价格比自己去香港还便宜。按照卖家的说法他们是用批发价从香港和德国等地进得货。儿子喝过后感觉还行,考虑到时间和价钱因素,我们也打算以后还是主要网购国外奶粉。以后不用再拖着大箱子,拖奶逛香港啦~

Windows7下面为Apache2.2增加OpenSSL支持

今天需要在https下测试程序,发现现在给本地Apache2.2增加OpenSSL支持已经变得非常容易,安装过程如下:

  1. 下载安装Win32OpenSSL
    包括:Win32 OpenSSL v1.0.0c和Visual C++ 2008 Redistributables,安装在C:/OpenSSL-Win32/目录
  2. 复制C:/OpenSSL-Win32/bin下libeay32.dll和ssleay32.dll到C:/WINDOWS/system32
  3. 进入命令行模式,生成crt证书
    C:OpenSSL-Win32bin>openssl req -config openssl.cfg -new -out zhaiduo.csr -keyout zhaiduo.pem
    C:OpenSSL-Win32bin>openssl rsa -in zhaiduo.pem -out zhaiduo.key
    C:OpenSSL-Win32bin>openssl x509 -in zhaiduo.csr -out zhaiduo.crt -req -signkey zhaiduo.key -days 3650
  4. 给Apache增加mod_ssl
    打开LoadModule ssl_module modules/mod_ssl.so
    打开Include conf/extra/httpd-ssl.conf
  5. 修改http-ssl.conf配置
    SSLCertificateFile “C:/OpenSSL-Win32/bin/server.crt”
    SSLCertificateKeyFile “C:/OpenSSL-Win32/bin/server.key”
  6. 然后重启apache,打开https://localhost/,Firefox会提示是否接受不安全的证书,导入即可。简单吧~
    另外如果出现403 FOrbidden的错误,你可以查看一下error.log,如果是
    client denied by server configuration 你需要给< VirtualHost default:443 >增加一个Directory

    < Directory “https_dir” >
    AllowOverride None
    Order allow,deny
    allow from all
    < /Directory >

如果是rsa server certificate commonname does not match server name,可以检查一下证书里面的certificate commonname是否与VirtualHost的ServerName一致。

IE9下文字阴影问题

今天在Win7下用IE9 beta看博客的时候发现文字阴影效果很难看,和以前IE8修正CSS阴影效果前一样。

检查发现FILTER: Shadow是罪魁祸首,去掉好看很多,透明png也正常,但是阴影效果没有了,因为IE对text-shadow都不给力。

值得注意的一个细节是中文的阴影看起来没有问题,只是字母的阴影效果很难看。

可惜的是没有找到完美的解决办法,介于IE下难看的字体阴影,我决定加大颜色为#666的字体颜色对比度,改为#b0b0b0,看起来好了一些。

郁闷的Away3D未定义linestyle问题

好久没有玩过Away3D,今天下载了3.6 for FP10,最简单的代码在Flash CS4中却总是提示未定义方法linestyle这样的错误:

Error 1061: call to a possibly undefined method linestyle through a reference with static type graphics

貌似是找不到flash.display.Graphics的问题,我又换了FP9的版本一样的错误,用低版本2.4也是一样的错误。有些无语了。

最后试着用了用Away3D.swc,居然问题解决。具体原因还是不明,看来我的Flash丢生啦……

事情的起因是源于看到苹果的App应用Angry Birds红透移动互联网,让我又重新燃起了对Box2D的好奇。甚至也想试试用Away3D来测试Box2D,参考的是clockmaker的作品。

唉,年纪大了,脑力有些不给力啊。

关于中国电信的植入性广告

最近中国电信的植入性广告越来越他妈变态,每打开一个一个网页,都会变插入一段广告代码:
中国电信的植入性广告
虽然我已经用防火墙屏蔽了电信的IP,但是网页里面被嵌入中国电信代码,是没有办法被清除的。真他妈的操蛋!

更让人气愤的是,电话给10000号电信客户的回答:

我叉“为什么我上网每个网页都会被插入你们的广告?”
“广告上有个叉,关掉就可以了”,
我叉“我每个月交两百多,还要每个页面给你们关广告?”
“那么先生,请问你看见的广告是亚运广告吗?”
“……”
….我叉叉叉….SOB

后续10000回访:
“先生你真的不需要我们电信提供的优惠信息广告吗?”
“当然”
“那请提供机主姓名和身份证,我们为你办理停止弹出广告申请”
……

Dos下的ghost备份

虽然dos已经很少人用,但是并不多余;虽然ghost已经有了14.0的版本,但是很不爽它在系统长期驻存。虽然现在有很多高级备份方法,但是还是被巨大的备份文件所吓到。最终还是比较恋旧,而且不是我一个人喜欢~执着于dos来ghost备份系统的方案。存档记录一下,看看这种系统备份方法还能用多久。
这种系统方案需要以下两个条件:

  • 一个20G的FAT32分区
    如果要备份的C盘超过30G,超过FAT32分区支持的最大空间,也可以把备份空间转成NTFS格式。dos下运行dos4ntfs即可访问NTFS分区。
  • 两个软件HS-GHOST v8.2和vFloppy,前者是dos下ghost系统用,后者虚拟软驱用于启动系统进入DOS。
    当然XP的光盘版WIN PE也很好用,也可以用它进入PE,直接用它里面的ghost还原系统。
    备份系统过程:

创建20G的FAT32分区->把HS-GHOST v8.2和vFloppy复制到fat32分区,安装vfloopy,重启系统->选择vFloopy进入dos->进入ghost.exe->

local->partition->to image

还原系统过程差不多,只是在ghost的时候选择local->partition->from image就可以了。

haXe常见问题

  1. 安装:cl.exe找不到
    添加环境变量PATH: c:Program FilesMicrosoft Visual Studio 9.0VCinclude;c:Program FilesMicrosoft Visual Studio 9.0VClib;c:Program FilesMicrosoft Visual Studio 9.0VCbin;c:Program FilesMicrosoft Visual Studio 9.0Common7IDE;c:Program FilesMicrosoft SDKsWindowsv6.0ALib;
  2. C++编译:string.h找不到
    在c:Program FilesMicrosoft Visual Studio 9.0VC下创建 子目录,在当前目录下编译
  3. swhx: haxe.#Http has no field request
    Because request has been renamed requestUrl, according to haxe’s change log - making that name change in Plugin.hx to fix it.
  4. 运行app.n
    D:Adamhaxeswhx>”c:motion-twinhaxelibswhx1,2,0toolsswhx”
  5. swhx初始化黑屏的问题?
    A quick fix for this issue is to (in code) immediately maximize then unmaximize the window:
    window.visible = true;
    // enter the system event loop (will exit when window is closed)
    var old:Bool = window.maximized;
    window.maximized = false;
    window.maximized = true;
    window.maximized = old;
  6. Distributing a Screenweaver application?
    http://screenweaver.org/doku.php?id=tutorials:distribution
  7. hxcpp: Class not found : nme.Manager? class not found… etc?
    haxe stage can’t be accessed until init is called? Clear neash, neash is deprecated.Compile:
    -cp “C:Motion-Twinhaxelibhxcpp2,06,1include”
    -lib nme
    -lib hxcpp
    –remap flash:nme
    –remap neko:cpp
    -cpp cpp

    Main:
    import nme.Lib;
    import nme….

    public static function main() {
    #if flash
    new Main();
    #else
    Lib.create(function(){new Main();},320,480,60,0xccccff,(1*Lib.HARDWARE) | Lib.RESIZABLE);
    #end
    }

  8. install?

    Get haxe & neko: Visit haxe.org

    Get hxcpp: haxelib install hxcpp

    Get nme: haxelib install nme

  9. 常用命令
    neko run.n
    haxe compile.hxml
    haxelib list
    haxelib install feffect

    > For NME2, you can do a similar thing, and point the dev version at:
    >
    > haxelib dev nme “C:Developmenthaxenekonmeversion2”
    >
    > you will probably want to checkout the sdl-static libraries into your
    > c:Development path too, so the relative paths work.
    >
    > You will need to have an existing haxelib version of the code before you
    > can create a dev version.
    

Discuz搜索页面空白的问题

Discuz论坛换服务器后,客户报告搜索页面不法使用,一片空白。由于其他服务一切正常,没有明显错误迹象也没有任何改动。也没有任何错误提示,于是不得不从global.func.php和template.func.php进行追踪,发现最后问题出在function parse_template的preg_replace上,这才恍然大悟原来是曾经遇到过的问题,也就是preg_replace被pcre.backtrack_limit限制的问题,直接修改php.ini里面pcre.backtrack_limit,增大数额,重启服务器,删除旧的缓存文件1_search.tpl.php,问题解决。

制作手机播放的3GP视频

儿子大了换尿片也不容易,只有把手机上的视频拿给他看,他才老实点。可是手机上的3GP视频就那一部,看久了,儿子又开始不配合啦。唯有在网上找视频转到手机了给他看。刚开始觉得不会有什么问题,手机支持mp4和3GP格式,于是决定先到苹果的预告片站下载mp4,可是找了半天没有太适合儿子看的动画,而且网速也很慢。凑合着下了一部Toy Story 3,虽然很高清,可是放传入手机看不了。最后决定翻墙去youtube下视频,因为那里视频多也有很多高清的。可是问题就来了,youtube一般是FLV格式,我还需要准备软件把FLV转成MP4。一口气下载了几款FLV转MP4的软件,终于转成了MP4,可是发现MP4文件很大,而且还是无法播放。又试着装了几款3GP转换软件,可是大部分是试用版,要不是有版权字符就是只能转换前几分钟。不过3GP软件转换的3GP确实可以在手机上播放了,虽然有版权字符,视频也被压缩的很小而变得模糊不清。这才恍悟可能是手机不支持太大尺寸的视频。于是最终锁定320x240的尺寸,编码用H.263格式。3GP视频的转换过程也被确定下来:

youtube FLV -> mp4 -> 3GP ->手机

虽然过程繁复了一些,不过效果不错,视频很清晰。只得说一下的是,3GP的转换软件不好找,我找了不下十种,国外国内的,甚至电脑被装上恶意软件,代价不小。下图是我用的软件,值得推荐。

Zencart的模板

Zencart网站内容管理系统是国内很多外贸公司做外贸网站的首选CMS,也是国外很成熟的电子商务网站系统。最近学习了一下Zencart的模板技术,帮人定制Zencart的电子商务网站模板。整体感觉Zencart在电子商务流程上很成熟,模板功能也是非常强大,有点PHP经验的人很容易上手。

近观Zencart模板其主要优点是:

  • 上手容易,门槛不高
  • 模板内容和程序结合,方便嵌套调用
  • Override的模板重载,实现在不影响程序升级的情况下定制模板
    主要缺点在于:

  • 网页前端的修改上太过繁琐,没不太直观,没有效率

  • 模板保存目录太多,不方便管理和迁移,最好有个工具可以方便导入导出不同的模板
    模板按功能来分可以分为四类:
  1. 自动装载类:可以存放自定义的内容,而且完全独立于模板,并且自动装载。
  2. 通用模板类:可以理解为常规的页面模板
  3. 语言包类:支持不同语言的模板
  4. 模块类:用于实现模板的模块程序定制
    总的来说Zencart模板是一块很实用的面向coder的成熟的网站模板系统。不过个人定制起来开发效率不高,适合做精站,慢慢优化。

数据库编码导致discuz无法登录和注册

昨天帮客户买了VPS迁移网站。本来想着一会的的功夫,没想到倒也折腾了很久。从一开始备份网站程序、数据库都很顺利,到下单VPS,构建FTP server和IIS6的PHP+Mysql环境,似乎一切顺风顺水。可是等到网站恢复的时候,却发现discuz论坛的无登录和注册,验证码始终报错。

本以为是config.inc.php里UC_KEY和UCenter不对,登录Uc_server重新生成新的KEY后,发现通信成功,但是问题依旧。又开始怀疑是不是程序有问题,于是从logging.php一直追踪到uc_client的control->user->onlogin,这才发现还是方向不对。

考虑到旧的数据库是4.0,新的数据库是5.0。会不会导入数据的时候出错?万万没想到恰恰是数据库的问题,让我重第一步就犯下了致命错误。我忽略了一个细节,旧的服务器数据库编码默认是latin1,而新的utf-8编码。由于编码的不同,table的字段长度会发生变化,例如:

latin1: ip varchar(15) -> utf8: ip varchar(5)
latin1: charset varchar(8) -> utf8: charset varchar(2)
这种毁灭性的变化,不但让数据添加有问题,表格本身也千疮百孔,无法修改。以至于出现了discuz无法正常登陆的诡异现象。其实之前重新生成UC_KEY的时候就发现了一个现象,IP地址保存后变成了5位:216.1,但是当时没有特别在意这个问题。这是一个教训。

Discuz7.2数据库莫名错误

客户反映Discuz论坛无法打开,经查看发现多个表格损坏和丢失

#29 - File ‘./cdb_adminsessions.MYD’ not found (Errcode: 2)

#1017 - Can’t find file: ‘cdb_bbcodes’ (errno: 2)

#29 - File ‘./cdb_threadtypes.MYD’ not found (Errcode: 2)
cdb_forumfields,cdb_tasks,cdb_threadtags and cdb_typeoptions dosn’t exist
按理说论坛访问量不大,也没有发生异常的事件,数据库表格损坏和丢失的可能性极低,目前尚不清楚是黑客原因还是空间的问题。
根据upgrade13.php升级程序的内容找回丢失和损坏的表格,一切恢复正常,好在主要的表格没有丢失和顺坏。