Category Archives: Computers

移掉一个目录的版本控制

在桌面上checkout了一个svn文件,然后桌面被TotoiseSVN加上了版本控制。要想把一个目录的版本控制移掉,可以这样做:

1. 此目录中右键,从TotoiseSVN菜单里选取export。

2. export时选取此目录本身,如桌面。

这时会提示:

Image

选取第一个。

3. 搞定。

删除StatPress记录

StatPress是个不错的wordpress统计插件,遗憾的是作者没有持续更新,卸载时只能删除安装的文件,而不能删除数据库里的历史记录。

在statpress的options里可以设置删除时间为一个月,可以将老于一月的记录删除。但往往我们想删除掉全部的数据。这时我们可以对statpress的代码进行必要的更改。

在wordpress控制面板里的plugins找到statpress,点击edit进入代码。查找(按Ctrl+F)

// Auto-delete visits if…

可以看到类似于 

$results =     $wpdb->query( “DELETE FROM ” . $table_name . ” WHERE date < ‘” . $t . “‘”);

的句子。我们在这里有一个小trick,在此句之上,添加比如,

$t=gmdate(“Ymd”,strtotime(‘+1 day’));

点击保存或Update File。

然后de-activate再activate,从overview里可以看到历史数据被删除(刷新需要一点时间)。此后我们再将statpress卸载,数据库冗余数据基本就很少了。

当然更好的方法是增加合适的代码删除整个statpress增加的表。可以参考iri_StatPress_CreateTable 函数内容。

XP停止支持后仍有大量人在继续使用

Windows XP是迄今微软最成功的操作系统,服役长达13年,在2014年4月8日正式停止服务。但国外调查表明,冒着停止服务的风险,仍有超过1/5的商用机器还是使用着XP (链接)。4/1前的调查表明有25%的个人机器(PC)使用XP(链接)。 NetMarketShare根据15262个合作伙伴表明,在14年5月,仍有超25%在使用XP (链接)。

Image_thumb[1]

图  NetMarketShare调查的操作系统使用情况 (2014年5月)

我大概调查了我初中、高中两个班同学(现在35+年龄段,主要从事商业、教育、事业单位或公务员)使用XP的情况,40人左右里有6人还在使用XP。约占15%。

需要说明这个调查并不科学,我没有认真的去设计。但也许可以给大家一个感性认识。

微软停止支持后,国内360安全公司弄出了一个XP盾甲,据说使用的人还少。但360其实是靠流氓软件起家的,所以无法知道这个东西里面藏了什么,也许不用还要安全一些。希望只是我的偏见。另外,因为XP是商业软件,除了微软本身,别家包括360根本没有能力替代微软修补XP可能存在的系统安全漏洞。

我另外收到一个来自科技网的email,也说明了仍然不少部门和人员在使用XP,所以迫使有关部门协调微软,继续为中国政府和重要部门提供后续的XP补丁。

这封信的部分内容转帖如下:

