property的AttributeError的传播问题

来源:dongwm   |   更新时间: 7天前   |   分类: 


去年我写过一篇你用对 hasattr 了嘛?介绍过被 property 装饰的方法内部抛错会引起 hasattr 的结果为 False。

今天又遇到了一个 AttributeError 向上传播的问题 (Python 2),一起来看看

先上代码:

In : class T(object):
...:     @property
...:     def name(self):
...:         print(self.missing_attribute)
...:         return 42
...:     def __getattr__(self, name):
...:         raise AttributeError(name)
...:

In : t = T()

In : t.name
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-6-afc812d51b9a> in <module>()
----> 1 t.name

<ipython-input-4-a0ba2d3a6446> in __getattr__(self, name)
      5         return 42
      6     def __getattr__(self, name):
----> 7         raise AttributeError(name)
      8

AttributeError: name

In : [k for k in dir(t) if not k.startswith('_')]
Out: ['name']
查看原文

Reaper 使用 ReaFir 插件对音频降噪教程

来源:kawabangga   |   更新时间: 14天前   |   分类: 我的生活


最近和Luke录制了一期播客。本来我们是买了一个话筒寄给嘉宾的,但是这个话筒不知为啥有电流声。所以就临时改成用手机录音了,出了点状况,导致最终出来的音质不是很好,Luke 的音轨底噪有一些强。放弃这一期不发布实在可惜,一筹莫展之际,我把剪辑好的 Mp3 文件发给最近一直在催更我的朋友听了,他说他用 iMovie 降噪之后听着还可以。这让我重新看到了希望,我去找了一些 Reaper 的降噪教程,想尝试对 Luke 的音轨进行降噪。最后的效果还不错,所以这里将我学到的降噪技巧分享一下,方便制作播客的兄弟们参考。

查看原文

公交邻座的抖音

来源:greyli   |   更新时间: 19天前   |   分类: 思考与随感


每次出门在公交和地铁上都不自觉的偷看别人的手机屏幕。尽管这样做不对,但是好奇心还是让我忍不住偷偷张望。当然,我不会去看别人的聊天记录和支付密码,大多数时间都是在看抖音。抖音、快手们争相接过了电视的接力棒,以一种更高效的方式来对人类进行信息投喂(他们称之为算法推荐)。我像躲避电视一样躲避这类被动灌输的信息流,我知道自己一样抵挡不住,所以我只在偶尔出门的时候陪公交和地铁邻座的陌生人(偷偷)瞟两眼。

查看原文

Google BBR 拥塞控制算法简单介绍

来源:kawabangga   |   更新时间: 26天前   |   分类: 程序开发笔记


最近在网上看了一些 BBR 的资料,简单玩了一下,这里做一个记录。

BBR 是一种拥塞控制算法。拥塞控制算法的目的简单来说就避免将过多的包发到网络上,造成网络堵车。假如现在网络上比较拥堵,那么 TCP 就使用拥塞控制算法来让发送端发的慢一些。如何在不造成网络拥堵的情况下,又能利用带宽快速发送数据,就是拥塞控制算法要解决的问题了。

这篇文章介绍了常见的拥塞控制算法。一般的拥塞控制算法是通过丢包来认为网络中是否发生拥塞的,这样的问题是,网络是存在一定的概率因为错误而丢包,就会导致无法充分利用带宽;另外一个问题是网络有可能会有 buffer 存在,导致发送端认为的网络容量因为没考虑到 buffer 比实际的要高。

查看原文

不知道取什么标题之任天堂理财

来源:dongwm   |   更新时间: 29天前   |   分类: 


早就想水一篇,无奈实在太忙了。今天终于抽出点时间写写疫情这段时间理财的故事,以及过程中我觉得有意思发生的故事和感悟。

先说结论吧,靠它 (们) 小挣一笔要靠天时地利人和:疫情、推特、海淘经验、技术手段。挨个来说

由于对国内环境的不信任,小孩出生不久我就开始学习海淘屯奶粉尿不湿,算是比较早海淘的一拨人,不过当时完全没想着挣钱,就是自用。再之后就是在黑五等活动费期间从美亚、纽巴伦官网等买 Ps4、MacBook、鞋子等等,有时候也会去 eBay 拍一些喜欢的绝版的限定的东西。

查看原文

不知道取什么标题之战胜脱发

来源:dongwm   |   更新时间: 29天前   |   分类: 


这篇文章跟大家分享一下我的脱发以及如何找到治疗并且取得很不错成效的经历,如果你发量优秀没这个烦恼现在就可以结束阅读了哈 (^▽^)

我这个博客过去一直在写技术性文章,今天说这个「脱发」脱纲了,不过考虑到身边认识的程序员朋友、同事,(我特别观察过)很多人或多或少都会有脱发这个问题,觉得很多人都可能遇到且没有找到正确的治疗方案,就有了这一篇。

