Ubuntu 配置 Fcitx 5 中文输入法

安装 检查系统中文环境 在 Ubuntu 设置中打开「区域与语言」—— 「管理已安装的语言」,然后会自动检查已安装语言是否完整。若不完整,根据提示安装即可。 最小安装 为使用 Fcitx 5,需要安装三部分基本内容: Fcitx 5 主程序 中文输入法引擎 图形界面相关 按照这个思路,可以直接使用 apt 进行安装: sudo apt install fcitx5 \ fcitx5-chinese-addons \ fcitx5-frontend-gtk4 fcitx5-frontend-gtk3 fcitx5-frontend-gtk2 \ fcitx5-frontend-qt5 安装中文词库 在 GitHub 打开维基百科中文拼音词库 的 Releases 界面,下载最新版的 .dict 文件。按照 README 的指导,将其复制到 ~/.local/share/fcitx5/pinyin/dictionaries/ 文件夹下即可。 配置 设置为默认输入法 使用 im-config 工具可以配置首选输入法,在任意命令行输入: im-config 环境变量 需要为桌面会话设置环境变量,即将以下配置项写入某一配置文件中: export XMODIFIERS=@im=fcitx export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx 如果使用 Bash 作为 shell,则建议写入至 ~/.bash_profile,这样只对当前用户生效,而不影响其他用户。 另一个可以写入此配置的文件为系统级的 /etc/profile。 开机自启动 安装 Fcitx 5 后并没有自动添加到开机自启动中,每次开机后需要手动在应用程序中找到并启动,非常繁琐。 解决方案非常简单,在 Tweaks(sudo apt install gnome-tweaks)中将 Fcitx 5 添加到「开机启动程序」列表中即可。
One minute to read

Hello, World!

环境配置 工欲善其事,必先利其器。 集成开发环境 IDE 操作较为简单,一般入门玩家会选用 IDE 来编写代码。在竞赛中最常见的是 Dev-C++(如果考试环境是 Windows 系统,一般也会提供这一 IDE)。 编译器 Windows 推荐使用 GNU 编译器。需要去 MinGW Distro 下载 MinGW 并安装。此外 Windows 下也可以选择 Microsoft Visual C++ 编译器,需要去 Visual Studio 页面 下载安装。 macOS 在终端中执行: xcode-select –install Linux 使用 g++ -v 来检查是否安装过 g++。 使用如下命令可以安装: sudo apt update && sudo apt install g++ 在命令行中编译代码 熟练之后也有玩家会使用更灵活的命令行来编译代码,这样就不依赖 IDE 了,而是使用自己熟悉的文本编辑器编写代码。 g++ test.cpp -o test -lm g++ 是 C++ 语言的编译器(C 语言的编译器为 gcc),-o 用于指定可执行文件的文件名,编译选项 -lm 用于链接数学库 libm,从而使得使用 math.h 的代码可以正常编译运行。
One minute to read

Linus Torvalds 不满 Linux 6.9 中的一些 Bcachefs 代码

cachefs 文件系统自从被纳入 Linux 6.7 内核的上游版本以来,一直保持着良好的运行状态。但现如今,随着 Bcachefs 的功能更新被提交到 Linux 6.9 合并窗口,引发了 Linus Torvalds 对其中一些 proposed code 的不满。 维护者 Kent Overstreet 将针对 Linux 6.9 的 Bcachefs 改动的拉取请求总结为: Subvolume children btree;是为 walking subvolumes 提供用户空间界面所必需的,计划在稍后提供 对目录结构检查进行了大量改进 改进了日志管道,显着提高了 high iodepth write workloads 的性能 Discard path 改进:Discard path 更加高效,并且不再不必要地刷新日志 Buffered write path 现在可以避免占用 inode lock 调出用于 XFS 的各种库代码:time stats、mean_and_variance、darray、eytzinger、thread_with_file 新的 mm helper:memalloc_flags_{saverestore} mempool now does kvmalloc mempools 但让 Linus Torvalds 感到不解的是,这些补丁把 Bcachefs 代码中的一些元素移到了一些 library-type 的代码中,以至于可以轻松地被其他文件系统重用。 Linus Torvalds 在回应相关 PR 时表示:“我看了看 ‘make random bcachefs code be a library function’ 的内容,觉得毫无意义,最终决定在没有进一步解释的情况下我不会使用它(老实说,我不认为这些解释站得住脚)。”
One minute to read

