File-Roller解压缩乱码问题的解决
在 Linux 使用系统自带的 File-Roller
文件归档器解压缩文件时有时会遇到中文文件名解压后乱码的问题,此时我们可以使用命令行工具unar
执行unar yourfile.zip
实现中文名文件的解压缩,但是对于正在进行图形工作的任务时,切换命令行会降低效率。因此,解决
File-Roller 的中文解压缩乱码问题是一个相当重要的问题。
乱码的原因
- 编码不一致(主要原因):Windows (GBK)和 Linux (UTF-8)系统下默认的字符编码不同,导致在交叉使用时出现乱码。
- 软件版本问题:某些软件版本对编码支持不全,也会导致乱码的出现。
旧版本 File-Roller 解决方案
- 打开 File-Roller, 选择 “工具” 菜单中的 “配置文件管理器” 。
- 在 “编码” 选项卡中,将 “自动检测” 设置为
“否”,并手动添加
GB18030
,GBK
,GB2312
等编码。 - 保存并关闭配置文件管理器。
新版本 File-Roller 解决方案
在 GNOME 48
环境下,File-Roller(归档管理器)的界面已更新,不再提供旧版的 工具
菜单和
配置文件管理器。但底层仍支持通过配置文件(fr-encodings.json
)自定义编码列表。修改配置文件后,
File-Roller 会优先使用列表中的编码尝试解压(等同于关闭自动检测)。
- 打开终端。
- 编辑 File-Roller 的配置文件:
1
2mkdir ~/.config/file-roller
nvim ~/.config/file-roller/fr-encodings.json - 将以下内容粘贴到文件中:
1
2
3
4
5
6
7
8
9{
"encodings": [
"GB18030",
"GBK",
"GB2312",
"UTF-8",
"CURRENT"
]
}GB18030
,BGK
,BG2312
是手动添加的中文编码。UTF-8
,CURRENT
是保留的默认编码。
- 重启 File-Roller 即可生效。
解压时手动选择编码
- 双击打开压缩文件。
- 点击右上解的
⋮(菜单)
→使用其他编码打开...
。 - 从列表中选择
GB18030
,BGK
或GB2312
。
SuperTuxKart解锁所有关卡
办公累了,偶尔也找款游戏玩玩,其中 SuperTuxKart 类似于 Windows 下的泡泡卡丁车。由于 Linux 的开源特性,我们可以直接修改配置文件而解锁所有关卡。方法是:
- 找到本地配置文件
~/.config/supertuxkart/config-0.10/players.xml
- 找到标签
<story-mode>
, 然后修改solved="none"
为solved="easy"
或solved="hard"
. - 修改好的文件内容为:
~/.config/supertuxkart/config-0.10/players.xml 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31<story-mode first-time="false" finished="false" speedrun-finished="false"
story-ms="1023726" speedrun-ms="1291839">
<abyss solved="easy" best_while_slower="false"/>
<candela_city solved="easy" best_while_slower="false"/>
<cocoa_temple solved="easy" best_while_slower="false"/>
<cornfield_crossing solved="easy" best_while_slower="false"/>
<fortmagma solved="easy" best_while_slower="false"/>
<gp1 solved="easy" best_while_slower="false"/>
<gp2 solved="easy" best_while_slower="false"/>
<gp3 solved="easy" best_while_slower="false"/>
<gp4 solved="easy" best_while_slower="false"/>
<granparadiso_island solved="easy" best_while_slower="false"/>
<green_valley solved="easy" best_while_slower="false"/>
<hacienda solved="easy" best_while_slower="false"/>
<lighthouse solved="easy" best_while_slower="false"/>
<mansion solved="easy" best_while_slower="false"/>
<mines solved="easy" best_while_slower="false"/>
<minigolf solved="easy" best_while_slower="false"/>
<olivermath solved="easy" best_while_slower="false"/>
<sandtrack solved="easy" best_while_slower="false"/>
<scotland solved="easy" best_while_slower="false"/>
<snowmountain solved="easy" best_while_slower="false"/>
<snowpeak solved="easy" best_while_slower="false"/>
<stk_enterprise solved="easy" best_while_slower="false"/>
<unlock_bonus_kart1 solved="easy" best_while_slower="false"/>
<unlock_bonus_kart2 solved="easy" best_while_slower="false"/>
<unlock_supertux solved="easy" best_while_slower="false"/>
<volcano_island solved="easy" best_while_slower="false"/>
<xr591 solved="easy" best_while_slower="false"/>
<zengarden solved="easy" best_while_slower="false"/>
</story-mode>
Gnome3中的现代阅读器papers取代evince
简介
GNOME 近年来正在转向 GTK4 + LibAdwaita。核心应用程序要么移植到新框架,要么被新框架替换。Papers 是一款专门为 GNOME 桌面环境打造的强大「文档查看器」。它支持多种文档格式,能够轻松查看、搜索和批注文档,为用户带来更丰富的使用体验。
目前,Papers 支持的文档格式包括:PDF、PS、EPS、XPS、DjVu、TIFF,以及漫画书档案(CBR、CBT、CBZ 和 CB7 格式)。无论常见文档还是特殊格式,Papers 都能轻松搞定,堪称 GNOME 用户的得力助手。
安装
1 | sudo pacman -S papers |
参考文章
Gnome3桌面环境下的现代播放器
伴随 Gnome 的升级迭代,一些软件开始变得不再特别适配新的系统,因此本文介绍三款更加现代的播放器:Decibels 音乐播放器,Showtime 视频播放器,Clapper 视频播放器。
Showtime 视频播放器
Showtime 是一款即将在GNOME 49桌面环境中替代Totem视频播放器的新应用。它基于GTK4和libadwaita构建,强调提供沉浸式的观影体验。该播放器采用无边框窗口设计,控制界面默认隐藏,以便用户能够专注于视频内容展示。
特性:
- 技术栈:使用GStreamer支持多种音视频文件格式。
- 功能集:调节播放速度、切换字幕与音轨、旋转画面、循环播放等。
- 限制:当前版本不支持DVD播放。
安装:
1 | sudo pacman -S showtime |
Clapper 视频播放器
Clapper 是一款专为GNOME桌面环境打造的媒体播放器,采用了最新的GTK4工具包和GStreamer引擎,并且利用OpenGL进行渲染。这款播放器以其简约的设计理念著称,旨在为用户提供一个既现代又易于使用的视频观看体验。
特性:
- 易用性:直观的用户界面,无需复杂的配置过程。
- 核心功能:基本但必要的视频播放功能,极简主义设计。
- 技术细节:包括Clapper库(负责播放逻辑)和ClapperGtk库(确保与GTK4的无缝整合)。
- 扩展性:支持GObject Introspection绑定,提供了Rust语言的绑定选项。
安装:
1 | sudo pacman -S clapper |
Decibels 音乐播放器
Decibels 是GNOME 48中引入的核心音频播放器,用于填补GNOME桌面环境中长期缺乏官方音频播放解决方案的空白。该项目从GNOME孵化器项目中晋升为核心应用程序。
特性:
- 技术栈:使用TypeScript编写,基于GTK4工具包和libadwaita。
- 简单功能:目前作为一款非常基础的音频播放器运作。
- 挑战:由于编程语言的选择,可能会面临短期内在一些Linux发行版中的集成障碍。
安装:
1 | sudo pacman -S decibels |
安装 GStreame 插件
为了进一步增强前述播放器支持的播放格式,安装相应的 GStreame 插件。
1 | sudo pacman -S lsp-plugins-gst |
参考文章
投稿后如何通过期刊统一邮箱与指定编辑A进行沟通
在学术投稿过程中,即使你的稿件已经分配给了特定的编辑(例如编辑 A),所有的邮件交流通常都是通过期刊提供的统一邮箱进行的。那么,这些发送到统一邮箱的邮件是如何被编辑 A 获取并处理的呢?本文将详细解释这一过程。
期刊统一邮箱的工作机制
统一邮箱作为前端接口
大多数期刊采用一个统一的投稿邮箱作为外部通信的接口。所有与作者、审稿人和编辑之间的交流都通过这个邮箱进行中转,但实际上它只是一个自动化系统的出口/入口,背后有一个完整的投稿管理系统支持(如 Editorial Manager、ScholarOne 等)。
稿件分配给编辑 A
当稿件进入系统后,主编会根据情况指派一位责任编辑(如编辑 A )。该编辑将在投稿系统中查看他/她负责的所有稿件,并能够访问相关的通信记录、审稿意见及作者回复等信息。
后续邮件交流流程
发送邮件至统一邮箱
当你回复了期刊提供的统一邮箱时,系统会自动识别出这封邮件是关于哪篇稿件的(基于邮件主题、稿件编号等信息)。随后,系统会将你的回复同步到投稿系统中,并通知编辑 A 有新的消息需要关注。
编辑 A 处理邮件
编辑 A 登录投稿系统后可以看到你的回复内容,而无需直接通过个人邮箱参与交流。这种方式确保了所有沟通都有记录可查,避免了因编辑更换或离职导致的信息丢失风险。
小贴士
- 在回复邮件时,请保留邮件标题中的稿件编号(如Manuscript ID: XYZ123),以帮助系统正确识别。
- 如果担心邮件未被收到,可以通过投稿系统检查是否有新的状态更新(如 Under Review, Required Reviews Completed 等)。
占位符使用指南
概述
在编程和软件开发领域,占位符是一种用于表示后续将被替换为特定值的符号或字符串。{}
作为最常见的占位符之一,广泛应用于多种编程语言和框架中,如Python、JavaScript等,尤其是在字符串格式化方面。
用途
{}
占位符主要用于以下场景:
- 字符串格式化:允许开发者在运行时动态地插入变量值。
- 国际化与本地化:简化文本翻译流程,便于不同语言环境下的内容替换。
- 数据绑定:在模板引擎中,用于数据展示前的临时占位。
使用方法
Python 示例
在Python中,{}
占位符常与str.format()
方法结合使用。
1 | name = "Alice" |
JavaScript 示例
在ES6及以上版本中,通过反引号创建的模板字符串可以使用${}
来替代传统的{}
占位符,实现类似的功能。
1 | let name = 'Bob'; |
注意事项
- 确保提供的参数数量与占位符匹配,避免出现格式错误。
- 根据具体的应用场景选择合适的占位符语法,以提高代码的可读性和维护性。
结论
{}
占位符提供了一种灵活且强大的方式来处理字符串中的动态数据。正确理解和使用它可以极大地增强代码的功能性和灵活性。
为文件添加统一的前缀
当管理大量的PDF电子书时,对于某一系列的书籍而言,统一添加上相应系列的前缀或后缀是一个非常好的习惯,这特别有利于检索。在Linux下,有几种方法可以方便的实现这个功能。
通用命令解决方案
1 | ls | xargs -I {} mv {} prefix_{} |
这段命令的工作原理是:首先列出当前目录下的所有文件名,然后对每个文件名执行mv命令,将其重命名为带有前缀的新名称。
注意事项
- 上面的例子不会处理隐藏文件(以
.
开头的文件)。如果需要包括隐藏文件,请相应地调整通配符或命令。 - 在执行这些命令之前,建议先备份重要数据,以防不测发生误操作。
- 如果你的文件名中包含空格或其他特殊字符,可能需要对上述命令进行适当的修改,例如使用find结合-print0和xargs -0来安全处理这些文件名。
使用 rename 命令(Perl版本)
对于大多数Linux发行版,你可以直接使用Perl版本的rename命令,它非常适合这类任务。
1 | rename 's/^/prefix_/' * |
使用 Shell 脚本
为当前目录下所有文件添加前缀
1 | for file in *; do |
注意事项
- 这个命令不会重命名目录本身。
- 如果有子目录,这个命令也不会进入子目录。
- 不会重命名隐藏文件(以 . 开头的文件),如需包括,请看进阶用法。
只为普通文件添加前缀(跳过目录)
1 | for file in *; do |
为指定类型文件添加前缀(如 .txt 文件)
1 | for file in *.txt; do |
递归为当前目录及其子目录中的文件添加前缀
1 | find . -type f | while read file; do |
添加时间戳作为前缀
1 | prefix=$(date +%Y%m%d) |
特别注意!
在进行大规模文件重命名之前,建议先备份重要数据,并考虑在一个小样本上测试你的命令。
瞬发中子和缓发中子
在核反应过程中,中子的释放可以分为两类:瞬发中子和缓发中子。它们的主要区别在于释放的时间尺度以及来源。
1. 瞬发中子 (Prompt Neutrons)
- 定义: 瞬发中子是指在核裂变发生后几乎立即释放出来的中子。
- 时间尺度: 它们通常在裂变发生后的 \(10^{-14}\) 秒到 \(10^{-4}\) 秒之间被释放。
- 特点:
- 数量较多,占裂变中子总数的绝大部分(约 99%)。
- 能量分布较广,从几 keV 到十几 MeV 不等。
- 对于维持链式反应至关重要,因为它们能够迅速引发新的裂变事件。
- 作用:
- 在核反应堆中,瞬发中子是维持链式反应的主要驱动力。
- 由于其快速释放特性,瞬发中子对反应堆的动力学行为影响显著。
2. 缓发中子 (Delayed Neutrons)
- 定义: 缓发中子是指由裂变产物(裂变碎片)经过一段时间衰变后释放出来的中子。
- 时间尺度: 它们的释放时间比瞬发中子长得多,通常在几毫秒到几十秒之间。
- 特点:
- 数量较少,仅占裂变中子总数的约 0.6%-1%(具体比例取决于裂变材料)。
- 能量较低,一般在 0.1 MeV 左右。
- 来源于特定的裂变产物(如某些放射性同位素),这些同位素在衰变过程中释放中子。
- 作用:
- 尽管数量较少,缓发中子在核反应堆控制中起着关键作用。
- 它们延长了链式反应的时间响应,使得操作人员有足够的时间调整控制棒等参数,从而避免失控。
- 缓发中子的存在大大提高了核反应堆的可控性。
3. 比较
特性 | 瞬发中子 | 缓发中子 |
---|---|---|
释放时间 | \(10^{-14}\) 秒到 \(10^{-4}\) 秒 | 几毫秒到几十秒 |
占比 | 约 99% | 约 0.6%-1% |
能量范围 | 几 keV 到十几 MeV | 0.1 MeV 左右 |
来源 | 直接来自核裂变过程 | 来自裂变产物的放射性衰变 |
对反应堆的影响 | 维持链式反应 | 提高反应堆的可控性 |
4. 总结
瞬发中子和缓发中子在核裂变过程中扮演着不同的角色。瞬发中子是链式反应的主要驱动力,而缓发中子虽然数量少,但对反应堆的稳定性和控制至关重要。理解这两者的特性和差异,对于核能工程和反应堆设计具有重要意义。
共振能区的散射截面
在共振能量范围内,中子与原子核发生的弹性散射是中子在反应堆中发生慢化的主要途径,超过百分之九十九的裂变中子都是快中子,所以这些快中子对共振能量范围内的能谱影响较小,故可以忽略。在简化计算中子输运方程中,弹性散射截面可以视为各向同性的,所以可以近似认为
\[\begin{equation}\label{eq:tanxing} \int_{E}^{E'}\sigma_{s,k}(E'\to E)dE=\sigma_{s,k}(E') \end{equation}\]
设原子核初始处于静止状态,中子的初始速度为\(v_0^\prime\), 碰后的速度大小为\(v\), 则对心正碰时中子传递给原子核的能量最多,也就是中子损失的能量最多。按对心正碰计算碰后的最小能量与碰前的能量之比,设中子质量为\(m\), 原子核质量为\(M\), 则弹性碰撞的质心速度为
\[\begin{equation}\label{eq:tanxing0} v_c=\frac{mv_0^\prime+0}{m+M} \end{equation}\]
对于中子而言,其碰后速度容易根据牛顿碰撞定律获得为
\[\begin{equation}\label{eq:tanxing1} v=2v_c-v_0^\prime=\frac{m-M}{m+M}v_0^\prime \end{equation}\]
于是可得,碰后和碰前的中子能量比为
\[\begin{equation}\label{eq:tanxing2} \frac{E}{E'}=\frac{v^2}{v_0^{\prime2}}=\left(\frac{m-M}{m+M}\right)^2 \end{equation}\]
令\(A_k=\frac{M}{m}\), 则\(\eqref{eq:tanxing2}\)可以进一步写为
\[\begin{equation}\label{eq:tanxing3} \frac{E}{E'}=\left(\frac{A_k-1}{A_k+1}\right)^2=\alpha_k \end{equation}\]
于是式\(\eqref{eq:tanxing}\)可以近似写为 \[\begin{equation}\label{eq:tanxing4} \sigma_{s,k}(E'\to E)(E'-E)=\sigma_{s,k}(E'\to E)(1-\alpha_k)E'=\sigma_{s,k}(E') \end{equation}\]
进一步可得 \[\begin{equation}\label{eq:tanxing5} \sigma_{s,k}(E'\to E)=\frac{\sigma_{s,k}(E')}{(1-\alpha_k)E'} \end{equation}\]
式\(\eqref{eq:tanxing5}\)正是共振能区的散射截面,此式的建立可以使中子输运方程得以进一步简化。