听听那冷雨

No one write here

理解 Python 的元类

元类是一个深奥的OOP概念,几乎隐藏在所有Python代码之后。无论您是否知道,都在使用它们。在大多数情况下,您无需意识到这一点。大多数Python程序员很少(即使有的话)也不必考虑元类。

理解 Python 的装饰器

装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。

关于 Python 的一些面试题

Python 语言特性1 Python的函数参数传递看两个例子: 12345a = 1def fun(a): a = 2fun(a)print a # 1 12345a = []def fun(a): a.append(1)fun(a)print a # [1] 所有的变量都可以理解是内存中一个对象的“引用”,或者,也可以看似c中void*的感觉。 通过id来看引用a的内...

数据科学中的各种相似性度量及其实现

欧氏距离(Euclidean Distance)

欧氏距离(也称欧几里得度量)指在 m 维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from math import *
import numpy as np

def euclidean_distance(x, y):
# 方法一
# d = sqrt(sum(pow(a - b, 2) for a, b in zip(x, y)))

# 方法二
x, y = np.array(x), np.array(y)

# d = np.linalg.norm(x - y, ord=2)

d = np.sqrt(np.sum(np.square(x - y)))

return d


x = [1, 2, 3, 4, 5]
y = [6, 7, 8, 9, 10]
euclidean_distance(x, y) # 11.180339887498949

from scipy.spatial.distance import euclidean
euclidean(x, y) # 11.180339887498949

基于 LSTM 深度学习模型的日志异常检测

日志模式识别

日志样例

1
2
3
4
5
6
7
8
9
10
2021-03-11 09:23:17,195 [OCKey:HlTOgWeM-LYFkTMn2wsXcEd] DEBUG com.dawninfotek.base.security.WebAppSafeGuard - BaseWebAppSafeGuard.class::key = beneAcctNo4 value = 1
2021-03-11 09:23:17,849 [OCKey:zQXeCzqsWdY9_GliHIoAIpI] DEBUG com.dawninfotek.base.action.BaseDispatchAction - com.dawninfotek.easybanking.web.pr.olbfinance.polbfinancemyfinancenew.POLBFinanceMyFinanceAction::Base BaseDispatchAction - link6::37003747
2021-03-11 09:23:18,635 [OCKey:cSrKSPklI9-juH5TB1VdT6N] DEBUG com.dawninfotek.base.dac.ConnectionFactory - java.lang.Class::Getting a connection from dataSource
2021-03-11 09:23:18,635 [OCKey:cSrKSPklI9-juH5TB1VdT6N] DEBUG com.dawninfotek.base.dac.ConnectionFactory - java.lang.Class::got connection com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@3bfa1e18 from dataSource: auto Commit = false
2021-03-11 09:23:18,635 [OCKey:cSrKSPklI9-juH5TB1VdT6N] DEBUG java.sql.Connection - {conn-12085845} Connection
2021-03-11 09:23:18,635 [OCKey:cSrKSPklI9-juH5TB1VdT6N] DEBUG java.sql.Connection - {conn-12085845} Preparing Statement: select count(T.CUSTNO) from PERCRMPRODUCTDUEDATE t where t.CUSTNO=? and t.READFLAG = '0'
2021-03-11 09:23:18,635 [OCKey:cSrKSPklI9-juH5TB1VdT6N] DEBUG java.sql.PreparedStatement - {pstm-12085846} Executing Statement: select count(T.CUSTNO) from PERCRMPRODUCTDUEDATE t where t.CUSTNO=? and t.READFLAG = '0'
2021-03-11 09:23:18,636 [OCKey:cSrKSPklI9-juH5TB1VdT6N] DEBUG java.sql.PreparedStatement - {pstm-12085846} Parameters: [42300205]
2021-03-11 09:23:18,636 [OCKey:cSrKSPklI9-juH5TB1VdT6N] DEBUG java.sql.PreparedStatement - {pstm-12085846} Types: [java.lang.String]
2021-03-11 09:23:18,636 [OCKey:cSrKSPklI9-juH5TB1VdT6N] DEBUG com.dawninfotek.easybanking.base.process.EasyBankingProcessManager - com.dawninfotek.easybanking.base.process.EasyBankingProcessManager::Start to commit transaction for DAC:EasyBankingSample

Session 、Cookie 和 JWT 详解

HTTP Cookie(也叫 Web Cookie 或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie 使基于无状态的HTTP协议记录稳定的状态信息成为了可能。

Cookie 主要用于以下三个方面:

  1. 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)
  2. 个性化设置(如用户自定义设置、主题等)
  3. 浏览器行为跟踪(如跟踪分析用户行为等)

Postgresql Tutorial

psql 数据库名 –连接数据库select rolname,rolpassword from pg_authid;–查看用户名密码select usename,passwd from pg_shadow;–查看用户名密码select version(); – 查看版本select current_database();–查看当前数据库\l –查...

LSTM 时间序列预测

调节内容

1.输出维度 units
2.时间步长 timesteps
3.激活函数 activation
4.增加特征:增长率
5.增加特征:日期属性
6.预测增长率
7.单层 stateful LSTM
8.双层 stateful LSTM
9.批数据大小 batch_size
10.训练循环次数 epochs
11.原序列对数
12.原序列差分
13.归一化值域 feature_range
14.Bidirectional LSTM
15.CNN LSTM
16.ConvLSTM

Instagram 的分片与 ID 设计

Instagram上有大量的数据,每分钟就有超过25张的图片和90个点赞。为了确保所有重要的数据都能被合理存储并且及时得被提取应用,我们对数据进行了分片(sharding)——也就是说,我们把数据放到多个桶(bucket)中,每个桶里都有一部分数据。

我们的应用服务器上运行的是Django, 后端数据库是PostgreSQL。对数据分片首先要决定是否要保留PostgreSQL作为主要的数据存储库,是否要采用其他的数据库。经过评估一些不同的数据库解决方案,我们最终确定最适合的方案是在PostgreSQL数据库集群上实现数据分片。

然而在把数据写到数据库之前,我们还要解决如何给数据(例如Instagram上发布的没一张图片)加上唯一标识符的问题。在单一数据库上的典型解法——使用数据库自带的自增主键功能——在当数据需要被同时插入到多个数据库时就不适用了。文章的下面就来讲讲我们是如何解决这个问题的

Tmux 使用教程

Tmux 是一个终端复用工具,和 screen 一样,screen 相对简单好使,tmux 更高级。

安装

1
2
3
4
5
# CentOS
yum install -y tmux

# MacOS
brew install tmux