Pages

Sunday, December 30, 2012

VS2012升级Update1后Help报错解决方法

安装VS2012后,修改了Local store path。之后更新了Update1,再打开Help,报错:
A content file required by the Help Viewer is missing or has been corrupted.
搜索后发现以下解决方法:
编辑注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Help\v2.0\Catalogs\VisualStudio11
键值LocationPath被复原了,导致Help找不到catalog文件,把这个路径修改回正确的路径。

Wednesday, December 19, 2012

邮件发贴

测试一下邮件发贴。
向校长致敬。互联网的未来属于精通网络底层协议和编程技术的少数技术宅。向此目标而奋斗。

Wednesday, September 12, 2012

9月12日,索尼哥逆天了

盗官方图一张

几天前,屋脊开始流传全副黑卡RX1。谍照毫无PS痕迹,但是还是让人无法相信。今年五月刚刚发布了1寸底的RX100,在屋脊好评如潮。按照传统厂的策略,绝对没有如此大跃进的可能。然而今天RX1如期而至。只能感慨,索尼的规则就是不按规矩出牌。

虽然定价高达$2799,加上定焦不可换镜头,RX1注定是小众中的小众,拥有者不会太多。但RX1对整个影像市场格局的影响绝对超过了产品本身。从今天屋脊各论坛无一例外的都在热议RX1可以看出。

索尼哥给了大家两个信号:

一、全副即将全面普及,趋势在加速。DC已经是全副,Alpha单电也已经是全副了,奶昔全副也就是明年的事情。没有全副技术的要小心了。NC两家坐拥全副单反,暂时无忧,但是其他几家就难受了。最悲催的应该是P家了。别人家DC都是FF的了,自家的旗舰单反还是APS-C。看样子今年全副又是没戏。P家的归属也许就是放弃单反,专注于645中副市场中去了。而奥巴、松下M4/3后面的日子估计比较难受了。虽然和APS-C比,M43有不少优势,但是一旦变成M4/3与全副的对抗,则劣势就明显了。

二、单电要革单反的命。本次发布的机器都拥有CMOS整合相位对焦技术,单反对焦能力的优势即将消失。那么只有OVF与EVF的问题了。如果索尼能继而解决了EVF的缺陷,单反的消失也指日可待了。

回想上个月去北京,不小心进了大悦城索尼自营店。感叹索尼能拿的出手的东西已经不多了,黑卡RX100算一个,头戴3D视频算一个,其他的真没什么拿的出手的了。虽然摆了一堆A77和奶昔,但是和CN比毫无吸引力,一堆笔记本也无法和旁边的水果相提并论。今天RX1的发布算是逆天了(与之相比,A99都没人关注了)。

感谢索尼的不按常理出牌,加上今年尼康对感动牌的逆袭,明年的竞争会跟精彩。拭目以待。




Tuesday, June 26, 2012

VirtualBox+Oracle 11gR2 RAC一点心得

这两天在做高可用测试方案,其实是拿了别人以前的案例在改。一个用例实在搞不明白,是关于在RAC节点上运行alter system suspend的效果。由于没有可用的RAC环境可以试(就算有也不太敢玩),只好用虚拟机自己建一个做试验了。经过一个休息日和两个早上的努力,终于成功安装。下面记录一些注意事项。

安装手册

如果不熟悉的话,RAC安装还是挺复杂的,一个好的安装手册是必须的。我先找了官方的文档,写的太罗嗦,看到最后没心思细看了,遂搜了一篇中文文档,最后发现是翻译的ORACLE-BASE的这篇文章:
http://www.oracle-base.com/articles/11g/oracle-db-11gr2-rac-installation-on-oel5-using-virtualbox.php
看来以后装Oracle直接去ORACLE-BASE就好。

操作系统

