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...
SQL infomix 添加自增字段
SQL infomix 添加自增字段
Create autoserial column in informix
alter table my_table add id integer before some_field;
create sequence myseq;
update my_table set id = myseq.nextval;
drop sequence myseq;
alter table my_table modify (id serial not null);
iOS 忘记登录密码
iOS 忘记登录密码
1. 进入恢复模式
方法分为iPhone 8 及之后, iPhone 7 还有 iPhone 6 及之前
2. 恢复系统
Reference
If you forgot the passcode on your iPhone, or your iPhone is disabled
453 post articles, 57 pages.