0%

现实生活中,总会存在数据之间存在着某种关系,比如:用户 <-> 文章,用户 <-> 评论等。Elasticsearch 作为搜索引擎,在创建 Indices 时,是使用 Schema less 的数据结构。如果要在其实现不同数据的关系,官方提出了以下几种方式:

Read more »

tornado 配合 gunicorn 或者 uwsgi 时,可以很容易的实现优雅重启(graceful reload)。但是所在公司使用了sockjs tornado(模拟 WebSocket 的服务端消息推送框架),都是使用独立的进程运行在生产环境,之前想过使用 gunicorn 或者 uwsgi 部署单个工作进程跑,但是这并不是最好的解决方案。

Read more »

  • app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# -*- coding: utf8 -*-

import subprocess

from dozer import Dozer
from flask import Flask


app = Flask(__name__)


@app.route("/")
def home():
subprocess.call(["ls", "-l"])
return "hello world"

app = Dozer(app)
1
$ gunicorn -b 0.0.0.0:5000 app:app
  • 打开浏览器

访问: http://localhost:5000/_dozer/index

最近本人所在的公司,偶尔会有在线上改数据库的需求,特别是移除 table 中的 column.
由于在业务中使用了 sqlalchemy,并使用了其 orm 的方式进行对 database
的操作. 所以这里要删除 table 中的某个 column 时候,可以采用先更新对应的 orm 代码,然后再修改(或者根本不需要修改),
这样更平滑的方式进行操作,尽量减少对用户的影响。

Read more »

[documentation.js](https://github.com/documentationjs/documentation),一款生成 JS API doc 的工具.可以说是安装使用都很方便,生成的文档也漂亮简洁.

  • 安装
1
npm install -g documentation
  • 使用

下面有一段用于测试的 JS 代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
* Add x, y.
* @param {number} x any number
* @param {number} y any number
* @return {number} the sum of x and y.
*/
function addClass(x, y) {
return input + 1;
}

/**
* Echo
* @param {string} str any string
* @return {string} the origin string.
*/
const echo = (str) => {
return str;
}

将上面的文件保存为 foo.js,然后执行下面的命令:

1
documentation foo.js -o test -f html
  • -o:指定输出内容的文件/文件夹
  • -f:指定了输出内容的格式,这里设置为html,documentation 默认的输出格式是 json,还可以输出md格式

实际预览效果如下图:

doc

documentation.js 可玩的东西还比较多,比如扩展主题等,今天就先介绍这么多了.

今天参加了一次爱奇艺的面试,在面试中被问道一道算法相关的题目:按照指定的权重求随机数

Read more »

CSS 中提供的属性 z-index 用来表示某个元素和它的祖先在 z 数轴上的顺序。当元素重叠时,通过它们在 z 数轴上的顺序,决定哪个元素可以覆盖哪个元素。这个优先级是根据 z-index 的取值来决定的,值越大优先级越高。

Read more »

上一篇 文章 中讲到了 background-positionCss sprite 中的使用,这篇文章主要讲怎么用 background-position 来做动画。其实动画都是一帧一帧的做出来的,每一帧就是就是一个画面。通常图片在人眼中存在的时间为 1/24 秒,如果画面播放的速度超过了人眼可以分辨的速度,那么人眼所看到的画面就动起来了。

Read more »