Categories
不学无术

与差错相关的设计原则

以下是设计人员应该注意的事项:

  1. 了解各种导致差错的因素,在设计中,尽量减少这些因素;
  2. 使操作者能够撤销以前的指令,或是增加那些不能逆转的操作的难度;
  3. 使操作者能够比较容易地发现并纠正错误;
  4. 改变对差错的态度。要认为操作者不过是想完成某一任务,只是采取的措施不够完美,不要认为操作者是在犯错误。

…一旦你设身处地地想明白人们出错的原因,就会发现大多差错都是可以理解的,而且合乎逻辑。…想办法设计出可以容错的系统,人们正常的行为并非总是准确无误的,要尽量让用户很容易的发现差错,…

——摘自《设计心理学》

Categories
不学无术 木有技术

matplotlib 存储到内存文件 save to memory file(buffer) instead of disk file / PyQt4

References:
http://stackoverflow.com/questions/4330812/how-do-i-clear-a-stringio-object
http://stackoverflow.com/questions/8598673/how-to-save-a-pylab-figure-into-in-memory-file-which-can-be-read-into-pil-image
 
In fact Python have a StringIO module to deal with this problem, it works pretty fine with PyQt and matplotlib.
Procedures:
1. [SAVE] Create a StringIO object (or cStringIO which have faster speed)
2. [SAVE] Call savefig method of matplotlib and use the StringIO object instead as the input variable
3. [LOAD] Use QImage to read from StringIO object (via fromData method)
4. [LOAD] Use QPixmap and blabla to show the image….
 
Code:
 

# StringIO with matplotlib test
import matplotlib.pyplot as plt
import cStringIO
from PyQt4 import QtCore, QtGui
import sys
import cPickle
fig = plt.figure()
plt.plot([1, 2])
buf = cStringIO.StringIO()
plt.savefig(buf, format='png')
buf.seek(0)
app = QtGui.QApplication(sys.argv)
widget = QtGui.QWidget()
widget.resize(250, 150)
widget.setWindowTitle('simple')
qimg = QtGui.QImage.fromData(buf.getvalue())
pixmap = QtGui.QPixmap.fromImage(qimg)
label = QtGui.QLabel(widget)
label.setPixmap(pixmap)
label.setGeometry(0, 0, 250, 150)
widget.show()
sys.exit(app.exec_())

 
 

Categories
不学无术

PyQt使用线程更新GUI

给几个参考文章:
http://stackoverflow.com/questions/9957195/updating-gui-elements-in-multithreaded-pyqt
http://stackoverflow.com/questions/2585442/sending-custom-pyqt-signals
http://stackoverflow.com/questions/14090353/sending-messages-between-two-widgets-using-signals-and-slots
http://themkbytes.blogspot.com/2012/06/pyqt-qthread-signal-gui-examples.html

Threading with PyQt4

Categories
不学无术

python format string (转)

来源不可考
在python中也有类似于c中的printf()的格式输出标记。在python中格式化输出字符串使用的是%运算符,通用的形式为 


格式标记字符串 % 要输出的值组 
其中,左边部分的”格式标记字符串“可以完全和c中的一致。右边的’值组’如果有两个及以上的值则需要用小括号括起来,中间用短号隔开。重点来看左边的部分。左边部分的最简单形式为: 

%cdoe 
其中的code有多种,不过由于在python中,所有东西都可以转换成string类型,因此,如果没有什么特殊需求完全可以全部使用’%s‘来标记。比如: 

‘%s %s %s’ % (1, 2.3, [‘one’, ‘two’, ‘three’]) 
它的输出为’1 2.3 [‘one’, ‘two’, ‘three’]’,就是按照%左边的标记输出的。虽然第一个和第二值不是string类型,一样没有问题。在这个过程中,当电脑发现第一个值不是%s 时,会先调用整型数的函数,把第一个值也就是1转成string类型,然后再调用str()函数来输出。前面说过还有一个repr()函数,如果要用这个 函数,可以用%r来标记。除了%s外,还有很多类似的code: 

整型数:%d 
无符号整型数:%u 
八进制:%o 
十六进制:%x   %X 
浮点数:%f 
科学记数法: %e   %E 
根据数值的不同自动选择%e或%f: %g 
根据数值的不同自动选择%E或%f: %G 
就跟前面说用进行转义一样,这里用%作为格式标记的标识,也有一个%本身应该如何输出的问题。如果要在”格式标记字符串“中输出%本身,可以用%%来表示。 
上面说的只是格式标记的最简间的形式,来看复杂一点的: 

