更换SSL Certificates

鉴于众所周知的原因,一直想换个CA的证书,Let's Encrypt是一个很好的选择,免费!支持ACME protocol(Automatic Certificate Management Environment,全自动服务器身份验证协议)、支持ECC证书、使用简便,非常推荐!我要去给它捐赠,贡献点绵力。

获取证书我没有使用官方的方法,而是使用了acme.sh,比官方的脚本更加简便。另外还有一个类似的acme-tiny,有兴趣也可以看看。

1、获取脚本

git clone https://github.com/Neilpang/acme.sh

 

2、申请证书:我采用的DNS验证,操作完成后需要按提示设置DNS对应TXT的记录;ec-256表示ECC证书

acme.sh --issue --dns -d xxx.net -d www.xxx.net --keylength ec-256

 

3、生成证书:DNS生效后,就可以获取证书了;--ecc表示ECC证书

acme.sh --renew -d xxx.net -d www.xxx.net --ecc

 

4、最后把生成的cert key和full chain certs配置到Nginx中即可。

 

 

5、自动化更新:写个脚本定期执行下即可

acme.sh --renew -d xxx.net -d www.xxx.net --ecc
acme.sh --renew -d xxx.net -d www.xxx.net --force --ecc   #未到期强制更新

 

观察几个月,如无问题,就准备全站HTTPS了。

 

参考文章:《Let's Encrypt,免费好用的 HTTPS 证书》、《开始使用 ECC 证书

 

Buffalo WHR-G300N V2刷OpenWRT开双WAN

工作需要用到两个网络,一个是公网,一个是专网,日常很多资源都是通过公网访问,但是也有一些特定的资源需要使用专网,经常切换很不方便。

 

 

阅读全部

创见SSD遭遇X250死机

一台Lenovo ThinkPad X250,加了块创见 Transcend MTS400 128G NGFF的SSD固态硬盘,安装Win7 64位专业版,开始一切都好,后来发现开机后,一段时间不使用,鼠标能动,但是点击任何图标都没有反应,Ctrl+Alt+Del任务管理器都出不来,死机了。。。SSD的固件已经升级到厂家的最新版,貌似兼容问题。

 

折腾了几天,最后发现在BIOS设置里面把Intel Rapid Storage Technology / RST关闭后一切平静了!!! 有些情况可能还需要看看是否安装了相关的软件,在程序管理里面查找“快速存储技术”、“Rapid Storage Technology”或“RST”删除!

解决安装SSD的thinkpad笔记本Windows7登录慢问题

自己用的ThinkPad X230安装了SSD之后,启动速度很快,但是某天开始输入登录密码后进入到桌面的速度变慢了,有一个明显的停滞时间,无硬盘活动,最少10秒,有时甚至更长。一直以为是安装了某个软件造成的,还使出了Process Monitor的Boot Logging,找过几次也没有头绪。

好吧,灵光总在一瞬间,前几天突然想起,在Win7右下角的“搜索程序和文件”框里查找“rapid”,联想RapidBoot Shield出现在我的视野,打开,在界面上关闭了“启用 RapidBoot Shield”,一切恢复~!

解决WIN7下Capture NX、View NX和Windows 图片查看器都偏色的问题

本来一直好好的,有天突然发现Capture NX、View NX和Windows 图片查看器打开NEF和JPG都出现了色彩偏红的问题,用ACDSee等其他软件查看却都是好的。

查看Capture NX、View NX两个软件的配置中的色彩管理,都选择了sRGB IEC61966-2.1,并且勾选了“用此代替嵌入的配置文件”,奇了怪。

想到Windows 图片查看器也偏色,就进入 控制面板>外观和个性化>显示>屏幕分辨率>高级设置>颜色管理,在弹出界面中选择颜色管理>高级>校准显示器,按照提示重新进行一次矫正,其实整个过程基本就没有任何改变,保存后发现所有软件的偏红都消失了。

只能认为Windows抽风了,配置乱了。。。

解决SSD固态硬盘在WIN7的体验指数(WEI,Windows Experience Index score)测试中主硬盘项得分低的问题

X230笔记本加了块Plextor PX-128M6M SSD固态硬盘,虽然X230的msata只能发挥SATA2 3G的威力,但是实际用起来还是感觉提升非常大,Plextor的4K性能还是挺不错的,超过正在用的三星840。原来重启动到进入桌面可以随意操作基本需要3-4分钟,现在30秒!



可是WIN7的体验指数WEI测试中,硬盘依然是最低分,永远是5.9分。常见的优化都已经做过了,开启AHCI、4K对齐、关闭索引和预读取、开启TRIM等等都做过了,可是分数就是定定的5.9!?