回溯起来,我从大学时代就开始掉头发,这些年一直都没有间断的掉,每次洗头发之后都可以看到水里会飘一层头发,不过我的心态一直还算比较正常,没有特别担忧过。有这种放松的心态主要是因为在三十岁之前整体掉的头发和新增的头发还是很平衡的:虽然掉但是没有显的发量变少。

查看原文

FlaskCon 2020 参会指南

来源:greyli   |   更新时间: 1月前   |   分类: 活动与游记


FlaskCon是由社区举办的免费线上 Flask 会议,欢迎 Flask 的使用者和爱好者参加。这是一份非官方参会指南,希望可以帮到你。

会议时间

基于演讲者优先的考虑(因为听众可以看录播),为了让演讲者不用半夜爬起来演讲,所以有了现在的日程时间:

议题

一共收到 44 个议题申请,按照两天的时间安排,最终只保留了 18 个。大致分为下面几类:

查看原文

Python 工匠:在边界处思考

来源:piglei   |   更新时间: 1月前   |   分类: 


这是 “Python 工匠”系列的第 15 篇文章。[查看系列所有文章]

2016 年,Linux 操作系统的创造者 Linus Torvalds 参加了一场TED 访谈节目。整个节目的前半部分,主要是他在讲如何在家光着膀子写出 Linux 的故事,没有涉及太多编程相关的事情。

不过在访谈快结束时,突然出现了一个有趣的环节。主持人向 Linus 提问道:“你曾说过更愿意和那些有着好的代码品味的人共事,那在你眼里,什么才是好的代码品味?”

查看原文

JavaBean, POJO, DTO, VO, 傻傻分不清楚?

来源:kawabangga   |   更新时间: 1月前   |   分类: Java


关于这些概念,网上有很多解释,大多数都是胡说八道。我在 Stack Overflow 上看到了一个版本,认为这个理解是比较合理的。

太长不看版:

DTO 和 VO 用途是一样的,大多数语境下都可以互相替换。JavaBean 是一个惯例,DTO 和 VO 都遵循了这个惯例,所以他们都是 JavaBean. DTO, VO 和 JavaBean 都是 POJO.

Sun 推出了一个JavaBean 的惯例,遵循了这个惯例的 Java 对象都是 JavaBean. 所以首先要理解的是,JavaBean 并不是一个实现,也不是接口,只是一个惯例。

查看原文

比修 Typo 还简单的开源贡献方式

来源:greyli   |   更新时间: 1月前   |   分类: 思考与随感


最近给 WTForms 提交了一个PR,这个 PR 向源码、测试和本地化文件里添加了 537 个句号。听起来似乎很奇怪,为什么 WTForms 会需要增加 537 个句号?别着急,下面会慢慢解释(事实上我只完成了一部分的工作,还有大概 2136 个句号需要添加)。我发现我似乎很喜欢提交这种 PR,这类开源贡献没有太多技术含量(基本就是体力活),但是能有效提高项目的整体完美度,让用户获得更一致和舒服的体验。下面是一些可以归到这一类开源贡献的 PR。

查看原文

幻读

来源:kawabangga   |   更新时间: 1月前   |   分类: 数据库


数据库的事务应该保证隔离性,这就是说,两个用户(连接)在操作数据库的时候,它们之间的操作应该互相不受影响的。比如用户 A 在修改了 foo 这个变量,但是还没有提交,那么 B 不应该看到这个修改。

但是隔离性的时间不是一件简单的时间,隔离性保证的越高,要么实现的技术手段越复杂,要么性能很低。因为很显然,避免多个事务之间互相影响,就必然要通过加锁来同步操作。如果想要更高的性能,就必须要加更加细粒度的锁,或者使用无锁(更加复杂)的技术来实现。

查看原文

知乎专栏降级

来源:greyli   |   更新时间: 1月前   |   分类: 思考与随感


2016 年 11 月创建了一个知乎专栏来写 Flask 相关的内容,到现在关注人数慢慢涨到了 10000。

前段时间偶然看了下专栏,发现整个页面有很大的变化,原有的这些东西不见了:

页面上部去掉了很多信息,同时空间被压缩的很小,导致整体样式变得很难看。专栏介绍自动替换为长介绍加剧了这种情况,尝试修改介绍,发现字数限制和之前相比变得更严格了——只允许 25 个字符,这样原有的短介绍也没法使用,只好留空。

查看原文

微信公众号历史文章倒序查看

来源:foofish   |   更新时间: 1月前   |   分类: 默认


众所周知,在微信上查看公众号历史文章很不方便,因为它只能从最近的文章开始查看,想要看公众号的第一篇文章你要翻很多页才能看到。如果退出了当前页面,你不得不重新操作。

所以在微信倒序查看公众号历史文章体验很不友好。现在这个问题可以在“二十次幂”这个工具中得到解决。

具体使用操作:

第1步:打开网站注册账号

https://www.ershicimi.com/