MarkDown讲解

Markdown 是一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber)。 它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者HTML)文档。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。 由于 Markdown 的轻量化、易读易写特性,并且对于图片,图表、数学式都有支持,许多网站都广泛使用 Markdown 来撰写帮助文档或是用于论坛上发表消息。 如 GitHub、Reddit、Diaspora、Stack Exchange、OpenStreetMap 、SourceForge、简书等,甚至还能被使用来撰写电子书。 优势 世界上最流行的博客平台WordPress和大型CMS如Joomla、Drupal都能很好的支持Markdown。完全采用Markdown编辑器的博客平台有Ghost和Typecho等。用于编写说明文档,以“README.md”的文件名保存在软件的目录下面。Markdown可以快速转化为演讲PPT、Word产品文档甚至是用非常少量的代码完成最小可用原型。 发展历程 John Gruber在2004年创造了Markdown语言,在语法上有很大一部分是跟亚伦·斯沃茨(Aaron Swartz)共同合作的。这个语言的目的是希望大家使用“易于阅读、易于撰写的纯文字格式,并选择性的转换成有效的XHTML(或是HTML)”。 其中最重要的设计是可读性,也就是说这个语言应该要能直接在字面上的被阅读,而不用被一些格式化指令标记(像是RTF与HTML)。 因此,它是现行电子邮件标记格式的惯例,虽然它也借鉴了很多早期的标记语言,如:Setext、Texile、reStructuredText。 标准化 Markdown已经成为典型的转换为HTML的非正式规范 和参考实现。随着时间的推移,出现了许多Markdown实现。人们开发这些主要是由于在基本语法之上需要额外的功能 - 例如表格,脚注,定义列表(技术上的HTML描述列表)和HTML块内的Markdown。其中一些行为偏离了最开始的参考实现。与此同时,非正式规范中的一些含糊不清引起了人们的注意 。这些问题促使Markdown解析器的一些开发人员努力实现标准化。 2016年3月发布了RFC 7763和RFC 7764。RFC 7763 从原始变体引入了MIME类型 text/markdown。RFC 7764讨论并注册了MultiMarkdown、GitHub Flavored Markdown (GFM)、Pandoc、CommonMark及Markdown等变体。 CommonMark 从2012年开始,包括Jeff Atwood和John MacFarlane在内的一群人启动了标准化工作。一个社区网站旨在记录可用于文档作者和开发人员的各种工具和资源,以及各种markdown实现的实现者。 2014年9月,Gruber反对在这一工作中继续使用“Markdown”这个名字,其被更名为CommonMark。 CommonMark发布了规范、参考实现和测试包的几个版本,并计划在2018年宣布最终的1.0规范和测试包。 GFM 2017年,GitHub发布了基于CommonMark的GitHub Flavored Markdown(GFM)的正式规范。 除了表格、删除线、自动链接和任务列表被GitHub规范作为扩展添加之外,它遵循CommonMark规范。 GitHub还相应地更改了其站点上使用的解析器,这要求更改某些文档 - 例如,GFM要求创建标题的哈希符号由空格字符分隔。 Markdown Extra Markdown Extra是一种轻量级标记语言,基于在PHP(最初)、Python和Ruby中实现的Markdown。它添加了普通Markdown语法不具备的功能。内容管理系统支持Markdown Extra,例如Drupal,TYPO3和MediaWiki。 它为Markdown添加了以下功能: HTML块内的markdown标记 具有id / class属性的元素 围栏代码块 表格 定义清单 脚注 缩写
One minute to read

今天是兀日(3.14)