中文网站搜了半天没解决,最后在国外发现个帖子http://franktovar.de/2011/09/26/about-the-windows-experience-index-score/,说的是因为WEI的WinSAT工具在硬盘测试中必须要分配一定的连续磁盘空间才能完成,一查C:\Windows\Performance\WinSAT\DataStore下面的Disk.Assessment的xml日志,其中果然有“<Responsiveness Reason="UnableToAssess" Kind="Cap">TRUE</Responsiveness>”的记录,解决方法是进行磁盘碎片整理,老外推荐用UltraDefrag整理。

照着做,然后执行“winsat disk -scen 2009 -drive C:”,发现依然出错。。。后来认真看了C:\Windows\Performance\WinSAT\winsat.log,发现现在的错误是“storage\diskprof.cpp:2324: Unable to open temporary file.  Largest available contiguous space was: 4096MB”,磁盘空间是够了,但是打不开临时文件?!

突然想到我用了RAMDisk,虚拟了2GB的内存作为临时磁盘,把系统的TEMP目录都junction到里面去了,曾经就发现过360云盘的同步版在这种情况下安装后,文件管理器里面“计算机\360云盘同步版”上面的管理条就是出不来,因为程序也是使用TEMP目录资源出错,导致安装不完整造成。

于是C盘建个TEMP2目录,修改环境变量,重启,测试成功,硬盘指数到7.8!

『转』Thinkpad电源管理器在Win7下无法启动的解决方法

故障现象:
Win7下启动Thinkpad电源管理器后,停留在启动界面,不显示程序界面。
补充:其实不光电源管理器,其他的FingerPrint指纹管理器、Access Connection等都可能会出现,打开任务管理器发现CPU中一个核占用率全满

解决方法:
1、控制面板-管理工具-服务,找到显示名称为“Windows Presentation Foundation Font Cache 3.0.0.0”的服务,将其停止。
2、删除文件,“C:\Windows\ServiceProfiles\LocalService\AppData\Local\FontCache3.0.0.0.dat”
3、启动“Windows Presentation Foundation Font Cache 3.0.0.0”服务。重新启动Thinkpad电源管理器,

微软对“Windows Presentation Foundation Font Cache 3.0.0.0”描述如下:通过缓存常用的字体数据来优化 Windows Presentation Foundation (WPF) 应用程序的性能。WPF 应用程序将启动此服务(如果尚未启动)。可以禁用此服务,尽管这样做会降低 WPF 应用程序的性能。

原文地址:http://thinkbbs.lenovo.com.cn/forum.php?mod=viewthread&tid=50057

如何高效的进行大数据量比对

最近讨论到一个问题:
A、B两个文本文件里面都有手机号,A文件是千万甚至上亿行,B文件是上百万行,如何高效的将A文件手机号存在于B文件中有的提取出来?

比较常见的答案:
1、将文件导入数据库,用一条SQL解决,类似select * from A where num in (select distinct num from B)
2、将B文件号码按条取出,通过类似grep脚本逐个过滤A文件

这些由于涉及数据的导入导出、数据库查询机制、文件的多次遍历因素的影响,都不是最佳方案。


要想效率到极致,主要考虑两个方面:
1、A和B文件只能遍历一次
2、查询号码是否存在的效率一定要高,且复杂度应该为常数,而不是线性甚至指数


记得很久之前,在网上看到一篇文章介绍google在GMAIL中如何解决海量垃圾邮件名单的问题,大致是初始化一个很大的文件,将邮件地址摘要化(例如MD5),使用摘要作为文件偏移量,在文件对应位置写入标识,用一个bit代表一个邮件地址;查询的话也是先计算摘要,再通过摘要直接读取文件对应文字看有否标识,这样的话就解决了每次可以快速查询邮件列表是否是黑名单,且查询复杂度为常数;如果不同的邮件地址出现了相同的摘要会出现误判(虽然这个概率很低很低),但误判的邮件地址用户发现后可以选择加入白名单,白名单的数量从理论上来说就是很少很少的,查询效率有保障。


基于这个思路,我们可以考虑使用手机号码作为偏移量,直接在文件或内存中建立一个结构;现在号段是13、14、15、18,号码最大差值是6*10^9,如果用1 bit代表一个号码,只需要6*10^9 / 1024 / 1024 / 8 = 716MB,放在内存里面也不多,比磁盘效率高百倍!再来,还可以按1x号段来建立多个标识串,比如13、14、15、18分别1个,就只需要大概477MB内存;甚至还可以细分到1XX号段。


软硬件环境:Lenovo X230,i5-3320M CPU@2.6GHz,12GB RAM,日立7200转500G缓存32M硬盘(HTS725050A7E630),64位WIN7
开发环境:Microsoft Visual Studio 2008,C++,64位编译
测试文件:A文件有3000万手机号码,380MB;B文件有150万手机号码,19MB;随机产生的,可能有少量重复
测试结果(DEBUG模式):内存消耗约750MB;遍历B文件初始化数据结构耗时2秒;遍历A文件中B文件有的号码,保存到C文件耗时42秒,大小约196K,有1万5千多个号码。


