MacTex 里直接用 CTeX 文类的 \fangsong 命令的话,会默认使用华文仿宋字体(STFangsong)。
这样的文件用 latexmk 编译得到的 pdf 会在 windows 里乱码,不能显示其中的仿宋字体。
但直接用 xelatex 编译并不会如此。
经 @johannes_gutenberg 告知,实际上 latexmk 在编译时有两步:
1. tex -> xdv
xelatex -no-pdf [...] input.tex
可能编译多次
2. xdv -> pdf
xdvipdfmx input.xdv
而第二步中,这个华文仿宋字体由于版权(?)原因,不会被嵌入到 pdf 内。
可以显示使用 -E 选项要求 xdvipdfmx 嵌入字体。
对于 latexmk,则可以如下操作:
1. 工作目录新建空文件 latexmkrc
2. 其中内容写上 $xdvipdfmx="xdvipdfmx -E -o %D %O %S"
就可以让 latexmk 生成 pdf 时总嵌入字体。
2018年4月3日星期二
2017年8月17日星期四
让 LG KBB-710 键盘支持 iOS 10
大约去年暑期时,冲动购物买了 LG 的 KBB-710 键盘。买回来试了下感觉不错,但平时也不怎么需要用,就收起来没再试过。
等这几天翻出来想用时,发现一个奇怪的问题:与 iOS 设备配对成功之后,想要再次从断开状态恢复连接就会失败,提示找不到设备。断开包括 iOS 锁屏、键盘卷起、键盘切换连接设备等。
网上搜了下,发现大量用户都表示 iOS 10 之后遇到了类似的问题。而 LG 官方也直接宣布这键盘不支持 iOS 10了。
LG 给了个临时解决方案,让每次需要使用时都忽略设备然后重新配对。但是在我这里,重新配对时需要等超长的设备搜索时间。
网上搜索一番无果之后,倒是让我试出来一个临时解决方案:
等这几天翻出来想用时,发现一个奇怪的问题:与 iOS 设备配对成功之后,想要再次从断开状态恢复连接就会失败,提示找不到设备。断开包括 iOS 锁屏、键盘卷起、键盘切换连接设备等。
网上搜了下,发现大量用户都表示 iOS 10 之后遇到了类似的问题。而 LG 官方也直接宣布这键盘不支持 iOS 10了。
LG 给了个临时解决方案,让每次需要使用时都忽略设备然后重新配对。但是在我这里,重新配对时需要等超长的设备搜索时间。
网上搜索一番无果之后,倒是让我试出来一个临时解决方案:
- 每当需要恢复连接键盘时,把键盘展开,把 iOS 的蓝牙设置打开。这时设置里应该会显示一个未找到的键盘。
- 按住 KBB-710 上你上次进行匹配的蓝牙数字键两秒,进入重新匹配模式。
- 在 iOS 蓝牙设置里点击你的键盘。
2017年3月24日星期五
配置群晖支持 python 版 shadowsocks
问题描述
直接使用 pip 安装 shadowsocks,启动时可能卡在RuntimeError: can not find library crypto 这一步。这里是在使用 ctypes 查找 libcrypto.so,而群晖自带的 python 里,ctypes 版本太老,不支持 armv7,以至于
ctypes.util.find_library()实际上找不到任何可用的库。解决方案
去新一点的 Linux 发行版上,拷一个/usr/lib/python2.7/ctypes/util.py 回来,替换掉群晖自己这个文件即可。我找了个 Ubuntu14 就解决问题了。
消息来源:https://forum.synology.com/enu/viewtopic.php?t=84921
2016年10月23日星期日
让 Windows 中的 LaTeXTools 支持中文目录
LaTeXTools 是 Sublime Text 的一个插件,可以用来方便地在 Sublime Text 中处理 LaTeX 文件。
我目前所使用的 v3.11.2 版稍有问题,无法正确处理中文目录,原因是其 makepdf.py 文件使用 subprocess.Popen 调用 Latex 的外部指令时,对传入的工作目录 cwd 没有进行特殊字符判断,直接给了 Popen。如果工作目录含有中文字符的话,就会报一个
解决方案:
自己 encoding 一下 cwd,再传给 Popen。
在第 142 行,
将紧随其后的
参阅
1. Sublime Text 2的Tortoise插件中文路径问题
2. subprocess.call fails with unicode strings in command line - Python tracker
我目前所使用的 v3.11.2 版稍有问题,无法正确处理中文目录,原因是其 makepdf.py 文件使用 subprocess.Popen 调用 Latex 的外部指令时,对传入的工作目录 cwd 没有进行特殊字符判断,直接给了 Popen。如果工作目录含有中文字符的话,就会报一个
UnicodeEncodeError: 'ascii' codec can't encode characters in position xx-xx: ordinal not in range(128)的错误。
解决方案:
自己 encoding 一下 cwd,再传给 Popen。
在第 142 行,
if self.caller.plat == "windows":之后另起一行,缩进并加入下列内容
fixed_tex_dir = self.caller.tex_dir
if isinstance(fixed_tex_dir, unicode):
fixed_tex_dir = fixed_tex_dir.encode(sys.getfilesystemencoding())
将紧随其后的
cwd=self.caller.tex_dir替换为
cwd=fixed_tex_dir注意上述内容中,所有四个空格都要替换为 tab 缩进。
参阅
1. Sublime Text 2的Tortoise插件中文路径问题
2. subprocess.call fails with unicode strings in command line - Python tracker
2016年6月27日星期一
Minecraft 开服指导:同时兼容 Forge 和 Essentials 类插件
本文为截止当前( 2016年06月27日)对 Minecraft 开服方式的小结
主要目标是:同时兼容 Forge 和 Essentials 类插件
主要目标是:同时兼容 Forge 和 Essentials 类插件
- 对于 1.7.10
- 对于早于 forge1403 的版本:直接使用 Cauldron
- 对于后续版本
- 考虑使用 Kcauldron
- 考虑使用 Thermos
- 上述都直接支持标准 essentials 插件
- 使用 forge + forge essentials
- 代价是禁怪不如原始 essentials 方便,但有其它功能
- http://files.minecraftforge.net/
- http://minecraft.curseforge.com/projects/forge-essentials-74735/files
- 对于 1.8
- 使用 spigot + 相关 essentials
- 使用 forge + forge essentials
- 同1.7.10
- 但暂无1.8.9编译版本?
- 使用 forge + sponge + sponge essentials
- 对于 1.9
- 使用 spigot + essentials
- 没 mod
- 使用 forge + sponge + sponge essentials
- 使用 spigot + essentials
- 对于 1.10
- 使用 forge
- 没插件
- 使用 spigot
- 没 mod
- 使用 forge
2015年3月15日星期日
在Abaqus中使用c++写用户子程序
Abaqus 6.13之后的版本多了一个功能,可以用c++或者c来写用户子程序了;之前的版本中只支持使用fortran语言。
网上在这方面的资料太少,因此把我的折腾过程记录一下。
从c++调用fortran的函数,其参数列表中含有字符串时
——关于fortran 中的character*
http://www.yolinux.com/TUTORIALS/LinuxTutorialMixingFortranAndC.html
https://computing.llnl.gov/tutorials/bgq/ 中的 Miscellaneous 一节
http://arnholm.org/software/cppf77/cppf77.htm
网上在这方面的资料太少,因此把我的折腾过程记录一下。
- 在abaqus中加载编译环境用和fortran相同的方法(不过我试的时候没需要,应该是ifortvar带进去了)
- abaqus_v6.env里没什么要改的
- 在cpp文件中如下修改
- 要先#include <aba_for_c.h>
- 这会带进来个FOR_NAME宏,所有从abaqus调用的函数,以及调用abaqus的函数,都用类似下面的方法声明
- extern "C" 是让cpp用c的方法声明符号——即符号名称中不包含变量类型,不知重载是怎么解决的。
- 就算不能重载也没关系,只有和abaqus通信的函数要这么处理
- 例子
- extern "C" void FOR_NAME(xit)();
- 这个是abaqus提供的函数
- 对于需要传入的参数中包含字符串的,见文末说明。
- extern "C" void FOR_NAME(umat)(double* STRESS,void* STATEV,double*DDSDDEori,void* SSE,void* SPD,void* SCD,void* RPL,void* DDSDDT,void* DRPLDE,void* DRPLDT,void* STRAN,double* DSTRAN,void* TIME,void* DTIME,void* TEMP,void* DTEMP,void* PREDEF,void* DPRED,void* CMNAME,int& NDI,int& NSHR,int& NTENS,void* NSTATV,double* PROPS,void* NPROPS,void* COORDS,void* DROT,void* PNEWDT,void* CELENT,void* DFGRD0,void* DFGRD1,void* NOEL,void* NPT,void* LAYER,void* KSPT,void* KSTEP,void* KINC){ }
- 这里的void*都是偷懒了,只声明对自己要用的变量就行
- 对于二维数组,fortran是列优先的,cpp是行优先的
- fortran是1开始数的,cpp是0开始数的
- DDSDDE这个二维数组,有两种办法
- 如果你确信你只对3维问题跑,则它一定是6*6的,可以把DDSDDE在函数头里声明为 double DDSDDE[][6],或者double (*DDSDDE)[6]
- 否则的话,开头声明为double* DDSDDEori
- double** DDSDDE=new double*[NTENS];
- for(int i=0;i<NTENS;i++) DDSDDE[i]=DDSDDEori+NTENS*i;
- 这个方法略占行数,不过并没有效率下降。
- 调用外部库
- 如armadillo
- 正常安装armadillo库之后即可使用
- 如果要矩阵乘法,就要BLAS;要解方程,就要LAPACK
- 他俩的lib应当从链接器中提供,这意味着——
- 修改abaqus_v6.env中的link_sl,在末尾添加'blas_win64_MT.lib' , 'lapack_win64_MT.lib' ,并将两个文件拷贝到vs的cpp库中(选择amd64)目录
- 在我的机子上是 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\amd64
- 将对应的两个dll拷到system32里
- 否则程序运行中会报错弹框退出
- 可以用mat ddsddeMat=mat(DDSDDEori,NTENS,NTENS,false,true);直接构建对应 的矩阵或列向量
- 开头把DDSDDE声明为double*或者void*
- 第一个false为不拷贝数据,直接用原始位置
- 第二个true为strict,即不添加空间,保证总是用这一段
- 要注意这里不用转置。
- 二维数组中,fortran是列优先的,c++是行优先的,但arma使用一维数组初始化矩阵时,是列优先的(至少在armadillo-4.650.3中是)。
- abaqus 6.13或更高版本支持在standard或者explicit中用c或cpp
- abaqus 6.14-2中仍然不支持直接用cae来指定cpp后缀的用户子程序,只能用命令行的user=xxxxx.cpp来指定。因此要用cae生成input文件,用命令行计算,最后可以用cae查看计算结果
从c++调用fortran的函数,其参数列表中含有字符串时
——关于fortran 中的character*
fortran中的字符串是自知长度的,可以通过len()访问
在c++中无法产生这一类
在向subroutine传递字符串时,具体行为是编译器相关的
- 有的编译器会传递一个结构体,其中包含1个char*指针,和一个size_t的值
- 有的编译器在整个函数的参数列表末尾按顺序依次再传递各个字符串的长度
intel fortran 是第二种
对于第一种情况,可以构造一个类CHARACTER来模拟行为
这里有个写好的
对于第二种情况,在c++中声明函数就要考虑到末尾的整形变量,调用时也要如此考虑
- 声明 extern "C" void FOR_NAME(getoutdir) (char* outdir, int* lenoutdir, int len);
- 调用 getoutdir(temp, &len, 200);
- 其中200为char temp[200];
http://www.yolinux.com/TUTORIALS/LinuxTutorialMixingFortranAndC.html
https://computing.llnl.gov/tutorials/bgq/ 中的 Miscellaneous 一节
http://arnholm.org/software/cppf77/cppf77.htm
2013年9月12日星期四
在Airmail中使用QQ邮箱
2013年2月4日星期一
在Win7 x64下安装AutoCAD 2002
作为一个早于Windows XP出生的软件,这几天真是让我见识到AutoCAD2002的各种奇葩之处。
它使用了一个叫做C-Dilla的反盗版组件。我没有找到它的官网,从这里的描述来看,它目前的最新版本3.27发布于2002年11月。
C-Dilla这个组件,自始至终,没有兼容过64位系统。
AutoCAD2002的原始安装盘中自带的C-Dilla组件版本号为3.24,它甚至还不支持XP系统……因而网上有大把的文章教你去安装C-Dilla3.25以在Windows XP中正常使用AutoCAD2002。
我天朝人民为了免费使用AutoCAD2002,发明了一种修改acad.exe来绕开C-Dilla组件的方法。这种方法正好可以让我们在64位操作系统下使用AutoCAD2002。(AutoCAD2002的其他部分都可以正常运行在WoW64环境下)
比如说,你可以在这里获取一个绕开C-Dilla的盗版AutoCAD。
虽说到这里为止问题似乎已经解决了,但遗憾的是这个精简的破解版去掉的功能实在太多,满足不了母上的正常工作需要,因而只能用下面这种比较绕远的方法了。
先正常安装一份原版的AutoCAD,这时它是打不开的。
更新: 直接用破解版压缩包中的 acad.exe 替换掉原版的 acad.exe 即可。
嘛这样就基本搞定了,如果你接下来发现DWG文件图标错误,可以参考这篇文章。
修复win7 x64下AutoCAD 2002 *.dwg文件的图标
给老妈装机子时遇到的莫名其妙的问题。
AutoCAD 2002发布时XP还没面世,因此你要是想在更新的win7环境中使用,有可能遇到各种莫名其妙的问题。
这是其中之一,安装完成后DWG文件的图标会变成下面这种样子。
Win7里去掉了详细的文件关联管理器,新的文件关联系统虽然对用户友好了不少,但很多功能都消失了,得自己去注册表修改。
dwg文件关联的详细信息在这里:
AutoCAD 2002发布时XP还没面世,因此你要是想在更新的win7环境中使用,有可能遇到各种莫名其妙的问题。
这是其中之一,安装完成后DWG文件的图标会变成下面这种样子。
Win7里去掉了详细的文件关联管理器,新的文件关联系统虽然对用户友好了不少,但很多功能都消失了,得自己去注册表修改。
dwg文件关联的详细信息在这里:
HKEY_CLASSES_ROOT\AutoCAD.Drawing.15\
它的默认图标在下属的DefaultIcon子键里,如果你的图标和我的相似,这个子键的“默认”键值很有可能如下:
C:\WINDOWS\system32\acadficn.dll,37
直接查找这个文件(当然我更推荐你使用everything),发现它在64位win7中保存在这个位置
C:\WINDOWS\SysWOW64\acadficn.dll,37
把它直接改对就行了
WoW64是64位Windows系统针对32位程序的虚拟层。
正常的安装程序注册图标时应该使用合适的方法来得到自己组件的位置,但看起来AutoCAD2002想当然地指定了文件的位置。
// 作为一个老软件,AutoCAD 2002还有许多其他在Win7 x64下表现奇葩的地方,这几天打算再写一篇描述一下
2012年10月20日星期六
如何在Word中快速地敲公式
本文主讲公式,其他排版信息可以戳这里→ http://zhi.hu/Jseg
这篇文最早发在知乎上,后来被我发在了renren。放在这里只是为了存档。
http://www.zhihu.com/question/20541531/answer/15430126
word的公式模式支持大多数LaTeX的数学模式写法。
word使用 Alt+= 插入一个新公式。
(为了方便说明,下面使用【空格】代指按一下键盘的空格键)
(可能看不清,在【】的前后都没有空格符号)
在公式模式下使用【空格】来完成对一段记号的确认。例如 \alpha【空格】 即可输入一个alpha字母
不过,在某些时候当你按下=或者*这种运算符时,word会默认在这些符号前插入一个【空格】效果,你可以直接按ctrl+z取消这个【空格】
和LaTeX公式的一个显著区别是,分数线不使用frac{}{}了,而是a/b【空格】的形式来输入,我觉得这比LaTeX要舒服。
另一个显著区别是,TeX使用{}作为定界符,而word一般使用()或者空格,这可能会让你有意外的结果……
下面来举几个例子吧~(在word2010中测试通过)
是的,这个例子中【空格】意外地少,因为在大多时候word自动补完了这个【空格】功能。此外C_(pI)被转化为下标时,两个用作定界的()也自动消失了
这里主要是想描述下大括号和并联的公式【shift+enter】可以插入一个空符在当前位置之下。此外\Delta和\delta是不同的符号,分别对应大小写。
实际操作时你就会发现,最后这个【空格】操作会使左边这个记号变成右边这样。当你按【空格】时,word会自动调整()的大小。
呃一时再想不起有趣的公式了……
谁有想打的公式可以在下面回复我,我来试试看word能否做到~
PS:word的公式自动编号我一直很头疼,不知谁有好办法实现没……
这篇文最早发在知乎上,后来被我发在了renren。放在这里只是为了存档。
http://www.zhihu.com/question/20541531/answer/15430126
word的公式模式支持大多数LaTeX的数学模式写法。
word使用 Alt+= 插入一个新公式。
(为了方便说明,下面使用【空格】代指按一下键盘的空格键)
(可能看不清,在【】的前后都没有空格符号)
在公式模式下使用【空格】来完成对一段记号的确认。例如 \alpha【空格】 即可输入一个alpha字母
不过,在某些时候当你按下=或者*这种运算符时,word会默认在这些符号前插入一个【空格】效果,你可以直接按ctrl+z取消这个【空格】
和LaTeX公式的一个显著区别是,分数线不使用frac{}{}了,而是a/b【空格】的形式来输入,我觉得这比LaTeX要舒服。
另一个显著区别是,TeX使用{}作为定界符,而word一般使用()或者空格,这可能会让你有意外的结果……
下面来举几个例子吧~(在word2010中测试通过)
是的,这个例子中【空格】意外地少,因为在大多时候word自动补完了这个【空格】功能。此外C_(pI)被转化为下标时,两个用作定界的()也自动消失了
这里主要是想描述下大括号和并联的公式【shift+enter】可以插入一个空符在当前位置之下。此外\Delta和\delta是不同的符号,分别对应大小写。
实际操作时你就会发现,最后这个【空格】操作会使左边这个记号变成右边这样。当你按【空格】时,word会自动调整()的大小。
呃一时再想不起有趣的公式了……
谁有想打的公式可以在下面回复我,我来试试看word能否做到~
PS:word的公式自动编号我一直很头疼,不知谁有好办法实现没……
2012年7月31日星期二
数迷
数对我似乎有特殊的意义。
数字和数不同,数字是构成数的字符,特指0-9,没有负号,没有小数点,没有分数线,没有循环记号。
但一旦数字构成了数,当它们映入眼帘时,我就会不自觉地去想这个数是否有什么特别的性质,自己根本控制不了,就好像有时你会发现自己的脑中在不自觉地唱歌一样,吵的你睡不着。
拜此所赐,我看书时几乎不需要书签。只需要看一眼页码,就会不自觉地去联想出一堆此数的性质,快速强化短期记忆,下次看书时就能很快想起页码。
有用么?不过都是些对数的浅思考罢了。
数字和数不同,数字是构成数的字符,特指0-9,没有负号,没有小数点,没有分数线,没有循环记号。
但一旦数字构成了数,当它们映入眼帘时,我就会不自觉地去想这个数是否有什么特别的性质,自己根本控制不了,就好像有时你会发现自己的脑中在不自觉地唱歌一样,吵的你睡不着。
拜此所赐,我看书时几乎不需要书签。只需要看一眼页码,就会不自觉地去联想出一堆此数的性质,快速强化短期记忆,下次看书时就能很快想起页码。
有用么?不过都是些对数的浅思考罢了。
2012年7月8日星期日
狂想曲
今天看了.hack剧场版,被里面的《the world》游戏所震撼了。
看完之后,“这辈子绝对要把这个技术实现”的想法占据了脑海。
这种感情如此强烈,就好像这是我的梦想。
大学时,一位令我尊敬的老师曾说过,应该有那么一个工作,当你早上醒来,你会迫不及待地跳下床,将自己的生命投入到里面去,一秒也不愿浪费。
“我愿意拼上我这辈子将其实现”,这是我现在的想法。
这可能是我一时冲动,我先去洗个澡再来看看。
洗澡归来,这种想法更加强烈了。
记得我的高中老师很认真地对我说过这个词——慎独。洗澡时的我恰好是独自一人,所以会很危险也说不定。
一个人孤立地思考,孤立地暴走。
我想今晚就开始着手考虑如何实现这种虚拟现实技术。
我的理性大概都飞光了。
但另一方面,根据我对自己前几年的经验,我的兴趣转移的速度一直很快。
无法判断这个热点还在我脑中盘旋多久,趁热把它记录下来应该是好事。
给未来的我留个回忆。
看完之后,“这辈子绝对要把这个技术实现”的想法占据了脑海。
这种感情如此强烈,就好像这是我的梦想。
大学时,一位令我尊敬的老师曾说过,应该有那么一个工作,当你早上醒来,你会迫不及待地跳下床,将自己的生命投入到里面去,一秒也不愿浪费。
“我愿意拼上我这辈子将其实现”,这是我现在的想法。
这可能是我一时冲动,我先去洗个澡再来看看。
洗澡归来,这种想法更加强烈了。
记得我的高中老师很认真地对我说过这个词——慎独。洗澡时的我恰好是独自一人,所以会很危险也说不定。
一个人孤立地思考,孤立地暴走。
我想今晚就开始着手考虑如何实现这种虚拟现实技术。
我的理性大概都飞光了。
但另一方面,根据我对自己前几年的经验,我的兴趣转移的速度一直很快。
无法判断这个热点还在我脑中盘旋多久,趁热把它记录下来应该是好事。
给未来的我留个回忆。
2012年7月7日星期六
少年的童话
因为看了几集萌菌物语的关系,想起初中时看的一本小说,郑渊洁的《病菌集中营》。
设定几乎一模一样呢……一个医生获得了能与细菌交流的能力……嘛,不过后面的展开方式完全不同就是了
是本恰适合初中生看的小说呢
我曾订阅过一段时间郑渊洁的博客,不由得想起这篇博文
http://blog.sina.com.cn/s/blog_473abae601017kiq.html
郑渊洁觉得,当初读自己作品的读者们都长大了,是时候给他们继续创作作品了,于是准备了20部长篇小说。这些文字与以前的童话稍有不同,他们更适合“长大”了的读者阅读。
但遗憾的是,由于已被贴上童话文学作者的标签,郑渊洁发现自己的长篇小说依然被摆放在少儿读物区域中。随后部分人指责郑渊洁写的小说不适合少年儿童阅读,郑渊洁无奈地宣布还未出版的后13部长篇小说将在他离世100年之后才出版。
小时候的我非常喜欢郑渊洁的童话,但我没有订阅过童话大王。当时的我是通过盗版光盘阅读他的小说的——每天趴在电脑上,通过一个pdf阅读器读着他的十二生肖系列。
他的童话充满幻想,虽不科学,但我十分怀念那个不较真不理性可以开心地读小说的自己。
他的幻想,似乎从未停止。
设定几乎一模一样呢……一个医生获得了能与细菌交流的能力……嘛,不过后面的展开方式完全不同就是了
是本恰适合初中生看的小说呢
我曾订阅过一段时间郑渊洁的博客,不由得想起这篇博文
http://blog.sina.com.cn/s/blog_473abae601017kiq.html
郑渊洁觉得,当初读自己作品的读者们都长大了,是时候给他们继续创作作品了,于是准备了20部长篇小说。这些文字与以前的童话稍有不同,他们更适合“长大”了的读者阅读。
但遗憾的是,由于已被贴上童话文学作者的标签,郑渊洁发现自己的长篇小说依然被摆放在少儿读物区域中。随后部分人指责郑渊洁写的小说不适合少年儿童阅读,郑渊洁无奈地宣布还未出版的后13部长篇小说将在他离世100年之后才出版。
小时候的我非常喜欢郑渊洁的童话,但我没有订阅过童话大王。当时的我是通过盗版光盘阅读他的小说的——每天趴在电脑上,通过一个pdf阅读器读着他的十二生肖系列。
他的童话充满幻想,虽不科学,但我十分怀念那个不较真不理性可以开心地读小说的自己。
他的幻想,似乎从未停止。
2012年4月11日星期三
长草的博客与寂寞的我
目测博客已长草无误
最初建这个blog的初衷是给自己一个记录的想法的地方,东西写下来总和自己脑子里随便想想不一样。
然后没有毅力的我放弃了。
后来启用了ohlife服务,给自己一点零碎的时间把当天的杂事当日记记录下来。
这在相当程度上缓解了我的压力。使我无须再靠blog来发泄。
这么看来我建blog的真实目的就很明显了呢……啊啦啊啦ww
因而这个blog一直这样长草下去或许是个好事吧。
最初建这个blog的初衷是给自己一个记录的想法的地方,东西写下来总和自己脑子里随便想想不一样。
然后没有毅力的我放弃了。
后来启用了ohlife服务,给自己一点零碎的时间把当天的杂事当日记记录下来。
这在相当程度上缓解了我的压力。
这么看来我建blog的真实目的就很明显了呢……啊啦啊啦ww
因而这个blog一直这样长草下去或许是个好事吧。
2012年3月6日星期二
在firefox中添加自定义的协议链接方式
在firefox的“设置- 应用程序”中可以管理已有的各种协议及其打开方式,但无法自定义一个新的协议。
在打开一个未知的协议时,firefox会弹个框,询问你是否调用某个程序打开,你可以选择某个程序然后勾上以后不再询问。这时就添加了一个新的协议到“应用程序”列表里了。
但仅当这个协议是“未知”的时,firefox才会弹这个框。如果你的系统已经描述了这种协议如何打开,firefox就不会再询问你了。
前几天重做了个新的firefox配置文件,结果发现在点击itunes链接时,没有询问,直接启动了itunes。(itunes的链接开头是 itms://)
实际上正是因为windows里的itms协议已经关联了itunes的关系。
不过我的习惯是不默认打开itunes的协议,因为itunes启动太慢了……不小心误点会卡很久……
同样的,他也不在“选项-应用程序”选项卡里显示itms协议。
本来我的想法是,在“应用程序”选项卡里新建个itms协议,把打开方式选成“总是询问”就行了……结果firefox它居然不能在这里直接新建内容类型…………
在about:config里翻了一会mailto协议的描述,找到了个解决方法
在about:config里新建下面两个bool值
network.protocol-handler.external.itms 值为 true
network.protocol-handler.warn-external.itms 值为 true
搞定》《
-----------------
在我之前的那个配置文件里,是能在“应用程序”里找到itms协议的,因为我第一次点击这个协议的时候还没装itunes……
PS: 使用这个方法新建的协议,在“应用程序”里看不到。
在打开一个未知的协议时,firefox会弹个框,询问你是否调用某个程序打开,你可以选择某个程序然后勾上以后不再询问。这时就添加了一个新的协议到“应用程序”列表里了。
但仅当这个协议是“未知”的时,firefox才会弹这个框。如果你的系统已经描述了这种协议如何打开,firefox就不会再询问你了。
前几天重做了个新的firefox配置文件,结果发现在点击itunes链接时,没有询问,直接启动了itunes。(itunes的链接开头是 itms://)
实际上正是因为windows里的itms协议已经关联了itunes的关系。
不过我的习惯是不默认打开itunes的协议,因为itunes启动太慢了……不小心误点会卡很久……
同样的,他也不在“选项-应用程序”选项卡里显示itms协议。
本来我的想法是,在“应用程序”选项卡里新建个itms协议,把打开方式选成“总是询问”就行了……结果firefox它居然不能在这里直接新建内容类型…………
在about:config里翻了一会mailto协议的描述,找到了个解决方法
在about:config里新建下面两个bool值
network.protocol-handler.external.itms 值为 true
network.protocol-handler.warn-external.itms 值为 true
搞定》《
-----------------
在我之前的那个配置文件里,是能在“应用程序”里找到itms协议的,因为我第一次点击这个协议的时候还没装itunes……
PS: 使用这个方法新建的协议,在“应用程序”里看不到。
2011年11月3日星期四
调教好了新的foobar
呼……调好了新的foobar
把上个版本的播放历史记录、快捷键、评级、喜爱 全都迁移过来了
现在还缺个根据评级搜索……不知为何提示跟此版本foobar不兼容
终于摆脱那个臃肿的老foobar了》《
相伴四年了呢……一路走好~
update:2011年11月4日1:47:54
还是记录一下准备过程吧
用了foo_playcount,可以直接导入导出播放记录和评级
customdb不知道具体的原理,总之也拖过来了
没能解决评级列表问题,“ playlist tree mod ”大概就是这个吧
目前用%RATING% EQUAL 5凑活吧
另外找到了foobar打开过慢的原因
那300个播放列表……
全新安装foobar之后,拷贝列表进去,直接导致打开时巨慢
这回用了kelemix发的 foomania4界面……
可定制性太差了……估计以后得再换一次
把上个版本的播放历史记录、快捷键、评级、喜爱 全都迁移过来了
现在还缺个根据评级搜索……不知为何提示跟此版本foobar不兼容
终于摆脱那个臃肿的老foobar了》《
相伴四年了呢……一路走好~
update:2011年11月4日1:47:54
还是记录一下准备过程吧
用了foo_playcount,可以直接导入导出播放记录和评级
customdb不知道具体的原理,总之也拖过来了
没能解决评级列表问题,“ playlist tree mod ”大概就是这个吧
目前用%RATING% EQUAL 5凑活吧
另外找到了foobar打开过慢的原因
那300个播放列表……
全新安装foobar之后,拷贝列表进去,直接导致打开时巨慢
这回用了kelemix发的 foomania4界面……
可定制性太差了……估计以后得再换一次
2011年10月22日星期六
2011年9月9日星期五
python 笔记(1)
一个关于python类的属性的疑问
(生自dive into python中文p91
类中可以有数据属性,如
我使用下面使用这个函数来打印值
但如果在程序中手动改变某个实例的属性值比如令c.count=10
那么c.count就会脱离类的控制,下面是个例子
(生自dive into python中文p91
类中可以有数据属性,如
class counter:这时表现出来的count类似“静态属性”,每构造一个实例,count值加1
count=0
def __init__(self):
self.__class__.count+=1
我使用下面使用这个函数来打印值
def printme(thestr):那么下面这段程序
print thestr,':',eval(thestr)
printme('counter.count')会输出
c=counter()
printme('c.count')
printme('counter.count')
d=counter()
printme('d.count')
printme('c.count')
printme('counter.count')
counter.count : 0到此为止表现正常
c.count : 1
counter.count : 1
d.count : 2
c.count : 2
counter.count : 2
但如果在程序中手动改变某个实例的属性值比如令c.count=10
那么c.count就会脱离类的控制,下面是个例子
printme('counter.count')输出
c=counter()
printme('c.count')
printme('counter.count')
c.count=10
printme('c.count')
printme('counter.count')
d=counter()
printme('d.count')
printme('c.count')
printme('counter.count')
counter.count : 0这绝对很奇怪啊╮(╯▽╰)╭
c.count : 1
counter.count : 1
c.count : 10
counter.count : 1
d.count : 2
c.count : 10
counter.count : 2
2011年9月2日星期五
google日历重复问题存档
已被解决………………鼠标左键+del键让我在2分钟里删除了全部400个事件……
曾经用老的nokia手机批量添加过日程,设定是每周重复一次
当这个日程同步到google上时,google不把它识别为重复的,而是每周一个独立的任务
现在我想删除这一系列日程,但是g oogle上删除时只能每次删一个。而我当时添加的时候没有设置循环结束日期……
由于这一系列日程名字都是 一样的,所以可以用google日历的搜索将他们都搜出来,但搜出来之后google也没有“批量删除”这 个功能
由于这一系列日程名字都是
2011年9月1日星期四
牧濑 红莉栖
牧濑 红莉栖
恭喜您从今天起成为我的“ ”
继长门有希、哀川润、羽川翼之后第四人获得此称号
我应当为此感到自豪
没关系的,助手
无论将来如何,你永远在我的殿堂中存有位置
signed by anamewing
2011年9月1日2:59:23
《命运石之门》Episode22观毕
恭喜您从今天起成为我的“ ”
继长门有希、哀川润、羽川翼之后第四人获得此称号
我应当为此感到自豪
没关系的,助手
无论将来如何,你永远在我的殿堂中存有位置
signed by anamewing
2011年9月1日2:59:23
《命运石之门》Episode22观毕
订阅:
博文 (Atom)