大象笔记
生产服务器 Flask 多并发支持,基于 Gunicorn
自从用了 Golang 开发服务端之后,好多年没有经历部署 Python 服务的苦恼。
但是由于要开发 Rasa 相关的服务,为了统一语言,还是继续使用了 Python Flask 框架。
又一次体验部署 Python 生产环境的艰辛。
对话机器人 Rasa(二十):Custom Action 中无法读取 Slot 值
## 现象
rasa custom action 中的代码,无法获取到 slot 值:
```
items = tracker.get_slot("items")
```
而我确实在之前的流程中已经设置了 slot 的值
Android Fragment 实现对蓝牙设备的参数配置页面
## 新建 fragment
新建一个 Blank Fragment。会自动创建对应的 layout xml 文件,但是 binding 需要自己手写。
## layout binding
```
package com.s
Ubuntu 安装 Python 环境管理工具 Miniconda 3
注意,推荐 [为了避免律师函警告,从 miniconda 切换到 miniforge](https://www.sunzhongwei.com/to-avoid-lawyers-warning-letter-switch-miniconda
对话机器人 Rasa(十九):rasa 不同客户端类型区分处理 custom channel
## 使用场景
例如,用 Rasa 实现一个自动聊天机器人,要同时实现多端:
- 网页端
- 微信小程序端
- Android / iOS 原生 App 端
- Windows 端
每一端的回复内容会有些许差异,如:
NordicSemiconductor/Android-BLE-Library 监听连接状态变化
## 监听的目的
- Android App 界面显示当前的蓝牙连接状态:断开/连接中/已连接
- 在断开时,自动重连
## 如何监听连接状态 (已废弃)
在 NordicSemiconductor/Android-BLE-
Android BLE 蓝牙操作设备三方库 NordicSemiconductor/Android-BLE-Library
## 为何要使用三方库
起因是我写的 Android 低功耗蓝牙 App 有几个现存的问题:
- 写操作的并发问题导致写入失败,需要一个队列。iOS 内置了这个实现,甚至连微信小程序都实现了,但是 Android 官方没有实现,渣渣
修改开源项目管理系统 Redmine 代码
## 修改顶部菜单
实际上就是先搜索页面内的 class name, 然后根据模板代码中的变量名,搜索 ruby 代码。
例如,顶部菜单的代码文件
```
grep "top_menu" -r ./
./lib/redmi
android gradle 依赖版本号统一管理
## 在项目级 build.gradle 文件中
在 ext 代码块中定义 room_version。
```
ext {
kotlin_version = "1.6.20"
nav_version = "2.4.
同一台服务器上部署多套 Redmine 项目管理系统
## 需求
由于其他子公司也想使用 redmine 开源项目管理系统,然而数据又不想共享。
所以需要独立部署多套系统,在一台服务器上。
## 参考
主要部署细节参考第一次部署时整理的文档:
[开源项目管理系统 Redmin