今天是圆周率日(3.14)3月14日 圆周率日(Pi day) 是庆祝圆周率π的特别日子。正式日期是3月14日,由圆周率最常用的近似值3.14而来。圆周率日是一年一度的庆祝数学常数π的节日,时间被定在3月14日。通常是在下午1时59分庆祝,以象征圆周率的六位近似值3.14159,有时甚至精确到26秒,以象征圆周率的八位近似值3.1415926;习惯24小时记时的人在凌晨1时59分或者下午3时9分(15时9分)庆祝。全球各地的一些大学数学系在这天举办派对。 发展历史 已知最早的大型以π为主题的庆祝活动是Larry Shaw 组织,1988年3月14日在旧金山科学博物馆举办的。Larry Shaw 是旧金山科学博物馆的一名物理学家,那一天他带着博物馆的员工和参与者一起围绕这博物馆纪念碑做3又1/7圈(22/7,π的近似值之一)的圆周运动,并一起吃水果派,分享有关π的知识。之后,旧金山科学博物馆继承了这个传统,在每年的这一天都举办庆祝活动。美国麻省理工学院首先倡议将3日14日定为国家圆周率日。2009年美国众议院正式通过一项无约束力决议(Non-binding resolution)(HRES 224),将每年的3月14号设定为“圆周率日”(National Pi day)。 2010年的圆周率日,谷歌为表庆祝,推出了π的Google Doodle,图中元素颇丰,不仅包含了圆周率的定义,π值范围,圆周周长与面积公式,甚至还包含了球体积公式以及圆周的外切和内切多边形示意图。 庆祝方式 庆祝圆周率日的方式有很多,比如吃派,喝一种名字中含有“pi”的鸡尾酒(piña colada),玩和pi 发音相近的彩罐游戏(piñata)。 这一天常见的庆祝方式包括:1.阅读π的悠久历史,学习有关π的数学知识。2.背诵π。π是无理数,很多人通过背诵π小数点后面的数字来表现记忆力。日本人Akira Haraguchi在2005年将π背到了小数点后第 83431 位。3.计算圆周率。2009年,法国著名程序员Fabr ice Bellard用个人PC,耗时116天,计算到了PI的小数点后第2.7万亿位打破了由超级计算机保持的圆周率运算记录。同时Fabrice Bellard在圆周率算法方面也有着惊人的成就,1997年他提出了最快圆周率算法公式。4.观看电影《死亡密码 π》(1998年讲述一个偏执数学家故事的惊悚电影)、《少年派的奇幻漂流》(一个名为pi的少年的冒险故事)。5.做一个以π为主题的派。6.欣赏以π为主题的音乐,例如圆周率之歌。校园活动全球各地的一些大学数学系在这天开派对。加拿大滑铁卢大学则在圆周率日免费供应馅饼。麻省理工学院则经常选择在这一天向学生发出录取通知书,从2012年开始,麻省理工宣布,就会于每年圆周率日的下午6:28分(Pi Day, Tau Time),在自己的网站上公布录取信息,以此表明公平对待π和τ。这是由于在数学中,半径的概念似乎比直径更加深入人心。部分数学家们早已注意到了把圆周率定义为周长和直径之比有所不便,曾在论文中正式地提出这一点,认为π应该由另外一个被称作“tau”的数τ来替代 。但也有数学家表示反对,双方的争论颇为激烈。3月14日也是爱因斯坦的生日,爱因斯坦在普林斯顿生活超过20年之久,因此普林斯顿在这一天举办了众多的活动,庆祝圆周率日兼爱因斯坦生辰。除了常规的吃派以及π值背诵比赛等活动,在这一天还有一个爱因斯坦cosplay比赛。 文化影响 可能是因为定义简单以及在数学公式中随处可见,π在流行文化中的出现频率及地位远远高于其他数学常数。在麻省理工,一些大学生的庆祝语包括“3.14159”。谷歌在2011年一次收购中,谷歌选择一系列著名常数作为报价,其中就包括π。名为piday.org的网站,是圆周率日官方网站,不仅收集了关于π的各种趣闻,还有以π为主题的商店。 相关日期 7月22日:圆周率日近似值日。22/7是π的一个近似值, 按美式日期记法,即为7月22日。22/7大于π,有趣的是,它比3.14更加接近π。所以圆周率日近似值日实际上比圆周率日更加精确。 1592年3月14日:终极圆周率日。1592年3月14日上午6时53分以美国式记法就是3/14/1592 6:53,对应了圆周率的十位近似值3.141592653。 6月28日:τ(2π)日。2001 年,美国数学家鲍勃·帕莱(Bob Palais)在《数学情报》(The Mathematical Intelligencer)上发表了一篇题为《π 是错误的!》(π Is Wrong!)的论文。称真正的圆周率日是2π,即τ。虽然很多数学家反对,但也有很多学者赞同鲍勃,美国数学家麦克·哈特尔(Michael Hartl) 建立了网站 tauday.com,呼吁人们用希腊字母 τ(发音:tau)来表示“正确的”圆周率。新圆周率的支持者们选择在 6 月 28 日庆祝“真正的”圆周率日。 2019年,国际数学联盟(IMU)正式向联合国教科文组织(UNESCO)提出申请,并于同年11月由联合国大会通过,将每年的3月14日设为“国际数学日”(The International Day of Mathematics)。
One minute to read

