無標題文檔

对于 ThinkPad X1 Carbon 7th 的琐事

其实早前的时候,就已经入了台联想的小新 Pro13,这是台非常棒的笔记本。AMD 的 4800U 这块处理器无论在功耗以及性能的表现上都非常的满意。

然而,有两个问题是我无法忍受的:第一,就是它的键盘简直可以用翔来形容。虽然,这个价位的笔记本对于做工方面不能有太多的要求,但毕竟每天都重度使用笔记本输入文字和代码,对于键盘的要求实在不能太低。第二,就是只有一个 USB Type-A 的接口,对比 MacBook Pro 来说接口相对已经足够的丰富,但是对于 Wintel 平台的笔记本而言扩展接口实在是少得可怜。

加上自己又有 ThinkPad 的情节,偶尔间碰到个比较良心的商家对比美行 X1 7th 的顶配只要国行的入门乞丐版的价格,这个诱惑实在是太大。于是,借故将小新笔记本充公给公司作为开发机使用,而自己又开始使用那个熟悉的带有小红点键盘的 ThinkPad X1 Carbon 7th。

Thinkpad X1 Carbon 7th

从硬件的角度上说,这台 X1 Carbon 7th 已经是顶配了:十代低压版本的 i7 10710u 、16g 内存、以及 4K 的 IPS 屏幕加上 LTE 模块;自己更换了原先 512G 的 NVME SSD 到了 1T,没有存储上的焦虑,一切都是看来那么得美好。

但是还是忽略了一点,就是续航以及 Intel 那糟糕的能耗比,导致这台机器向对比原先的小新 Pro13 而言在续航以及发热方面实在是无法比拟(AMD Yes!)。

没有办法,自己折腾的后果打碎了牙齿都要继续承担下去。

Linux & Windows

系统方面其实个人纠结了很久,出于需求的角度出发 Windows 是不得不用的,然而 Linux 作为开发而言也是不得不装的。因此,双系统就这样子提上了日程,从这段时间的使用角度出发个人呆在 Linux 系统下的时间明显比 Windows 多得多。

这个倒不是说 Windows 不好(虽然对比 Windows 的发热和续航明显更加降低和严重了),只是 Linux 环境下很多的工具以及应用更加的顺手。

这台笔记本还偶尔出现过睡眠方面的问题,好在 Google 以后知道能够捅菊花(reset)解决大部分的电源方面的问题(说多了都是泪水)。

Manjaro & Archlinux

Linux 的发行版其实一直都是比较难选择的事情,但其实说到底就是你用这个系统来干嘛。个人是 Archlinux 的忠实用户,但是在桌面端使用它还是会有些心智方面的困难。

Manjaro 对比也是使用过非常长的一段时间,大部分情况下它工作得都非常的好。然而,要知道 Manjaro 毕竟不是 Archlinux,虽然这除了所谓心智方面的纠结以外,其实没有更多其他的区别(但其实这点就足够了)。

同时,Manjaro 会针对图形界面加入了很多自己的「私货」,这在大部分情况下是非常方面的事情,但是这往往会造成其他各种各样的问题。

例如,我将这台 ThinkPad 接入 2K 显示器的时候,缩放就成了问题:虽然我知道如何去手工配置,但是对于 Manjaro 来说它不会推荐你这样做,同时表现来说也和 Archlinux 有很多的不同。以至于在这种情况下我非常讨厌外接显示器工作,宁可使用十三寸的笔记本来干活。

Fedora & Ubuntu

对比而言 Manjaro 和 Ubuntu 其实非常像:它们都封装了很多有用的工具给用户带来的便利,但同时也部分失去了所谓「原汁原味」的感觉。

而回到我自己一直很喜欢的 Archlinux,上面说过使用这个系统我一直有心智上的「强迫症」就是不停的会 sudo pacman -Syu,以保证系统一直在最新的状态。

Fedora About

所以,到最后干脆还是使用起 Fedora,毕竟一来它的更新迭代的周期是固定的,二来相对来说是纯净的(例如,至少不会同时给你安装个 xorg 以及 Wayland)。