一次遍历和高效查询,确保了结果也是很高效的!

测试代码猛击这里下载

修改三星Galaxy Note2 N7108(移动TD版)的下拉菜单顺序

换上了二胖,一切都好,就是下拉快速设置菜单顺序总是不顺手,系统没有提供调整顺序的功能,于是上网寻找方法,除了更换第三方的应用,就是寥寥无几的几个说可以修改SystemUI.apk里面的res\layout\quickpanel_quick_settings,可是到手的二胖的SystemUI里面根本没有这个文件,于是漫漫寻找。。。终于发现原来改到了res\values\arrays.xml里面了,更简单,直接修改<string-array name="QuickSettingButtonAttribute">章节的顺序即可!

SystemUI.apk
是需要反编译,修改文件后,再重新编译、签名的,具体方法可以Google搜索,教程大把,只把要点记录一下:

1
、安装jdkapktool

2、反编译准备
安装库文件,两个文件来自手机
/system/framework目录下,这里其实只用到了第一个
apktool.bat if framework-res.apk
apktool.bat if twframework-res.apk

库文件会被apktool缓存到类似C:\Users\XXX\apktool\framework\1.apk目录下,反编译不同版本的文件时,记得要先清除

3、反编译SystemUI.apk
这个文件在手机/system/app目录下
apktool.bat d SystemUI.apk

4、修改arrays.xml
在反编译出现的目录SystemUI\res\values\中,根据自己的喜好调整顺序即可,这是我的,头5个是在第一页可以都显示出来的,无需左右拖动,调整成最常用的
[quote]
<string-array name="QuickSettingButtonAttribute">
<item>MobileData</item>
<item>Wifi</item>
<item>Bluetooth</item>
<item>AutoRotate</item>
<item>SilentMode</item>
<item>Location</item>
<item>PowerSaving</item>
<item>DormantMode</item>
<item>AllShareCast</item>
<item>Sync</item>
</string-array>[/quote]
5、编译SystemUI.apk
apktool.bat b SystemUI SystemUI2.apk

如果提示错误invalid resource directory name,就需要更新一下apktool自带的aapt.exe文件版本,可以到Android开发包中去找,例如android-sdk_r10-windows/platform-tools中的就可以
下载


6、签名
APK实际是个ZIP文件,改后缀为zip,删除新包的AndroidManifest.xml,从旧包中复制AndroidManifest.xmlMETA-INF目录替换

7、安装
将新包改名为SystemUI.apk,拷贝会手机/system/app目录下覆盖原有文件,修改ownergroup和权限与原有文件一致。

强烈建议最后安装前到recovery
里面备份整个系统,以防止新文件有问题导致无法进入手机桌面,随时可以恢复!



完成!更新后发现会主屏壁纸设置丢失,重新设置一下就是了,其他正常。

这个只是移动版本NOTE2的修改方法,其他版本的NOTE2没有看到过SystemUI的情况,只要用的是同一结构的文件就可以。

如何将蓝光原盘压缩成720P的MKV

我采用的方法分为三个步骤:

1、Demux
将蓝光碟中的m2ts文件分解成视频、音频和字幕三个独立的文件,使用的软件是tsMuxeR,找到对应的m2ts文件(一般位于蓝光盘的\BDMV\STREAM目录下,一般找体积最大那个m2ts文件,但也有一些是分成了很多小文件的,用PortPlayer之类的播放器播放看看就知道),选择视频、对应的音轨和字幕(还是用PortPlayer播放看看音轨和字幕),再设置Demux方式和输出目录即可。


2、转换视频
使用ffmepg,将H.264编码的1080P原始文件缩小到720P,采用了2次编码的方法,以下是自己琢磨的参数,IN和OUT代表输入和输出文件名,使用命令行方式,速度就可看你电脑的性能了,在偶的i3 530CPU上,2小时10分钟的片子,需要10个小时左右:
ffmpeg -i IN -an -s 1280x720 -vcodec libx264 -level 4.1 -pass 1 -preset slow -f rawvideo -threads 0 -b:v 5000k -x264opts frameref=6:fast_pskip=0 -y nul

ffmpeg -i IN -an -s 1280x720 -vcodec libx264 -level 4.1 -pass 2 -preset slow -f matroska -threads 0 -b:v 5000k -x264opts frameref=6:fast_pskip=0 OUT

3、Remux
将转换后的视频、视频和字幕(可以是自己找的srt之类的格式)合并成为mkv文件,使用了mkvtoolnix中的mkvmerge工具(图形化界面mmg.exe),将相应的文件加入即可。如果有多个源文件,可以用append的方法合并成为一个mkv