教 @pan🍳 从零开始做信息 OS Day 1

Day 1

和 @pan🍳 讨论「如何从零开始实现一个自己的日志系统?」。

✅ TODO

  • ☑️ D1.1. 用 .txt 记录日志;
  • ☑️ D1.2. 汇总 .txt
  • ☑️ D1.3. 导入到服务器中,并响应;

📝 过程记录

D1.1. 其实是在考察「对规范 / 约定的理解」:

- 记录形式:是用文本,还是 Excel ?
- 记录粒度:是通通放在一个文件中,还是每天一个?

D1.2. 是在引入「解析」的概念;

db = []

Dir.each_child("./") do |f|
    next unless /\.md$/ =~ f
    db << File.read(f)
end

pp db

用 Python 实现也很简单:

import os

md_files = [name for name in os.listdir('./')
                if name.endswith('.md')]

db = []
for fname in md_files:
    with open(fname, 'rt') as f:
        db.append(f.read())

print("\n".join(db))

D1.3. 可以直接引入「Web 框架」[1]。同时,介绍「路由🚏」的概念。这里用的是 Sinatra (GitHub)。

require "sinatra"

get '/foo' do
    db.join("<br />")
end

Python 实现也不难:

# save this as app.py
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "<br />".join(db)

装好 Flask 以后( pip install -U Flask ),运行 flask run ,然后打开 localhost:5000 就可以看到了。

现在,借助浏览器的 ⌘ + F 已经可以实现日志搜索🔍了。

📄 课后习题:

  • ☑️ D1.4. 了解 MarkDown ;
  • ☑️ D1.5. 了解怎么在网页中嵌入输出;

⚠️ 在一开始就应该建立的理念:

  • 凡事皆记录的习惯,包括学习的过程(这样可以在一开始对日志记录的必要性没有认识的情况下冷启动。当然,日后也会收获数据迁移的痛苦🤣)。同时,还可以从日志中抽取文档。

  1. 主要是我忘了怎么用原生库实现了😓;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章