早在前几天,就了解 CentOS 那点屁事,其实一直以来我一直都不是非常喜欢 CentOS。这是个非常擅长「钻空子、不劳而获」的发行版,那怕生产环境有大量的部署,我个人也不会主动推荐它。

这下反倒是好了,一来是可以安心的继续使用 Fedora 作为桌面、二来对于 Ubuntu、Debian 来说也是个利好,至少会有部分原用户会迁移到其上面来。

总之,暂时就先这样子折腾吧。对于这台电脑以及操作系统、甚至发行版来说说到底还是工具而已。自己已经在这个上面花了太多的时间去选择,接下来应该是把心给收收了。

- eof -

正确配置 WSL2 的宿主机文件权限

在 Windows 平台通过 Docker Desktop 部署 Syncthing 的时候发现文件全部被重新同步了,究其原因是因为 Windows 下的文件系统权限 meta 信息没有带过来。

Docker Desktop 支持在 WSL2 下运行 Docker,也就是说可以使用以前同样的配置去解决 WSL 的宿主机(也就是 Windows 系统)的文件权限问题。

找个 PowerShell 打开 docker-deskop 的 WSL2 虚拟机终端

wsl -d docker-desktop

然后找到文件 /etc/wsl.conf ,建议保险起见先备份原有的配置。增加或修改对应的配置如下:

[automount]
enabled = true
root = /mnt/host
options = "metadata,umask=22,fmask=111"
mountFsTab = true

[filesystem]
umask = 022

然后重启 Docker Desktop 就可以了。PS,有其他 WSL2 访问宿主机碰到类似文件的权限问题也可以这样子处理。

- eof -

入手小新 Pro13 的 AMD Ryzen7 版本

经常背着 Macbook Pro 15 寸的笔记本上下班,这台笔记本完成了很多生产力的事情,但有其实并不是很需要那么好的算力的笔记本,所以轻薄的需求就提上了议程。

想着很多年没有用 Windows 10 了,想想换换口味再买台 Windows 10 的笔记本。考虑了很多相关的笔记本,例如 Dell 的 XPS、联想的 X1 Carbon(我对 Thinkpad 的情节比较重)、甚至微软自家的 Surface Laptop。

这些笔记本都是非常好的选择,但对于我个人而言或多或少的有些都有些不满意的地方。例如 Dell 国行的 XPS 要高配才有 4K 屏幕,其他的都是 1080p;国行的联想机子那兼职就是劫贫济富,买行货的性价比非常的低;微软的 Surface Laptop 3 虽然硬件方面支持有限的升级了(升级硬盘),从 Win10 的笔记本平台来说没法升级硬件是个非常大的痛点。

偶然个机会看到有人在推荐联想小新的 Pro13 笔记本,其实对这个笔记本的第一印象是装黑苹果比比较合适,甚至可以说换了苹果兼容的无线网卡和蓝牙以后,几乎可以说是台完美的黑苹果笔记本

2020 款的小新 Pro 13 的 AMD 版本换上了低压版本的 4600U 和 4800U,京东的差价大概在五百上下,预售的价格分别是 4599 和 4999,这个价格就可以买到 8 核心 16 线程、512G NVME 的 SSD 以及 16g 内存、2.5K 屏幕的轻薄本,瞬间就显得非常得有性价比了。

由于是预售的缘故,所以被京东套路了下,6.1 首先需要支付 200 的定金,等到 6.10 再支付尾款。后来等我去支付尾款的时候,发现这款笔记本其实手速快的话可以直接购买,估计是支付了定金以后有不想买的客户,但心里的确因为等待了那么多天,多多少少有点不舒服的。

到手以后简单看了下做工还是不错的,至少从感官上没有觉得有什么粗糙和暗病的地方。这里唯一的不爽的就是由于 AMD 版本的机身是暗灰色的,但是底部的螺丝还是银白色因此显得非常的突兀。

键盘的手感完全对不起五千块钱笔记本的价格定位,对比 MacBook Pro 老款的蝴蝶键盘简直可以说从矮子里面挑矬子,所以如果使用惯了其他键盘的话,对这块的期望不要太高。