查看原文

Python 真的是靠一个 switch 来执行字节码的吗?

来源:laike9m   |   更新时间: 1月前   |   分类: 


JUN 10TH, 2020

分支预测优化技巧实现编译中判断要不要开启 computed gotoceval.c 中的实现

如果你读任何 (C)Python 源码分析的书或者文章,里面都会讲 Python 字节码是靠ceval.c中的一个大switch来执行,根据 opcode 的不同跳到不同case去执行。甚至Anthony Shaw在他的新书《CPython Internals》里也是这么讲的。

查看原文

求求你,别再手工造假数据了,fake了解一下

来源:foofish   |   更新时间: 1月前   |   分类: python


项目开发初期,为了测试方便,我们总要造不少假数据到系统中,尽量模拟真实环境。

比如要创建一批用户,创建一段文本,或者是电话号码,抑或着是街道地址或者IP地址等等。

以前要么就是键盘一顿乱敲,随便造个什么字符串出来,当然最后谁也不认识谁。

现在你不要这样做了。

用faker就能满足你的一切需求。

先安装faker

pipinstallFaker

pip install Faker
查看原文

最新抖音去水印解析

来源:foofish   |   更新时间: 2月前   |   分类: PYTHON技术


短视频如今非常火热,无论是微博、Twitter、还是知乎、微信,这些网站都在往短视频方向倾斜,抖音、快手就更不用说了。

来看一个网站

这是一个下载Twitter视频的工具。

你知道它的流量有多恐怖吗?月PV是900万,靠Adsense广告收入每月几千美刀。

采集twitter视频对一个做爬虫的程序员来说,技术难度几乎为零。缺的是对用户痛点的把握。

查看原文

国内技术书盗版现状

来源:greyli   |   更新时间: 2月前   |   分类: 计算机与编程


我在 18 年出版了一本技术书,快两年过去了,和盗版打了很多交道。这篇文章从一个技术书作者的视角以 2018~2020 作为切片来记录一下国内技术书的盗版现状。

盗版的起源

我的书第一次上架到电子书平台是在 18 年 8 月 24 号,纸质书正式开始发售是在同年 9 月 13 号。仅仅不到一个月的时间,在 10 月初,淘宝上就开始出现了大量盗版影印书(大约有十几个,价格多在 ¥30 左右)。紧接着,在 11 月初,CSDN 上出现很多盗版电子书。同一时间,多个盗版电子书网站开始有了这本书,基本占领了百度和 Google 的前几页搜索结果。

查看原文

国内技术书盗版现状

来源:greyli   |   更新时间: 2月前   |   分类: 计算机与编程


我在 18 年出版了一本技术书,快两年过去了,和盗版打了很多交道。这篇文章从一个技术书作者的视角以 2018~2020 作为切片来记录一下国内技术书的盗版现状。

盗版的起源

我的书第一次上架到电子书平台是在 18 年 8 月 24 号,纸质书正式开始发售是在同年 9 月 13 号。仅仅不到一个月的时间,在 10 月初,淘宝上就开始出现了大量盗版影印书(大约有十几个,价格多在 ¥30 左右)。紧接着,在 11 月初,CSDN 上出现很多盗版电子书。同一时间,多个盗版电子书网站开始有了这本书,基本占领了百度和 Google 的前几页搜索结果。

查看原文

简单聊聊 Maglev ,来自 Google 的软负载均衡实践

来源:manjusaka   |   更新时间: 2月前   |   分类: 论文


好久没博客了,来写个简单的读论文笔记吧,这篇文章是来自 Google 2016 年发表的一篇论文Maglev: A Fast and Reliable Software Network Load Balancer分享了他们内部从08年开始大规模使用的软负载均衡系统的实现。里面很多很有趣的细节,我看我能写多少,算多少吧

负载均衡的概念大家肯定都比较熟悉了,再次不再赘述。现在我们需要考虑 Google 的场景。设计之初,Google 需要一种高性能的 LB 来承担 Google 一些重头服务的流量,比如 Google 搜索,Gmail 等等。由于流量非常庞大,那么 LB 需要非常强大的性能来处理大量的流量。

查看原文

欢迎参加 FlaskCon 2020!

来源:greyli   |   更新时间: 2月前   |   分类: 活动与游记


FlaskCon是一个社区举办的 Flask 大会,将会在 6 月 26 号举行。按照官方的介绍,它:

和 DjangoCon 类似,FlaskCon 会专注于 Flask 相关话题,包括 Flask 扩展介绍、开发经验、最佳实践、类似框架的对比等等。

如果你想分享 Flask 开发相关的经验,介绍你对 Flask 的有趣应用,或者是有任何和 Flask 相关而且你很想拿出来聊一聊的话题,欢迎报名演讲。演讲有 20 分钟和 40 分钟两种类型,需要使用英语。

查看原文

本页内容使用均遵循相关开源协议,部分内容获得作者本人授权