Flutter 项目里有的 dependency 是用 git 库,但如果这个 git 库有新的 commit 时,敲 flutter pub get 时并不会去拉最新的版本,因为它有 cache 机制,将项目用到的 dependencies 的版本存到一个叫 pubspec.lock 的文件里,如果是 git 库,则会有是哪个 git commit 的信息。所以解决办法就是去改那个 pubspec.lock 文件里相应 dependency 的 git commit hash。
Read more →
上台手机是魅族 Note 9,内存 6GB 够用,存储 64GB 不够用了,CPU 的性能也还够用。
我不玩游戏,不拍照,对手机的要求是要快,内存和存储空间要大,最好自带 Google 框架。魅族的那台手机,我也自己安装了 Google 框架,Google Play 可以用,但应该还少一些什么的,会有各种的问题:感觉 Google Map 一直有点问题,香港麦当劳App在定位时可能是调到了 Google 的定位服务,会有问题。安心出行App 有一个调摄像头识别出租车车牌的功能也不能用。玩游戏时的游戏数据无法存到 Google Play 那。所以想要 Google 全家框的,就不建议用国内的固件去安装 Google 的框架,建议还是直接刷海外的固件,或者直接买海外的版本。
魅族最近的机器都很贵,且不满足 Google 全家桶的要求。
原本想买国内的小米,然后找淘宝帮忙刷成国外的版本。后来发现小米香港的 POCO 在做活动,且有适合的型号,POCO X3 Pro 8GB + 256GB,1949港币,且送一个小米手环5,就非常划算了。小米在香港卖的手机,配置不如国内的版本,很多 6GB + 128GB 的型号,可能是因为香港市场小,没能放很多的SKU来卖。
用了快5个月,简单说下这机器。
挺好用的,目前已经升到 MIUI Global 13.0.3,安卓是12。魅族在升级安卓版本方面就不如小米。Android security update 到 2022-02-01,非常赞.
默认的输入法的语汇不如搜狗的多,有很多词都没有。有时候不知道为什么,我原本认为应该删掉的字还在那里,还没搞清楚原因。
是4G,不是5G,我目前觉得4G够用了,没有墙的4G非常爽了。
120Hz 的屏幕我也没看出有啥分别。
自带的小米的应用不多,还好。
通话录音没有一个总的开关,只能每次打电话时按一下,按完后它会以粤语讲一下说现在正在录音。说是这是安卓新版本符合当地法律的要求。
Read more →
腾讯企业邮箱,官方的文档里没有 DKIM 的设置,只有 SPF, DMARC 的设置。那怎样设置 DKIM 呢?找那个你采购时的代理商。过个一天对方就会给你。
DKIM 是一个签名,一长串的字符。
有两个网站可以用来测试邮件的这些设置,并给出打分。
mail-tester.com
mailgenius.com
也可以发一件邮件给 gmail,通过 Show Original 来查看一些设置是 PASS 还是 FAIL。
DMARC 里有一个选项,可以用来决定当验证失败后,该把它移到垃圾箱,还是拒收。
Zoho 的邮箱的文档就写得比较清楚。
Freshdesk 代发邮件的话,也得照它的系统和文档进行相应的设置。
20220716 补充
The World’s Most Abused TLDs
Read more →
在用一些 js 库时,有见到 .map 的文件,搜了下它的作用
Basically it’s a way to map a combined/minified file back to an unbuilt state.
参考文章:
Introduction to JavaScript Source Maps
Read more →
设置邮件对域名进行设置时,大部分的教程只是针对主域名。如果是用子域名呢,例如 mail.example.com。其实只要在其给出的针对主域名的设置的 host 的最后加上子域名就行了。
For DKIM -
Record type : TXT Host : mailer._domainkey Value : "v=DKIM1; k=rsa; p=LONGSTRING" [SOLVED]
You need to setup hostname like this
SPF hostname : mail DKIM hostname : mailer._domainkey.mail 参考链接:
Setting up SPF and DKIM records of a subdomain
Read more →
在一台全新安装的 Ubuntu 20.04 服务器版里,安装 golang 环境。
设置时区
sudo dpkg-reconfigure tzdata
安装 gcc 等工具,
sudo apt update sudo apt install build-essential Golang install. 其实不用弄 go workspace 之类的东西。 https://go.dev/doc/install
vi ~/.bashrc
将 go 的安装目录加入环境变量
export PATH=$PATH:/usr/local/go/bin
使其马上生效 source ~/.bashrc
将本地的证书的公钥添加到 ~/.ssh/authorized_keys
参考链接: How to Install GCC (build-essential) on Ubuntu 20.04 https://go.dev/doc/install How To Install Go and Set Up a Local Programming Environment on Ubuntu 18.04
Read more →
环境:Flutter 1.17.4, Dio 3.0.9
需要去接入某服务商的API,给的接口是 ip 地址,而不是域名,对方给了个文件(root certificate file) trusted-ca-certs.pem 用来验证 https 连接。看来他们是用的自签名的证书。
根据 参考链接1 去尝试会报错,OS Error: No such file or directory, errno = 2
原因是我忘记把 trusted-ca-certs.pem 写在 pubspec.yaml 里。
最终的代码如下:
Dio dio = new Dio(); ByteData bytes = await rootBundle.load('assets/trusted-ca-certs.pem'); (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) { SecurityContext sc = new SecurityContext(); sc.setTrustedCertificatesBytes(bytes.buffer.asUint8List()); HttpClient httpClient = new HttpClient(context: sc); return httpClient; }; 参考链接:
Dio https certificate verification
Add Certificate in Flutter
Read more →
Windows 10 有个欧盟版,叫 Windows N,它没有带 Windows 录屏功能。解决办法见参考链接。但有同事表示,即便装了也还是不行。-_-
参考链接:
Troubleshoot Xbox Game Bar on Windows 10
Read more →
Flutter 项目打包成 Xcode 后,会报 Module ‘flutter_blue’ not found
解决办法是:双击 Runner.xcworkspace 来打开 Xcode 而不是双击 Runner.xcodeproj
那么接下来就会问,.xcodeproj 和 .xcworkspace 有什么区别?
A workspace is a collection of projects. It’s useful to organize your projects when there’s correlation between them (e.g.: Project A includes a library, that is provided as a project itself as project B. When you build the workspace project B is compiled and linked in project A). It’s common to use a workspace in the popular CocoaPods.
Read more →
环境:Ubuntu 18.04
Discourse 是用 Docker 部署的,会有些 image 和 container 没有在使用,但占用着空间,这时可以把它们清掉
cd /var/discourse ./launcher cleanup 下图是跑 ./launcher cleanup 时的提示, it will purge all images not in use. 删除完后就只剩下一个 image 和一个 container 了,那个 image 跟那个 container 是关联的 参考链接:
Stuck in a loop of freeing up space and filling it up again when rebuilding
Read more →