屏幕方面由于亮度对比 Macbook Pro 稍低一点,感觉屏幕的反光还是比较严重的,目前正在考虑要不要贴个磨砂的屏幕贴膜(可能不是个很好的主意)。

其实个人到手就将这个笔记本的硬件做了个升级,首先,将原机的无线网卡和蓝牙升级到了 Intel AX200 的 Wifi6 网卡,可以说这是 100 块钱的预算最值得升级的硬件。

考虑到一步到位的情况,同时京东 618 打折得过分而且加上三期免息,入了快西数的 SN750 1T(我的这台原机也是西数的,不过是 SN730 512gb 版本,可以说也很良心了),直接装上装系统一切正常。

任务管理器

最后,看下 Windows 10 任务管理器的样子,个人目前将这个笔记本作为轻度办公以及文档相关的工作,就这个而言硬件方面肯定是过剩的。但从性价比的角度而言,五千的预算就这个价位的配置的笔记本而言,几乎可以说找不到竞争对手了。AMD,Yes!

- eof -

万物之中,希望至美

这篇文章是有读者发我邮件,基于我的回复整理了下,散漫之处望谅解。原文如下:

Mail

凮凨你好,见字如面,诚惶诚恐。

其实有点惭愧,我个人已经有一段时间没有专职从事前端了,看老哥想和我了解前端的发展路线,我也只能从我过往的经历和浅见聊聊我对于这块的愚见。

我和兄弟的年纪差不多,稍长几岁。在我们这个年纪家庭和生活的负担不少,能够重新在专业路线上思变,说明兄弟也是很有想法和对自己负责的人。

但是按照我个人的从业经历来说,前端这个职位是属于相对入门容易,但也是很容易碰到「天花板」的职业。

对比和我同期一起从业前端的伙伴,经历了十多年的职业发展,很多有可能都已经不在前端这个行业,有些往前去做产品而也有些和我一样,更偏后端和架构。

这个就要聊到广度和深度的问题。曾经有一段时间,我负责团队招聘是带有非常强烈的个人品好的,尤其当简历看到「培训班」的经历,往往是会被减分的。

但这不是因为什么「歧视」的事情,而是因为在我印象中经历过「培训班」更看中的是操作层面的技术熟练度,而不是对于技术本身的追根溯源。

所以往往有这样子经历的从业者,会在技术的深度上浮于表面。看兄弟还有外包的经历,我更担心您对于技术深度方面的理解会不够深入,需要更加的注意。

很巧,前几天和玉伯聊技术的时候,我个人也聊到从行业上理解。我理解前后端这块的分工会更加不断的细分,会造成前端对于后端的理解也恐怕会出现两极的分化。封装和调用的便利性会造成忽略对于底层实现原理和概念,无形中会让前端更加无法接触技术的底层实现和理解。

同时看到兄弟的学历,是实话起点上来说对于目前的行业要求是相对比较落后,但是从同龄人角度上我理解这样子情况的原因,因此对于这块没有必要对于这块过于的焦虑。

学历和能力

这里搬出来张图,供兄弟参考。学历和能力不是正相关的,甚至可以说通过从业的经历以及对于自身认知的边界突破,往往这块的差距会被不断的拉伸和推平。

这几年,自媒体的发展让造成很多水平差次不齐的从业人员进来,为了眼球和流量贩卖焦虑。

互联网行业仍然是高速发展的行业所以和其他行业一样,30 岁的设计师、35 岁的程序员、40 岁的产品经理绝对不是「见光死」的年纪。

年龄只是代表了自己的经历和过往,这块对于所有人而言是最公平的。按照国人平均年纪 75、从业平均 40 年来算,我们经历过的 10 年职业路线,只是其中的几分之几而已。

有些就业单位对于年龄和学历的筛选会设立门槛,但是相信真实看中个人能力的公司,往往是发展向上的公司,例如在阿里也有很多 P7 甚至 P8 都是专科学历。

至于考虑去公司还是小公司,这往往是带有个人的品好的。

从我个人的从业经历来说,大公司不要求技术的全面要求单点技术的深入,是因为分工变细弱化了人在项目中的影响。而小公司因为资源的制约不可避免个人对总体项目的影响会更大些,所以往往综合能力比大公司的员工稍全面些。

