Windless
订阅/Feed
稗田千秋(i@wind.moe)

Yubikey 4 使用探索

平安夜舍友都出去浪了,只有我这种单身汪孤零零的在宿舍写着博客 (′_>′ )

心痒Yubikey很久了,恰逢黑五活动,想着能多出个赠品进行容灾备份,走的顺丰转运到今天正好一个月到手,参照匮乏的资料在Arch上面试了一些功能。

稗田千秋
Dec.25 2016 daily

「数论篇」矩阵快速幂

荒废了好久的算法,写几篇关于算法的复习笔记找找手感,在测试 Mathjax 的矩阵时有感而发,便写写矩阵快速幂吧。

幂运算即指数运算,用于表示某数自乘数次,因此易得最基本计算的方法复杂度为 O(N),

快速幂全称快速幂取模,可以在 O(log₂N) 得出结果,用于快速计算某个数的n次幂,此处的n一般很大而导致 O(N) 复杂度超时,而且题目通常会给出一个额外要求使结果对数k取模。

稗田千秋
Dec.24 2016 algorithm

开启BBR拥塞控制

前日在某TG群里碰见大佬强推 BBR 加速并给出了 IDCF 的测速实际对比,颇为心动,于空闲的 Vultr 主机上尝试部署了一下,性能提升虽然没有 Kcptun 那么暴力,不过也值得一试。

稗田千秋
Dec.10 2016 daily

君の名は。