尊敬的用户:

      您好!

      鉴于微软公司已于4月8日正式停止对Windows XP操作系统的支持服务,为降低Windows XP操作系统停止服务后的安全风险,国家相关部门协调微软公司提供了2014年6月的Windows XP操作系统补丁,仅供中国政府部门和重要信息系统用户使用。目前我们已获得补丁文件,请您根据需要下载使用。

      文件名:201406xp补丁.zip

      文件大小:24.57MB

      下载地址:(应要求删除地址链接,不对外扩散

      请根据所下载的压缩包中的安装说明文档进行补丁安装,并注意不要对外扩散。如果您有文件获取问题和安装问题,请邮件或电话联系我们,谢谢。

      邮箱:(删除邮箱地址)       电话:(删除电话信息)(工作时间) (删除电话信息)(其他时间)

中国科技网网络安全应急小组

2014-6-19

(删除签名信息)

这是很有意思的一个信,我认真核对了信件来源及下载地址,是可靠无疑的。这说明尽管微软发布声明说停止了对XP安全支持,但事实上仍然微软有些人在继续维持XP安全补丁的事宜。

如果您还在使用XP,尽管我按邮件要求不对外扩散,无法给大家提供,但现在网络这么发达,事实上你也是可以获取到这个补丁的,至少还能够维持一些时段内安全使用XP。但还是建议您尽管切换到Windows 7。(据说Windows 8有安全上的问题,不推荐安装)

Sandboxie lifetime license 终生许可 再次发放

sandboxie被Invincea收购后,取消了终生许可,目前个人用许可每年15欧元(~127RMB)。不过最近sandboxie搞giveway的活动,即使没有中奖,但放出了购买lifetime license的许可。前阵子有20%的打折,是截止5月16日。我们是赶不上了,但现在还可以购买没有打折的终生许可。地址在:

https://www.cleverbridge.com/296/?scope=checkout&cart=28154&coupon=GJP-TBR-BL5

价格是321人民币,约53美金。

有需要的可以购买,也许有点小贵,但绝不会后悔的。

多元回归 / 多元拟合matlab实现

MatLab内置了很多拟合的功能,比如分布、指数、多项式等拟合。对应的函数是fit。基本用法是:

cfun = fit(xdata, ydata, libname)

其中xdata是自变量x序列,ydata是因变量,libname 是模型名,比如’power1’是 y= a* x ^b 形式,Matlab内置了很多模型,可以从帮助文档里看到。对于这些拟合,MatLab有个图形工作叫 cftool,在命令行里敲入可以打开。

然而我们有时候需要做二元、多元拟合。

二元拟合,即使用模型 z = f(x, y),在MatLab也叫面拟合 (Surface fitting),有专门的图形工具 sftool,命令敲入sftool可以打开。

但如果是多元拟合,这时我们需要懂一点代码的工作。

其实不管一元、二元,代码级别是一致的。使用的都是fit命令。

对于使用 y = a* x^b这样内置的指数一元拟合,我们可以看到其libname 叫’power1’。所以采用以下命令:

cfun = fit(x, y, ‘power1’)

即从已知x、序列是得到拟合函数。coeffvalues(cfun)可以得到拟合参数,即这个例子里的a、b。如果还需要得到拟合指标,使用[cfun gof] = fit(x,y, ‘power1’),返回的gof包括了R squre、RMSE等多种指标。

对于二元拟合,比如 使用 z= a + b*sin(m*pi*x*y) + c*exp(-(w*y)^2模型进行拟合,采用类似的代码:

ft = fittype( ‘a + b*sin(m*pi*x*y) + c*exp(-(w*y)^2)’, ‘indep’, {‘x’, ‘y’}, ‘depend’, ‘z’ );

opts = fitoptions( ft );

opts.Display = ‘Off’;

opts.Lower = [-Inf -Inf -Inf -Inf -Inf];

opts.StartPoint = [0.741864193163802 0.681571628918889 0.811658042300087 0.275716137656952 0.738979809065491];

opts.Upper = [Inf Inf Inf Inf Inf];

opts.Weights = zeros(1,0);

[fitresult, gof] = fit( [x, y], z, ft, opts );

其中fittype自定义了需要的二元函数。其中’indep’指明自变量、’depend’指明因变量。即通过fittype构造一个二元拟合模型,说明其中的自变量和因变量,定义拟合的选项,这些选项经常可以不要专门指定,采用默认的即可。然后使用 fit的扩展形式得到拟合函数。

对于多元拟合,一个函数是 regress多元线性回归,另一个是nlinfit 非线性回归。两者都在statistic toolbox里。regress的基本形式是

b = regress(y, X)

其中X是多个自变量,y是因变量。

对于多元非线性拟合,可以使用nlinfit,基本形式是:

beta = nlinfit(X,Y,modelfun,beta0)

其中modelfun构造非线性多元模型,比如以下例子:

beta = nlinfit(X,y,@hougen,beta0)

使用一个hougen函数作为拟合模型,这个函数可以自行构建。

Matlab也提供了非线性多元拟合的图形化工具nlintool。

此外类似的还有 fitnlm函数提供了类似nlinfit的非线性回归,用法与nlinfit类似,但对返回结果进行包装,可以更简便的使用诸如predict等函数对非线性模型进行预报计算。

Image(1)

Plant vs Zombie 2的iOS多设备同步

Image

pvz 2还是一如既往的好玩精美,希望能够同时在iphone和ipad上玩。pvz 2支持icloud的同步,包括game center状态和进度的同步。

我在两台ios 7的设备上同步成功,但如果其中一台是 ios 6的ipad上只能同步成功game center状态而无法同步进度。所以尽管pvz 2开发团队没有明说必须同样的ios版本,但事实上可能需要同样的ios版本。

步骤描述如下:

1. 在iphone (ios 7)上从apple store里下载pvz 2 新安装。

* 注意我只测试了pvz 2的英文版本,对于植物大战僵尸2的中文版 没有测试,但应该也是可行的。

2. 在iphone 上进入settings > icloud > document and data 使之打开。

* 在document and data下面应该可以看到僵尸的图标(没有文字,应该是个小bug),确认此项也是打开状态

* 与icloud下的 storage & backup无关,此项可以是关闭状态。

3. 在iphone上,打开 pvz 2,填入年龄和名字比如dd。开始玩游戏。

* pvz2 会自动把信息往icloud里上传,只需要等一些时间即可。

4. 现在切换到ipad (ios 7)。安装同一个 pvz 2版本。

* 注意ipad 也必须是以同一个apple id 登录进game center。如果不是同个id,需要把ipad的game center id切换到iphone的gc id上来。

* game center id一般与apple store 的id 一致。

5. 在ipad 上重复步骤2,打开ipad上的icloud > document and data设置。

6. 在ipad上打开 pvz 2,填入年龄和名字比如hh。稍等,点名字右边的人物图标,在弹出的列表里可以看到来自iphone的dd。

* 来自iphone 的用户dd即包括iphone的进度。

* 注意如果pvz 2已经打开,要先将之从后台关掉,然后重新打开,这时pvz 2 会有个读取进度的起始画面。

Continue reading

域名迁移

域名nanzt.info 在购买国外空间时一并注册,现在因为不再使用那个空间,所以打算迁移出来,换句话说,从原空间提供商 hostmonster.com 迁移到 现 namecheap.com。

namecheap是很有名的域名注册商。迁移的第一年有打折的价格。

整个迁移过程大概在15分钟内完成。

1. 准备工作

1.1 去hostmonster域名管理界面取消locked 状态,即允许进行域名迁移

1.2 从hostmonster得到 epp码。

1.3 从hostmonster里去掉隐私保护(如果有的话)

1.4 确认有nanzt.info 管理邮箱的访问权,这十分重要!

2. 注册namecheap

2.1 从namecheap注册一个帐号

2.2 购买一年的domain transfer费用,约9.66美金。(一般可以找到打折码)

3. 按namecheap domain transfer步骤进行迁移

按步骤一步一步下来,直到结束。注意填入 epp码。

4. 检查nanzt.info注册的管理邮箱

4.1 有从namecheap发来的要求授权的信,进入链接,选择授权。如果不授权,会导致迁移失败。

4.2 有从hostmonster发来的要求授权的信,进入链接,选择授权。此授权信如果不主动去点,将在7天后自动授权。

5. 成功后进入namecheap的域名管理界面

5.1 lock此域名

5.2 namecheap提供whoisguard免费功能,用上。

5.3 检查域名解释器 (dns)是否正确。

我使用 freedns的免费域名解释。

namecheap提供了自己的nameserver,所以点击 transfer DNS back to us,然后配置dns records。

btw,namecheap提供的配置界面十分简洁强大。

至此迁移完成,约一刻钟。

Image

iphone 5无法连接到computer

我自己用的iphone 5,在别的laptop上都可以正常连接,点trust后可以访问iphone内容,但在我的laptop上有提示trust or not,但点trust后找不到apple iphone的存储。

使用programs and features将以下内容卸载掉,

1. iTunes (如果有的话)

2. Apple Software Update

3. Apple Mobile Device Support

4. Bonjour 

5. Apple Application Support (iTunes 9 or later)

然后重启windows 7。重新插上iphone 5,发现trust后即可正常访问。

以上被卸载的内容,如果需要,重新安装即可。

MATLAB之正则表达式

([email protected])

这种文本文件很大,比如我测试的样本文件,一共1281889行,约61.7MB,其余文件有超过120M的。对于这种大文件,手工处理十分费劲,必须要写代码处理。

因此流程很简单:

  1. 找到第一个Cyclic Acquisition,将此前的全部行,放到比如字符串s1;
  2. 从s1中移去preload data部分(包括头信息和数据),得到s2;
  3. 从s2中移去hold data 剖分(包括头信息和数据),得到s3;
  4. 从s3中移去多余的Data Acquisition头信息,即只保留第一个Data Acquisition头信息,得到s4;
  5. 将s4输出到a_static.dat。
  6. 得到1-14行头信息;
  7. 得到第一个Cyclic Acquisition及以后的全部行
  8. 合并6、7得到的字符串
  9. 输出到a_dynamic.dat。

所以这里的关键是如何得到我们需要的字符串,或者将某些字符串移去。一个很好的办法是使用正则表达式(regular expression),MATLAB里的函数是regexp。另外有regexprep是用于将匹配上的字符串用指定字符串替代,比如应用在步骤2、3、4。

本例演示了在MATLAB里使用正则表达式从文本中提取或替换子串。演示了regexp、regexprep的使用。本例也演示了对多个文件批处理的实现。

完整见附件PDF。

用gmail管理多个邮箱的信件

我的case是

  • 工作邮箱: [email protected]
  • 临时工作邮箱, 这是到美国大学访问他们给的, 美国这边留的是这个邮箱: [email protected]
  • gmail, 在iphone上安装了其手机客户端

希望:

  • 发到临时工作邮箱的信,自动转到”工作邮箱”
  • “工作邮箱”的信自动转到gmail
  • gmail回复时,如果是来自”工作邮箱”的,使用工作邮箱回复,否则使用gmail 回复.

我是这样配置的,

  1. 临时工作邮箱是ms exchange,所以在学校profile里配置forwarding address,指到”工作邮箱”. 
  2. 在工作邮箱里配置forwarding address到 gmail
  3. 在gmail时settings > Accounts > Send mail as: 添加工作邮箱, 注意把 treat as alias 的勾去掉. 使用gmail的邮件发送服务器. 配置完成后, 去工作邮箱检查来自gmail的一个确认信. 确认后完成.
  4. 在步骤3里,Send mail as下的when replying to a message, 选择reply from the same address the messgge was sent to.
  5. 完成!

注意在iphone里不要使用默认的Mail,而是从app store里下载gmail客户端. 然后长按底端固屏的mail图标,将之移到上面的屏幕,将gmail移下来放在mail本来的位置. 

IMG_5132