2016年11月6日星期日

utorrent磁盘负荷过重问题后续,sparse_files导致大文件copy缓慢

之前三个以上任务同时下载就经常会出现磁盘负荷过重,系统反应缓慢,通过搜索尝试了一堆方法无效后,发现了一个高级设置里面的参数diskio.sparse_files,是NTFS特有的稀疏文件,设为true后,果然问题就消失了。
由于之前家用路由器还是个百兆的,最近刚更换了个网件的千兆路由R6400,在测试局域网复制文件的时侯发现,从服务器复制utorrent下载的2GB以下的文件的时候速度正常,但是复制更大的文件,速度基本就只有十几兆了,一度怀疑是网卡问题、硬盘问题等等,经过多次不同实验,最后在尝试复制一个不是utorrent下载的大文件是速度居然就正常了,想到之前改得设置,基本就是diskio.sparse_files这个参数的锅了。

放狗搜可以搜到有人碰到同样问题:
 http://www.sevenforums.com/hardware-devices/362237-issue-slow-read-speeds-internal-hdd.html

2015年2月12日星期四

关于Firefox的Flash启用硬解

之前开启硬解一直有CPU占用高,或者无法启用的问题,有的即使启用了但在全屏切换时会有卡顿,偶尔看到一个GM脚本叫“Force Flash Wmode”,把Flash的参数Wmode设置为gpu或者direct可以强制开启硬解。使用之后果然上述出现的问题不见了。

GM脚本地址:
https://greasyfork.org/en/scripts/5433-force-flash-wmode
不过这个脚本有两个问题,一是只对object对象处理,但有些flash用的是embed;二是只处理找到的第一个object,如果有多个就无法处理。


下面是针对上面两个问题修改后的代码:

 var wmode = "gpu"; //direct or gpu
var targetNode=document.body;
var matchObject="object[type='application/x-shockwave-flash']";
var matchEmbed="embed[type='application/x-shockwave-flash']";
var onMatch=function(node){
    var objs = document.querySelectorAll(matchObject);
    var embs = document.querySelectorAll(matchEmbed);  
  
    if (objs) {
        for (i = 0; i < objs.length; i++) {
            var wmodeParam=objs[i].querySelector("param[name='wmode']");
            if(wmodeParam){
                   wmodeParam.value= wmode;
            } else {
                var param = document.createElement("param");
                param.setAttribute("name", "wmode");
                param.setAttribute("value", wmode);
                objs[i].appendChild(param);  
            }
        }
    }
    if (embs) {
        for (i = 0; i < embs.length; i++) {
            embs[i].setAttribute("wmode", wmode);
        }
    }
  
    return true;
};
var MutationObserver=window.MutationObserver;
var observer = new MutationObserver(function(mutations) {
    mutations.some(function(mutation){
        var addedNodes=Array.from(mutation.addedNodes||[]);
        return addedNodes.some(function(node){
            if(node.nodeType!==Node.ELEMENT_NODE)return;
            if(!node.mozMatchesSelector(matchObject) && !node.mozMatchesSelector(matchEmbed))return;
            return onMatch(node);
        });
    });
});
var options={childList: true, subtree: true};
observer.observe(targetNode, options);

Firefox用NPSWF32.dll无法播放Flash、出现白屏

2016-08-05 Update:  只要新建一个文本文件,名字为mms.cfg,复制如下内容:
RTMFPP2PDisable=1
ProtectedMode=0
AutoUpdateDisable=1
AVHardwareDisable=1
SilentAutoupdateEnable=0

保存后放入 Macromed\Flash目录,64位和32位的都放一份好了,重开firefox就好了

————————————————————————————————————

最近有两台机器先后出现Firefox无法播放flash,用的是单文件的NPSWF32.dll,经过排查,
一台机器是别人为了在IE播放flash而安装了adoble flash player for IE;另一台是安装的Window 10,自带IE的flash player。处理方式也很简单,先去控制面板卸载Flash,然后进入WinPE(有双系统的进入另一个也可以),然后找到刚才系统所在的分区,
32位系统的话进入\Windows\System32\Macromed\Flash,64位系统进入\Windows\SysWOW64\Macromed\Flash,删除里面的全部文件即可。

2014年3月31日星期一

