@Author : Lewis Tian ([email protected])
@Link : github.com/taseikyo
@Range : 2020-12-20 - 2020-12-26
总字数:2953 个(汉字:1982,英文单词:376,数字:125,中文标点:248,英文标点:222),阅读时长约:5 分 47 秒。
*Photo by Lerone Pieters on Unsplash
人生如逆旅,我亦是行人。
- algorithm
- 数字颠倒
- review
- 2020 年十大最受欢迎的 Linux 发行版(英文)
- tip
- AI 写作智能纠错
- 将 os.popen 的默认编码由 ascii 修改为 utf-8
- Python 波浪号运算符
~
(StackOverflow) - Markdown 代码块内使用斜体(知乎)
- share
- 停止追求完美 —— 过你想要的生活(英文)
algorithm ⬆
1. 数字颠倒
输入一个整数,将这个整数以字符串的形式逆序输出,程序不考虑负数的情况,若数字含有 0,则逆序形式也含有 0,如输入为 100,则输出为 001。
题目不难,如果用 Python 可能一行就解决,但是 Go 的话我还是不太会,一些库,语法不太熟悉,甚至连输入都不知道怎么玩 2333,还是查了下才知道是 fmt,之前只用来 输出来着。
后面一个代码是提交通过排行第一的代码,算是取巧了,直接用 string 类型接收,少了一步转换。
func main() {
var num int
fmt.Scanf("%d", &num)
s := strconv.Itoa(num)
end := len(s) - 1
for i := end; i >= 0; i-- {
fmt.Printf("%c", s[i])
}
}
func main() {
for {
var str string
_, err := fmt.Scan(&str)
if err != nil {
return
}
for j := len(str) - 1; j >= 0; j-- {
fmt.Print(string(str[j]))
}
fmt.Println()
}
}
review ⬆
这篇文章是在 3 月底写的,所以我觉得排行应该不太准确,只能做一个参考吧。
下表是去年和今年十大最受欢迎的 Linux 发行版对比表,可以看到前三没变,前两名我更是没听过,好歹 Mint 我还听过,不知道该说太小众(宣传不够),还是我太孤陋寡闻。
2019 和 2020 十大最受欢迎的 Linux 发行版对比表
POSITION | 2020 | 2019 |
---|---|---|
1 | MX Linux | MX Linux |
2 | Manjaro | Manjaro |
3 | Linux Mint | Linux Mint |
4 | Ubuntu | Debian |
5 | Debian | Ubuntu |
6 | Elementary OS | Elementary OS |
7 | Solus | Solus |
8 | Zorin OS | Fedora |
9 | Fedora | Zorin OS |
10 | Deepin | Deepin |
对我来说,接触最多的两个发行版是 Ubuntu 和 CentOS 这俩货,因为第一次在自己电脑上装的双系统就是 Ubuntu,那时候喜欢折腾,按照一些博客弄些花里胡哨的样式、壁纸和图标,使得(看起来)很接近 Mac,说起来 Ubuntu 的定制性是真的高。
后来就无所谓了,都能接受,唯一强迫症的是终端那跳动的游标我必改成瘦的竖线,默认是一个宽的块,在 Xshell 连服务器我也必改这个。
扯远了,本文是按照过去六个月各个发行版的页面点击量排序的(with most page hits during the last 6 months),下面简要介绍前十发行版。
- Deepin
Deepin,以前称为 Deepin,Linux Deepin,Hiweed GNU/Linux,它是从 Debian 派生的,它附带了 Deepin 桌面环境(DDE),可以在 Deeping Store 中找到约一千个应用程序来满足用户需求。
听说很多国内的 Linux 玩家喜欢装这个?
- Fedora
由 Fedora 项目(由 Red Hat 赞助)建设和维护,Fedora 是一个由志愿者和开发者组成的世界性社区,由于其三个主要可用版本(工作站(用于台式机)、服务器版和云镜像),Fedora 多年来一直是最常用的发行版之一,以及基于 ARM(headless)服务器的 ARM 版本。
前段时间装过,做启动盘的时候需要用它自带的一个工具,挺秀的。
- Zorin OS
Zorin 操作系统是目前最易于使用的 Linux 桌面发行版之一。它是 Windows 和 macOS 的替代品。它提供了强大、干净、漂亮的桌面,还提供了 Zorin Appearance 程序,用户自行可以调整桌面。
我没听过这个 2333
- Solus
Solus 是专门为家庭和办公室计算而设计的 Linux 发行版。它提供了各种现成的软件,这样你就可以不用麻烦地安装设备了。
它提供了一个名为 budgee 的自定义桌面环境,它与 GNOME 紧密集成(可以配置为模拟 gnome2 桌面的外观)。
开发人员也可以使用它,因为它提供了各种各样的开发工具,如编辑器、编程语言、编译器、版本控制系统以及容器化/虚拟化技术。
有意思,我还挺想试试这个发行版
- Elementary OS
基于 Ubuntu LTS 的桌面 Linux 发行版,开发者宣称它是 Windows 和 OS X 的替代品。由于操作系统是基于 Ubuntu 的,所以它与 Ubuntu 的库和软件包完全兼容。
也就是说是一个魔改 Ubuntu 的发行版?
- Debian
很有名的一款发行版,不需要过多介绍。作为两个最古老和著名的 Linux 发行版之一(另一个是 Red Hat Enterprise Linux),它是许多流行的 Linux 发行版(特别是 Ubuntu 和 Kali Linux)的基础。
- Ubuntu
在我看来,可能是最流行的一款桌面端发行版,当然,在智能手机、平板电脑、个人电脑、服务器和云 VPS 中也可以找到它。
Try Ubuntu 这个功能在安装的时候可以看到,就是不装先体验一下,文章说并没有很多发行版有提供这个功能。
- Linux Mint
Linux Mint 的著名座右铭(从自由到优雅)不仅仅是一句谚语。基于 Ubuntu,它是一个稳定、强大、完整且易于使用的 Linux 发行版。
原来是基于 Ubuntu 的,有意思。
- Manjaro
基于 Arch Linux,旨在充分利用 Arch 强大的功能和强大的功能,同时为新手和有经验的 Linux 用户提供更舒适的开箱即用安装体验。
看了文章中的配图,还挺好看的。
- MX Linux
MX Linux 凭借其高稳定性、优雅高效的桌面以及简单的学习曲线而位居榜首。它是一个基于 Debian 的面向桌面的 Linux 操作系统。它配置简单,性能稳定,大小中等。它是为所有类型的用户和应用程序而构建的。
其实话说回来,习惯的力量才是最强的,不管你用的是哪一款发行版,只要习惯了它就是最好用的。
tip ⬆
1. AI 写作智能纠错
偶然发现的一个名为写作猫的网站,自称是新一代的 AI 写作伴侣,帮助推敲用户、斟酌文法、改良文风还能实时同步翻译。
看了下给出的实例,感觉还挺靠谱,错别字、标点也会指出来。麻烦的是需要登录,我很烦这一点,我大概不会用。
*范文《赵州桥》的校队建议
今天遇到这么个问题,需要获取执行命令的输出,结果一直报错 "UnicodeDecodeError: 'gbk' codec can't decode byte 0x8b...",部分代码如下:
r = os.popen(f"git log -p {file}")
for line in r:
if line.find("Date") >= 0:
print(line)
然后搜到知乎的这个问题,骷髅垮 的回答完美解决问题,包装成一个函数(其实无所谓)返回输出的结果,我这边调用 exec 函数拿到返回值,以 '\n' 切割就可以拿到每一行了。
def exec(cmd: str):
pip = os.popen(cmd)
return pip.buffer.read().decode(encoding='utf8')
~
是一个很有趣的运算符,对于整数,~x
= (-x) - 1
,所以判断一个列表是不是回文的有另一种写法:
def foo(lst: list):
for i in range(len(lst)//2):
if lst[i] != lst[-i]:
return False
return True
遇到的问题,没找到答案,自己解答,答案也放到知乎了。
说来也简单,一般代码块都是用三个 "`" 包起来,在里面用其他的样式都会失效,所以不能使用它,用 pre
标签就 ok 了,见下面代码块与效果:
<pre>
$ python3 apple.py <em>arg1</em>
</pre>
$ python3 apple.py arg1
share ⬆
从这篇文章,我学到一个词:遗愿清单(Bucket List)。购物清单是 Shopping List,愿望单是 Wish List,当我第一眼看到 Bucket List 我还诧异,桶列表是个什么鬼,搜了一下才知道是遗愿清单,其实我觉得翻译不太对,它的英语解释是:
a number of experiences or achievements that a person hopes to have or accomplish during their lifetime.
希望在活着的时候完成的事,跟 todo list 有那么点类似,我觉得翻译成遗愿清单欠妥。
文章想说是接受不完美做你自己会使你活得更快乐,这也是我前面 Share 一直以来传达的思想。
作者提到在 18 岁认为自己 25 岁的生活将达到一个完美的状态,于是在 15 年建了一个有 23 个目标的 Bucket List,结果只完成了 5 个;当他写这篇文章时,已经快 30 岁了,也没达到他当年的设想那般。给自己定了太多目标(很多还是通过观察别人的做法定制的),一直在 push 自己,这样做其实是在过别人定义的生活,追随别人的想法来寻找幸福/快乐是大错特错的(I was so wrong!)。
这篇文章短且简单易懂,很快就能看完,没啥好总结的,以作者一句话结尾吧:
Striving for perfection is stressful. You push yourself beyond the limits and the goal still appears far away. You never seem to get to the destination.