‘%6.2f’ % 1.235 
在这种形式中,在f的前面出现了一个类似小数的6.2它表示的意思是,总共输出的长度为6个字符,其中小数2位。还有更复杂的: 

‘%06.2f’ % 1.235 
在6的前面多了一个0,表示如果输出的位数不足6位就用0补足6位。这一行的输出为‘001.24’,可以看到小数也占用一位。类似于这里0这样的标记还有-、+。其中,-表示左对齐,+表示在正数前面也标上+号,默认是不加的。最后来看最复杂的形式: 

‘%(name)s:%(score)06.1f’ %{‘score’:9.5, ‘name’:’newsim’} 
这种形式只用在要输出的内容为dictionary(一种python的数据类型)时,小括号中的(name)和(score)对应于后面的键值 对中的键。前面的例子可以看到,”格式标记字符串“中标记的顺序和”要输出的值组”中的值是一一对应的,有顺序,一对一,二对二。而在这种形式中,则不 是,每个格式标记对应哪个值由小括号中的键来指定。这行代码的输出为:’newsim:0009.5’。 

有时候在%6.2f这种形式中,6和2也不能事先指定,会在程序运行过程中再产生,那怎么输入呢,当然不能用%%d.%df或%d.%d%f。可 以用%*.*f的形式,当然在后面的”要输出的值组“中包含那两个*的值。比如:’%*.*f’ % (6, 2, 2.345)就相当于’%6.2f’ % 2.345。 

这是这本书到此为止看起来最复杂的内容。不过如果记不住,或不想那么耐烦,完全可以全部用%s代替,或者用多个”+”来构造类似的输出字符串。这里的%真有点除法的味道,怪不得设计者会选择用%这个除号。 


象C 中的sprintf函数一样,可以用“%”来格式化字符串。 

Table 3.1. 字符串格式化代码 

格式 描述 
%% 百分号标记 
%c 字符及其ASCII码 
%s 字符串 
%d 有符号整数(十进制) 
%u 无符号整数(十进制) 
%o 无符号整数(八进制) 
%x 无符号整数(十六进制) 
%X 无符号整数(十六进制大写字符) 
%e 浮点数字(科学计数法) 
%E 浮点数字(科学计数法,用E代替e) 
%f 浮点数字(用小数点符号) 
%g 浮点数字(根据值的大小采用%e或%f) 
%G 浮点数字(类似于%g) 
%p 指针(用十六进制打印值的内存地址) 
%n 存储输出字符的数量放进参数列表的下一个变量中

Categories
不学无术 木有技术

AttributeError: 'module' object has no attribute 'AF_INET'

主要症状如下:

Traceback (most recent call last):
  File "C:Documents and SettingsaDesktopsocket.py", line 1, in <module>
    import socket
  File "C:Documents and SettingsaDesktopsocket.py", line 6, in <module>
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
AttributeError: 'module' object has no attribute 'AF_INET'

原因:
自己的文件名变成socket.py了,import时的导入就变成了导入自己这个文件,然后就….呵呵了
解决方法:
改个文件名吧~
 
参考文献:http://stackoverflow.com/questions/13422356/socket-isnt-working-in-python

Categories
不学无术

WR703N Gargoyle石像鬼固件的USB打印问题

刷了这个固件发现USB打印一直连接不上去,后来发现好像是打印端口的问题~

设备名称:Gargoyle
石像鬼(Gargoyle)版本:1.6.1
型号:TP-LINK TL-WR703N v1
设备配置:网关

参考了这篇文章:http://wiki.openwrt.org/doc/howto/p910nd.server
里面提到了这么一句