RHEL兼容性好,但是不容易下到,也无法更新。用甲骨文自家的Oracle Linux就方便多了。首先兼容性没问题,且免费下载,更有免费的更新源。目前Oracle的官网不允许中国IP下载,我是用迅雷拖的,后来发现有公开的mirror,见此文:
https://wikis.oracle.com/display/oraclelinux/Downloading+Oracle+Linux

不建议用最新的6系列,没有asm相关包,我用的是5.8的版本以及uek内核。装完之后,可增加Oracle的公开免费YUM源,见:
http://public-yum.oracle.com/
更新到最新的uek内核也没有问题。

Oracle介质

操作系统版本很重要,Oracle介质的版本也很重要。及时是5.8,由于用了uek内核,也需要比较新的版本。
曾经也有Oracle support帐号,流畅下载最新版本,可惜最近不能用了,各种不方便。移动硬盘里存了一个以前下载的11.2.0.2,安装失败,查了一下是11.2.0.2和uek内核的兼容性问题,需要11.2.0.3。用版本号搜了半天也没搜到下载地址,后来用p+patch号,一搜一堆。例如11.2.0.3的patch号是10404530,用"p10404530"做关键字搜索,能搜到很多连接,用迅雷下载即可。
安装RAC需要1,2,3三个包。

关于虚拟机

VirtualBox虚拟机内存最好设2G,原来设置了1.5G,OUI提示内存不足,应该问题不大,但是为了保险还是改为了2G。一个Windows跑两个Linux虚拟机,磁盘是比较大的瓶颈。跑起来比较慢,只能学习用途了。有条件的可以上SSD,应该改善很大。



Wednesday, March 28, 2012

关于VLC 2.0中文字幕方块问题

曾经是坚定的K-Lite/MPC用户,因为进来OSX和Linux上VLC用的比较顺手,在Win下VLC用的越来越多,渐渐成为主力了。可惜中文字幕这块始终有问题,不是乱码就是白色方块。今天又捣鼓了一下,终于(凑合着)解决了。
先放狗搜了一下,关键还是字体,有人用OSX下的LiHei搞定了,但是我手上没有,也懒得去下。只能拿本机上的字体试。试了很多中文字体都无效,包括微软雅黑/文泉驿微黑/仿宋什么的。结果试着用日语字体Meiryo时,竟然成功了。还有繁体字体MingLiU也可以。但是Meiryo存在缺字的问题,MingLiU稍微全一些。虽然字体比较丑,但是总算凑合能用了。
还有一种说法,是设置字体的时候,不是从下拉列表选择,而是直接输入完整路径。这招试过貌似无效,也尝试过修改配置文件vlcrc,也是无效。目前只能用MingLiU凑合着用了。

Thursday, March 8, 2012

更新:关于谷歌市场与运营商

之前一直以为手机注册之后,运营商就定死了,现在看还是会变化的。因为在机器上的变化反映到WEB有个延时,之前没有发现。我的一个帐号注册时显示CHINA MOBILE,在修改系统属性的第二天变成T MOBILE了。另外一台机器在拿走了SIM卡,用WIFI上网之后,运营商变为空了。看来注册信息中一切都是可变的。因此,我原来想的创建两个帐号,分别设置成不同运营商的做法无法实现了。等手上的NOTE升级到ics后,还得想办法root。

另外验证了一个想法,不再需要Market Enabler这个程序了,直接设置系统属性就行了,甚至不需要自己写程序,用adb shell 加自带命令即可。

PS: 写这篇博客的时候,Android Market已经更新为Android Play了。

Sunday, February 26, 2012

Galaxy Note (2.3.6) 成功 Root


由于手上的N7000是欧版,ROM比较干净,自带Google Map/Market等谷歌服务,因此相比行货,root的需求不是那么强烈。不过root仍然是迟早的事情,最重要的一个需求就是伪装运营商。用CMCC的sim卡登录市场,就是一个悲剧,啥都装不了,搜不了。另外系统自带的OTA系统更新功能,需要先向三星注册,如果运营商是CMCC,直接失败。(传说中三月份放出ICS升级,三月之前搞定注册是必须的)

