Math 代数
Math 代数
标量(scalar): 一个标量表示一个单独的数,它不同于线性代数中研究的其他大部分对象
(通常是多个数的数组)。我们用斜体表示标量。标量通常被赋予小写的变量名称。如:a
向量(vector): 一个向量表示一组有序排列的数。通过次序中的索引,我们可以确定每个
单独的数。通常我们赋予向量粗体的小写变量名称。当我们需要明确表示向量中的元素
时,我们会将元素排列成一个方括号包围的纵柱:如 a.
矩阵(matrix): 矩阵是一个二维数组,其中每一个元素由两个索引所确定。一个有m行,n列
,每个元素都属于 RR 的矩阵记作 A∈Rm×n. 通常使用大写变量名称,如A
张量(tensor): 超过两维的数组叫做张量。在某些情况下,我们会讨论坐...
Compute storage systems
Compute storage systems
计算机读写设备, 越快越大, 就越贵. 并且计算机程序有一个称为局部性(locality)基本
属性. 具有良好局部性的程序倾向于一次又一次地访问相同的数据项集合, 或是倾向于访问
邻近的数据项集合. 因此计算机存储器创建了层次结构, 称为memory mountain.
局部性
局部性原理(principle of locality), 是一个持久的概念, 更倾向于引用邻近于其他最
近引用过的数据项, 或者最近引用过的数据项本身.
局部性通常有两种不同的形式: 时间局部性(temporal locality)和空间局部性(spatial
locality). 好的时间局部性程序中, 被引用过一次的存储器位置很...
Compute data
Compute data
计算机中一切信息都是0和1
字与字节顺序
字是计算机一次处理的最位数, 目前常用有32位和64位就是指的字(Word).
字节是计算机处理的最小单位, 8位二进制数串.
寻址, 多字节对象(如32位整数)都被存储为连续的字节序列, 对象地址为所使用字节中最
小的地址.
字节顺序, 多字节对象(如32位整数)需要按照顺序依次存储字节, 大头端, Big endian是
最高有效字节放在低地址位; 小头端, Little endian是低有效字节放在低地址位.
网络字节序, 网络传输一般使用大头端传输, 使用htons和ntohs两个函数, 把数据
在主机和网络格式上相互转换.
数值
二进制, 八进制, 十进制, 十六进制
...
Compute booting
Compute booting
计算机通电后会运行主板上的特定程序(老主板BIOS, 新主板UEFI). 该程序会通电自检, 并
且读取基本设置项, 完成后会找到用户配置的主引导项(bootloader), 并且启动它.
BIOS已经过时, Intel决定在2020年前使用UEFI全部替换BIOS.
BIOS启动:
BIOS->MBR->DPT->PBR->Bootloader->操作系统
UEFI
UEFI->ESP分区->bootloader->操作系统
BIOS
BIOS是Basic Input-Output system的简写, 保存在主板的只读内存芯片里(可以使用
特殊方式刷新BIOS程序).
...
macOS Hackintosh
macOS Hackintosh
Hackintosh是在非Mac平台上安装macOS系统, 在价钱和性能上占优, 但是不管怎么配置也
会遇到这样那样的问题(特别是系统升级).
因为苹果选择使用Intel CPU, 所以使得Hackintosh成为可能, 有谣言说苹果在自研ARM处理
器, 想要统一MAC, IPHONE, IPAD. 如果是真的, 那么Hackintosh到苹果停止维护X86平台时
就消失, 或者找到另一条路.
在非MAC平台安装macOS, 会遇到最大的问题就是硬件和驱动. 苹果禁止在非MAC平台安装
macOS系统, 并且驱动也是苹果自己选择指定. 所以选择与MAC平台兼容的硬件是非常有必要
的, 可以使安装的Hackintosh使用体...
macOS A480B
macOS A480B
准备
macOS.dmg 镜像, 黑果小兵那下载
balenaEtcher-Setup-1.5.45.exe 镜像刻录到U盘
DiskGenius 分区
A480B-master 配置好的A480BEFI
配置bios
按照网上教程配置自己的bios, a480b的bios没有可以配置的项
安装
刻录好后直接U盘启动, 发现Clover乱码, 把上面A480B里的EFI替换进入后正常。
第一次进入只有一个盘符, 选择后先分区再安装, 分区选择GUID, 格式选择APFS。
我选择的是macOS 10.15.4 19E2269, 安装时会自动把硬盘格式化成APFS。
安装macOS时会重启多次, ...
FLutter 状态栏
FLutter 状态栏
Flutter 状态栏高度
Android, iOS(无刘海), iOS(有刘海)的状态栏高度都不一样, 不能写死
// 获取状态栏高度
MediaQueryData.fromWindow(window).padding.top;
// 系统默认的appBar参数
Dart Packages/flutter/src/material/constans.dart
Flutter 沉浸式状态栏
设置沉浸式状态需要把状态栏的背影设置成透明的, iOS状态栏一直是透明的, 所以需要
设置Android状态栏.
if (Platform.isAndroid) {
SystemUiOverlayStyle systemUiOverlaySt...
Compute RegExp
Compute RegExp
Unix 正则表达式
使用sed时, 不能使用|操作, 查询了一下Regex alternation/or operator (foo|bar) in GNU or BSD Sed
sed 是使用POSIX基本正则, 不包括|操作, 需要使用-E参数开启正则扩展
反向引用
替换时, 需要使用前面匹配到的对象, 需要使用到反向引用. 首先需要对正则表达式使用
分组, 然后在替换时引用分组.
# vim \1 代表分组1
%s/\(.*\)——\(.*\)/\2——\1/g
%s/\([a-z]*\)\(.\{2,3\}\),/\1\=${\1},/g
取最后一个空格
%s/\s\+\(\S*\)$/\".toUpperC...
463 post articles, 58 pages.