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

模板引擎实现 (A Template Engine)

译自 500 Lines or Less -- A Template Engine 当前进度 20%

引言

编程语言对逻辑友好,但是有些情况下,我们需要处理大量的文本数据和少量逻辑,所以需要一个更适合的工具,模板引擎就是一个这样的工具。我们将会在下文构建一个简单的模板引擎。

Web 应用是重文本任务的常见示例。 Web 应用中最重要的一个部分就是生成 HTML 供浏览器解析。只有很少的纯静态 HTML 页面,涉及一点动态数据,如用户名等。通常,一个页面会包含大量动态数据:产品列表,朋友的新动态等。

同时,每个HTML页面都包含大量静态文本,并且页面都很庞大,含有成千上万字节的文本。因此,Web应用开发者面临着一个问题:如何优雅地生成一个包含静态和动态数据的混合文本?除此之外,静态的文本实际上是由团队中的其他成员如前端工程师所编写的 HTML ,他们也希望能够用相近的方式来处理这些混合文本。

稗田千秋
Apr.16 2017 code

Python元编程 元类篇

前文 Python元编程 装饰器篇

这个问题是我重构博客后台时遇到的,在 constant.py 里创建了一个全局变量 CATEGORY,但是由于作用域的问题在引用时屡屡失败,最后便考虑使用单例类来作为存储结构,最先访问时会创建新实例,否则返回该实例。

0x00 什么是元类

首先,先来看看type的用法

> help(type)
Help on class type in module builtins:

class type(object)
 |  type(object_or_name, bases, dict)
 |  type(object) -> the object's type  # type(对象)
 |  type(name, bases, dict) -> a new type # type(类名, 父类元组,方法字典)
稗田千秋
Apr.10 2017 code

数据挖掘笔记其一 关联规则与Apriori与Python实现

开个新坑,作为数据挖掘这门课的学习笔记,前面的部分理论就暂且省去。

"啤酒与尿布"的故事想必各位都有听过,这种从海量数据中获取有用信息,寻找数据间隐含关系的方法叫做关联规则学习(Association rule learning)。好比平时购物时所推荐的购物信息,就是从其用户的活动情况来生成推荐。

基本概念

项集(Itemset):项目集合,如果包含k个项,称为 k-项集。

频繁项集(Frequent Itemsets):支持度不小于给予的最小支持度的非空项集。

最大频繁项集(Maximum Frequent Itemsets):不是被其他元素所包含的项集。

稗田千秋
Apr.07 2017 ai

当Yubikey(私钥)丢了之后

看着前两篇博客,心塞塞的。

首先,绝对不要把装着私钥的U盘和Yubikey绑在一起,绝 对 不 要。当然,除了我这种萌二应该没人会这么干...

我也不抱着能找回的心态了,我丢过的U盘向来都是被捡到的人直接格式化一波带走=。=

于是记下来以防剩下的这把Yubikey丢失。

最后,容灾备份还是很关键的,我的新 GPG 公钥 EB57 A51B 1C23 0614

不想说话小千秋
Mar.10 2017 security

听,那些过去的和即将到来的

新年快乐(题图pixiv id=60561552),这篇文章敲到一半,整个2016年便已翻了过去,想到什么就写点什么,称不上是一份总结,就当做是情感的宣泄吧。

脑中快速闪过了一年来的些许画面,好像是顺其自然般,年初定下的目标也实现了不过一半(反正原博我已经删了哈哈哈哈

年初受大佬们的影响接触到了Haskell,起先我并不觉得这门语言有吸引我的地方,纯函数,复杂严谨的类型系统,没有变量(let不算),对于习惯了Pascal/C/Python等语言的写法,变量对我仿佛是不可或缺的,更别说循环这种方式了,但是随着不经意间看见Haskell在解题时,短小精悍的代码令人着迷,而后又知晓xmonad是基于Haskell的,开始觉得这或许是一门拥有无限可能的语言,因而九月的时候韩东老师的新书 魔力Haskell 也在第一时间购得一本,加上在线阅读的Real World Haskell,收获颇丰。

稗田千秋
Jan.01 2017 essay

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
  • 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.个人绝不会主动将数据泄露给第三方