其实在入手N7000前,就已经在论坛下到了root程序了。但是考虑到root权限实在是大,对这种论坛上的东西不太放心,怕夹带私活,加上对神秘的root过程一直不太明白,就没急着去运行,而是分析了一下这堆东西。看明白了真不复杂,其核心就是一个可执行程序,利用了2.2/2.3系统中的一个名为zergRush的漏洞,达到获取root权限的目的。脚本的大致过程是:
  1. 用adb将zergrush push到/data/local/tmp目录
  2. 为zergush增加可执行权限,并执行
  3. zergush将自己复制为boosh,并通过漏洞以root权限执行 boosh
  4. boosh设置系统属性ro.kernel.qemu=1
  5. 重启adb,当adb发现 ro.kernel.qemu 属性为1时,以root权限运行
  6. PC端脚本重新连接上adb时,已经是root权限了
  7. 将busybox push到 /data/local/tmp,通过busybox的mount功能,将/system remount为可写
  8. 将busybox安装到/system/xbin
  9. 将superuser版本的su安装到/system/bin,设置权限为04755
  10. 安装superuser.apk
由于本人不是安全专业,对缓冲区溢出的原理和试用一窍不通,对作者和分析者只能膜拜了。zergRush的漏洞原理可参考http://blog.claudxiao.net/2011/10/zergrush/

Root的过程弄清楚了,但是对root包中这几个可执行文件心里可没底。好在发现zergRush竟然是开源的,代码可以直接在github中下载。那么就完全可以使用自己编译的zergrush程序了。而busybox也可以自己编译。至于supserUser.apk和su,虽然免费,但是不开源。最后分析了一下,装这两个程序,主要是为后续需要root权限的apk程序使用。而我所知道的需要SuperUser的程序,主要是用Root Explorer和Market Enabler。前者是收费的,还需要破解,更加危险。其实有了root权限,adb shell+busybox差不多可以替代了,就不需要装了。而Market Enabler,其实功能就是设置几个系统属性,甚至可以用adb shell的setprop来替代。因此大不了superuser.apk我不装了。

分析下来,难的还是编译zergrush,费了不少周折。一开始去研究NDK,还找了本书学习了半天。最后发现路子不对。unix staff需要编译AOSP项目。传说中编译AOSP需要16G内存,25G+6G空间。经过数天的折腾,终于成功编译成功AOSP的模拟器target。之后编译zergrush和busybox就容易了。

zergRush:
源码在 https://github.com/revolutionary/zergRush
在AOSP项目的development下建一个子目录zergrush,将zergRush.c复制进去,建一个Android.mk文件,在当前目录执行mm,可顺利编译出zergrush

busybox:
偷了一把懒,直接用了CyanogenMod版本的busybox,自带Android.mk
源码在 https://github.com/CyanogenMod/android_external_busybox
和上面一样,在development下建一个busybox目录,直接mm,成功编译出busybox。

我的root过程(当时忘记记录了,有些细节可能不太对):

  1. adb push zergrush /data/local/tmp
  2. adb shell chmod +x zergrush
  3. ./zergrush
  4. adb push busybox /data/local/tmp
  5. # busybox mount -o remount,rw /system
  6. # dd if=/data/local/tmp/busybox of=/system/xbin/busybox
  7. # chmod 04711 busybox
  8. adb push su /system/bin
  9. # chmod 04755 su

伪装T Mobile的脚本,在root权限的adb shell中执行:

setprop gsm.sim.operator.numeric "310260"
setprop gsm.operator.numeric "310260"
setprop gsm.sim.operator.iso-country "us"
setprop gsm.operator.iso-country "us"
setprop gsm.sim.operator.alpha "T-Mobile"
setprop gsm.operator.alpha "T-Mobile"

出自:http://android.modaco.com/topic/304693-market-enabler-workaround/