firefox字体渲染模糊的问题补充

之前说过这个问题, 查看

后来发现更新firefox27后,设置gfx.content.azure.backends为cairo的方法失效了。
而卸载补丁KB2670838的话需要同时卸载IE10或者IE11,其实这个问题主要发生在比较老的A卡,就像我的HD4670。


另外还有一个临时办法,不需要上面的任何操作,只需在firefox->about:config里新建项
layout.paint_rects_separately,type为boolean,值为true。

2014年3月20日星期四

Firefox 28使用noscript扩展会影响greasemonkey的脚本

FF28开始,如果用noscript或者其他方法禁止了页面的JS,那么GM脚本里用到的addEventListener这个方法都会失效。

2014年3月1日星期六

[转载]18位身份证号码最后一位的算法

第十八位数字的计算方法为: 
1.将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 
2.将这17位数字和系数相乘的结果相加。 
3.用加出来和除以11,看余数是多少? 
4余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2。 
5.通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2。 

2013年12月19日星期四

电信光猫路由+高清IPTV设置

宽带升级到20M,同时标清iptv也升了高清(熟称小红),但是高清iptv的工作方式变了,原来的电信光猫是桥接模式,需要改成路由模式高清iptv才能工作。这样的话原来自己的tplink无线路由只能工作在交换机模式了。开始摸索……,最后的成果如下:

原来工作模式:电信光猫桥接+tplink拨号路由

改造后:电信光猫路由拨号+tplink动态IP路由

这样做的好处是原来tplink里面的设置都可以保留,包括DHCP、DNS之类的。一开始为了让bt、emule能正常工作,电信光猫和tplink都开启了UPNP,但是utorrent可以正常工作,emule就是不行,试了端口映射还是不行。最后在电信光猫里把tplink设成DMZ主机解决。具体设置如下(前提要得到光猫的超级用户密码,我是直接要的,另下面附一个别人的破解方法,具体可用否自行验证):

光猫默认ip为192.168.1.1,网络->连接名称选 3_INTERNET_R_VID,模式Router, 填入宽带的帐号密码,保存,网络->LAN侧地址配置->预留IP地址添加一个分配给tplink的ip,比如192.168.1.2。然后在应用->高级NAT配置里选DMZ配置,填入分配给tplink的ip。

tplink的WAN需要把原来的PPPOE改成动态IP,这个ip光猫会分配,就是刚才设的192.168.1.2。然后默认LAN的IP需改掉,比如改成192.168.X.1,X可以0~255自己定,但需和光猫的那位不同,然后tplink里相关的ip都需要改下,但其他的都不用改。重启光猫、tplink、电脑,应该就可以了。

我的光猫型号:RG201O-CA2    
硬件版本:       RG201O-CA_V1A2
软件版本:       E201OCAA2V11S 

 附:
一、如何获得光猫的超级密码:
       1.地址栏输入192.168.1.1    用户名:光猫背面    密码:光猫背面
          进入管理界面:再次输入http://192.168.1.1/backupsettings.txt
          找到超级密码<Password>telecomadminxxxxxxxx</Password>,两个password间20位就是超级密码。


二、破解
      1.地址栏输入192.168.1.1    用户名:telecomadmin    密码:telecomadminxxxxxxxx
      2.ok,应该进去了,开始下载配置文件,地址栏输入:http://192.168.1.1/backupsettings.conf
      3.双击backupsettings.conf文件,用记事本打开,找到<URL>http://devacs.edatahome.com:9090/ACS-server/ACS</URL>,然后改成<URL>http://devacs.edatahome.com.disable:9090/ACS-server/ACS</URL>,使得无法连接远程管理服务器,然后找到<TotalTerminalNumber>5</TotalTerminalNumber>,把5改成一个比较大的数字用以解除光猫接入设备数量限制。保存文档!
     4,.用超级密码再次进入光猫:地址栏 输入 : http://192.168.1.1/updatesettings.html 出现上传界面,选择刚刚修改过的backupsettings.conf文件上传就可以了

2013年11月28日星期四

关于firefox修改omni.ja记住密码

