最近在尝试把网红爆款鸡汤文与技术类文章融合的写作手法

技术

A 21-post collection

只有Python魔法少女才知道的PonyORM

开发项目时,经常会用到ORM,而Python里能用的ORM其实也没几个,以我目前的开发经验来看,比较顺手的ORM有Django内置的那个,或是写Flask时,可以配合使用大佬封装好的Flask-SQLAlchemy。而它们都与框架绑定,当你想在Web应用之外的项目里使用ORM,体 ... »

Windfarer at | 技术 |

Consul笔记

Consul是HashiCorp出品的开源服务发现工具。也有人用etcd或者ZooKeeper做类似的事情,它们之间的区别可以看官方文档的对比Consul vs. ZooKeeper, doozerd, etcd Consul提供了诸如服务发现,健康检查,KV数据库等功能,方便 ... »

Windfarer at | 技术 |

在Python中捕获代码的输出

在跑python脚本时,你想捕获某段代码的输出并塞进字符串里,可以进行如下骚操作 def myfunc(): print("hahaha") raise ValueError('123') import io import sys import ... »

Windfarer at | 技术 |

Lisp解释器终于写完了

记录完成mal项目实现Lisp解释器的踩坑过程,主要参照之前翻译的mal指南,边做边修改之前翻译得不清楚的地方。 我的实现https://github.com/Windfarer/lisp-interpreter 虽然在写代码的过程中不断出现如下状况但很幸运最终还是完成了( St ... »

Windfarer at | 技术 |

pipenv笔记

最近开始写一个新项(lun)目(zi),正好尝试新一代python包/虚拟环境管理工具pipenv,这个工具也是那个逆袭的帅哥程序员Kenneth Reitz写的(即Requests以及一系列优质的python库的作者),目前它已经被纳入pypa下,可以算Production-R ... »

Windfarer at | 技术 |

Python的Ellipsis对象

近来由于某些无聊原因在研读Python的文档,发现一个适合装逼好玩的东西。 Ellipsis对象。 在Python 3中你可以直接写...来得到这玩意。 >>> ... Ellipsis >>> type(...) <class 'ell ... »

Windfarer at | 技术 |

在2017年(试图)安装Docker是怎样一种体验

如果你是一个小白,听说Docker很酷,想在服务器上装一个玩玩。在临近2018年的今天,装一个Docker是怎样一种体验呢? 首先假设你身处国外呼吸着自由的空气or你的网络环境自带了科学上网,可以流畅的打开在国内访问起来半死不活的Docker官网,然后让我们开始吧。 首先打开Do ... »

Windfarer at | 吐槽, 技术 |

Wireshark安装及远程抓包

Wireshark是一个十分强大的开源的网络抓包工具,在调试与网络有关的灵异问题以及在无线网络环境下偷鸡摸狗之类的场景中有很好的疗效。 安装 MacOS下使用brew cask一把梭。 brew cask install wireshark 远程抓包 原理是在需要抓包的机器上使用 ... »

Windfarer at | 技术 |

如何追踪民航客机

闲得无聊的时候,可以买一根电视棒,这样就能收看电视节目了 有的时候会好奇flightradar24和flightaware上面的航班轨迹信息是怎么来的,据说其中部分数据就是爱好者们用自己的设备采集到的。 在C君的指点下,我也买了一根电视棒玩玩追踪航班信息。 型号是RTL2832U ... »

Windfarer at | , 技术 |

SQLAlchemy的scoped_session是啥玩意

通常我们用SQLAlchemy写数据的时候要创建Session对象来维护数据库会话,用完了再关掉。但是听说还有个叫scoped_session的玩意,这是做啥用的? 这东西其实与web应用有一些关系。我们在使用Django的ORM的时候怎么没见到需要创建个session呢?因为它 ... »

Windfarer at | 技术 |

如何让Docker容器正常打印Python的日志

在Docker容器里跑Python程序时,我们经常遇到通过print函数或者logging模块输出的信息在容器log中迷之失踪,过了好久又迷之出现。这是因为Python在写stdout和stderr的时候有缓冲区,导致输出无法实时更新进容器log。 有如下几种方法解决: 1. 增 ... »

Windfarer at | 技术 |

如何一本正经地胡说八道

