KevinHuang

KevinHuang的博客


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 一些书

  • 常用命令

  • python tips

  • 站点地图

  • rss

  • 公益404

  • 搜索

python-cn社区欢迎大家来贡献代码

发表于 2016-05-13 | 分类于 python | 阅读次数:
前言一次QQ群随意一说,得到大家的认同. 所有我想把这件事坚持下去, 做完.具体的可以看 http://python-cn.org. 在社区没有上线前, 保持低调,欢迎你来参观. 社区项目firefly. 欢迎star, 欢迎PR - 其实我要star没用,但是我希望你能来给我提个Pull request. 版权声明:本文由 董伟明 原创,未经作者授权禁止任何微信公众号和向掘金(juejin.im)转载,技术博客转载采用 保留署名-非商业性使用-禁止演绎 4.0-国际许可协议python
阅读全文 »

gentoo浣跨敤wpa_supplicant閰嶇疆鏃犵嚎缃戝崱

发表于 2016-05-12 | 分类于 杞浇 | 阅读次数:
鍓嶈█鍏徃鍏ㄩ儴浣跨敤浜嗘棤绾跨綉缁滐紝鎴戜篃琚€橀€尖€欑殑寮€濮嬬爺绌秅entoo鐨勬棤绾夸笂缃戯紝鐪嬩簡缃戜笂寰堝鏂囩珷锛屼互鍙奼entoo鏂囨。锛屼絾鏄劅瑙夐兘璁╂垜寰堣糠绯婏紝浠ヤ笅鏄垜浣跨敤wpa_supplicant鏄竴浜涙€荤粨####鎬荤粨 鏌ョ湅鏈満鐨勬棤绾跨綉鍗� emerge pciutils #杩欐牱灏辨湁浜唋spci杩欎釜鍛戒护 localhost ~ # lspci |grep -i wire 02:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01) 鍙互鍙戠幇锛岀綉鍗℃槸Atheros鐨凙R9285 瀹夎wpa_supplicant emerge -s wpa_supplicant 鐢熸垚涓€涓厤缃厤缃枃浠� zcat /usr/share/doc/wpa_supplicant-2.0/wpa_supplicant.conf.bz2 > /etc/wpa_supplicant/wpa_supplicant.conf 閰嶇疆锛屼互涓嬫槸鎴戝幓鎺夋敞閲婅锛岀┖鐧借绛夊墿涓嬬殑閰嶇疆锛屽叾涓殑psk鐨勫瓧绗︿覆杩欐牱鐢熸垚锛� localhost ~ # wpa_passphrase 鎴戠殑ssid 鎴戠殑key network={ ssid=鈥濇垜鐨剆sid鈥� #psk=鈥濇垜鐨刱ey鈥� psk=e596aa911775ed47e04f5b9a9540978203210874eb258208b87cf82b5cf72588 } 鎶婅繖娈靛姞鍦ㄩ厤缃枃浠朵腑 localh ...
阅读全文 »

slack-alert把定时任务的结果发送slack消息的微框架

