Day 2979 Solidot一键展开评论

Solidot于2012年12月改版后已经过去了一年的时间,刚开始还觉得以前这个站的新闻比较新奇、及时(我承认自己是从cnBeta找过去的),所以还曾经写信提交bug,但几封邮件均如泥牛入海不知踪迹,感觉很失望。

之后发觉Solidot的风格越来越五毛化,也就不怎么常去了,据说是嫁给ZDnet之后寄人篱下的缘故。

改版后有一个很别扭的地方:虽然Solidot一直没有本家的Karma系统,但以前想以层叠方式完整阅览某新闻下的评论,只需要将评分选择到-1或者-2即可,但改版后可选的最低分数会被限制在0分,如果此新闻下只有0分评论,那么永远无法通过操作select控件展开评论进行查看。

其实只需要手动加上threshold(评分阈值,或者叫门槛)以及mode(评论展开样式)参数就可以达到目的,但第一本人始终拼不对threshold这个单词(掩面),第二每次都手敲很麻烦,所以加个书签就OK:

javascript:window.location=window.location.href+’&threshold=0&mode=nested’;

注:threshold和mode缺一不可,threshold根据情况(取决于该篇新闻中评论的最低分值)可能需要修改为-1或-2(吐个槽:改版的Solidot正地方没用心,检查参数倒是很注意),可以多建两个书签。

赠品:yPool在Share位置显示Balance + Unconfirmed的和:

setInterval(function() {document.getElementById(‘shareval_display’).innerText = (parseFloat(document.getElementById(‘balance_display’).innerText) + parseFloat(document.getElementById(‘unconfirmed_display’).innerText)).toFixed(8);}, 500);

Day 2978 「我的电脑」双击打开设备管理器、「所有程序」空白

最近遇到的两个问题:

1、双击桌面上的「我的电脑」(或Windows Vista以上版本的「计算机」,下文不再另行说明)时,打开了设备管理器等非「我的电脑」的窗口,在图标上点击右键时发现「设备管理器」等项目变成粗体(即默认)选项

原因:「我的电脑」项的注册表信息被更改(该机使用过多种未知的「优化」软件),造成右键菜单项目混乱。
解决方法:控制「我的电脑」图标的注册表项为:
HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}
到「我的电脑」右键菜单正常的机器上将此项导出,在出问题的机器上首先对原项目进行导出备份,再导入正常的内容,如果没有效果,可以kill掉explorer.exe进程再重新启动之即可。

2、Windows 7系统点击开始菜单的「所有程序」后,列表一片空白

查找过程:度娘给出的结果都是「所有程序」一项消失,并非「所有程序」的列表为空白。当时由于当事人觉得处理起来太麻烦,未能完成诊断工作作罢,初步判定可能与该日志(需自备梯子)提到的原因有关:Windows 7 RC 7100版本的开始菜单有一个bug,当当前用户和所有用户的「程序」列表项多于70个时,「所有程序」会不高兴显示为空白,解决方案也只有对应的将部分项目移入单一文件夹,然后重启explorer.exe或整个系统,可能会有效果。
上述日志问题对应的版本是7100,而现今Windows 7已升级到7601版,如果还是这个老原因,那还真是不应该。

Day 2934 解决RDP远程桌面无法复制粘贴的问题

一直用3389作为主要的某Windows服务器管理方式,当然还有备用的。

最近突然发现在两台机器之间的复制粘贴不能用了,不管是普通文本还是文件,原本是好好的。

一番搜索的结果如下:

1、确认连接前mstsc的选项「本地资源」-「本地设备和资源」中的「剪贴板」已勾选。
2、在远端Kill掉rdpclip.exe,然后重新启动该进程即可。

Day 2931 解决因字体嵌入限制导致Indesign中PDF导出失败的问题

本人日常工作之一是将本社杂志转换成PDF格式以供对内分发。

年前将办公机抱回了家里进行清理维护,重装了系统,当然所有的字体也进行了重新安装。今天进行一如既往的工作时,却突然发现一向比QuarkXPress听话得多的InDesign也开始报「导出PDF文件失败」,尝试调整了很多选项均未果。后来注意到最后的「错误」之前有很多「警告」,大体意思都是「字体【字体名称】包含版权保护,无法进行嵌入操作」,才想到是不是所用的字体包含Copyright flag并且同类错误太多,导致PDF Distiller无法继续运行。

重点关注了【字体名称】所指的字体,全部属于某著名品牌,于是想到既然只是一个Flag能否直接去掉,一通搜索之后找到了这个工具:TTFPATCH原始地址)。

鉴于私自修改字体明显是侵犯版权的行为,就不在这里直接放出使用方法了,直接运行就有提示,稍作说明的一点是新TypeValue可以用加法来同时设置两种属性。

注:本日志的源代码中没有任何奇怪的东西。

Day 2888 U盘

aigoud_header

手里有一枚“爱国者精锐型II代2GB”的U盘,大概是09年的时候入手的,算下来用了4年了,前一阵子突然开始读取困难,复制文件卡很久最后还是会以I/O错误告终,胡乱尝试了几种方法最后却导致系统干脆不认了,就放了起来干脆准备买新的。

结果前两天手里的另一枚iSteed 16GB USB3.0也出了问题,虽然不及无法使用这么严重,只是插到USB 3.0的接口上却始终被识别为2.0,生怕一个U盘都没得用,还是回来看了看aigo的那只U盘,看能不能救活。

继续阅读 “Day 2888 U盘”

Day 2821 饭否OAuth 2 API黑箱摸索笔记

饭否的API上次更新已经比网页版还要古老了,传说中的2.0版API只出了一个草稿,后来因为各种原因中止了开发,从此杳无音讯。