六上古诗(1)

寒食 [唐]韩翃 春城无处不飞花,寒食东风御柳斜。 日暮汉宫传蜡烛,轻烟散入五侯家。 迢迢牵牛星 [汉] 迢迢牵牛星,皎皎河汉女。 纤纤擢素手,札札弄机杼。 终日不成章,泣涕零如雨。 河汉清且浅,相去复几许! 盈盈一水间,脉脉不得语。 十五夜望月 [唐]王建 中庭地白树栖鸦,冷露无声湿桂花。 今夜月明人尽望,不知秋思落谁家。 未完待续~
One minute to read

我在TikTok上卖车给老外,三个月入账2000万

文雪豹财经社王亚骏 抱着"反正亏不了多少钱"的心态,安岚(化名)在 TikTok 上试着把中国汽车卖给老外。短短一个季度,她就拿下了 2000 万元的营收,而投入仅 2000 元左右。 在此之前,她从未有过任何销售工作经验。 去年 8 月初,安岚带着一身的疲惫从某互联网大厂裸辞,“想躺一段时间”。但一条新闻让她打消了休息的念头:2023 年上半年,中国汽车出口量同比增超 70%。“我一直以为,中国汽车在国外卖不动的。” 她模模糊糊觉得,这其中可能有赚钱的机会。虽然对汽车、对出口贸易都处于"很懵"的状态,但安岚还是决定尽快出国看一看。 从零起步,用了一个多月时间,安岚摸索出了一套低成本的获客方式,并在解决资金周转的大问题后,跑通了整个交易流程。去年 10 月开始,她迎来了"打开水龙头般"的订单。 让安岚"一季暴富"的生意,用专业术语描述的话,就是"汽车平行出口"——非官方授权经销商,将国内的新车以二手车的形式出口到国外。据乘联会秘书长崔东树估算,2023 年,中国的汽车平行出口量超过 30 万辆,是 2021 年二手车出口总量的 20 倍有余。 2024 年,踌躇满志的安岚制定了 2 亿元的营收目标。但与此同时,也有不少同行正在悄悄撤离这个行业。 混乱是阶梯 比什凯克,吉尔吉斯斯坦的首都,目前是中国汽车出口到俄罗斯的中转站,也是安岚的考察地。 混乱,是这里给她的第一印象。行色匆忙的中国商人,满载着中国汽车的托运车,是她在比什凯克看到最多的景象,“就像一个巨型露天集市一样”。 所有混乱都指向一个判断:目前在俄罗斯,中国汽车不愁卖不动。 据乘联会数据,2023 年,中国出口俄罗斯汽车销量为 91 万辆,同比增长 459%,是中国汽车出口增量最大的单一市场。 混乱也让安岚意识到,这一行还没有明显的壁垒,这意味着普通人也可以参与。她摸索出了一个低成本的商业模式:把汽车素材发到 TikTok、Facebook 和 instagram 上,吸引吉国的经销商私信下单,她再从国内 4S 店或车企的大客户渠道拿到车发给客户。 注册账号、线上展示、获取流量、在线沟通……对有互联网大厂工作经验的安岚而言,这一套可谓轻车熟路。她在社交平台上投入的推广费一共只有 2000 元左右,“公司就我和老公两个人,办公场地在家,办公设施就是两台电脑,两部手机”。 不过安岚很快就发现,她把这件事想简单了。 客户找安岚下单后,需要先向她支付订单总金额 30% 的预付款,再由她全款订购客户需要的汽车,这就需要安岚先垫付剩下 70% 的资金。 在等待第一笔订单到来的时间里,安岚是在忐忑中度过的,因为她无法预测第一笔订单会有多少辆车、需要垫多少钱、这笔钱家里能不能拿出来。 9 月下旬,安岚从 Instagram 上收获了第一笔订单:4 辆蓝色吉利星越L,客户来自俄罗斯。想完成这笔订单,她得垫付近 60 万元。“这笔钱对我来说已经压力很大了,下次如果客户下单 40 辆,又该怎么办?” 她想起来自己有一位做外贸的朋友,通过朋友介绍,她向一家二手汽车出口试点企业提交了垫资申请。因为手中有订单,申请得到了批准,这笔订单也顺利成交。 通过这笔交易,安岚跑通了卖车的整个流程。 在这次淘金之旅中,带给安岚最多收益的是新能源汽车。2023 年第四季度,新能源汽车出口带来的营收占了安岚总营收的 80%,其中理想汽车贡献了近一半。
One minute to read