发表于 2016-05-11 | 分类于 python | 阅读次数:
前言为什么要做slack-alert呢?成因其实是我一直想做的AST相关的一个项目.正好是一个机会. 其次也是业务需要:工程师都比较懒, 在每天的各种问题邮件几百几千封的时候会经常遗漏重要的邮件. 会经常被用户以及公司其他同事发现问题时@到时候才发现.现在大家也接受了slack这个工具. 那么我就在想何不把更重要的消息发送到slack里呢.原来也做过, 就是写一些脚本,会把运行的结果通过slacker里面封装的postMessage发消息进来.先说一下为什么我不用Incoming-webhooks. 最主要的,因为通常slack都是用的免费版, 我担心对webhooks会有限制或者未来会有限制.但是为什么做这个微框架呢? 一则这样的脚本和任务会越来越多, 脚本需要设置的定时任务的间隔也会各不相同. 用系统自带的crontab,每次新增修改删除都要去做调整.代码还需要做抽象; 用celery, rq这些其实一是很浪费, 二也不怎么应景. 所以我写了这个工具. 优点和特点 只支持python3 支持多种调度模式: AsyncIOScheduler, BackgroundScheduler, GeventScheduler, TornadoScheduler. 默认是AsyncIO 使用AST, 而没有直接import代码. 代码和项目无关, 没有register. 只需要按格式编写plugin脚本即可, 要被执行的任务加一个装饰器(只需要他是一个装饰器, 不需要存在). 指定运行的间隔就好 附带常用的配置安装 12pip install slack-alert slack-alert有个默认的配置[slack_alert.conf](https://github.com/dongweiming/slack-alert/blob/master/slack_alert.con ...
阅读全文 »

ipython的一些高级用法(一)

发表于 2016-05-10 | 分类于 python | 阅读次数:
前言以前在我的PPT[python高级编程](http://dongweiming.github.io/Expert-Python/)也提到了一些关于ipython的用法. 今天继续由浅入深的看看ipython,本文作为读者的你已经知道ipython并且用了一段时间了. %run这是一个magic命令, 能把你的脚本里面的代码运行, 并且把对应的运行结果存入ipython的环境变量中: 12345678910$cat t.py # coding=utf-8 l = range(5) $ipython In [1]: %run t.py # `%`可加可不加 In [2]: l # 这个l本来是t.py里面的变量, 这里直接可以使用了 Out[2]: [0, 1, 2, 3, 4] alias12345678910In [3]: %alias largest ls -1sSh | grep %s In [4]: largest to total 42M 20K tokenize.py 16K tokenize.pyc 8.0K story.html 4.0K autopep8 4.0K autopep8.bak 4.0K story_layout.html PS 别名需要存储的, 否则重启ipython就不存在了: 123In [5]: %store largest Alias stored: largest (ls -1sSh | grep %s) 下次进入的时候%store -r bookmark - 对目录做别名1234567891011In [2]: %pwd Out[2]: u'/home/vagrant' In [3]: %bookmark dongxi ~/shire/dongxi In [4] ...
阅读全文 »

attrs和Python3.7的dataclasses

发表于 2016-05-09 | 分类于 python | 阅读次数:
一直想写一篇介绍 attrs的文章,但是最近几个月忙于做爱湃森课程实在抽不出空来做,最近感觉找到节奏了,还是稳步向前走了,这个周末就硬挤了一下午写写,要不感觉对不起订阅专栏的同学们。在国内我没见过有同学说这2个东西,它们是什么,又有什么关联呢?别着急,先铺垫一下他俩出现的背景。 痛点写多了Python,尤其是开发和微信的项目比较大的时候,你可能和我一样感觉写Python的类很累。怎么累呢?举个例子,现在有个商品类,init是这么写的: 123456789class Product(object): def __init__(self, id, author_id, category_id, brand_id, spu_id, title, item_id, n_comments, creation_time, update_time, source='', parent_id=0, ancestor_id=0): self.id = id self.author_id = author_id self.category_id = category_id ... 问题1:特点是初始化参数很多,每一个都需要self.xx = xx 这样往实例上赋值。我印象见过一个类有30多个参数,这个 init方法下光是赋值就占了一屏多…再说问题2,如果不定义repr方法,打印类对象的方式很不友好,大概是这样的: 123In : p Out: <test.Product at 0x10ba6a320> 定义时参数太多,一般按需要挑几个露出来: 12345def __repr__(self): return ...
阅读全文 »

django和flask分页

发表于 2016-05-08 | 分类于 python | 阅读次数:
前言最近搞了一些关于flask和django的东西,尤其是django的模板和admin功能以及这些框架使用bootstrap的东西,没时间更新博客,先说一下flask和django分页吧#####flask的bootstrap分页插件[flask-paginate](http://packages.python.org/Flask-paginate)其实安装很常规,他的思路就是根据你的数据量给每个页面加一个li前缀到最后返回的div里面。因为官网提供的说明很简单,我在这里仔细说说: 官网说给你的网站页面添加css: .pagination-page-info { padding: .6em; padding-left: 0; width: 40em; margin: .5em; margin-left: 0; font-size: 12px; } .pagination-page-info b { color: black; background: #6aa6ed; padding-left: 2px; padding: .1em .25em; font-size: 150%; } 其实这个是给你页面显示统计数据的方法pagination.info提供的样式,默认的class=’pagination’是bootstrap自带的,不需要你添加 2. 官网的例子使用的是:Blueprint: 我们一般都是: ‘from flask importFlask’,其实Blueprint就是一个可定制的容器,一个应用可以有多个容器,他们都继承于flask.helpers._PackageBoundObject可以看我的一个例子: ...
阅读全文 »

你真的会python嘛?

发表于 2016-05-07 | 分类于 python | 阅读次数:
####前言我这个博客一直都是一些技术分享,show code的地方,我从来没有写过个人生活或者情感杂谈,当然我也从来没有谈论过我对什么东西的喜恶.很多人喜欢喷XX语言,喜欢谈论XX和YY的优缺,甚至凑了一本不知所云的书…好吧,我觉得没有使用一门语言超过10年,没有对一个技术研究个5,6年,不好意思说自己懂(天才除外).我也觉得我没有资格讨论什么,也许我有我的观点看法,但是我怀着怀疑的心态看自己,生怕自己理解错了.下文纯属个人吐槽,也许没有指定路怎么走,只是希望提个醒…使用python2年,可喜的是python被越来越多的人接受,甚至前端工程师…但是却有点烂大街的感觉:感觉出门不聊几句python都不好意思和人打招呼.但是你真的懂python嘛?####你会python真的不重要python实在太好学习了,假如你会其它的语言,可能搞本书翻一翻,一周后就能写很高端的python程序,由于web框架的普及,你甚至可以让一个网站应用跑起来.你会我也会,你有什么竞争力?####你知道python怎么用嘛? 在什么时候需要使用OOP? 在什么时候使用类装饰器? 你用过元类嘛? 在什么时候用静态方法什么时候使用类方法? 你了解那些管理属性? __call__ , __init__ , __new__都是在什么时候被触发?__getattr__和__getattribute__应用有什么不同? 你知道标准库里面的多少个模块?你能在需要的时候知道这个功能其实标准库里面已经实现了? 什么时候用回调? 什么时候用signal?假如你会django你知道django的signal是什么?你了解orm嘛? asyncore,contextlib, functools, collections, heapq,itertools, SocketServer, weakref,operator(知道3 ...
阅读全文 »

使用pipenv管理你的项目

发表于 2016-05-06 | 分类于 python | 阅读次数:
前言刚才使用pipenv发现了一个bug,顺手提了个的PR。无聊之下翻了下贡献者列表,貌似没有一个我国的开发者!我的普及工作任重而道远啊,我写篇文章给大家介绍下这个终极大杀器。Python开发者应该听过pip、easy_install和virtualenv,如果看过我的书应该还知道virtualenvwrapper、virtualenv-burrito和autoenv,再加上pyvenv、venv(Python3标准库)、pyenv…额,是不是有种发懵的感觉?那么现在有个好消息,你可以只使用终极方案: pipenv + autoenv(可选)。「终极方案」,听起来好噱头呀。给出我的理由之前我们先了解一下Python虚拟环境和包管理的历史吧。 历史在Python发展史上出现了很多创建和发布包的工具。当你想要把你的项目分享出去,放到PYPI或者其他托管服务上的时候,就需要借助这样的工具来构建和分发项目。早在1998年Python标准库内置了模块distutils,但是只提供了有限的支持,之后社区选择通过setuptools这个包实现构建和发布,它自带easy_install,能帮助你找到、下载、安装以及更新需要使用的包。不过依然功能很有限,比如不能删除包。当你做一个专职的Python开发,独立的虚拟环境也是一个开发中迫切需要的功能,在这里请大家记住一个 Ian Bicking(下称ianb)的开发者,08年,他开发了virtualenv。社区一些Python核心开发者和知名项目(如Django)核心开发者也在支持和推动这件事,后来成立了pypa(Python PackagingAuthority),pypa早期做的就是pip - 现在最主流的安装包的工具。再提一下,ianb也是pip的早期核心开发者。不过非常遗憾,由于和社区产生了一些矛盾,ianb很早之前就不再写Python项 ...
阅读全文 »

Python-__slots__-详解

发表于 2016-05-05 | 分类于 python | 阅读次数:
Python老鸟都应该看过那篇非常有吸引力的Saving 9 GB of RAM with Python’sslots文章,作者使用了slots让内存占用从25.5GB降到了16.2GB。在当时来说,这相当于用一个非常简单的方式就降低了30%的内存使用,着实惊人。作者并没有提到他的业务特点和代码,那我们就基于《fluentpython》中的例子来验证下是不是有这么厉害: 123456789101112131415161718192021222324252627282930313233343536from __future__ import print_function import resource class A(object): def __init__(self): self.a = 'string' self.b = 10 self.c = True class B(object): __slots__ = ['a', 'b', 'c'] def __init__(self): self.a = 'string' self.b = 10 self.c = True def test(cls): mem_init = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss l = [] for i in range(500000): l.append(cls()) mem_final = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss ...
阅读全文 »

荐书:《Fluent Python》

发表于 2016-05-04 | 分类于 python | 阅读次数:
最早应该是2015年4月份在「Python-ideas」邮件组知道的《Fluent Python》,当时作者发帖推荐这本书,其中提到了核心开发VictorStinner做了asyncio部分的评审。那个时候我对asyncio还不太习惯,asyncio的文档也比较匮乏,看到这个消息感觉又多了一个好的帮助我了解Python的途径。去年双十一的时候从淘宝淘了一本《流畅的Python》,它是台译版的《FluentPython》。买它的原因是为因为之前看原版过程中有多处理解不清晰,希望通过看台版的书来对比帮助理解。另外,在豆瓣上《Fluent Python》的评分高达9.6分!那么为什么大家觉得这本书好呢?我今天试着写一篇书评,分如下4部分来介绍这本书: 作者靠谱看一本书是不是靠谱,首先就是看作者。我认为一本好的技术书籍,首先作者就要是还在第一线,是不是在这个圈子里面。LucianoRamalho是一个非常知名的Pycon演讲者,同时还是PSF(Python SoftwareFoundation)的研究员。由于他是Django和Zope系的,他有什么贡献我所知甚少。不过我经常能在邮件组看到他参与PEP草案制定和讨论。另外本书基本每个章节都有对应领域致命的Python核心开发来评审,质量非常有保证。 关键特性剖析到位目前大量的Python相关的书都倾向基础只是和入门,内容重复,对于中高级开发者意义不大。虽然一般有Python的新书我都会买来翻翻然后咸鱼卖掉,但是越来越容易失望了。而《FluentPython》是Python语言图书中的一朵「奇葩」。其他大部分书都是在告诉你「应该这么写,这样用就对了,这样代码性能更高…」,但是没人告诉你为什么?也就是没有从语言设计实现层面给你一些解释,这本书会对这些细节剖析的很到位,还会告诉你一些不踩不能理解的坑儿的成因和解决办法。比如之前我写过一篇Py ...
阅读全文 »
1…789…20
Kevin Huang

Kevin Huang

197 日志
24 分类
84 标签
RSS
E-Mail
友情链接
  • 董伟明
  • FOOFISH
  • 酷壳
  • 知道创宇
  • 阮一峰
  • 求索
  • Sdandroid
  • 全栈实验室
© 2023 Kevin Huang 豫ICP备16018730号-1
本站访客数 人次 本站总访问量 次