走出影院,心中的暖不经意间驱散了初冬的寒意,便想着写些什么来纪念一下(这是观影完第一时间的短文,可能会带点主观倾向

纵观之前的作品,新海诚擅长的是描画宏伟美丽的背景,小而微的感情刻画以及讲述人与人之间的分离、羁绊,在背景上,描画所得与照片拍摄的图片最直观的区别,就是更有一种迎面而来的壮阔感,更具有表现力,也让图片本身带上了鲜明的感情色彩,更加突出了被挟裹在时间中的无力感,这是单纯的照片无法取得的效果。而细微的刻画则为影片增添了一分灵气,轻轻的挑动着心弦,可能一句简短的台词,一首应景的插曲就能泪点迸发,也深化了人物形象。

早在 云之彼端 约定的地方 时新海诚便有了平行世界的构思,不过在本作,时空的交织穿越才是推动剧情发展的重点,相对于之前的几部作品,诚哥确实变得"会讲故事"了。我比较用心看过的诚哥的电影只有秒五、云彼和追逐繁星的孩子,相对于你的名字,剧情上略显拖沓,或许是诚哥想表达的太多,而一部优秀的电影需要取舍,通过铺垫让观众自己来了解领会,所以在观影的时候,能发现本作的剧情节奏把握的十分到位,丝毫没有感觉时间的流逝。此外,本片的基调并不如诚哥前几作那种整体压抑悲伤的基调,取而代之的是轻松欢快的感情,感人处让人保持在眼泪盈眶而又不至溢出,穿插着的一丝丝小幽默,很好的中和了气氛,这也是新海诚从未使用过的表现手法。

ひえだ の ちあき
Dec.02 2016 acgn

Python元编程 装饰器篇

最近在 readthedocs 上阅读 Python3-Cookbook 的中文版,深有收获。因为C++的TMP,一直对元编程有着敬而远之的态度,但是在用Python的过程中,却感到了元编程是一种切实的生产力工具。本文为元编程其一,专门介绍装饰器,类装饰器和元类日后再书。

0x00 装饰器能干什么

个人认为装饰器其实和 Monkey Patch 有异曲同工之妙,都可以给函数执行前后执行额外代码,而不必修改函数本身。

我们先来看一个简单的装饰器

def decorator(func):
    # 定义一个wrapper,对原始函数进行包装
    def wrapper():
        print("明明是我先来的...")
        func()  # 执行原始函数
    return wrapper  # 需要再返回这个wrapper这个包装函数,代码才能执行

@decorator
def wa():
    print("为什么会变成这样呢")

运行结果可以看到在 wa 函数运行前先执行了 wrapper 里在函数前写的的代码,其实装饰器的执行也可以写作

稗田千秋
Nov.28 2016 code

实现简单的OTP Generator

之前曾尝试给博客添加了一个 OTP 认证,不过是引用某第三方认证 API,经常会导致请求超时等不可料错误,于是就尝试寻找着在后端本地实现的方法,发现了 PyOTP 这个库,在浅读了源码以及相关文档之后初步了解了 OTP 实现的原理,所以记下来备份。

OTP

OTP(One Time Password,动态密码),一般用来实现双因子认证,通过特殊的构造和哈希,实现了“动态”的特性,可以有效防止重放攻击(Replay Attacks),大大增加暴力破解成本(虽然在被爆破的时候小站服务器肯定先挂了XD

主要的验证方式有两种,HOTP(HMAC-Based One-Time Password)和 TOTP(Time-Based One-Time Password),像常用的 Google authenticator,开启二步验证之后会给予一个二维码,用对应 APP 扫描一下即可得到六位验证码,当然此时若是使用二维码识别工具的话也能发现这个二维码其实就是一段 URI Scheme,诸如 otpauth://totp/Windless:i%40wind.moe?issuer=chiaki&secret=secretkey&algorithm=SHA256

注意到其中传递了密钥 secret 以及摘要算法类型,这样只要客户端与服务端的实现是一致的,就能保证在同一时间得出的 OTP 是一致的。

稗田千秋
Nov.15 2016 code

使用 Git Hooks 实现自动化部署

秉着御繁以简的原则,在参考了多种部署方式后,在 Windless 上最后选用了 Git Hooks 自动部署,解放了繁琐的操作,不必每一次提交都去服务端执行 git pull,不但慢且费时费力.

Git Hooks 字面上看就是 Git 提供的一种类似挂钩的工具,其实我更愿意称其为触发器(WE 后遗症,在特定的时机执行对应脚本.

下面是 Windless 的配置手札

稗田千秋
Nov.11 2016 code

新的旅程,新的Windless

终于将博客迁移到 Aliyun 上了,新的博客代号为「Windless」,源代码托管在 Github 上,欢迎 PR。

上一版的博客是基于 Laravel 和 MariaDB 构建的,完成后总是抱有一丝遗憾,许多功能马马虎虎带过,没有使用版本控制,再加上笔者对 PHP 不甚了解,重构的想法也就一直埋着,之前也尝试过使用 Yesod 构建博客后端,无奈功力太浅无法驾驭,那个时候正好在关注 Python 3.5 的新特性 PEP 492,也想试试使用 KV 型数据库来存储数据,也就有了现在的技术选型。

先简单的介绍一下「Windless」的技术栈,后端使用了 aiohttp 进行构建,基于 Python 新 Asynchronous I/O 特性,同时使用 Redis 作为后端数据库,本地的 ab 测试也能勉强跑到 1200+ Req/s 的成绩,前端则沿用上个版本的「Windcore」使用的 Material Design Lite 组件库以及 Pure JavaScript 构建。

稗田千秋
Nov.02 2016 daily

书卷多情似故人 岛城篇

书卷多情似故人,晨昏忧乐每相亲。 眼前直下三千字,胸次全无一点尘。

漫步于青岛的大街小巷,总能在不经意间邂逅着各式小书店。由人文、书本、空间相互交织而成各具风情的独立书店,轻轻触动着内心的涟漪。

稗田千秋
Sep.11 2016 daily

又是一年五月至

侧头趴在窗边小桌上,享受着迎面而来的微风,阳光透过林荫洒了满满一桌,不胜惬意。

忙了整月突然休息了三天确实感到有点不知所措,于是去开荒了新赛季,又打了几场满十(感觉我已经是个废人了.jpg,四月新番就追了甲铁城和马裤螺丝,原计划阅读的《Type Theory and Formal Proof》也因为种种原因读了不到一百页,算法训练也日渐松懈,总而言之,又荒废了一个月。

不知是否是因为常年携带五月病病原体以至免疫的缘故,五月至今的每一天都达成五点半起床的成就=。=

在写手头项目的时候碰到BUG感觉还挺高兴的...尝试了一些Dirty Hack, 解决完有种类似AC的快感,而且还比刷题简单(X

面对还有半个多月的蓝桥杯国赛,准备先着手重温一遍基础的搜索DP算法,就准备靠着得奖后换来的奖学金换个本子了(误

手里的海外VPS都快到期了,又要吃土一波续费了

连续签到两星期送专业书籍,不能忍了为了省钱买书只能去签到了

想给博客加个侧栏...但是写完发现不好看啊啊啊(拖走

开始尝试使用 Yesod 写几个小应用跑跑看,熟悉一下 Haskell 网络编程(躺

随便写写,碎语无语在意~

稗田千秋
May.06 2016 daily
  • play_arrow

About this site

version:1.02 Alpha
博客主题: Lime
联系方式: i@wind.moe
写作语言: zh_CN & en_US
博客遵循 CC BY-NC-SA 4.0许可进行创作

此外,本博客会基于访客的Request Headers记录部分匿名数据用于统计(Logger的源码见Github),包含Referer, User-Agent & IP Address.个人绝不会主动将数据泄露给第三方