0%

浮生六记算是沈复的自传吧,其人才情虽好,德行却是没什么称道的地方。当然他前半生神仙眷侣般的生活,也不知惹多少人羡慕,红袖添香夜读书大概就是如此吧。

名为六记,只余其四,也是人生一大憾事

笔记

卷一 闺房记乐

其形削肩长项,瘦不露骨,眉弯目秀,顾盼神飞,唯两齿微露,似非佳相。

阮云:一会儿就该说真香了

余镌“愿生生世世为夫妇”图章二方,余执朱文,芸执白文,以为往来书信之用。

阮云:此生能得一良侣已是奢望,又怎么敢求生生世世。

山果收获,必借猴力,果然。

余调其言,如蟋蟀之用纤草,渐能发议。其每日饭必用茶泡,喜食芥卤乳腐,吴俗呼为臭乳腐,又喜食虾卤瓜。

阮云:喜欢饭后喝茶,腌制食品,早夭有因

情之所钟,虽丑不嫌。

其癖好与余同,且能察眼意,懂眉语,一举一动,示之以色,无不头头是道。

于是相挽登舟,返棹至万年桥下,阳乌犹未落山。舟窗尽落,清风徐来,绒扇罗衫,剖瓜解暑。

阅读全文 »

原理

一次简单的日志记录

1
2
3
4
5
6
7
8
9
10
11
import logging
logger = logging.getLogger(__name__)

try:
1/0
except Exception as e:
logger.debug('debug %s', e)
logger.info('info %s', e)
logger.warning('warning %s', e)
logger.error('error %s', e)
logger.exception('exception %s', e)

output

1
2
3
4
5
6
7
warning division by zero
error division by zero
exception division by zero
Traceback (most recent call last):
File "test.py", line 5, in <module>
1/0
ZeroDivisionError: division by zero

  1. logging.getLogger 获取一个记录器, 一般以模块名称命名
  2. 调用日志记录器的相应方法记录日志
阅读全文 »

SQLAlchemy core 是SQLAlchemy的核心部件,主要负责生成sql查询和具体的数据库操作,SQLAlchemy orm 就是构建在core之上的。

在不需要对象映射的时候,使用core而不是orm,可以降低数据库操作成本,提高性能。

Table映射

创建数据库连接

1
2
from sqlalchemy import create_engine
engine = create_engine('sqlite:///test.sqlite3', echo=True)

表结构定义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey, Index
metadata = MetaData()
users = Table('users', metadata,
Column('id', Integer, primary_key=True),
Column('name', String),
Column('fullname', String),

# place an index on col1, col2
Index('idx_col12', 'name', 'fullname'), # 添加索引
)

addresses = Table('addresses', metadata,
Column('id', Integer, primary_key=True),
Column('user_id', None, ForeignKey('users.id')),
Column('email_address', String, nullable=False)
)
阅读全文 »

ORM是指对象关系映射(英语:Object Relational Mapping),是一种程序设计技术,是数据库记录和程序对象之间的映射关系。

使用ORM可以简化数据库的操作,使数据操作更加面向对象,并且程序逻辑和具体数据库解耦。缺点是会有一定的性能损耗。

Python中的ORM主要有Django ORM,SQLAlchemy, peewee; 其中Django ORM只能和Django框架一起使用,SQLAlchemy功能比较全,peewee较为轻量。

SQLAlchemy还可以不使用其ORM,只使用SQLAlchemy core作为一个通用数据库连接器。

阅读全文 »

简介

《传习录》是阳明先生的问答语录和论学书信集。是一部儒家简明而有代表性的哲学著作。

王阳明可贵的不是他的学说,而是他行动和思想一样地伟大,能够知行合一,这样三不朽是理所应当的。

感悟:心学的核心致良知,就是良知的自我表达,良知的自知,主体性的向外扩展,使主观世界和客观世界融为一体,而不是主体被客观世界异化。

愿永为阳明先生门下走狗

阅读全文 »

本文为整理以前的读书笔记

简介

之前对于传教士无甚好感,觉得他们总是将自己的信仰推销给别人,然而信仰的好坏暂且不论,总归是要自由的。

对司徒雷登的第一印象应该是来自《别了,司徒雷登》一文,毛主席对美帝一通抨击,连带着对他观感也不好了。

读了这本书才发现,一个较为真实的司徒雷登,了解他当时所处的社会现状,以及他说做的一些事情。

最为佩服的还是他对当时中国教育的帮助,在燕京大学上投注的心血,这些都足以为其生平作注了。

阅读全文 »

HTTP协议

HTTP简介

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写。
用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

HTTP协议工作于客户端-服务端架构为上。
浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
Web服务器根据接收到的请求后,向客户端发送响应信息。

主要特点

  • 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

  • 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