顺便说一下我手上系统的版本:
Android version
2.3.6
build number
GINGERBREAD.XXKKA

Sunday, February 19, 2012

新玩具-Galaxy Note / N7000


这台大牛入手可谓费劲周折。从下单到收货,一共折腾了11天。加上出差在外,两个星期才真正摸到机器。

先来说一下曲折的入手过程。首先是决定购买。关注大牛很久,只知道优点是屏幕大,缺点是屏幕太大。但是到底又多大,一直没谱。乃至决定买了,仍然没有概念。最后领导决定,先去实体店考察一下。先去了苏宁,一下被震住了,果然太大。营业员也说了,这个大的太夸张了(明摆了不想做生意?)。跑出来想想不对再看看吧,又不好意思跑回去,只好跑到对面五星又摸了摸,适应了些,但是还是太大,遂决心放弃。但是回到家,还是想买,特别是几天做地铁上下班,总觉得手上缺个大屏幕手机,于是学习网友的方案,用纸板裁了一个1:1模型,又比划了半天,最终下定决心出手。

Note的行货价5999,亚马逊能优惠到5000出头,淘宝水货在3900左右,但是考虑到淘宝上的手机水实在太深,而且几次在淘宝购买水货都不顺利(疑心太重),遂决定尝试Expansys(中文名磐石环球数码城,相当山寨)。很早就听说Expansys了,但是没买过东西。网上评价毁誉参半,但就我个人感觉仍然比淘宝靠谱些。Expansys当时价格在4300左右,白色机器还要贵好像80左右,加上运费120HKD,比行货便宜有限。不过好处是可以买到原装车载支架,这东西淘宝都相当稀少,且价格贵50%,不知真假。另外Expansys还可以买到谷歌三儿子9250。理论上国行不会有亲儿子买,这也是准备尝试Expansys的原因。

Expansys的购买过程也很戏剧性。2号下单,包括白色Note一台,原厂车载支架一个,运费120 HK$,选择了信用卡支付。结果订单卡住了,需要我提供证明收货地址的材料,真见鬼了,一时还真提供不了。只好打电话给客户。客户电话还是个手机,来电通显示广东某地(肿么这么像骗子电话呢?)。国内客服似乎将情况转给了香港的同事,和他扯了几封电邮后,决定撤单,重新用网银下单。撤单倒是很快,虽然没扣我钱,我的信用卡信息可都告诉他们了,该死。当时已经是星期五晚上了,我还是忍不住重新下单了,结果悲剧发生了,网站跳转到银联后,卡在招行的页面专业版支付不再跳转页面了。钱已经扣了,但是没有跳回Expansys的网页,订单也没生成。已经过了客服时间,第二天是周末,也没人上班。只能干等。第二天收到一封订单确认信,总算有了订单号,但是订单内容为空。显然是一个异常订单。无人处理,继续干等。熬到星期一早晨,在出差的路上开始与客服交涉。客服倒是很爽快,说帮我修复这个订单。我提出网站上的价格已经降价了100元,希望能以次价格计算,客服也答应了。很快收到确认邮件。订单内容正常了,但是价格比原来少了400。仔细和官网价格核对了一遍,对不上。又过了一个小时,网站打出白色Note星期一特价,这价格才对上。原来是提前一个小时享受到了今天的特价。而且后来看,的确只是星期一一天。还算幸运。之后就是等待收货。一直到星期五,货才到顺丰手里。系统自动发邮件通知顺丰单号。之间星期四又和客服联系了一次,说正在通关,估计Expansys的货真是从海关正规进来的。货到了顺丰手里就快了,次日送到。就是前面折腾太久,心急的同学一定要慎重选择Expansys。

由于当时出差,是领导收的货。收到的货,封条都被开了。不知道是哪个环节开的,但是很不爽。欣慰的是,三码合一。应该是从海关正规进来的(料想Expansys不至于去印个假的包装标签)。但是一个很严重的问题是,拿到的机器是欧版的!先不说淘宝上欧版比港行便宜,关键是没有中文语言。对于用惯了英文系统的我来说无所谓,但是领导用就没法用了。好在这手机太大了,领导是绝无可能用这个机器的。