之前修改firefox目录下omni.ja\components\nsLoginManager.js的_isAutoCompleteDisabled方法,不过FF26开始好像找不到了,然后解包了omni.ja全文件查找了一下,发现这个方法在modules\LoginManagerContent.jsm,不知道修改了这个文件有没有用?

2013年8月31日星期六

IE被设置为offline导致win7的gadgets无法联网

某天突然发现桌面的天气小工具无法联网了,找了很多方法尝试都不行。后来看到一个说法就是IE游览器被设置为了offline,可是我一直用的都是firefox啊,从来不用IE,看来是某次系统自动帮我更新了IE版本,并且默认是offline的?反正用IE连了一次网,取消offline问题就解决了。

2013年8月24日星期六

电信宽带HTTP劫持

这几天被电信的HTTP劫持搞的很烦,由于用的firefox,装了noscript,每次被劫持就会出现一个js被阻止的页面,而不进入真正想要访问的页面。打10000号投诉也没什么用,装作什么都不知道,每次都说去查查,然后就没下文了。抓了一下包:

有两个插广告的IP: 222.186.14.117    和   222.186.30.159

有个推广或者广告的id :xvx_userid = "Mzc3MTU3MTk0LTAtYWQ1MDgxMTA3OQ==MC0x",  xvx_adid = "16595"

执行广告的js方法: setAdVisiable()




From:To:

2013年2月27日星期三

win7补丁KB2670838与firefox硬件加速冲突

手贱更新了一个windows的补丁KB2670838,这个好像是跟directx有关的,导致firefox在打开硬件加速的情况下有些文本模糊发虚,卸载这个补丁就恢复正常了。

如果要装IE10就需要这个补丁,因为包含了directx11.1的东西。所以可以在firefox菜单选项高级里面禁用硬件加速。

在网上看到的另一个解决方法:firefox的about:config里找到gfx.content.azure.backends,设为cairo也可以解决问题。

2013年1月16日星期三

关于firefox Cache bug的补充

之前说过一个firefox cache的bug,现在找到了问题所在,在about:config中有下面两个参数:

privacy.sanitize.sanitizeOnShutdown
privacy.clearOnShutdown.cache

如果都设置为true的话,那么缓存其实根本就没工作,可以通过about:cache查到,里面只有Memory cache和Offline cache,而正常情况应该还有一个Disk cache,临时的解决办法就是上面两个中的一个设为false或者两个都为false。

至少到firefox 18这个版本问题依旧。

2013年1月9日星期三

禁止Flash视频P2P上传

国内的一些视频网站用了flash的p2p技术,在观看的同时上传,导致占用大量带宽,使得其他网络访问变得很慢,而且视频也会不够流畅。解决方法:

在 “C:\Windows\System32\Macromed\Flash”目录下找到mms.cfg这个文件,(如果没有这个目录就新建一下,没有mms.cfg就新建一个文本文件,该下扩展名)打开mms.cfg文件,增加一行 RTMFPP2PDisable=1

2012年8月22日星期三

querySelector查询一个element里面有多个class的情况

通过class来查找元素,我们可以用getElementsByClassName、querySelector或querySelectorAll,不过当一个element包含多个classname的时侯,用getElementsByClassName就很方便,如:

<div class="c1 c2 c3" />

document.getElementsByClassName("c1 c2 c3")


即多个classname用空格隔开就可以。但是querySelector加空格是向下查找,比如

document.querySelectorAll(".c1 .c2 .c3") 是找c1的子元素c2包含的子元素c3。

如果用逗号“,”呢,即

document.querySelectorAll(".c1, .c2, .c3"),这个其实是一种“或”的关系,即“OR”,就是找到包含c1或者c2或者c3的元素。那么怎样才是“AND”的关系呢,其实也很简单:

 document.querySelectorAll(".c1.c2.c3")

没有空格没有逗号就可以啦!

2012年8月13日星期一

Android误按SMSC更新导致发不出短消息

Nexus S不小心在*#*#4636#*#*的手机信息里误按了SMSC的更新按钮,导致发不出短消息,但可以接收。搜索得知需要重新设定短消息中心的号码,各地都不一样,上海移动的为+8613800210500,然后每两位需做下反转:

86 13 80 02 10 50 0
 变成
68 31 08 20 01 05 0
  