阅读全文 »

装饰器应该是Python最富有表现力的语法结构之一了,基于装饰器很多功能可以实现得比较优雅。
Python中的装饰器,来源于设计模式中的装饰器模式。顾名思义,所谓装饰器就是对原有的对象做一些装饰,也就是给已有的对象添加一些功能。

简易装饰器

装饰器本质上是函数替换. 装饰器被调用会返回一个函数, 被装饰函数会被返回的这个函数替换.
要使用装饰器,先得定义一个装饰器函数,然后在需要装饰的函数的前一行使用@符号加上装饰器名称。
下面是一个简单是例子, hello函数被running装饰器装饰, running返回了fuck函数, 此时调用hello就变成了调用fuck, 实现了函数功能的改变.

阅读全文 »

本文为整理以前的读书笔记

简介

《在细雨中呼喊》是一本关于记忆的书,是余华发表于1991年的第一部长篇小说。

作者以第一人称讲述了一个家庭的欢乐和苦痛,孙光林、孙光明、孙光平兄弟三人的际遇,及他们所处的家庭和社会,常常让读者有种无力感,又带有些微的庆幸。

还是最深的体会就是,为人父母者永远不要将自己的懦弱施加到孩子身上。世间苦难重重,孩子本无意来此世上,还遭受无谓之伤害,实在无辜。

笔记

这事给我哥哥留下了深刻的印象,有一次他神情黯然地说:“当我们想成为城里人时,城里人却在想成为歌唱家。

你拼命去追求的目标,到头来不过是别人一直想舍弃的

孙光明在临死的前一天,还坐在门槛上向孙光平打听村里谁快要结婚了,他发誓这次要吃十颗水果糖。他说这话时鼻涕都流进了嘴巴。

无常啊无常,世间事常是如此,不管是如此简单的快乐,还是鲜花着锦的富贵,都不能长久

Plantuml 是什么?

首先得说一下UML,统一建模语言(英语:Unified Modeling Language,缩写 UML)是非专利的第三代和规约语言。

UML涵盖了很多类型的图,主要都是应用于软件开发行业。

在UML系统开发中有三个主要的模型:

  • 功能模型:从用户的角度展示系统的功能,包括用例图。

  • 对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类别图、对象图。

  • 动态模型:展现系统的内部行为。包括序列图,活动图,状态图。

而PlantUML是一个开源项目,除了支持快速绘制上面这些类型的图表之外,还支持很多图表,具体查看官方网站

PlantUML通过编写文本的方式来定义UML图表,有点类似markdown,然后生成图表

阅读全文 »

博客荒废了许久,换个主题,又是一个新的开始。。。

缘起

从大学开始接触Python,到现在也差不多四年了,也算小有所成。期间也有很多人问我如何学习Python,也只是零散地回答,刚好最近要做个Python的分享,就将这一块东西整理一下。

本文作为Python学习的指路文章,是个人在Python学习过程中的经验总结。
阅读的时候不需要太细致,略读即可。
读完后,能够对Python学习的各方面有个大致的概念,在学习过程少踩一些坑,收获就很大了。

简介

Python(音:派森),是一种强类型的动态语言,由吉多·范罗苏姆 创造,第一版发布于 1991 年。

名称由来

Python的创始人为吉多·范罗苏姆。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python作为程序的名字,是因为他是BBC电视剧——蒙提·派森的飞行马戏团的爱好者。

阅读全文 »

有时想给windows的资源管理器增加一些自定义的功能,比如创建目录联接到某个目录。

思路

给windows的资源管理器添加一个右键菜单,调用你想要运行的程序或脚本,理论上可以实现任意功能。

实现

那么我们就开始py一个脚本吧, 创建目录联接到指定目录

1
2
3
4
5
6
7
8
9
10
11
12
import os, sys, subprocess

if len(sys.argv) < 2:
exit()

p = sys.argv[1] # 目标路径通过命令行参数传入
base_dir, name = os.path.split(p)

si = subprocess.STARTUPINFO()
si.dwFlags |= subprocess.STARTF_USESHOWWINDOW # 隐藏subprocess运行的命令窗口
cmd = 'mklink /J {} {}'.format(os.path.join('E:\\share', name), p)
subprocess.call(cmd, startupinfo=si, shell=True)
阅读全文 »

昨夜刚收到外祖父离世的消息, 顿时心里空落落的, 不知何处安放.

随着年岁渐长, 看着亲人离自己远去, 真是很难接受, 恨自己的无力, 不能为他们做些什么.

或许这就是佛家说的求不得吧, 不喜欢的事物它还是会来, 喜欢的事物也还是会走, 来或是不来都难以求得, 父亲那是也是这样.

死生事大, 无常迅速.

无法, 唯有精进.