原码、反码和补码是很重要的入门内容,以下是一些学习的笔记。
STM32 学习笔记
准备阶段
完成了 keil5 工具的安装
stm32 的基本信息
由意法半导体公司开发的 32 位单片机,作为中控
| ST | M32 | F103 | C8T6 |
|---|---|---|---|
| 品牌 | 产品信息 | 产品系列 | 规格型号 |
| 意法半导体 | 32位单片机 | 主流型 M3内核 72MHz | 48 引脚 64kFlash LQFP封装 -40~85℃ |
G系列 通用; F系列 主流; H系列 高性能; L系列 低功耗; W系列 无线
C8T6:
- 引脚数量 48 ©,
- Flash 容量 8Kbit ,
- 封装类型 T = LQFP ,
- 温度范围 6 = -40~85℃
- T = 36; C = 48; R = 64; V = 100; Z = 144;
- H = BGA; I = UFBGA; T = LQFP; U = VFQFPN (封装类型表示焊盘形状)
- 6 = -40~85 ℃
- 7 = -40~105 ℃
stm32 引脚分布
根据 LQFP48 找到引脚分布图
Unity 使用过程错题本
错题
1. git clone unity 项目之后资源出现问题 cannot read
根因:项目中的贴图(.jpg)、模型(.fbx)等大文件使用 Git LFS 管理。clone 时因为网络问题(国内访问 GitHub 不稳定),LFS文件没能下载下来,只留下了指针文件(~130 字节),导致 Unity 报 “cannot be read”。
解决方案:
- 设置 Git 代理
- 运行 git lfs pull 下载所有 LFS 对象
的那电脑
实现思路
1. 实现反重力怪物
通过更改重力来实现在天花板行走,当没有天花板时进入悬浮,通过玩家的检测 sphere 来判断附近是否有可用的天花板,通过算法计算移动方式,若场景较为复杂使用 tag 标记加网格寻路
windows 系统 mklink 的使用
前言
使用这个的原因是因为最近在进行游戏开发,在 obsdian 中新建了文件夹,但是发现在 blog-pages 下没有这个文件夹,才想起来两年前使用的是软链接来实现的,所以在此总结一下 mklink 的使用方式,以后总有会再用到的时候的
Windows mklink 命令使用教程
什么是 mklink?
mklink 是 Windows 系统中用于创建 符号链接(Symbolic Link)、硬链接(Hard Link) 和 目录联结(Junction Point) 的命令行工具。它可以让文件或目录在多个位置“虚拟存在”,而无需实际复制数据。
命令语法
mklink [[/D] | [/H] | [/J]] <Link> <Target>
参数说明
| 参数 | 说明 |
|---|---|
/D |
创建目录符号链接(Symbolic Link for Directory) |
/H |
创建硬链接(Hard Link,仅限文件) |
/J |
创建目录联结(Junction Point,仅限目录) |
<Link> |
要创建的链接路径(新生成的快捷方式路径) |
<Target> |
原始文件或目录路径(被链接的目标路径) |
Java初级-设计模式,异常,线程,数据库,反射
Java初级-再次学习
设计模式
单例设计模式 (Singleton Pattern)
具体步骤:
- 构造器私有化 -> 防止直接 new
- 类的内部创建对象
- 向外暴露一个静态的公用方法 (getInstance)
- 代码实现
单例模式就时采取一定方法保证整个软件系统中,某个类只能存在一个对象实例,并且只提供一个取得对象实例的方法。
饿汉式
public class SingleTon1 {
private SingleTon1() {
// 构造器私有化
}
private static SingleTon1 instance = new SingleTon1();
public static SingleTon getInstance() {
return instance;
}
}
缺点:创建了没有用,造成资源浪费
懒汉式
Python os.symlink() - 实现文件夹映射
Python os.symlink() - 实现文件夹映射
需求分析
最近因为使用了 obsidian 开始记笔记,发现这个软件实在是太好用了。之前写文章一直都是在 VSCode 上面,直接写在博客文件的 _post 目录下。但是最近我把所有的笔记都迁移到了 obsidian 的笔记库中,如果要更新博客的话就要把这个文件夹里面的所有文件都一次次复制到 _post 文件夹下,这样就很麻烦,于是就想通过镜像的方式来实现需求。
mklink 命令
mklink 是 window s系统下创建符号链接和硬链接的命令工具,它是一个很好的解决文件系统问题的工具。使用它需要管理员权限。因为 powershell 不支持 mklink 命令,所以要在前面加cmd /c 表示用 cmd 来运行该命令,路径注意引号。
C:\Users\?>mklink
创建符号链接。
MKLINK [[/D] | [/H] | [/J]] Link Target
/D 创建目录符号链接。默认为文件
符号链接。
/H 创建硬链接而非符号链接。
/J 创建目录联接。
Link 指定新的符号链接名称。
Target 指定新链接引用的路径
(相对或绝对)。
因为我想要忽略掉一些文件,但是又没有提供这个选项,所以我决定使用 python 来编写一个适合的程序。
Python os.symlink()
概述
os.symlink() 方法用于创建符号链接(symbolic link)。
Java基础-基本类型,二进制,数组,基础算法,面向对象
以前学 Java 确实学得不是很明白,想通过大约 100h 的时间重新学习一编,顺便再学一些之前没有触及过的相对高级一些的知识。
Java 基础——查漏补缺
编码类型
ASCII
介绍
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是用于电子通信的标准字符编码系统,它包括了128或256个字符,用7位或8位二进制数表示。ASCII编码是计算机中最常用的字符编码方式之一,它被广泛应用于计算机编程和通信中。
特别提示:一个字节可以存储 256 个字符,ASCII 只用了 128 个字符。
缺点
不能表示所有的符号。
应用
Syncthing
Syncthing 多端同步工具
需求:
主要是手机与电脑之间的文件同步,我主要用在手机与电脑的 obsidian 笔记同步。
如果对不同电脑端的同步,请移步 FreeFileSync
如果需要手机端之间的同步,自行搜索 FolderSync
根据自己的
工具介绍
Syncthing 是一款开源免费跨平台的文件同步工具,是基于P2P技术实现设备间的文件同步,所以它的同步是去中心化的,即你并不需要一个服务器,故不需要担心这个中心的服务器给你带来的种种限制,而且类似于torrent协议,参与同步的设备越多,同步的速度越快。针对隐私问题,Syncthing软件只会将数据存储于个人信任的设备上,不会存储到服务器上。设备之间的通信均通过TLS进行,Syncthing还使用了完全正向保密技术来进一步保障你的数据安全。对于处于不同局域网之中的设备之间的文件同步,Syncthing也提供了支持。
下载界面
Syncthing | Downloads, Windows 上我们选择安装 Base Syncthing , 这是基本的 Syncthing 发行版,提供命令行/守护程序,如 可执行文件和基于 Web 的用户界面。Android 上我们在 Github 上安装。
Pytorch 学习之路
Pytorch 学习之路
一、环境安装
Anaconda
Anaconda 已经在之前机器学习数学基础部分搭建完了,这里没有记录,自己去搜别的吧。
新建 conda 环境
conda create -n pytorch python=3.6
conda activate pytorch
Pytorch 安装
进入 Pytorch 官网往下拉,然后就能看到配置的界面。因为我目前的显卡是 AMD 的,所以用不了 CUDA ,就选择 Windows-CPU-Conda , 复制命令行运行 , 并进行测试。
conda install pytorch torchvision torchaudio cpuonly
python
import torch
如果导入周没有报错的话,那就安装成功了。
数据分析实战-美国政府网络数据
来自 Bitly 的 USA.gov 数据
数据背景:2011年, URL缩短服务Bitly跟美国政府⽹站USA.gov合作,提供了⼀份从⽣成.gov或.mil短链接的⽤户那⾥收集来的匿名数据。在2011年, 除实时数据之外, 还可以下载⽂本⽂件形式的每⼩时快照。2017年这项服务已经关闭。
以每⼩时快照为例, ⽂件中各⾏的格式为JSON(即JavaScriptObject Notation, 这是⼀种常⽤的Web数据格式)。
我们取一行数据进行格式化之后分析:
{
"a": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.78 Safari/535.11",
"c": "US",
"nk": 1,
"tz": "America/New_York",
"gr": "MA",
"g": "A6qOVH",
"h": "wfLQtf",
"l": "orofrog",
"al": "en-US,en;q=0.8",
"hh": "1.usa.gov",
"r": "http://www.facebook.com/l/7AQEFzjSi/1.usa.gov/wfLQtf",
"u": "http://www.ncbi.nlm.nih.gov/pubmed/22415991",
"t": 1331923247,
"hc": 1331822918,
"cy": "Danvers",
"ll": [42.576698, -70.954903]
}
这是其中的一行数据, 我们可以通过 Python 的 JSON 模块来处理
import json
PATH = 'datasets/bitly_usagov/example.txt'
# 将 records 对象成为 Python 字典
records = [json.loads(line) for line in open(PATH)]
print(records[0])
{'a': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.78 Safari/535.11', 'c': 'US', 'nk': 1, 'tz': 'America/New_York', 'gr': 'MA', 'g': 'A6qOVH', 'h': 'wfLQtf', 'l': 'orofrog', 'al': 'en-US,en;q=0.8', 'hh': '1.usa.gov', 'r': 'http://www.facebook.com/l/7AQEFzjSi/1.usa.gov/wfLQtf', 'u': 'http://www.ncbi.nlm.nih.gov/pubmed/22415991', 't': 1331923247, 'hc': 1331822918, 'cy': 'Danvers', 'll': [42.576698, -70.954903]}