初识 BLE 协议以及微信小程序

手头有个项目,涉及到 app 端蓝牙连接。硬件开发伙伴给到了 BLE 协议,完全一头雾水 最近忙的没空推进 Go 的学习,想着博客至少不能落下更新,不管怎么样也要逼自己写一篇水文。 什么是 BLE 首先得知道什么是蓝牙(Bluetooth) 小时候肯定有人好奇为什么要叫 Bluetooth,无奈好奇心还不够,只停留在发起 why,今天才是真的解惑。 不出意外是和人名有关,他是Harald Bluetooth(哈拉尔德·蓝牙王) 他是丹麦国王,功绩差不多是统一了分裂的丹麦与挪威。90 年代蓝牙技术的研发小组以其名号期许新技术能集成各大资通品牌的标准。蓝牙的 logo 也是如此 卢恩字母 (Hagall,ᚼ)和 (Bjarkan,ᛒ)的组合,也就是Harald Blåtand的首字母HB的合写。 蓝牙技术规范由蓝牙技术联盟 (Bluetooth Special Interest Group, SIG) 制定,版本现如今已经更新到 第六代了 其中第四代开始,支持了本文的主角,也就是蓝牙低功耗 (Bluetooth Low Energy, BLE) 目前蓝牙最为普遍使用的有两种规格: 蓝牙基础率/增强数据率 (Bluetooth Basic Rate/Enhanced Data Rate, BR/EDR): 也称为经典蓝牙。常用在对数据传输带宽有一定要求的场景上,比如需要传输音频数据的蓝牙音箱、蓝牙耳机等; 蓝牙低功耗 (Bluetooth Low Energy, BLE): 从蓝牙 4.0 起支持的协议,特点就是功耗极低、传输速度更快,常用在对续航要求较高且只需小数据量传输的各种智能电子产品中,比如智能穿戴设备、智能家电、传感器等,应用场景广泛。 BLE 大概是什么 大概分成三个核心维度来了解 BLE:架构(Stack)、连接机制(GAP-Generic Access Profile) 和 数据交互(GATT-Generic Attribute Profile)。 BLE 的分层架构 (Protocol Stack) BLE 协议栈主要分为两大部分:控制器 (Controller) 和 主机 (Host)。 ...

January 19, 2026 · 2 min · 376 words · Ray

tmux是什么

本文大大大大量参考 阮一峰老师的博客,虽然我在之前的使用中没有翻阅他的文章,不过哪怕是抄,我也觉得应该抄个优秀的。 Tmux 使用教程 - 阮一峰的网络日志 这我没想到这篇写在19年,比我上次看的那个 async 要小很多了 Tmux 是一个终端复用器(terminal multiplexer),非常有用,属于常用的开发工具。 我常用是因为两个情况 懒得开多个窗口 远控服务器经过堡垒机 一、Tmux是什么 1.1 会话与进程 命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令。用户与计算机的这种临时的交互,称为一次"会话"(session) 。 会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。 也就是初学的时候,连上虚拟机或者ssh连上Linux之后部署运行程序是直接在这个窗口中运行的。当窗口关闭时程序也随之关闭,在当时接触了解了nohup 和 screen 。 一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。 history能存上一次执行的命令,这里回头一定要学习一下,因为我也不知道什么情况才会存进history中 为了解决这个问题,会话与窗口可以"解绑":窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。 1.2 Tmux 的作用 Tmux 就是会话与窗口的"解绑"工具,将它们彻底分离。 (1)它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。 (2) 它可以让新窗口"接入"已经存在的会话。 (3)它允许每个会话有多个连接窗口,因此可以多人实时共享会话。 (4)它还支持窗口任意的垂直和水平拆分。 类似的终端复用器还有 GNU Screen。Tmux 与它功能相似,但是更易用,也更强大。 二、基本用法 2.1 安装 Tmux 一般需要自己安装。 1 2 3 4 5 6 7 8 # Ubuntu 或 Debian $ sudo apt-get install tmux # CentOS 或 Fedora $ sudo yum install tmux # Mac $ brew install tmux 2.2 启动与退出 安装完成后,键入tmux命令,就进入了 Tmux 窗口。 ...

January 7, 2026 · 3 min · 520 words · Ray

什么是浏览器指纹:10 分钟彻底了解 16 个指纹

