Prelude.foldl
foldl 为 left-associative folding。
haskell
foldl :: (b -> a -> b) -> b -> [a] -> b
foldl f acc [] = acc
foldl f acc (x:xs) = foldl f (f acc x) xs
foldl (+) 0 [1..3] 等价于 (((0 + 1) + 2) + 3)。
尾递归,因此有 strict 版本 foldl'
求值时必须先到达栈底,遍历完列表,因此无法处理无穷列表
Data.List.foldl'
foldl' 为 foldl 的 TRO 版本。
Prelude.foldr
继续阅读 »
可以实现满带宽下载。
配置 Aria2
从 Github 下载源码 ./configure && make -j8 && sudo make install。
配置 Chrome 插件
clone https://github.com/acgotaku/BaiduExporter。
```bash
$ cd ariac
$ cat > start.sh
!/bin/bash
aria2c --conf=aria2.conf
^D
$ chmod +x start.sh
$ ./start.sh
```
安装 Chrome 插件
打开 chrome://extensions,Load Unpacked 选择 chro
继续阅读 »
写在前面
作者电脑 CPU 为 4 核,因此使用 4 个线程测试是合理的
本文使用的 cpython 版本为 3.6.4
本文使用的 pypy 版本为 5.9.0-beta0,兼容 Python 3.5 语法
本文使用的 jython 版本为 2.7.0,兼容 Python 2.7 语法
若无特殊说明,作语言解时,python 指 Python 语言;作解释器解时,python 指 cpython
more
本文使用的测速函数代码如下:
```python
from future import print_function
import sys
PY2 = sys.version_info[0] == 2
因为 Jython
继续阅读 »
论文地址:https://arxiv.org/pdf/1612.00137
more
现有的 Pose Estimation 解决方案
Single Person Pose Estimation (SPPE)
只尝试估计一个人的姿势。早期曾使用诸如随机森林等机器学习方法,近几年采用深度学习方案,大致有如下几种:
基于 DNN 的
基于 CNN 的(如 RMPE 使用的 Hourglass)
其他架构,如 DeepPose
局限:
要求人能被精准定位,对人的位置十分敏感。
Multi Person Pose Estimation (MPPE)
可以估计多人的姿势,不同架构的框架对噪音(如 人的重叠、人的鲜有姿态)有不同的
继续阅读 »
写在前面
前几天工作时遇到了一个匪夷所思的问题。经过几次尝试后问题得以解决,但问题产生的原因却仍令人费解。查找 SO 无果,我决定翻看 Python 的源码。断断续续地研究了几天,终于恍然大悟。撰此文以记。
more
本文环境:
Ubuntu 16.04 (64 bit)
Python 3.6.2
使用的 C 源码可以从 Python 官网 获取。
起因
工作时用到了 celery 作为异步任务队列,为方便调试,我写了一个脚本用以启动/关闭 celery 主进程。代码简化后如下:
```python
import sys
import subprocess
...
celery_process = subproces
继续阅读 »
概念
Linux 中的每一个文件都有其 所属用户 及 所属用户组,根据这两个属性可将文件访问者分为三类:所属用户自己、所属用户组中的用户 和 其他用户,我们可以针对不同的访问者设置不同的用户权限。
“访问”可分为三类:读、写 与 执行。我们可以用 ls -l 命令查看一个文件的权限:
bash
$ touch test
$ ls -l test
-rw-rw-r-- 1 hsfzxjy hsfzxjy 0 Jul 3 23:44 test
首部的 -rw-rw-r-- 即为文件的权限位。权限应该分为四部分来看:-/rw-/rw-/r--。第一部分标志文件的类型,如 普通文件(-)、目录(d)、UNIX 套接字(s)、符号
继续阅读 »
技术流水账一篇,记录踩过的坑
Channels 异构
Django Channels 官方文档宣称 channels 的最佳配置是使用其自带的服务器组件 Daphne,但在开发中我发现 daphne 处理普通请求比在 WSGI 架构下慢了好几倍,更何况使用 daphne 派发静态文件是十分不切实际的。于是我将 http.request 和 websocket.* 两个 channel 解耦,前者使用 nginx 配合 uwsgi 处理,后者使用 nginx 反向代理至 daphne 处理。这样一来便可充分利用两种架构的优势。
旧架构:
新架构:
more
环境
Ubuntu Server 16.04(与开发环境相
继续阅读 »
写在前面
本文默认读者对 Python 生成器 有一定的了解,不了解者请移步至生成器 - 廖雪峰的官方网站。
本文基于 Python 3.5.1,文中所有的例子都可在 Github 上获得。
学过 Python 的都知道,Python 里有一个很厉害的概念叫做 生成器(Generators)。一个生成器就像是一个微小的线程,可以随处暂停,也可以随时恢复执行,还可以和代码块外部进行数据交换。恰当使用生成器,可以极大地简化代码逻辑。
也许,你可以熟练地使用生成器完成一些看似不可能的任务,如“无穷斐波那契数列”,并引以为豪,认为所谓的生成器也不过如此——那我可要告诉你:这些都太小儿科了,下面我所要介绍的绝对会让你大开眼界。
生成器
继续阅读 »
ps -e #查看进程列表
sudo kill
继续阅读 »
sh
sudo add-apt-repository ppa:webupd8team/sublime-text-2
sudo apt-get update
sudo apt-get install sublime-text-2
继续阅读 »