根据网上说的最后一位前面补f变成两位,即68 31 08 20 01 05 f0,然后最前面加上0891,最终字串为0891683108200105f0,把这个字串填入SMSC的文本框,点击更新,照理说应该成功了,因为也没提示错误,因为输入不对的话会有update error的提示。返回桌面试着发了条短消息测试,提示发送失败。尝试了记种别的方法后,决定试试不补齐最后一位的f,即字串为08916831082001050,更新后测试成功。

2012年6月29日星期五

google hosts IP证书过期问题

今天突然发现ns不能同步了,google下发现是hosts的ip证书变更了,当前的ip只指向www.google.com,所以需要寻找*.google.com的ip,用SSLCertScanner扫描下就可以得到,不过证书的有效期都只有一年,只能到时再改了。

2012年5月15日星期二

关于修改hosts访问google plus出现404 Error错误

如果用的是chrome就没这个问题,因为通过SPDY协议就OK,所以对于firefox只要在about:config里启用spdy协议即可。

2012年3月13日星期二

userChrome.js导致firefox工具栏图标变大

今天突然发现firefox的工具栏图标变大了,试了很多方法都没效,最后发现是userchrome.js惹得祸,只要使用了uc.xul的脚本就会把图标撑大,而用uc.js的脚本就没这个问题,解决方法要么不用uc.xul文件,要么改写成uc.js,幸好改起来没那么困难。

2012年3月7日星期三

Javascript获取URL的顶级域名(get top domain)

JS现成的方法只能通过location.hostname或者document.domain得到URL的domain,但是这个domain可能是顶级的,但也有可能二级、三级的,要取得主域名只能自己写,今天看到一个转过来:

function  getDomain(){
   var domain = window.location.host;
   var pat = /^www\.(\.+)/;
   var _match = domain.match(pat);
   if(_match !== null){
    return _match[1];
   };
   var ret = null;
   var ext = ["com\.cn","net\.cn","org\.cn","gov\.cn","com\.hk","co\.uk","com","net","org","int","edu","gov","mil","arpa","Asia","biz","info","name","pro","coop","aero","museum","ac","ad","ae","af","ag","ai","al","am","an","ao","aq","ar","as","at","au","aw","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bm","bn","bo","br","bs","bt","bv","bw","by","bz","ca","cc","cf","cg","ch","ci","ck","cl","cm","cn","co","cq","cr","cu","cv","cx","cy","cz","de","dj","dk","dm","do","dz","ec","ee","eg","eh","es","et","ev","fi","fj","fk","fm","fo","fr","ga","gb","gd","ge","gf","gh","gi","gl","gm","gn","gp","gr","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","id","ie","il","in","io","iq","ir","is","it","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","me","mg","mh","ml","mm","mn","mo","mp","mq","mr","ms","mt","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nt","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","pt","pw","py","qa","re","ro","ru","rw","sa","sb","sc","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","st","su","sy","sz","tc","td","tf","tg","th","tj","tk","tm","tn","to","tp","tr","tt","tv","tw","tz","ua","ug","uk","us","uy","va","vc","ve","vg","vn","vu","wf","ws","ye","yu","za","zm","zr","zw"];
   var i = 0, l = ext.length;
   for(; i < l; i++){
    var val = ext[i];
    var expObj = null;
    eval("expObj = /^((\\w+\\.)+)(" + val + ")$/");
    var _tempMatch = domain.match(expObj);
    if(_tempMatch !== null){
     if(_tempMatch.length === 4){
      var domainExt = _tempMatch[3];
      var preFix = _tempMatch[1].replace(/(\.+)$/g, "");
      var preFixArr = preFix.split(".").reverse();
      ret = preFixArr[0] + "." + domainExt;
      break;
     };
    };
   };
   return ret;
  }

2012年3月2日星期五

win7用win8的主题

win8的主题扩展名为“.deskthemepack”,改成“.themepack”安装,然后打开“%AppData%\..\Local\Microsoft\Windows\Themes”找到刚才安装的主题包,找到“.theme”用文本编辑器打开,在“[Control Panel\Desktop]”下面增加两行:

TileWallpaper=0
WallpaperStyle=6

然后找到“[MasterThemeSelector]”,修改下面“MTSM=DABJDKT”,保存退出,双击这个".theme"就好了。