05 2013 档案

摘要:<本文的原始位置: http://bluegene8210.is-programmer.com/posts/26206.html> ---- 为什么会有这种鸟事,为什么为什么。一度以为 Vim 已经很熟不需要再搞了,谁知道风平浪静的日子是没有的。快抓狂了。Vim 是这么成熟的编辑器,这种事难道该发生么。 ---- 原本以为是 Python 代码写的有问题,对 Python 不熟,内存泄漏什么的。逐渐排除了以后开始锁定到 Python 接口上面,具体讲就是 vim.buffer 这个东西。这个是测试代码: 1 lcd %:h 2 tabedit tmpbuffer 3 setloca 阅读全文
posted @ 2013-05-19 12:34 JackyLiu2010 阅读(292) 评论(0) 推荐(0) 编辑
摘要:<本文的原始位置: http://bluegene8210.is-programmer.com/posts/26169.html> ---- 原来贴在 vim-cn 群里的一个脚本,这里也贴一下。 ---- gvim 有好几百种预定义的颜色名称,比如 'DarkBlue', 'LightRed' 之类。这个脚本用来展示这些颜色在你的 gvim 里看起来如何。 ---- 纯 VimScript 写的。用 gvim 打开脚本,然后 :source % 就可以了。 ---- 会开启一个叫 'ShowVimColors.tmp' 的临时 bu 阅读全文
posted @ 2013-05-19 12:29 JackyLiu2010 阅读(416) 评论(0) 推荐(0) 编辑
摘要:<本文的原始位置: http://bluegene8210.is-programmer.com/posts/26168.html> ---- 续写 FileSystemExplorer 这个插件,现在写好的: 1. 能刷新 2. 能设置属性: a. 是否显示隐藏文件 b. 显示基本输出(只有名称)还是扩展输出(包括大小,修改时间与访问时间) c. 设置根据名称 / 大小 / 修改时间 / 访问时间排序,设置正序或逆序。 3. 能递归式打开节点(但是结果恐怖,后述。) ---- 几个要点记一下: 1. 数据结构内部不要形成引用回路(reference c... 阅读全文
posted @ 2013-05-19 12:25 JackyLiu2010 阅读(311) 评论(0) 推荐(0) 编辑
摘要:<本文的原始位置: http://bluegene8210.is-programmer.com/posts/26106.html>---- 外部的 Vim 插件我基本都是装上试试然后就卸掉,用到的基本都自己写。在文件操作方面,因为自带的 Netrw 实在不够用,一些 VimScript 写的外部插件(比如 NerdTree)又有慢的问题。自己写的 FileSystemExplorer 这个插件自从起个头以后名不副实了很久,现在终于成形了。---- 主体还是 Python 写的(通过 Vim 的 Python 接口),纯 VimScript 写的太慢。但是目前还是很菜。以下是设想中, 阅读全文
posted @ 2013-05-19 12:23 JackyLiu2010 阅读(202) 评论(0) 推荐(0) 编辑
摘要:<本文的原始位置: http://bluegene8210.is-programmer.com/posts/25954.html>---- 最新的在这里: 用 Python / Matplotlib 画出来的股票 K线图 (四)---- 下一篇在这里: 用 Python / Matplotlib 画出来的股票 K线图 (三)---- 上一版的改进,双股同列 + 无数细小改进,如下图。dpi= 300。明的一条是个股走势,暗的是同期的指数走势。这大概是近期最强的一只。---- 要想培养对走势的感觉,采用固定比例尺的图形是必须的。一般股票软件里的图形都为显示方便而做了变形处理,用处不大 阅读全文
posted @ 2013-05-18 22:20 JackyLiu2010 阅读(4829) 评论(0) 推荐(0) 编辑
摘要:<本文的原始位置: http://bluegene8210.is-programmer.com/posts/24902.html> ---- 花了 20 个小时左右的时间才从新浪下载完复权日线数据,把复权日线表建起来。这速度也太慢了,还有首次下载网页失败的比例居然这么高,一定有问题,印象中以前不是 这么慢的,下载几千只股票的数据也只有几十个页面会首次下载失败吧。但昨天晚上更新最新数据的时候把下载任务之间的延迟扩大了一些,好像好一些,速度还可 以,而且失败率不高。我开的是 5 个线程,下载页面之间的间隔是 0.2 ~ 0.3 秒。 ---- 另外,把那个画 K 线图的脚本贴出来。这个 阅读全文
posted @ 2013-05-18 22:15 JackyLiu2010 阅读(3235) 评论(0) 推荐(0) 编辑
摘要:<本文的原始位置: http://bluegene8210.is-programmer.com/posts/24606.html>---- 过年后开始真正学用 Matplotlib 画一些实际的图形,以下是最新的改进结果:---- 股票是 600644,原始数据来自网络。就不总结要点了,Matplotlib 十分给力!---- 下一步打算在标示价格的 Y 轴上使用对数坐标。得精确计算图片的尺寸,使代表相同涨幅的图线看起来具有相同的长度,而且要精确定位坐标点。另外还可以加上一定的注释和图例。补记:已实现,如下图,注意 Y 轴对数坐标: 阅读全文
posted @ 2013-05-18 22:11 JackyLiu2010 阅读(6182) 评论(0) 推荐(1) 编辑
摘要:<本文的原始位置: http://bluegene8210.is-programmer.com/posts/24604.html>---- 前一阵子花了些时间,把以前写的几乎所有的 Vim 插件都用 Python 接口改 写了一遍,主体结构全部放在脚本的 Python 部分,效果非常好。实际上 Vim 的编程语言接口是早就有了的,而现在 Vim 自带的 VimScript 语言基本上是 7.0 版以后才成形,所以 Vim 的本意实际上是让用户使用已有的语言来编写 Vim 上使用的脚本,而不是想要再发明一种新的语言。Vim 的作者在接受访谈时也表达过这个意思。两个新的模块也是用 Py 阅读全文
posted @ 2013-05-18 21:58 JackyLiu2010 阅读(215) 评论(0) 推荐(0) 编辑
摘要:<本文的原始位置: http://bluegene8210.is-programmer.com/posts/21877.html> ---- 新添了下载任务,来源是新浪财经,现在可以扒下来日线数据了: ---- 过程中的几个要点: 1. Nested List Comprehension: 由分别为 m 项和 n 项的两个 list 生成一个 m×n 项的 list:mylist= ['a', 'b', 'c']print([s * n for n in range(1, 4) for s in mylist])print( 阅读全文
posted @ 2013-05-18 21:54 JackyLiu2010 阅读(382) 评论(0) 推荐(0) 编辑
摘要:<本文的原始位置: http://bluegene8210.is-programmer.com/posts/21853.html>给程序添加了数据库组件,跑通了第一个测试任务。数据库组件的内容:1. 数据库组件包含一个数据库接口,用 subprocess.Popen() 对象实现,负责连上外部的 MySQL 服务器进程。具体见前面。2. 包含一个任务队列,用 queue.Queue() 对象实现,内含 Query 任务对象,保证不同客户线程提交的 Query 任务被顺序执行。3. 包含一个主控线程,用 threading.Thread() 对象实现,负责管理 Query 任务队列, 阅读全文
posted @ 2013-05-18 21:48 JackyLiu2010 阅读(214) 评论(0) 推荐(0) 编辑
摘要:<本文的原始位置: http://bluegene8210.is-programmer.com/posts/21824.html>Vim 是一款高效的文本编辑器,许多人对它强大的编辑功能都有体会,而实际上 Vim 能做的不仅仅是编辑,它还能使原本枯燥的文档变得“鲜活”起来:这个图显示了 gvim 对普通的 txt 文本的显示效果,内容是 Python 的帮助文件。里面的颜色,缩进和标题是阅读时根据自己的理解随手加上去的。在 vim 里进行这些编辑操作并不麻烦,甚至比较享受。最为关键的是,一切都由自己控制,文档像这样读过一遍以后,就会印象比较深,而且只读一遍就好,以后回头找起 来,因 阅读全文
posted @ 2013-05-18 21:41 JackyLiu2010 阅读(228) 评论(0) 推荐(0) 编辑
摘要:<本文的原始位置: http://bluegene8210.is-programmer.com/posts/21815.html>准备给程序添加数据库组件。因为该死的 MySQLdb 模块还不支持 Python 3, 只能暂时用土办法,通过 subprocess 模块连上 MySQL 服务器,然后用 stdin/stdout 做交流。基本的交互机制已经在测试程序上验证通过:测试代码不长,就图里那一段。用 subprocess.Popen() 新开一个 MySQL 进程,发送一段 SQL 语句给它,接收输出并显示,当不再有输出时就退出。在实际的程序里可以不停地执行查询任务,靠外部条件 阅读全文
posted @ 2013-05-18 21:22 JackyLiu2010 阅读(202) 评论(0) 推荐(0) 编辑
摘要:<本文的原始位置: http://bluegene8210.is-programmer.com/posts/21754.html>---- 带有动态缩进格式的自定义 logging 机制的输出效果:* 设计目标: ---- 使用 Python 自带的 logging 模块可以很方便地让程序输出 logging 信息,而当程序比较复杂,尤其是使用了多线程以后,如果 logging 信息本身的格式也能反映出这些程序结构,分析起来就会比较方便: ---- 比如: 我的程序中有个下载模块 Downloader, 在运行时负责为程序的其它部分提供指定内容的下载服务,算是顶级模块。这个模... 阅读全文
posted @ 2013-05-18 20:53 JackyLiu2010 阅读(227) 评论(0) 推荐(0) 编辑
摘要:<本文的原始地址: http://bluegene8210.is-programmer.com/posts/21681.html> ---- 今天在程序里定义了一个新的下载任务,把沪深市场所有 A 股的列表扒了下来: ---- 数据来源是 “金融界” 网站: http://data.share.jrj.com.cn/stocks/download/AguHq.xls 或者在 http://summary.jrj.com.cn/Agu.shtml?q=a&sort=code&order=asc 这个网页里点击 “下载” 按钮,出来的就是。数据是动态的,实时更新。但是目 阅读全文
posted @ 2013-05-18 20:48 JackyLiu2010 阅读(344) 评论(0) 推荐(0) 编辑
摘要:<本文的原始位置: http://bluegene8210.is-programmer.com/posts/21565.html>---- 开始看 MySQL 不久。还没做任何实际操作之前,就想把它默认的存储数据库文件的目录从 "/var/lib/mysql" 搬到 "/home" 自己的目录下面。一般来说,需要转移 MySQL 数据目录的原因可以有很多,比较典型的是因为原来的硬盘不够大。不过对我来讲没那么复杂,主要是因为想把关键文件都放一起,这样下次系统崩溃的时候比较容 易把文件倒出来。 ---- 这个并不复杂的问题差不多折腾了一整天。其实 阅读全文
posted @ 2013-05-18 20:44 JackyLiu2010 阅读(276) 评论(0) 推荐(0) 编辑
摘要:<本文的原始位置: http://bluegene8210.is-programmer.com/posts/21513.html>折腾了好久才编译出来一个支持 Python 3 的 Vim,谁知居然有这么多问题。除了 vim.current.buffer 对象不再支持 slice 类型参数以外,今天又发现这个::py3 vim.current.buffer.append('XXX 模块的控制面板')结果在 Vim 里加进去的一行看起来是这样:XXX 模块<e7>也就是,遇到有的中文字符会无法解释,成为乱码。用 依云 发来的她编译的版本,结果也一样。是不是 阅读全文
posted @ 2013-05-18 20:40 JackyLiu2010 阅读(252) 评论(0) 推荐(0) 编辑
摘要:<本文的原始链接: http://bluegene8210.is-programmer.com/posts/21509.html>Vim 里的上下左右默认是 hjkl 四个键,这是与 vi 兼容的设置。如果你玩惯了赛车一类的游戏,相信打死你也适应不了这样的设置。我就是这样。所以当初学用 Vim 的时候,我第一件要看的就是怎样定义按键映射。实际上只要很简单的几行设置,就可以把方向键映射到 ikjl 四个键上,这样跟小键盘上的方向键位置吻合,用起来就舒服得多。以下是我放在 .vimrc 里面的代码,用下来很久了,没出过什么问题。"----------------------- 阅读全文
posted @ 2013-05-18 20:37 JackyLiu2010 阅读(356) 评论(0) 推荐(0) 编辑
摘要:<本文的原始链接: http://bluegene8210.is-programmer.com/posts/21492.html>第一篇,写个关于 Vim 的。今天花了点时间,增强了 ModuleManager 中的窗口布局类的功能。现在辅助窗口的数量已经不受限制了。这个 Vim 界面里一共有 13 个窗口。左右各 3 个,下面 6 个,还有中间一个大的。可以同时显示很多信息。但是布局并不凌乱。实际上这个类里面定义了多个窗口布局方案,打一个命令就把所有窗口自动划分好。上面这个 只是其中一种。窗口大小会根据光标的移动自动调整,使用自动命令(AutoCmd)机制。进入窗口时自动变大,离 阅读全文
posted @ 2013-05-18 20:24 JackyLiu2010 阅读(1809) 评论(0) 推荐(0) 编辑