SSH
奔向命令行
大家第一次使用命令行或见到终端是什么时候呢?大多是第一次编写 C 语言程序吧。
我是小学用 bat 文件开 Minecraft 服务器时接触的,当时就想这个界面可真丑,黑咕隆咚的——现在不一样了,尽情美化喵。
终端是那个展示 shell 的窗口,而 shell 的话,Windows 有 cmd、PowerShell、Windows PowerShell,macOS、Linux 有 bash,Android 可以使用 Termux,也相当于是 Linux 了——有关 Termux 的配置详见 Termux 高级终端安装使用配置教程。
macOS 和 Linux 的关系更近,总之都能使用 zsh 而不是 bash 作为 shell,有关 zsh 的配置参见 这篇文章。
zsh 相比 bash 能提供命令行历史补全的功能,在 Windows 上,这需要下载 PowerToys 并启用里面的 未找到命令 功能——看起来命令行补全是 PowerShell 的功能,但总之这样配置之后就没问题。
在 macOS 上,自带的终端并没有那么“好看”,总之转用了 iTerm2,相关的配置略。
...
Minecraft
最近在折腾 Minecraft 服务器,有了想写的东西,也就一并写在这里。
Minecraft Java Edition
这真的是对我影响最大的游戏,没有之一了。可惜的是,我已经完全没有自己接触的这款游戏时的任何记忆了,想讲的事情很多。
当时玩的最多的单人版本还是 1.7.2,其他的比如 1.6.4、1.7.10、1.8、1.10.2 这几个比较有记忆点的版本相比之下玩得比较少。而服务器的话,就看服务器是用的哪个版本。
电脑上用的是一款名为“麦块我的世界盒子”的软件,当时我完全没学过 Java,只知道 Minecraft 是用 Java 编写的,不知道 Minecraft 本身不能像 EXE 程序一样双击启动,而是需要启动器启动。启动器也就是包了一层 GUI,方便配置一些启动参数,最后也是一条命令行启动——也是,EXE 是 Windows 系统的可执行文件,而 Minecraft Java Edition 又不是只支持 Windows 的,macOS 和 Linux 都行。真的有人会在 Linux 玩游戏吗?
现在比较流行的有 HMCL 和 PCL2 两款启动器,和麦块一样,只是麦块还 ...
大家好啊,我是日本游学
现在的话,大致能写点东西了。
飞机
我认知里的交通工具里,最有技术含量的就是飞机,其次是地铁。地铁有幸在小时候就体验过了,飞机则一直没有乘坐——因为我确乎没有这样的需求,家里人就算行程较远也会选择长途汽车,再就是也从来没有出国旅游、工作、学习。
这次游学之前,有接触到 ACI(Air Crash Investigation,空中浩劫)这部系列纪录片,讲空难的,也就对飞机感兴趣了。
这次来日本,是先飞到上海再飞到日本的。先到昌北机场把行李托运后给了登机牌,等到登机就上去咯。
这段机程确实没什么餐食,单单给了一个小红豆面包,找到自己位置后做到了靠窗的座位,这样正好可以看着窗外。但这排三个位子只有我一个人,确乎有点害怕。
飞机缓慢(?)地滑行到起飞滑道,然后停住。照纪录片,这里开始确认检查清单。然后便是和滑行时完全不同感觉的加速,加速,rotate,起飞。那时候感觉自己就像坐在一个无轨过山车上,一直向上冲刺。
到新的“重力加速度”稳定下来,不依赖窗外的天际线,不仔细观察,确乎很难发现飞机的姿态是向上的。着实稍微理解了什么是空间迷向。
耳压确实能感到变化,但“打开咽鼓管”这种事情我小时候就会了 ...
Study
英文
中文
I don’t want to be an engineer
我不想成为一个工程师
I tried so hard and got so far and now I can’t decide
努力这么久 到了这么远 现在我却无法决定
All my life I’ve given my career
我这一生都献给了我的事业
These numbers in my head keep on spinning round and round Yeah
这些数字在我脑海中不停旋转
I can only guess
我只能猜
What’s right?
什么是对的
Should I stay three more years just to waste away?
我应该再待三年只是为了浪费时间吗
Become a slave to all these numbers?
成为这些所有数字的奴隶
It’s overdue, all the stress
这些压力早该结束
yet I say I’m fine
然而我说我没事
Wo ...
编程杂谈
变量不变性
自学习 C 语言的时候我们就学会了如何给变量赋值:
1int testVariable = 0;
并且可以对变量 重新赋值:
1testVariable = 1;
而到后来学习了 Java,有个 final 关键字,但还是不清楚这有什么作用。接触 Dart 后才切实的了解了为什么会有 final 关键字,以及它为什么存在。
很多时候我们编程的流程就是将一个变量处理成另一个变量,而不是对原先的变量进行重新赋值,
鸿蒙 ArkUI 使用报告(二)
不想说好话,因为鸿蒙 ArkUI 就是纯纯的一坨。
给目前自己接触过的大前端框架拍个名的话
Flutter:当之无愧
SwiftUI:除了文档没有示例,代码格式化不舒服外,框架本身是没问题的
Next.js:前端的神
Electron:桌面端的神,但我不喜欢什么东西都是浏览器套壳
React Native:页面路由麻烦,开发工具不方便
Jetpack Compose:半成品
ArkUI:残次品
它的 IDE 弱智到什么程度呢?连最起码的变量类型都显示不对,Linter 诡异莫测完全不起作用,代码补全完全残废,连 code fix 也没有。
有人真要是能对这坨东西骄傲的说有多么厉害那还是屎吃多了不知道饭是咋样的。
状态管理是抄都抄不懂啊!就连最简单的父组件的给子组件传参,父组件的状态变化了不影响子组件,要多在子组件参数加上 @Link 注解,那这样我要是子组件有很多参数依赖是不是得把参数都加上 @Link 注解?那如此的话模板代码量不就又上去了?
完全不看好 ArkUI 未来的发展,希望早日暴毙。
鸿蒙 ArkUI 使用报告
大家好啊,今天来点大家想看的东西啊。
ArkTS 语言
ArkTS 是鸿蒙生态的应用开发语言。它在保持 TypeScript 基本语法风格的基础上,进一步通过规范强化静态检查和分析,使得在程序运行之前的开发期能检测更多错误,提升代码健壮性,并实现更好的运行性能。同时,提供了声明式 UI 范式、状态管理支持等相应的能力,让开发者可以以更简洁、更自然的方式开发高性能应用。
官网是这样说的,但我只能呃呃。可能是华为没有那样的能力去创建一门属于自己的语言吧,最后把 TypeScript 变成了与 Swift 或者说是 Kotlin 缝合的缝合怪。一些令我厌烦的写法,如匿名函数 .bind(this)、模板字符串要用反引号 const str = `Show: ${another} value` ,也遗传了下来,特别是组件内引用 state 时也要带上 this,这肯定是受到语言实现的限制吧。
同样的,我不喜欢 ArkTS:
必须使用 DevEco Studio 才能使用 ArkTS 语言
DevEco Studio 自带的代码格式化结果一坨:
12345678910 ...
高中数学
函数、导数、积分
基本知识
多阶导数的记法
对 f(x)f(x)f(x),记 f′(x)f'(x)f′(x) 为一阶导,f′′(x)f''(x)f′′(x) 为二阶导,f′′′(x)f'''(x)f′′′(x) 为三阶导,任意阶导都可为 f(n)(x)f^{(n)}(x)f(n)(x)
极值点判别法则
对函数 f(x)f(x)f(x) 在 x=x0x = x_0x=x0 处若存在 n∈N∗n \in \N^*n∈N∗ 使得
f′(x0)=f′′(x0)=⋯=f(n−1)(x0)=0f'(x_0) = f''(x_0) = \dots = f^{(n - 1)}(x_0) = 0f′(x0)=f′′(x0)=⋯=f(n−1)(x0)=0,f(n)(x0)>0f^{(n)}(x_0) > 0f(n)(x0)>0,则当 nnn 为偶数时,x0x_0x0 为极小值点
f′(x0)=f′′(x0)=⋯=f(n−1)(x0)=0f'(x_0) = f' ...
考研数学
请确保已经了解了 高中数学 相关知识
一元函数微分
一元函数极值点、拐点的判定
极值点:看 x0x_0x0 左右两侧是否为局部最大(小)值;极值点是横坐标
拐点:看 f′′(x)f''(x)f′′(x) 是否在 x0x_0x0 左右两侧异号,该点本身可以不可导,且 f′′(x)>0f''(x) > 0f′′(x)>0 时为凹函数,f′′(x)<0f''(x) < 0f′′(x)<0 时为凸函数;拐点是点
极值点判别法则
对函数 f(x)f(x)f(x) 在 x=x0x = x_0x=x0 处若存在 n∈N∗n \in \N^*n∈N∗ 使得
f′(x0)=f′′(x0)=⋯=f(n−1)(x0)=0f'(x_0) = f''(x_0) = \dots = f^{(n - 1)}(x_0) = 0f′(x0)=f′′(x0)=⋯=f(n−1)(x0)=0,f(n)(x0)>0f^{(n)}(x_0) > 0f(n)(x0) ...
SwiftUI 使用报告
Swift 语言
Swift 是 Apple 开发的一门编程语言——不像 某为 什么 ArkTS 语言 就是给 TypeScript 套皮——用的范围也很小,就它自家的产品开发用。
Swift 和 Kotlin 非常相似,创新了一些比较奇妙的语法比如:
123callFunction(parma1, (value) { final value2 = value * 2; print(value2)});
这种最后一个参数是函数时,可以写作:
1234callFunction(parma1) { value in let value2 = value * 2 print(value2)}
你说代码好看了嘛是好看了,但代码格式化时不会自动格式化到这种好看的格式,要写这种格式代码补全又不给我补全成这样,到后面反而是浪费了时间。
我不是很喜欢 Swift,究其原因如下:
必须使用 Xcode 才能使用 Swift 语言
Xcode 不自带代码格式化,需要自己找插件
格式化风格不统一
没有热更新(Dart 都可以不依赖 Flutter 进行热更 ...
更好的排版
自写日记开始,自己就越来越注重文字排版。
我是希望自己编写出来的东西是被精心设计过的,被别人看到时别人会感到舒适的。
除了之前所谈的“注意语病”外,现在多加的习性则是:
使用标准的专有名词
例如 GitHub,官方使用该词时都是 GitHub,从来不会使用什么 github、gitHub。
Xcode 也是,c 是小写的,而 VSCode,C 是大写的。
当然,编程里有 camelCase 这样的命名规范,那么这时 GitHub 对应什么?是 github 还是 gitHub 呢?
看个人喜好啦~
不再过分使用括号
括号一层一层嵌套会使得意思极其“扭曲”,理解起来需要绕弯子,同时存在一堆右括号连在一起的情况,这很不美观。特别是如果存在括号内多重括号完后接下句,其所指的前文是很难很快找到的。
更好的做法当然是尽可能不使用括号,将想要表达的内容尽可能展开(flatten)来,出现跳跃性的句子可以使用破折号。
中英文混排时添加空格
在绝大多数情况下,在半角字符和全角字符直接加入空格就能给人一种文章没那么挤的感受。
比如接下来的这句话:
1我喜欢吃apple,不喜欢吃peach和orange。 ...
path_provider
path_provider
${name} => app
${org} => com.example
${package} => ${org}.${name}
Directory
Android ..$0=>/data/user/0; ..$1=>/storage/emulate/0/Android/data
Windows ...=>C:\Users\${user}
Temporary
🌞 ..$0/${org}/cache
🌞 ...\AppData\Local\Temp
Application Support
🌞 ..$0/${org}/files
🌞 ...\AppData\Roaming\${org}\${name}
Application Library
🌙
🌙
App ...
Next.js 和 React 使用报告
使用报告系列开新坑了,今天要谈的是 Next.js 14。为什么是 14 呢,因为我从 14 学的,别叫。
先做个介绍吧,最新的 Next.js 官网上其称自己为“The React Framework for the Web”,记得之前有多加一个“专为生产环境”的头衔,总之,人家是框架,开发的方方面面都体贴的为你想到了。
对了,可能还要再介绍 React,它自己介绍自己为“JavaScript library”,在我看来,它就是将原先命令式的 JavaScript 操作,改为了更加简约的声明式组件,提升了组件的复用性。
对,大学课程里教过我们使用 jQuery 来操作 HTML 元素,但这玩意怎么还没死啊?这不累死个人?这不老古董?
以及,React 操作的是 DOM 节点,通过 Link 组件,其能在“跳转页面”时不再真正跳转页面,而是根据新获取的信息更新当前页面,直观来说就是浏览器左上角不再出现转圈圈的刷新图标,使单页应用成为可能。
我是不是还要再解释一下什么是 单页应用(?)。
非常好路由
Next.js 一大好处就是基于文件系统的路由,它抹去了原 React 提供的注册路由的 ...
React Native 使用报告(二)
被恶心到了,我要狠狠的吐槽。
最近在恶补 React、Next.js、React Native,我先谈谈这个 React Native。
语言不行?
几个月下来,对 TypeScript 的了解更深了,能基本使用 TypeScript 了,像是它的解构,挺有趣的。自己也用 TypeScript 开发了一个 VSCode 插件,可以说是这个项目后才对 TypeScript 有了好感。
有关它的类型,我还是不太能看懂,特别是我想要知道一个类型到底是怎样的时候,也就是翻源码的时候,要在很多联合类型直接跳转,这挺麻烦的。而之前也谈过,Dart 很直观,没有这么绕——但我也确实想要 Dart 加入联合类型就是了。
对了,补充一点,之前说到 Java 没有空安全检查,这不太对,因为后面较新版本的 Java 有空安全,我也看到有的 Java 使用了 @Nullable 注释。
我不确定现在公司里都用的什么版本的 Java,不会还是 Java 8 吧?我是建议一直跟最新的,不管是语言还是框架,它们为什么要更新呢?因为它们加入了一些新东西,这些东西肯定是被好好讨论后才加入的,而被 deprecate 的 ...
多设备协同与自定义
大家好啊,今天来点大家想看的东西啊。
一人多设备的情况已经很常见了,在此分享一下自己的多设备协同体验。
设备清单
设备
型号
备注
手机
Redmi K70
单 Type-C 口;蓝牙 5.4
平板
iPad Pro 2021 11’
蓝牙 5.0;单 Type-C 口,支持雷雳 / USB 4,向下兼容 DP、雷雳 3、USB 4、USB 3.1 gen2
蓝牙耳机
AirPods Pro II
单 Type-C 口;蓝牙 5.3
Mac
Mac mini M2
双 Type-C 口,均支持雷雳 / USB 4,向下兼容 DP、雷雳 3、USB 4、USB 3.1 gen2;双 Type-A 口;单 HDMI 2.0 口;略
显示器
泰坦军团 P2SA2V 4K 144 Hz
单 DP 1.4 口;双 HDMI 2.1 口;支持 DSC;单 Type-C 口,支持 DP 输出、PD 65 W 供电;单 Type-B 口;两者其一作为双 Type-A 口上行,均支持 USB 3.0;单音频接口
笔记本电脑
拯救者 R7000P 2021
蓝牙 5.1 ...
杂货
一些招聘要求
HTML5、CSS3、ES6、React、Vue、Node.js、Webpack、Gulp、Git
Redux、EmberJS
计算机组成原理、计算机网络、数据结构、算法、设计模式、软件架构、操作系统、编译原理、数据库
C/C++、Java、Kotlin、Objective-C、Swift、PHP、Python、Go、Rust、Dart、JavaScript、TypeScript、SQL
React Native、Weex 、Hippy、Flutter、Hybrid
前端性能优化方案,工程化优化方案
有开源作品,GitHub 上有独立作品
了解多线程编程
IOS、Android、Windows Phone 开发经验
深入理解 Windows 操作系统的内存管理、文件系统、进程、线程
熟悉 Windows 界面实现机制;QT、DuiLib、CEF
系列作品
名称
来源
介绍
链接
Zeus
宙斯
基于 Next.js 开发的个人简历网站
Sol
太阳
QT 桌面项目管理软件
Mercurius
水星
基于 Flutter 开发的开源、跨平台日记 ...
React Native 使用报告
最近邀请我参加一个七牛云的校园编程竞赛,我觉得自己能学到些什么,所以就半同意下来了。
昨天晚上三个人简要谈了谈之后,说是要决定一下选什么框架好,目前就两个方向——React Native 和 Flutter,前者是我只听说过但没实际了解的东西,后者则是自去年 11 月份就在学的东西。
于是昨天配置好 RN 的基础环境后,今天就看教程去了,但是嘛,越看就越觉得 RN 不好用,我来具体分析一下。
语言不行
首先,RN 使用 JS/TS 语言来编写程序,而前者 JS 是我认为最令人难受的语言(PHP 好像也挺垃圾的),它的变量类型可以说是一塌糊涂,动态类型 Python 也有,但 Python 我就用来写点小东西,要我用它开发程序……我也不是没写过,WordCloud 就是用 Python 写的,体验也是非常糟糕。除此之外我还非常讨厌它有 == 和 === 的区别,隐式转换是坏文明。
后者 TS 我就直白的说,我看不懂!Python 里加入类型检查的方法是在变量后面冒号然后一个类型,而且重要的是,即便没给全部的变量都加上类型,程序仍然能跑起来,相当于只是给个 lint 提示一下,但 TS 要 ...
LaTeX 使用报告
介绍
LaTeX 是一个文档准备系统(Document Preparing System),它非常适用于生成高印刷质量的科技类和数学类文档。它也能够生成所有其他种类的文档,小到简单的信件,大到完整的书籍。LaTeX 使用 TeX 作为它的排版引擎。
总之是以代码的形式生成很漂亮的 pdf 文档!相比 Word 他虽然不够直观,但,漂亮决定一切(((
使用
你以为我会教你怎么安装吗?当然不会,可以去谷歌一下。
但你说我真的喜欢 LaTeX 吗?实际上 LaTeX 体积过于庞大,而且总给我一种这仍是上个世纪的产物(它确实是),生硬,但又忠实的反应了其结果。
相比 LaTeX,更常用的是 markdown,markdown 的语法简单,扩展性强,只是想要个数学公式功能的话 markdown 也能很好的胜任。
但 markdown 并没有一个统一的语法,就比如 _斜体_ 和 *斜体* 其结果都是 斜体 一样,这就导致了各种 markdown 渲染器的渲染结果有所不同,更不用说一些平台的扩展语法了。
那 markdown 的创始人在干什么?
一些不便
Emoji 插入不便
自定义字体不便
错误 ...
Python 包与 email 提醒
缘起
在使用 python 写监听器的时候经常使用邮件提醒监听器变化,一开始就是简单一句话提醒就行,后面想着这玩意应该能和自己以前收到的邮件一样好看,所以开始试着发送 html 格式而不是纯文本的邮件,经过一番折腾,最后搞出来了个 python 包 listener_email 。
问题
参考了苹果购物详情邮件:
可是在修改过程中发现各个平台显示出的结果都不一样,其中:
QQ 邮箱网页版支持最好,能不使用 <table> <tbody> <tr> <td> 等标签,而是普通的 <div> 和 css 里的 display: flex 属性进行布局,其他的邮箱都不可以;能使用 github.com 域名下的图片,而不是非要使用 raw.githubusercontent.com 域名下的图片,其他的邮箱都不可以;唯一的缺点是没有暗色模式
iPad 版 Gmail 只能使用 <table> <tr> <td> 等标签进行布局,使用 <tbody> 标签 Gmail 会把里面的东西 ...
有关符号链接的小问题
符号链接与云盘同步
在之前的 云盘同步及 Obsidian 相关 文章里有提到:
兜兜转转还得是微软的 OneDrive ,在 cmd 使用 mklink /d "D:\OneDrive\Songs" "D:\osu\Songs" 创建链接使 D:\OneDrive 这个我个人设定的 OneDrive 文件夹(默认在哪来着不记得了)里出现一个 Songs 文件夹,进去一看好家伙是 D:\osu\Songs 里的东西,这样 Windows 方面成功。
其中使用的指令创建了一个符号链接,其中真正的文档处在后者 D:\osu\Songs 中,而前者 D:\OneDrive\Songs 是指向后者的一个符号链接,注意前者原先是不能存在 Songs 文件夹的,否则无法创建符号链接。
这种方案这会引发 OneDrive 无法正确显示是否已同步文件的问题,解决办法是先转移文件到别的地方,右键删除符号链接:
在网上查询了许多方法都不管用,会出现删除后无法创建同名文件夹,文件夹会自动添加 2 后缀的 bug,感觉没死一样阴魂不散。
解决办法是直接将符号链接改 ...