大象笔记

知者行之始,行者知之成

传染性单核细胞增多症

大闺女上周突然有一天眼睛肿了,连续几天,开始我以为是没睡好,就没当回事。 然后每次吃饭都说感觉嗓子卡了鱼刺,怀疑是过年吃鱼馅饺子导致。我也没当回事。 突然上周四下午,开始呼吸困难,持续了几分钟。我媳妇说赶紧带着去开发区医院看看。 我才把眼睛肿和嗓子疼联系到了一起,再加上偶发性呼吸困难,咳嗽。我网上查了一下,大概是病毒感染,但具体是什么病毒感染,就不知道了。 确诊 由于信不过开发区业达医院,所以挂了毓璜顶的号,第二天请假带闺女去看医生。 医生看了嗓子说炎症非常严重,然后做了血常规、异常白细胞形态检查、及尿检。 其中异常白细胞含量高,再加上眼肿及嗓子发炎的症状,诊断为传染性单核细胞增多症。 医生建 ...

阅读全文...

STM32 蓝牙模块对应的 Android 列表页源码梳理

BlueST SDK BlueST is a multi-platform library (Android and iOS supported) that permits easy access to the data exported by a Bluetooth Low Energy (BLE) device that implements the BlueST protocol. 相关名词 Manager:singleton class 用于启动/停止蓝牙设备扫描。发现节点之后,会通过 Manager.ManagerListener Class 异步通知。 Node:代表一个远端 ...

阅读全文...

开源项目管理系统 Redmine 搭建

之前用 Trello 及 Tapd 在进行项目管理,可能担心未来的收费问题,或是数据安全性隐患,领导让尝试在公司服务器上搭建一套基于 Ruby RoR 开发的开源项目管理系统 Redmine。 整体上搭建过程还是有点繁琐,加上对 Rails 不熟悉,大概用了半天时间。实际上很多操作是可以自动化的。 界面效果 里面的工时统计,及甘特图非常实用。 UI 风格上有点类似 Trac,比较 old school 。。。 服务器环境 CentOS 8.3 官方安装文档 https://www.redmine.org/projects/redmine/wiki/RedmineInstall 版本 Redm ...

阅读全文...

CentOS 8 安装 Ruby 3

查看系统版本 > cat /etc/centos-release CentOS Linux release 8.3.2011 安装 Ruby 我看本机 yum install ruby 默认安装的是 2.5 版本。 但是我想安装 3.0 版本的 ruby。 > dnf module reset ruby -y > yum install @ruby:3.0 > ruby --version ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux] 参考: https://computingforge ...

阅读全文...

systemd timer 与 crontab 的对比

