升级python3后出现b''的bug

原来显示数字的地方都变成了b’n’,以前没见过,后来发现是py3里的byte,py3跟py2最大的不同。这个地方是redis返回value的场景,不知道是不是所有字符串返回都是这样。也可能是赋值时是数字的原因。所有py3里str转成的byte都可以用decode()函数解码。

之前觉得py里减少了对type的认知是件很方便的事,py3似乎对此妥协了。

开始用DDG来搜索

不用爪子搜索的原因是众所周知的,gg一直是主力搜索,但是用久了也蛮单调,ddg名声鹊起,尝试用了下,输入:

!taobao 徒步鞋

居然可以bang到网站里去搜索,大喜。就冲这个也值得尝试,另外中文索引确实很不好,大多只收录了百度的页面。

Python中的Generator的合并

刚学python时看到诸如:

[python] book_name_list=(book.name for book in libary) [/python]

都觉得是一种顿悟,今天才知道它的原理yield,带有这个东西的都是generator。这么写简洁流畅、语义通顺,缺点是一直不知道怎么合并,用集合的操作符 | 会报错误:

unsupported operand type(s) for |: ‘generator’ and ‘generator’

然后发现了itertools,这个库的定义太爆了,创建高效的循环,没错就是他。那么多个generator可以这样合起来:

  [python] from itertools import chain

def generator1(): for item in ‘abcdef’: yield item

def generator2(): for item in ‘123456’: yield item

generator3 = chain(generator1(), generator2()) for item in generator3: print item [/python]

网页混合内容警告

有时候FF和Chrome会提出混合内容的警告,这个是因为站点使用了https,默认浏览器认为站点是希望访问安全的,所以当内容中有非https的请求时就会被告知混合内容,而且从FF23的时代起就会被阻塞,也就是不显示。好处是更安全,开发人员也很容易发现这个问题。好在大多数基础服务都提供了https,站点更新也不难了。

python3 crypto winrandom import error

早就听说3的包很成熟了,自从从2.7过渡上来后还是碰到各种不适应,可以想象更早的时候问题该要多么多,特别一些必备库经典库如果没有跟进得多痛苦。

[code lang=”python”] ImportError: No module named ‘winrandom’ [/code]

典型的升级后的错误,这个crypto也是个经典的基础库,这里要改的是:

crypto\Random\OSRNG\nt.py文件中

[code lang=”python”] import winrandom to from . import winrandom [/code]

Wordpress中让代码更好看

看老外的代码贴的都挺不错,也试过几个不同的编辑器,都能达到想要的效果,唯一不足的就是不够方便。特别希望像markdown一样标记一下就可以有比较好的排版。查看了WP的文档,这里要赞一下,这也是一直没有转战其他平台的原因,wp的文档真的很完整,哪怕不会代码的也能很好的使用。官方support里居然有推荐高亮插件,太棒了,这就是我想要的。

[python highlight=”2-5”] // SyntaxHighlighter makes your code snippets beautiful without tiring your servers. // http://alexgorbatchev.com var setArray = function(elems) { this.length = 0; push.apply(this, elems); return this; }[/python]

感谢Alex

Alex Gorbatchev’s SyntaxHighlighter

来源: Posting Source Code — Support — WordPress.com

https://en.support.wordpress.com/code/posting-source-code/

假装在美国

DSC00246 DSC00245 DSC00240

很久以前有机会一个人在曼哈顿独自瞎逛。

大众的车子一直很喜欢,可惜越来越丑了,街头看到的这两绝对经典。经典老爷车国内看到的概率实在低。

左下的那个男人正在拍戏,右边应该是他的pd,也就在曼哈顿,路人能这么淡定,司空见惯的样子。

右下的时代广场最感慨,放大能看到最好的位置是被雅虎独占的,索尼也是高高的,百年企业真不是容易做到的。

Flask-User跳转的问题

Flask的模板索引是以第一个匹配为准的,这条规则乍一看没什么感觉,今天就被震撼到了。起因是昨天把jade模板迁移回了jinja,实在没办法,flask和jinja是难舍难分。然后发现有个地址的页面莫名其妙的到了myapp的空页面,汗,仔细一看原来是flask-user内置的页面,差点以为来黑客了。开始以为是处理逻辑哪里的问题或者是flask-user侵入太厉害,调试了好久,最后从模板找原因,不找不知道,一搜碰到类似的问题的人太多了,全是这个匹配规则惹的祸。翻阅了flask-user的文档,原来它内置了一个base.html跟我的冲突,优先使用了那个模板,无语了。类似问题也很好解决,要么文件名唯一要么指定模板时加上上级目录就好。

让FQ更加稳定可靠,给Cow配置微林做跳板

虽然是公司带宽但是出口级别肯定还是不够的,所以总是有那么几下特别卡。正好有两台美西的vps,做了延迟均衡,正好阿里的美西延迟相对BWG的普遍要高,所以基本上只有到BWG卡时才会启用阿里的美西vps,下面是昨天的流量图:

捕获

图里凸起的那些就是当BWG的线路抽风时导致的,虽然不影响大部分使用,但是碰到要用而又抽风的时候还是很恶心。

  • 不得不提很多人用的锐速和net-speed,这些软加速和抢带宽的方式毕竟不好,有点野蛮人的味道,而且貌似现在finalspeed也出现会自动被断掉的问题。
  • p2p的不说了,咱是屌丝,但几毛钱还是有的,目前的fq也比p2p的各种方案都要好,更不会去考虑免费的vpn,那都是坑~~~
  • 看了几个fq前辈的blog,大部分都是自己买了vps,有人甚至买了好几台vps,土豪就是土豪。其实有钱问题确实变得简单了,国内基本只考虑阿里云的vps,现在阿里也很贱了不再标注地名而是华北什么的,下面贴了对照表。土豪的线路推荐:1)bj/qd+kr;2)bj/qd+jp;3)hk/hz+hk
  • 走KR的线路极力推荐,速度真的嗖嗖的,咱预算有限所以只能是折中的BWG,其实BWG大部分机房都不错延迟200左右,LA的只有100多,只不过被国人玩的多了抽风的频率高一点,这也是为啥今天说链路优化,因为只要出去了BWG绝对是首选,太便宜了。
  • 前面说的好几台vps,国内的主要是为了作为跳板,为的是给你的数据打上一个vvip的标签,在出口的时候不会被丢弃,国外的vps是为了做负载均衡(完全土豪的行为,鄙视)
  • 对了,现在阿里的bgp做的确实不错,美西访问站点速度也很好,没慢多少ms。
  • 好了回到主题,哈哈,废话太多了,其实一台vps可以做很多事情,只拿来做跳板真的只有土豪这么干,还要支付高昂的带宽费,所以微林出现了。它就是把vps共享给需要的人,几个人合用就划算了。如果自己买,国内是0.8一gb,hk是1块一gb,微林应该是买的固定带宽,因为我们买只需要0.8一gb,还是hk的;
  • 设置了一个hk的节点到美西bwg,除了完全解决了丢包的问题外速度能上5mb,这是原有隧道未做任何优化的前提。
  • 购买微林还有个好处就是不怕被封掉,换节点是免费的,免费的。至于后端的bwg也就安全了。
  • 成本是微林1.25+bwg0.25=1.5一gb。
  • 实际成本要低很多,因为有可爱的cow帮我们做延迟均衡,因为从hk走会多100ms延迟,当网络环境好的时候是优先直走bwg的。
  • 有了cow后fq的生活真的是完全不一样了,两个字省心。
You need to set client_id and slot_id to show this AD unit. Please set it in _config.yml.