这块兄弟可以根据自己的发展路线多加考虑,选择合适自己的路线。

最后,再聊聊技术人员的综合能力方面的理解。这块从我经历的很多技术管理人员来说,是普遍比较忽略的,网易这边称之为「软性素质」。

但哪怕是阿里和网易这样的平台,无论从技术面试还是职级晋升,对于这块的考核和评价往往技术侧能够给的评价和建议给到个人的意见和建议是不多的。

所以个人建议,除了技术方面对于广度和深度方面的加强,随着我们从业年限的增加,对于「软性素质」例如沟通能力、管理能力、协调能力等各个方面,都可以尝试着锻炼和提升。

「万物之中,希望至美,而至美之物,永不凋零」,三十而立的年龄是充满未来和机遇的年纪,希望共勉。

精简 BASH/ZSH 的条件判断

这个小技巧来自 Youtube 上的个视频,很受用所以记录下。很多时候我们写的 Shell 脚本,都会前置些判断条件,以便正确执行想要的结果,例如:

if [ -x $(which vim) ]; then
    export EDITOR="vim"
fi

这样子写当然没有任何的问题,而且看起来就很直观。但是如果吹毛求疵的话,发现这样子的判断有点繁琐,同时会在写更复杂的 Shell 的时候,会增加更多的判断,这样子会造成整个 Shell 脚本非常的繁琐以及臃肿。

例如,我们可以阅读 neofetch 的源代码,这个脚本用于探测目标系统未知的情况下,获取对应的值,因此其会有非常多的条件判断。

BASH Script

这个例子可能会比较极端,那问题凸显得很明显。那么这种情况下,如何去优化自己的 Shell 代码呢?

首先我们要从返回值说起,我们都知道我们执行的每条 Shell 语句其实都有返回值。一般来说,返回 0 表示正常,返回非 0 表示这条语句可能会有问题。

我们如下做个尝试:

BASH Script

然后,通常我们写的条件判断,其实就是根据返回值的判断这个条件是否成立,下面是我们常见的「与、或、非」的判断:

BASH Script

那么其实我们可以知道当不同的逻辑判断,它们执行的顺序是不一样的。例如,我们需要「与」判断则需要将所有的条件语句都运行完毕,而「或」判断则只需要其中的一条语句满足条件即可(「非」也是类似)。

那么作为条件判断的例子,可以直接写为:

BASH Script

然后,我们将上面的代码结合起来,我们可以写成这个样子:

[ -x $(which vim) ] && export EDITOR="vim"

因为它们之间的条件其实是「与」的关系。然后,我们再多些例子看看这样子的写法是不是对应的精简了很多:

if [ ! -x $(which vim ) ]; then
  exit -1
fi

对比

[ -x $(which vim ) ] || exit -1 # 注意这里的「非」的用法

如果是多条语句,那么可以使用代码块的方式(在 Shell 里面其实就是个函数):

[ -x $(which vim ) ] && {
  export EDITOR="vim"
  echo "vim is installed"
}

既然引入了代码块,那么我们可以用更复杂的用法了,例如可以将两个代码块(函数)结合起来,这样子就可以写出非常短小精悍的条件判断:

{ cmd not found } || { echo "prev statment return value is \$?" }

看起来稍微有点复杂,但又带来了更多的内容:

  1. 你可以将两个代码块(函数)使用逻辑操作符链接起来;
  2. 后面的代码块可以接收前面代码块最后一条语句的返回值。

总体来说,这个小技巧可以精简不少的条件判断的代码,尤其在初始化的时候看起来非常的直观。

不过和很多的技巧一样,我们还是需要酌情的使用它,毕竟代码和脚本的可读性是放在第一位的。

- eof -

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 要知道作为码农取名是件很难的事情,所以不想在取名这事情上太费心思。

作为八零后,自认为还仅存点点可能不怎么被理解的幽默感,以及对平淡生活的追求和向往。 为了避免不必要的麻烦,声明本站所输出的内容以及观点仅代表个人,不代表自己所服务公司或组织的任何立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQG91dGxvb2suY29tCg== | base64 -d`

分类

搜索

文章

Fork me on GitHub