在排查 certbot 不自动更新证书问题时,第一次知道 systemd timer 也能做为系统定时任务的管理工具。但是他与之前熟知的 crontab 有什么区别呢? 列举一下 systemd timer 的优势 支持微妙、毫秒、秒级的定时任务;而 crontab 只能支持到分钟级 上次任务没有执行完时,不会重复执行定时任务;而 crontab 需要手动处理单例问题 支持只执行一次的定时点的计划任务 方便的指定运行用户。 两个配置文件 每一个“.timer”文件必须有一个对应的“.service”文件存在,这样计时器才有意义。默认情况下,如果Timer和Service的文件名(不包含扩展 ...

阅读全文...

systemd timer 未启用,导致 certbot 证书自动续期失败

春节期间收到了公司服务器上一个域名证书快要过期的提示邮件。 今天第一天开工,正好处理一下。 很奇怪,这个服务器上基于 letsencrypt 生成的免费证书,总是不自动续期。 日志地址 ls /var/log/letsencrypt 查看了一下,都是手动操作的日志,没有自动续期产生的日志。说明计划任务没有自动执行? 而我在另一台自动续期执行正常的服务器上看,自动续期是会产生日志的。 所以,问题的根源,还是命令没有定期执行。 手动续期 先手动解决,然后再排查问题 > certbot renew Saving debug log to /var/log/letsencrypt/letsen ...

阅读全文...

新建一个神经网络,方式一,基于 torch.nn.Sequential

构建神经网络的两种方式 PyTorch 有两种构建神经网络的方式: 简单粗暴式:使用 torch.nn.Sequential 类,初始化时,传入一系列操作 (operation) 通用式:定义 torch.nn.Module 的子类 由于涉及的新概念非常多,所以拆分成两个笔记。这里就先了解一下第一种方式。 torch.nn.Sequential https://pytorch.org/docs/stable/generated/torch.nn.Sequential.html CLASS torch.nn.Sequential(*args: Module) CLASS torch.nn.S ...

阅读全文...

神经网络 (neural network) 概念

在 PyTorch 的教程及书籍中,经常会看到神经网络这个词。 英文是:neural network。 neural 是个形容词,神经的,神经系统的。中文发音:呢若 / 牛若。 代码中也常见到 torch.nn # 或者是 from torch import nn nn 即是 neural network 的缩写。 神经网络是由一堆神经元(neuron)组成。神经元以层(layer)的形式组织起来。 神经网络的作用 简单来说,一个神经网络就是一套算法,自动推导出输入数据与其对应的输出数据(结果)之间的关系。 举个例子,假如你有一套数据集,里面记录了历年的高考成绩,所在省份,及填报志愿的学校 ...

阅读全文...

Antd Pro ProTable 表格按指定列排序

例如,Antd Pro 列表中,我想按照创建时间这列正序或倒序重新排列。 字段配置 { title: '创建时间', dataIndex: 'CreatedAt', valueType: 'dateTime', search: false, sorter: true, }, request 请求 export async function getItems( params: { current?: number; pageSize?: number; }, sort: any, options?: { [key: string]: any ...

阅读全文...

《安卓传奇:Android 缔造团队回忆录》

本以为我是天选打工人,不会变🐏,没想到我也没挺过 2022 年。在距离新年还有两天的时候,我也阳了。 请了三天假期,连上元旦三天假,大概率也能痊愈,目前症状也比较轻微。 整理了一下前一段时间看过的不错的一本书,《安卓传奇:Android 缔造团队回忆录》。 九败一胜 之前一直有个错觉,以为 Android 是一蹴而就的,顺利地成为了与 iOS 比肩的手机操作系统。 没想到这个团队的成员在加入 Android 项目之前,都有过类似的操作系统项目的失败经验。 这个世界就是这样:你从失败中学到的东西可能比从成功中学到的东西更多 在开发 Android 之前,我们中的大多数人都经历过多次失败。因 ...

阅读全文...

Golang Gin API 接口限速

需求 在做一个基于图片文字识别的题库管理系统,使用 Golang 调用百度 OCR 文字识别接口, 但是百度 OCR 接口有调用频率限制: 免费版的 QPS 为 2。即每秒最多调用两次 付费版的 QPS 为 10 如果不限速,就会报错: {"error_code":18,"error_msg":"Open api qps request limit reached"} 而前端在上传图片时,是支持多个图片批量上传的,且会有多人同时上传。 那么就需要一个限制接口速度的功能。 备选方案 方案一:通过队列来处理,单个 worker 方 ...

阅读全文...

百度 OCR 文字识别 golang SDK

免费额度 目前使用的是个人认证: 通用文字识别(标准版) 1000次/月赠送 通用文字识别(标准含位置版) 1000次/月赠送 通用文字识别(高精度版)1000次/月赠送 通用文字识别(高精度含位置版)500次/月赠送 注意:需要手动去点击认领免费额度。 QPS 免费版的 QPS 为 2 付费版的 QPS 为 10 Go SDK 文字识别,官方没有提供 Golang 版本的 SDK。 找到一个三方的实现: https://github.com/chenqinghe/baidu-ai-go-sdk/tree/master/example/vision/ocr 但是示例代码有些问题,需要查 ...

阅读全文...