问:何为DevOps? 答:找个实习生搞定三个全职员工的工作,只要出一份实习工资。 问:何为微服务? 答:把一个本来工作得很好的服务拆成若干个不同人维护的服务,然后在出bug的时候互相甩锅,以达到延长甩锅链路,降低工作饱和度的效果。 问:何为敏捷开发? 答:今天早上老板/客户/产 ... »

Windfarer at | 技术, 吐槽 |

升级到Ghost 1.x

程序员群体特别痴迷于工具,折腾来折腾去,就忘记了本来要做什么。 我看Ghost 1.0版出来很久了,但自己一直没有升级。于是周四的时候手贱了一下,升到了1.0版本,记录一下踩了哪些坑。 本来我是采用Docker镜像部署,但1.0的镜像还没出来(目前有一个PR 所以就采用了官方的G ... »

Windfarer at | 技术 |

玩玩Splatoon 2

买了美版《Splatoon 2》。之前看别人在Wii U上玩第一代的视频,就觉得这个游戏非常有趣,值得一试,现在终于有机会可以体验一下。 日版前夜祭的时候我在大连没网的酒吧吹空调交换小卡片,第二天早上美版前夜祭因为太早了所以没起来。再加上日版卡带提前偷跑,又因为卖家在HK倒货的时 ... »

Windfarer at | 技术, |

如何禁用Macbook Pro的内置键盘

最近几个月我的机械键盘一直在吃灰,因为用回了自己2011款15寸古董MBP当工作机。机器内置键盘比13寸MBP的内置键盘宽一点,导致像原来一样把机械键盘放在上面的时候会压到一些按键。 搜了一些可以把内置键盘禁用掉的办法,例如 方法1. 使用系统的“鼠标键”功能 在系统设置里设置启 ... »

Windfarer at | 技术, 吐槽 |

在Amazon Linux (EC2) 上编译内核开启BBR

BBR是由Google开发的新TCP拥塞控制算法,使TCP连接在恶劣的网络链路上有更好的带宽表现。通常被用来在翻墙的时候加速。 EC2上的Amazon Linux虽然目前内核已经是4.9,但是由于里面并没有BBR模块,所以无法直接使用,因此需要自己编译一个带BBR的内核来用。 1 ... »

Windfarer at | 技术 |

URL去重与Bloom filter

在爬虫爬网页的时候,需要避免重复抓同一个网页,来提高爬取效率,避免不必要的开销,这就需要使用一些判重的方法。 数据库 一种比较常见的方法是用数据库。这也是实现分布式爬虫去重的一个比较简单的方案。简单来说就是多个爬虫可以共享同一个数据库,把爬过的url写进去,在爬url前从数据库里 ... »

Windfarer at | 技术 |

什么是尾递归

这一篇主要是因为在饭否上看到一条消息: @量子小熊: 每个声称自己会Scala的,我都让他写尾递归的List反转,目前还没有一个写出来的,知道啥是尾递归的都是稀有动物。 吓得我赶快复习了一下尾递归(可惜并不会Scala)。怎么说也是SICP从入门到放弃的人,不懂这个实在不像话(讲 ... »

Windfarer at | 技术 |

LGTM? 那些迷之缩写

就像你可能不知道 现充 其实是 现实生活很充实的人生赢家 的缩写一样,我们经常看到Github上的码农们在code review时,把乱七八糟的缩写写得到处都是——娴熟的司机们都会使用缩写来达到提高逼格的效果——我们第一次看到时还是会出现一脸懵逼的状况,这里整理一下这些缩写都是什 ... »

Windfarer at | 技术 |

博客折腾记录

年轻人,就是不知道生命的宝贵,非要把时间花在这种没啥价值的事情上,瞎折腾。 找到了个很赞的Ghost主题 imgarylai/text 用来魔改。 优化了一下nginx的配置 主要参考了 博客性能优化 和 博客性能优化:续。 启用了HTTP/2 在官方nginx镜像由于基础镜 ... »

Windfarer at | 技术 |

The Zen of Python

缘起 最近重构了成吨的代码,对于写代码这件事,有了更深的感悟。 看了一些书,《软件随想录》、《重构》、《Python Cookbook》、《程序员修炼之道》、《GEB》、《SICP》等等,有的书,和重构这件事并没太大关系,但竟然不知不觉自行看出了其中的关联性。 思索 Python ... »

Windfarer at | 技术, 脑洞 |