On older versions the device /dev/usb/usblp0 is created. More recent versions create the normal /dev/lp0 device, even for usb printers. (Attitude Adjustment 12.09 actually creates /dev/usb/lp0

结果查了一下果然是这个原因,p910nd默认的设备位置是/dev/lp0来着,我去/dev下看了看发现其实是/dev/usb/lp0,所以把配置文件改改就好啦~
配置文件是:/etc/config/p910nd
把里面对应的改掉
另外修改好后重启下服务哦

/etc/init.d/p910nd stop
/etc/init.d/p910nd start

 
 

Categories
不学无术

什么是 静态/动态 黑盒/白盒 测试

从《软件测试》书中找到的内容,写的比较精炼。

静态黑盒测试是指检查产品说明书,并在软件编写之前找出问题。
动态黑盒测试是指在不了解软件如何工作的前提下进行测试。
静态白盒测试是指通过正式审查和检验检查代码的细节。
动态白盒测试是指在看到软件的工作方式时,根据获得的信息对软件进行测试。

 
意思就是,
静态、动态:不运行、运行程序。
黑盒、白盒:不深入、深入到代码。
 
另外需要注意,动态白盒测试不等于软件调试,前者用来找到缺陷,后者用来解决缺陷。

Categories
不学无术

Uncovering your implicit values

 
QQ截图20140531101722

In her 2002 article for Harvard Business Review entitled ‘How to Stay Stuck in the Wrong Career’, Herminia Ibarra criticises the
traditional wisdom on career planning, in which you are advised to reflect in order to establish what you want and then make
concrete plans to achieve your goals. In many situations, especially when you are changing careers, this pre-knowledge may not be
possible. The way you discover what you want for the future is by acting in new ways and exploring new situations.
She proposes an alternative to the ‘plan-and-implement’ approach which involves exploring possible future selves. This ‘test-andlearn’ approach has three main elements:
Crafting experiments — trying new activities and taking on new roles on a small scale to reveal undiscovered parts of yourself
and explore new paths before you make a major commitment to a new direction
Shifting connections — developing new contacts in order to explore new worlds, to discover new perspectives on yourself, to
find new role models and to expose yourself to new opportunities
Making sense — creating new stories about yourself and reinterpreting your previous experiences to uncover new meanings
and trigger transformation
Ibarra, H. (2002). How to stay stuck in the wrong career. Harvard Business Review, December, 40–47.
 
 
https://class.coursera.org/career-001/lecture
 

Categories
不学无术

计算机类所有一级刊物,核心期刊介绍

本文来源不可考。
一. 计算机类一级学术刊物(14种)
1.软件学报 (是EI工程引文数据库来源期刊)
2.J. of Computer Science & Technology(是EI工程引文数据库来源期刊)
3.计算机学报(是EI工程引文数据库来源期刊)
4.自动化学报
5.电子学报(中、英文版)
6.计算机辅助设计与图形学学报
7.计算机研究与发展
8.计算数学(中、英文版)
9.数值计算与计算机应用
10.自然科学进展
11.通信学报
12.中文信息学报
13.中国科学
14.科学通报
二. 计算机类核心刊物(15种)
1. 模式识别与人工智能
2. 计算机科学
3. 小型微型计算机系统-
4. 微电子学与计算机
5. 计算机工程
6. 电子计算机外部设备
7. 计算机工程与应用
8. 微型计算机
9. 计算机应用与软件
10. 计算机工程与设计
11. 计算机仿真
12. 计算机集成制造系统
13. 中国科学院研究生院学报
14. 高技术通讯
15. 计算机应用研究
三、基础数学专业核心刊物(8种)
1. 软件学报
2. 中国科学
3. 科学通报
4. 数学学报
5. 应用数学学报
6. 系统科学与数学
7. 计算机学报
8. J. of Computer Science & Technology
计算机类中文核心期刊简介
1. 《软件学报》 (月刊), EI、ISTIC收录
主办单位:中国计算机学会, 中国科学院软件研究所
地址:北京8718信箱 北京海淀区中关村《软件学报》编辑委员会 邮编100080
邮发代号:82-367, E-mail:[email protected]http://www.jos.org.cn
2.《计算机学报》 (月刊) EI、ISTIC收录
主办单位:中国计算机学会, 中国科学院计算技术研究所
地址:北京2704信箱 中国科学院计算技术研究所 《计算机学报》编辑部
邮编:100080, E-mail: [email protected]http://www.ict.ac.cn/cjc/cjc.html
3. 计算机研究与发展 (月刊) ISTIC收录
主办单位:中国科学院计算技术研究所, 中国计算机学会
地址:北京2704信箱 中国科学院计算技术研究所 《计算机研究与发展》
编辑委员会 邮编100080, E-mail:[email protected], http:// crad.ict.ac.cn
4. 计算机工程 (半月刊) ISTIC收录
主办单位:华东计算技术研究所, 上海市计算机学会
地址:上海市漕河泾桂林路418号 《计算机工程》编辑部 邮编 200233
E-mail:[email protected]http://www.jsjc.chinajournal.net.cn
5.《自动化学报》 (双月刊) EI、ISTIC收录
主办单位:中国自动化学会 , 中国科学院自动化研究所
地址:北京中关村中国科学院自动化所《自动化学报》编辑部 邮编10008
E-mail:[email protected],   http://www.chinainfo.gov.cn/periodical/zdhxb
6.《模试识别与人工智能》 (季刊) ISTIC收录
主办单位:中国自动化学会, 国家智能计算机研究开发中心
地址:合肥1130信箱 中国科学院合肥智能机械研究所,
《模式识别与人工智能》编辑部 , 邮编230031,
E-mail:[email protected]
7.《 小型微型计算机系统》 (月刊) ISTIC收录
主办单位:中科院沈阳计算技术研究所
地址:沈阳市和平区三好街100号 中科院沈阳计算技术研究所
《 小型微型计算机系统》编辑部 邮编 110004
E-mail:[email protected]http://www. sict.ac.cn
8.《计算机科学》 (月刊) ISTIC收录
主办单位:国家科技部西南信息中心
地址:重庆市渝中区胜利路132号 《计算机科学》杂志社 邮编400013
E-mail:[email protected]
9.《计算机应用与软件》(月刊)
主办单位:上海市计算技术研究所, 上海计算机软件技术开发中心
地址:上海市愚园路546号 《计算机应用与软件》编辑部 邮编 200040
10.《数值计算与计算机应用》 (季刊) ISTIC收录
主办单位:中国科学院计算数学与科学工程计算研究所
地址:北京市2719信箱 《数值计算与计算机应用》编辑部 邮编 100080
E-mail:[email protected]http://www.chinainfo.gov.cn/periodical
11.《计算机工程与应用》 (旬刊) ISTIC收录
主办单位:华北计算技术研究所
地址:北京市北四环中路211号 北京619信箱26分箱
《计算机工程与应用》杂志社 邮编100083
投稿信箱:[email protected] / [email protected]
http://www.chinainfo.gov.cn/periodical/
12.《计算机应用研究》 (月刊) ISTIC收录
主办单位:四川省电子计算机应用研究中心
地址:成都市人民南路4段11号附1号 《计算机应用研究》杂志社 邮编 610041
email:[email protected]
13.《计算机工程与科学》 (双月刊) ISTIC收录
主办单位:国防科技大学计算机学院
地址:湖南长沙砚瓦池正街47号 《计算机工程与科学》编辑部 邮编 410073
E-mail:[email protected] [email protected]
14.《中文信息学报》 (双月刊) ISTIC收录
主办单位:中国科学院软件研究所, 中国中文信息学会
地址:北京8718信箱 《中文信息学报》编辑部 邮编100080
E-mail:[email protected]
15.《计算机应用》 (月刊) ISTIC收录
主办单位:中科院成都计算机应用研究所, 四川省计算机学会
地址:成都市人民南路四段九号 成都237信箱《计算机应用》编辑部 邮编610041
E-mail:[email protected]
http://wwwhttp://www.computerapplications.com.cn
16.《计算机辅助设计与图形学学报》 (月刊) ISTIC收录
主办单位:中国计算机学会
地址:北京2704信箱 中国科学院计算技术研究所 邮编100080
E-mail:[email protected] http://jcad.ict.ac.cn
17.《计算机科学与技术》(英文版) (双月刊) SCIE、EI收录
主办单位:中国科学院计算技术研究所
地址:北京2704信箱 邮编100080
E-mail:[email protected] http://jcst.ict.ac.cn
18.《计算机工程与设计》 (月刊)
主办单位:中国航天科工集团二院706所
地址:北京142信箱406分箱 《计算机工程与设计》编辑部 邮编 100854
E-mail:[email protected],cn [email protected],cn
20.《 微电子学与计算机》 (月刊)
主办单位:中国航天科技集团公司西安微电子技术研究所
地址:西安市81号信箱 《 微电子学与计算机》编辑部 邮编 710054

Categories
不学无术

word中磅和mm的换算(转载) 字号–磅–毫米转换

字号  磅   毫米数 
初号  42   14.82 
小初  36   12.70 
一号  26   9.17 
小一  24   8.47 
二号  22   7.76 
小二  18   6.35 
三号  16   5.64 
小三  15   5.29 
四号  14   4.94 
小四  12   4.32 
五号  10.5  3.70 
小五  9    3.18 
六号  7.5   2.65 
小六  6.5   2.29