0%

MapReduce逻辑数据流图

mapper.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/env python
"""A more advanced Mapper, using Python iterators and generators."""

import sys

def read_input(file):
for line in file:
# split the line into words
yield line.split()

def main(separator='\t'):
# input comes from STDIN (standard input)
data = read_input(sys.stdin)
for words in data:
# write the results to STDOUT (standard output);
# what we output here will be the input for the
# Reduce step, i.e. the input for reducer.py
#
# tab-delimited; the trivial word count is 1
for word in words:
print '%s%s%d' % (word, separator, 1)

if __name__ == "__main__":
main()
Read more »

今天有个同事遇到一个问题,创建Model对象的时候,字段类型与预期的不一致:

1
2
3
class DemoModel(models.Model):
demoid = models.UUIDField(primary_key=True, default=uuid.uuid1)
str_field = models.CharField(max_length=100)
1
2
3
4
5
6
7
8
9
10
11
>>> from app1.models import DemoModel
>>> m = DemoModel.objects.create(**{'str_field': 1})
>>> type(m.str_field) ## 这时候字段类型是int而不是预想中的str
<class 'int'>
>>> m.str_field
1
>>> m = DemoModel.objects.first()
>>> type(m.str_field) ## 此时字段类型是str
<class 'str'>
>>> m.str_field
'1'
Read more »

Redmine: 是一个开源的、基于Web的项目管理和缺陷跟踪工具。

下面是docker-compose.yaml文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
version: '2'
services:
redmine:
image: redmine:4.0
container_name: redmine
restart: always
ports:
- 3000:3000
volumes:
- ./redmine/sqlite:/usr/src/redmine/sqlite
- ./redmine/plugins:/usr/src/redmine/plugins
- ./redmine/files:/usr/src/redmine/files
- /repos:/repos

  • Gogs: 是一个Git服务。
  • Jenkins: 是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
  • Generic Webhook Trigger: Jenkins插件。

准备工作

安装Gogs

参考我的另一篇文章Deploying Gogs in Docker

安装Jenkins

参考我的另一篇文章Deploying Jenkins in Docker

安装完Jenkins之后,系统管理 -> 插件管理 -> 可选插件,安装Generic Webhook Trigger插件。

Read more »

Jenkins: 是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

下面是docker-compose.yaml文件:

1
2
3
4
5
6
7
8
9
10
11
version: "2"
services:
jenkins:
image: jenkinsci/jenkins:lts
container_name: jenkins
restart: always
ports:
- 8080:8080
- 50000:50000
volumes:
- ./jenkins:/var/jenkins_home

OCI runtime create failed: container_linux.go:348: starting container process caused “**“: unknown

执行docker run -dit ***时遇到这个问题,现在还未找到问题原因, 删除容器、删除镜像、重启docker、重启机器都未能好使,最后重新安装docker才恢复正常。


Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on [::1]:53: dial udp [::1]:53: connect: no route to host

问题出在DNS,极有可能是没有配置DNS或者DNS失效。

reshape

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
>>> a = arange(24)
>>> a
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23])
>>> b = a.reshape((2, 3, 4))
>>> b
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],

[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
>>> c = b.reshape((3, 8))
>>> c
array([[ 0, 1, 2, 3, 4, 5, 6, 7],
[ 8, 9, 10, 11, 12, 13, 14, 15],
[16, 17, 18, 19, 20, 21, 22, 23]])

注意:reshape只是返回数组的一个视图(View),并没有分配内存保存结果。

Read more »

首先安装IntelliBot插件,然后配置External Tools

  • name: Robot Run TestSuite
  • Group: Robot External Tools
  • Program: $JDKPath$
  • Parameters: -m robot -d results --pythonpath . -v VERSION:d $FilePathRelativeToProjectRoot$
  • Working directory: $ProjectFileDir$

VM175:4 /bin/sh: npm: command not found

在MacOS系统下,编译小程序时可能会遇到这个问题。由于我是使用nvm管理多个nodejs版本, 而微信开发者工具并不会切换nodejs版本,导致找不到对应的nodejs版本。

这个问题解决办法是,项目设置 -> 启用自定义处理命令,配置下面命令:

1
source ~/.profile && nvm use 8 && npm run compile