OAuth 2.0比1.0减少了繁琐且容易出错(还很难找到原因)的签名过程,但前提是依赖https的加密传输,所以饭否允许在http协议下使用OAuth 2.0的做法其实是不对的,但已经没有人管了,反正证书都过期了。

以下为参考草稿及API Wiki中散落的2.0 API说明文档整理的黑箱笔记。

继续阅读 “Day 2821 饭否OAuth 2 API黑箱摸索笔记”

Day 2820 在安装有avast!的机器上无法安装VMware

试图在安装了Avast 8.0的计算机上安装VMWare Workstation或独立的VMWare Player时,会遇到以下错误:

Service VMware Authorization Service (VMAuthdService) failed to start.
Verify that you have sufficient privileges to start system services.

解决方法来源于Avast社区:http://forum.avast.com/index.php?topic=126795.0

Avast在某个版本起(应该是最近一个月的更新)引入了辅助硬件虚拟化功能,以增强其沙盒的性能,但这个问题会导致同样需要硬件虚拟化的VMWare服务启动失败,解决方法就是将其临时关掉,安装完毕后即可打开。

关闭方法:打开Avast主界面,点击右上角的「设置」,在「疑难排解」中取消对「启用硬件辅助虚拟」的勾选,然后重新启动计算机。

话说原帖里说next release就会解决了,结果还是没完啊。

Day 2749 解决在安装了Hyper-V角色后无法直接卸载VMware Workstation的问题

VMWare和Hyper-V各有千秋,反正在单位的服务器上Hyper-V表现更好一些,VMWare开一天多之后卡得没法动,大概是所占用的内存被回收掉,需要从页面文件里重新读吧,虽然似乎128GB的内存不该有这个问题。

言归正传,如果先前在系统中安装了VMware Workstation,后来又启用了Hyper-V角色的话,试图卸载VMWare时会遇到This product may not be installed on a computer that has Microsoft HyperV installed(不允许在启用了Microsoft HyperV的计算机上安装Vmware)的错误,这个如果出现在安装的时候还好理解,但是卸载的时候是不是有点搞笑?

搜索之初,到处都是教「先删除HyperV角色,然后卸载VMware,最后重新启用HyperV」的方法,问题是一来VMware已有的虚拟机和HyperV并不冲突,二来服务器重启一次要15分钟简直让人崩溃,最后有个帖子给指了条光明大道:

找到以下文件:
C:\ProgramData\VMware\VMware Workstation\Uninstaller\bootstrap.lua
搜索CheckForMSHyperV(),在前面加上「--」将其注释掉,保存,再次卸载VMWare Workstation即可。

一试就灵。

后续:第二天就把Hyper-V删掉了,因为服务器上装的是Westmere架构的E5处理器,微软官方也有解释(http://support.microsoft.com/kb/981791),由于Westmere架构使用了新的虚拟机管控缓存机制(because Intel Westmere processors have a new Virtual Machine Control Structure(VMCS) caching feature),Hyper-V无法正确使用这一功能,会导致STOP 0x0000001a Memory Management停机错误,而微软对此提供的的Hotfix居然在服务器上装不上(提示「此更新不适用于您的计算机」)。

Day 2735 按下Ctrl+Alt+Shift+V后出现Version对话框

同事发消息来求助,说是一按InDesign的原位粘贴快捷键Alt+Shift+Ctrl+V就冒出一个对话框,长这个样子:

casv_version

 

在接下来的排查中发现这个对话框有以下几个特点:

1、在许多程序中按下Ctrl+Alt+Shift+V都会蹦出来,但资源管理器等系统程序里不会;

2、关掉已知会抢占热键的程序(比如QQ等)并不能解决问题。

3、将InDesign这个原位粘贴快捷键更换为其它组合即恢复正常。

网上没有任何答案,一头雾水地到处搜索。考虑到很多程序里都会弹,估计热键被注册成全局了,但究竟哪个程序的Version是1.0.14.161呢?

Google把一堆IP查询网站的结果给了这串长得很像IP地址的数字,一开始以为什么都搜不到了,后来转了一大圈在最后一页找到这么一个俄文网站:

fact_of_ver1_0_14_161

 

立马回头去问同事让他看任务管理器,果然有这个进程,Kill掉之后原位粘贴恢复正常,再找到百度影音的卸载项卸载,重启,再没发生。

百度你能不那么流氓不?你认为这么长的快捷键谁都按不到吗,还敢注册成全局热键……

我讨厌一些国产软件不是没有原因的。

Day 2691 PHPCMS v9 自导入数据不统计点击数

我还在苦那啥地写网站……

这个网站有不少用自写SQL从外部导入的数据,过程中遇到很多问题,其中一个就是这些自行导入的数据无法统计点击数。经查证得知,PHPCMS v9统计点击数是通过调用名为count的API进行的:

$db = pc_base::load_model('hits_model');
if($_GET['modelid'] && $_GET['id']) {
...
$hitsid = 'c-'.$modelid.'-'.intval($_GET['id']);
$r = get_count($hitsid);
if(!$r) exit;

其中最后一句很关键,意思是如果找不到点击数的记录就直接exit,于是这些可怜的自导入数据就失去了被统计的权利。

解决方法:自己写SQL为没有统计记录的条目们建立记录,可参照如下查询进行写入:

INSERT IGNORE INTO `[$db_prefix]_hits` (`hitsid`) SELECT CONCAT('c-[$modelid]-',`id`) FROM `[$db_prefix]_[$source_model_table]`;

其中的$db_prefix、$modelid、$source_model_table需自行按实际情况进行替换,IGNORE的意思是跳过已有记录。