再说一下Note的型号。拿到手的是N7000,之前一直以为欧版是N7000,港版是i9220,后来发现不是这么回事,应该除了国行,都是N7000。放狗搜了一下,比较靠谱的说法是,Note原来的代号是i9220,后来三星改变了注意,9xxx是手机系列,觉得应该给Note弄个新的系列,遂改名N7000。至于为何国行仍叫9220就不得而知了。(估摸着是已经去工信部备案去了,不想再重来一遍)

到目前为止,使用时间不多,才几天。说说一点感受:

  1. 还是那句话:优点是屏幕大,缺点是屏幕太大。
  2. Super AMOLED,网上说的都是真的。色彩艳丽,对比度高,很讨好人,但同时偏色严重。全黑时有黑斑。理论上,OLED全黑是不发光,但是在全黑环境观察了,感觉还是有发光,可能对OLED原理理解有误。
  3. PenTile确实存在。老婆拿到手,第一印象是:你这手机分辨率不行。欲哭无泪啊,这可是1280x800,ppi接近300啊。要说分辨率的确高,网页缩小到最小,小字都清晰可见。但是颗粒感也确实存在。这是不争的事实。
  4. 按键设计不合理。要多脑残的设计师才会把电源放到右侧啊,但是三星的设计师的确做到了。最下面的唯一物理按键手感不错,但是左右两个虚拟按键比较容易误碰,很不爽。
  5. GPS真强。可能是以前没用过好东西。Note的GPS可以在室内定位。不知道是不是Glonass比较强的缘故。

Wednesday, February 15, 2012

有点搞明白谷歌市场的逻辑了

行货Android手机是很杯具的事情,价格高不说,完全不会带有谷歌服务,没有GMail,没有Google账户集成,没有官方市场。还好民间有所谓GMS加刷包,虽然不完美,但是总算能装上Market啥的。

但是即时装上了Market,仍然是一个杯具。在Android Market的账户中,CARRIER写的是China Mobile,在市场中搜索的很多程序都无法安装,如谷歌地图,显示为不兼容,无法安装。而在手机端的Market App上,直接连搜索都搜索不到。

无奈之下,一度想去网上买个美国的sim卡,淘宝上很多,都是给水果激活用的,找了个卖家问了问,说不保证能用,估计也没人这么干,于是作罢。遂改为寻求软件方案:MarketEnabler。官方市场就有,免费的,但是需要root。原来不想折腾root的,国货夹带的垃圾软件我都忍了,就是为了这个软件才root的。用MarketEnabler伪装为T-Mobile,终于可以在手机端Market上搜索到原来搜索不到的应用了,谷歌地图也装上了。但是仍然不完美,在WEB端,仍然显示着China Mobile,搜到的软件仍然不兼容。只能在客户端凑合用。连MAKER和MODEL都能修改(为了获得50G Dropbox空间,将手机制造商改为了Sony,网页上的MAKER神奇的跟着改了),就是CARRIER改不了,非常之困惑。

直到最近两天,才有了新的发现,先在客户端用MarketEnabler伪装,再关联谷歌帐号,在新的帐号下,CARRIER不再是China Mobile了,WEB端直接可以推送了,这意味着可以不再使用MarketEnabler了,直接在网页上推送就行了。因为免费版MarketEnabler不能保存状态,经常切换挺烦的。另外一个杯具的事实是即时伪装成了国外运营商,仍然有国内的app无法兼容,因此,保持两个不同运营商的谷歌帐号是必须的。

顺便说一下,貌似MarketEnabler也就主要是修改了系统属性gsm.sim.operator.numeric的值。自己整一个应该也不难,毕竟有个root权限的第三方程序存在与手机中,还是挺不爽的。