什么是浏览器指纹:10 分钟彻底了解 16 个指纹 作者:AdsPower — 2024-04-29 整理者:gpt5.1 ℹ️ Note 虽说摘自他山,但是这是开启什么系列以来第一个合适的命题,干脆直接塞进分类充数。跑起来最重要。 简介 当你访问网站(例如社交网站 / 电商网站)时,网站可能会悄悄收集你浏览器 / 设备的各种细节 —— 比如 IP、所用操作系统、屏幕分辨率、安装字体等。 这些看似无关紧要的信息组合在一起,就可能构成一个“浏览器指纹”(browser fingerprint),使网站能够识别你为一个独特访问者 —— 即使你清除 Cookies 或启用了“隐私模式”。 理解常见的浏览器指纹项,有助于: 理解网站为何/如何“识别”你; 在使用“指纹浏览器”或“反指纹/虚拟环境”时,更理性地设计你的环境配置; 提高多个账号并行运营时(例如电商、社媒、营销等)的安全性与隐蔽性。 为什么网站要收集浏览器指纹 浏览器指纹可以让网站“记住你是谁”。即便你清除 Cookies,网站也可能通过指纹判断“你回来过”。 对于电商网站 / 社交平台,识别用户是否“真实”、是否“同人 操作多个账号”很重要,指纹就是一个重要依据。 对于需要管理多个账号(例如营销、社媒运营、电商多店铺等)的用户/团队,了解、控制指纹可以帮助减少账号关联、降低被封禁/风控的风险。 常见的 16 种浏览器指纹及其含义 以下是文章列出的 16 项指纹(fingerprint)及其作用/特性: # 指纹类型 含义 / 来源 / 作用 1 IP 地址 用于识别用户设备的网络地址,是最基础的识别方式。 2 地理位置 通过 IP 推断出用户所在国家 / 地区 /城市甚至经纬度/邮政编码等。 3 时区与当地时间 基于地理位置或系统设置,可以反映用户的“真实”或“伪装”时区信息;如果与 IP 的地理位置不一致,则可能被检测为异常。 4 User Agent(UA) 表示浏览器类型、版本、操作系统等信息,是常见且重要的指纹组成。 5 浏览器语言 浏览器设置的首选语言 (Accept-Language) 。不同语言设置也可能被用作识别。 6 字体 (Fonts) 设备安装的字体集合 — 不同用户可能安装不同字体,通过字体列表也能区分用户。 7 屏幕分辨率 包括显示器分辨率以及浏览器窗口的可视区域大小,不同显示设备和窗口设置会不同。 8 WebGL / WebGPU 通过图形 API 获取设备 GPU / 显示能力相关信息,作为硬件相关指纹的一部分。 9 媒体设备指纹 (Media Devices) 通过浏览器对音频 / 视频设备 (如麦克风、摄像头) 的检测获取硬件信息 (设备类型、标签、分辨率等)。 10 AudioContext 浏览器处理音频的能力 /特性 — 也可能因设备 /软件设置不同而不同,可用于区分用户。 11 ClientRects 浏览器在渲染网页时,对页面元素的位置、布局进行计算 — 这些布局信息(受设备/窗口/浏览器微差异影响)也可能差异显著。 12 SpeechVoices 浏览器/系统提供的语音合成 (Text-to-Speech) 选项 (语音种类、语言、性别等) — 设备不同可能有不同选项,也可作为指纹。 13 硬件并发数 (hardwareConcurrency) 表示设备处理器的逻辑核心数 (CPU 线程数),通过 navigator.hardwareConcurrency 获取 — 不同设备可能不同。 14 设备内存 (deviceMemory) 设备可用内存 (RAM) 大小 (通过 navigator.deviceMemory 获取) — 虽然该值有限制 (通常返回 2/4/6/8 之一),但仍可能被用于区分。 15 Do Not Track (DNT) 浏览器隐私设置中的 “不追踪” 标志 — 如果用户开启了 DNT,该设置也可能成为唯一性特征。 16 Canvas 指纹 (Canvas Fingerprint) 通过让浏览器在一个 <canvas> 上绘制图形/文本,然后分析其渲染结果 (轮廓/像素/抗锯齿等细节) — 因为每台设备 (硬件 + 字体 + 显卡) 不同,渲染结果可能略有不同,从而形成独特“指纹”。 使用“指纹浏览器 / 虚拟环境”保护账户安全 如果你在运营多个账号 — 比如社交媒体账号、电商店铺账号、营销账号等 — 想避免因“相同设备/环境指纹”被关联或封禁,可以考虑使用“指纹浏览器 / 虚拟浏览器环境”。例如 AdsPower 就是这样一种工具,它允许你为每个账号创建独立的浏览器环境,并对上述多个指纹项目进行自定义/模拟。 ...

December 10, 2025 · 2 min · 243 words · Ray