跳转到主要内容

KK的博客

Don't Repeat Yourself · 好奇心驱动进步

最新文章

  • 智能去除选定区域

    发布于 文章 722 字 2 分钟

    Python

    这篇文章缘起于这篇博客:http://xiaoxia.org/2011/12/03/shocked-by-gimp-filter-smart-remove-selection/ 看完以后着实震惊了,这下要去掉照片里的东西实在太简单了。在群里吼了一声以后,美术表示 Photoshop CS5 很淡定。于是我找来了 Photoshop CS5 (PS CS5) 教程 看看,大约 9 分钟的时候,CS5 潇洒地 P 掉了背景中的一个人,神奇了! 这项工作原来是要靠人手完成的,自己选取一块相近的纹理,通 …

    这篇文章缘起于这篇博客:http://xiaoxia.org/2011/12/03/shocked-by-gimp-filter-smart-remove-selection/ 看完以后着实震惊了,这下要去掉照片里的东西实在太简单了。在群里吼了一声以后,美术表示 Photoshop CS5 很淡定。于是我找来了 Photoshop CS5 (PS CS5) 教程 看看,大约 9 分钟的时候,CS5 潇洒地 P 掉了背景中的一个人,神奇了! 这项工作原来是要靠人手完成的,自己选取一块相近的纹理,通 …

  • 分享三个好用的装饰器

    发布于 文章 240 字 1 分钟

    Python

    1 def log_wrapper(func):2 @functools.wraps(func)3 def log_func_name(self, *args, **kws):4 logger.debug(" 调用函数 [%s]", func.func_name)5 logger.debug(" 参数为 :%s, %s", [arg.__unicode__() for arg in args], kws)6 result = func(self, *args, **kws)7 …

    1 def log_wrapper(func):2 @functools.wraps(func)3 def log_func_name(self, *args, **kws):4 logger.debug(" 调用函数 [%s]", func.func_name)5 logger.debug(" 参数为 :%s, %s", [arg.__unicode__() for arg in args], kws)6 result = func(self, *args, **kws)7 …

  • 根据 pythonprotobuf 自动生成 protobuf 包收发接口

    发布于 文章 559 字 2 分钟

    Python

    利用 protobuf 进行串行化和反串行化处理,封装出来的 rpc 服务很好用。但是有个缺点,就是测试时,一些很简单的接口都要重新实现一次,程序体内就一些简单的赋值语句。写了个代码生成器,用来生成 protobuf 对应的请求函数和回应函数,请求函数根据 req 的内容,生成赋值函数体;回应函数只是负责把服务器返回的包进行打印。 先用 .proto 文件生成 protobuf 的 xxx_pb2.py 文件,将其放入 protobuf 目录 #!/usr/bin/env python# -*- …

    利用 protobuf 进行串行化和反串行化处理,封装出来的 rpc 服务很好用。但是有个缺点,就是测试时,一些很简单的接口都要重新实现一次,程序体内就一些简单的赋值语句。写了个代码生成器,用来生成 protobuf 对应的请求函数和回应函数,请求函数根据 req 的内容,生成赋值函数体;回应函数只是负责把服务器返回的包进行打印。 先用 .proto 文件生成 protobuf 的 xxx_pb2.py 文件,将其放入 protobuf 目录 #!/usr/bin/env python# -*- …

  • 台电 k6 你立功了

    发布于 文章 685 字 2 分钟

    Python

    等了一年,还是停留在 v2.11 的固件上,英文就一渣排版。只能自己动手了 写了个英文排版的,两种排版方式,一是按 最小破损度 进行排版,最小破损度追求的是文章排版的整齐性,也就是行尾空格数目尽可能相等。这样外观上就会比较平整,当然,行尾的空格可以移到行内,使得每行刚好满足给定宽度。另一种是按 最小行数 进行排版。这种排版相当直观,就是把原文一个词一个词地放入一行中,当不能再放入时,就进行换行。 源码: #!/usr/bin/env python#encoding=utf8# 最小破损度排版 …

    等了一年,还是停留在 v2.11 的固件上,英文就一渣排版。只能自己动手了 写了个英文排版的,两种排版方式,一是按 最小破损度 进行排版,最小破损度追求的是文章排版的整齐性,也就是行尾空格数目尽可能相等。这样外观上就会比较平整,当然,行尾的空格可以移到行内,使得每行刚好满足给定宽度。另一种是按 最小行数 进行排版。这种排版相当直观,就是把原文一个词一个词地放入一行中,当不能再放入时,就进行换行。 源码: #!/usr/bin/env python#encoding=utf8# 最小破损度排版 …

  • python 实现的简单的 epub2txt

    发布于 文章 165 字 1 分钟

    Python

    等了 1 年,还是没等到台电 k6 的固件更新,好失望。 由于 k6 不支持 epub 的目录跳转、内嵌字体,且每次阅读均需要重新解压 epub,既浪费电又浪费时间,因此干脆转成 txt 算了。 先用 zipfile 进行解压 然后用 HTMLParser 进行正文提取 最后输出同名 txt 代码在 http://code.google.com/p/yaepub2txt 上托管,google code 上的另外一个 epub2txt 似乎也是国内的兄弟写的,是基于 html2txt 的库和 …

    等了 1 年,还是没等到台电 k6 的固件更新,好失望。 由于 k6 不支持 epub 的目录跳转、内嵌字体,且每次阅读均需要重新解压 epub,既浪费电又浪费时间,因此干脆转成 txt 算了。 先用 zipfile 进行解压 然后用 HTMLParser 进行正文提取 最后输出同名 txt 代码在 http://code.google.com/p/yaepub2txt 上托管,google code 上的另外一个 epub2txt 似乎也是国内的兄弟写的,是基于 html2txt 的库和 …

  • vim 定制配色方案

    发布于 文章 487 字 1 分钟

    Python

    个人一直比较喜欢内置的 desert 配色,无奈安装了 pyflakes 之后语法错误的地方老是看不清楚,纠结了很久。在 muzuiget 的指点下,有所进展。可以参考他写的 《Vim 终端配色转换工具》。但是转换色彩之后,还是无法转到自定义的颜色方案。 我使用的终端是 ubuntu 自带的 gnome-terminal, 既然不是古董级产品,不应该有色彩支援上的问题。为了验证这一点,我参考了 arch 维基的 这一篇 ,还有 这一篇 。一语惊醒梦中人,原来 vim 需要开启 256 色方案才可 …

    个人一直比较喜欢内置的 desert 配色,无奈安装了 pyflakes 之后语法错误的地方老是看不清楚,纠结了很久。在 muzuiget 的指点下,有所进展。可以参考他写的 《Vim 终端配色转换工具》。但是转换色彩之后,还是无法转到自定义的颜色方案。 我使用的终端是 ubuntu 自带的 gnome-terminal, 既然不是古董级产品,不应该有色彩支援上的问题。为了验证这一点,我参考了 arch 维基的 这一篇 ,还有 这一篇 。一语惊醒梦中人,原来 vim 需要开启 256 色方案才可 …

  • ubuntu 下访问 E72

    发布于 文章 429 字 1 分钟

    Python

    由于家里的电脑没有蓝牙,每次传送文件都十分麻烦,像我这种懒人又不甘心去找数据线,只能够在 wifi 上打主意了。 E72 采用的是 s60v3 版 FP2 的系统,虽然是 sb 系统,不过比较实用。要完成这次跨系统文件传输的任务,还需要一个 好工具:SymSMB 4.0。 它可以模拟 win 的共享模式,方便其他系统进行访问。我使用的是 dospy 论坛汉化的版本, 参考过 这篇教程 。大致的流程是:在 SymSMB 的控制面板里,找到帐号,新建一个用户,建议设置密码(免得酿成 一个男人不会修电 …

    由于家里的电脑没有蓝牙,每次传送文件都十分麻烦,像我这种懒人又不甘心去找数据线,只能够在 wifi 上打主意了。 E72 采用的是 s60v3 版 FP2 的系统,虽然是 sb 系统,不过比较实用。要完成这次跨系统文件传输的任务,还需要一个 好工具:SymSMB 4.0。 它可以模拟 win 的共享模式,方便其他系统进行访问。我使用的是 dospy 论坛汉化的版本, 参考过 这篇教程 。大致的流程是:在 SymSMB 的控制面板里,找到帐号,新建一个用户,建议设置密码(免得酿成 一个男人不会修电 …

  • python 实现的最近最少使用算法

    发布于 文章 360 字 1 分钟

    Python

    LFU(Least Frequently Used,最少使用 ) 是一种缓存管理算法,其过期策略为替换出缓存中最少使用项。若各项使用次数相等,则参考 LRU(Least Recently Used,最近最少使用 ) 进行替换。 实现过程中,一直希望绕开链表去实现。尝试过用优先队列,但是优先队列对于优先级的调整处理很复杂,而当替换某些缓存项时,优先队列里保存的索引值又会过期,暂时未想到解决方法。一个比较拙劣的实现是使用 sort() 对使用次数进行排序,Python 内置的 sort 相当独特,是 …

    LFU(Least Frequently Used,最少使用 ) 是一种缓存管理算法,其过期策略为替换出缓存中最少使用项。若各项使用次数相等,则参考 LRU(Least Recently Used,最近最少使用 ) 进行替换。 实现过程中,一直希望绕开链表去实现。尝试过用优先队列,但是优先队列对于优先级的调整处理很复杂,而当替换某些缓存项时,优先队列里保存的索引值又会过期,暂时未想到解决方法。一个比较拙劣的实现是使用 sort() 对使用次数进行排序,Python 内置的 sort 相当独特,是 …

  • 新浪微博显示原创图片

    发布于 文章 44 字 1 分钟

    Python

    鉴于我跟室友都比较渴求这个功能,尤其是观察美女时用,特别写了这个 userscript: http://userscripts.org/scripts/show/105670

    鉴于我跟室友都比较渴求这个功能,尤其是观察美女时用,特别写了这个 userscript: http://userscripts.org/scripts/show/105670

  • GreaseMonkey 渐进

    发布于 文章 47 字 1 分钟

    Python

    此段代码是从 document 中取出所有标签为 div 的节点,放入 zPara 数组中,然后通过 for 循环统一改变其背景色和前景色。

    此段代码是从 document 中取出所有标签为 div 的节点,放入 zPara 数组中,然后通过 for 循环统一改变其背景色和前景色。

  • 如何组织文件

    发布于 文章 1161 字 3 分钟

    Python

    最近想入手个 1T 的移动硬盘,但是想到如何组织文件,就觉得十分头痛。 自我总结下文件组织的经历: Windows windows 天然的不稳定性,每每让我胆战心惊,很可能忽然在周末跪低,然后父亲大人就把 C 盘格式化了。因此,历史经验表明,C 盘是不能放资料的。惯常的组织方法是: C 盘 只安装系统 D 盘 安装软件,放我的文档和收藏夹 E 盘 安装游戏或作为备份盘 F 盘 BT 下载 如此组织,一是方便系统重装的时候,常用软件和日常数据能够得到妥善保存;二是避免 BT 下载之类带来频繁磁盘整 …

    最近想入手个 1T 的移动硬盘,但是想到如何组织文件,就觉得十分头痛。 自我总结下文件组织的经历: Windows windows 天然的不稳定性,每每让我胆战心惊,很可能忽然在周末跪低,然后父亲大人就把 C 盘格式化了。因此,历史经验表明,C 盘是不能放资料的。惯常的组织方法是: C 盘 只安装系统 D 盘 安装软件,放我的文档和收藏夹 E 盘 安装游戏或作为备份盘 F 盘 BT 下载 如此组织,一是方便系统重装的时候,常用软件和日常数据能够得到妥善保存;二是避免 BT 下载之类带来频繁磁盘整 …

  • 在 cygwin 上安装 gevent

    发布于 文章 279 字 1 分钟

    Python

    由于公司点餐要用 QQ,只能寄身于 WinXP 下做开发。但是 win 下各种不能折腾很不爽,幸而有 Cygwin 然而,使用 easy_install 居然安装不了 Cygwin,弹出一大堆 core.c 的错误,一直没搞懂。只好与 win 的丑陋的命令行相伴,还设置了 PATH 指向 cygwin 的 bin,为的就是能顺利 ls。 遍寻不获后,今天看到这篇日志 http://d.hatena.ne.jp/ymotongpoo/20110108/1294494273,终于醒悟过来了。。。我没 …

    由于公司点餐要用 QQ,只能寄身于 WinXP 下做开发。但是 win 下各种不能折腾很不爽,幸而有 Cygwin 然而,使用 easy_install 居然安装不了 Cygwin,弹出一大堆 core.c 的错误,一直没搞懂。只好与 win 的丑陋的命令行相伴,还设置了 PATH 指向 cygwin 的 bin,为的就是能顺利 ls。 遍寻不获后,今天看到这篇日志 http://d.hatena.ne.jp/ymotongpoo/20110108/1294494273,终于醒悟过来了。。。我没 …