常用排序

1冒泡排序(Bubble Sort) 时间复杂度: $O(n^2)$ void mp()//自定义mp()函数 { for(int i=1;i<=n-1;i++) { for(int j=1;j<=n-i;j++) { if(a[j]>a[j+1])//相邻元素比较,若逆序则交换(升序为左大于右,降序反之) { swap(a[j],a[j+1]); } } } } 2选择排序(Selection sort) 讲解:它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。 最好复杂度:$O(n^2)$ 最坏复杂度:$O(n^2)$ void sz() { for(int i=1;i<=n-1;i++) { int minn=i; for(int j=1;j<=n-i;j++) { if(a[j]<a[minn]) { minn=j; } } swap(a[j],a[minn]); } } 3插入排序(Insertion Sort) 讲解:它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 时间复杂度:$O(N^ ( 1-2) )$ void cr() { for(int i=2;i<=n;i++) { int k=1; int tmp =a[i]; while(a[k]<a[i]) { k++; } for(int j=i-1;j>=k;j–) { a[j+1]=a[j]; } a[k]=tmp;//插入 } } 4Sort排序 时间复杂度:$O(nlogn)$
One minute to read

部署Hexo

环境环境 1.1 安装Git 请参考【1】 e 1.2 安装node.js 下载:http://nodejs.org/download/ 可以下载 node-v0.10.33-x64.msi 安装时直接保持默认配置即可。 NOTE:Hexo 3.9.0要求nodejs版本>6.9.0 Ubuntu下,直接执行下面的命令安装即可: sudo apt-get install nodejs sudo apt-get install npm 配置Github 1.1 建立Repository 建立与你用户名对应的仓库,仓库名必须为【your_user_name.github.io】 1.2 配置SSH-Key 参考【1】 安装Hexo 关于Hexo的安装配置过程,请以官方Hexo【2】给出的步骤为准。 3.1 Installation 打开Git命令行,执行如下命令 $ npm install -g hexo 3.2 Quick Start Setup your blog 在电脑中建立一个名字叫「Hexo」的文件夹(比如我建在了D:\Hexo),然后在此文件夹中右键打开Git Bash。执行下面的命令 $ hexo init [info] Copying data [info] You are almost done! Don’t forget to run npm install before you start b logging with Hexo!
4 minutes to read

部署Hugo博客

正文 准备: 1 要注册Github的账号 2 下载Git 3 下载并安装好Hugo 1 在终端&cmd当中输入hugo version验证是否安装好hugo,安装完成会出现版本号。如图: 2 在cmd&终端当中输入hugo new site xxxx(xxxx为你的博客文件名称),在所对应的文件夹中查看是否显示有xxxx名称的文件夹。打开之后再用cmd&终端打开,再次输入hugo new posts/xxxx.md(xxxx为你创建的第一个博文的名称,然后文件必须以MarkDown语法编辑,不能是用Html及其他语言) 在你创建的文件中打开content/posts/xxxx.md,在里面进行修改,例如draft=true,要修改为false(因为true是一个草稿,而false可以直接显示在你的网站中&本地运行) 未完待续~
One minute to read