星外之神 Blog

天下难事,必作于易;天下大事,必作于细

USB连接的SSD设备使用trim命令

为USB桥接的NVMe设备添加trim支持

前言 本文主要讨论USB连接的SSD设备使用trim命令的方法 trim命令是用于清除闪存设备上的无效数据的命令。trim可以将文件系统中的删除操作通知给闪存设备,以便闪存设备可以在后台擦除删除的数据。这样可以提高闪存设备的写入性能,也可以减小写放大,延长闪存设备的寿命。 对于USB桥接的NVMe设备,trim命令并不可用,然而,很多硬盘盒都支持类似的命令(unmap),可以通...

数据备份的方法讨论

Linux下的备份方式小结

本文封面背景图采用CC-BY-SA-4.0协议,来源于Wikipedia 前言 本文主要讨论Linux下的数据备份方式 rsync rsync是一个远程数据同步工具,可通过ssh或rsh传输数据,支持匿名传输,速度快,安全性高。 可按文件大小、时间等进行过滤 可使用include和exclude文件进行过滤 可使用--delete参数删除目标端没有的文...

Arch Linux安全启动的终极方案

共享分区下Ubuntu引导的Arch Linux系统

前言 Arch Linux是一个非常优秀的Linux发行版,但是它并不支持安全启动。虽然笔者的笔记本的安全启动长期处于关闭状态,但是笔者还是想把自己的移动硬盘打造成随处可用的移动系统,这就需要支持不依赖于特定设备注册是安全启动。因此,笔者就想到了一个办法,就是在Arch Linux上安装Ubuntu,然后使用Ubuntu的grub引导来引导Arch Linux,并直接使用Ubuntu的内核...

在本地Linux环境使用Gaussian

计算化学软件使用

在计算化学中,Gaussian是一款十分常用的软件,然而,笔者之前在本地Linux下使用它时,却一直出现段错误的报错提示,无法使用。 由于段错误一般是程序设计缺陷导致的,笔者之前一直以为Gaussian的Linux版程序有问题。 Gaussian的文件架构设计很容易让人联想到这点:Gaussian在Linux下的二进制文件具有.exe的后缀名,但是却真的是elf格式;都2023年了G...

使用Ventoy直接引导本地安装的Linux

高级Linux安装及引导方式

前言 Ventoy是一个多系统启动U盘解决方案。笔者首次接触Ventoy是软件开发初期Ventoy的作者在deepin论坛宣传,当时即感受到了这款软件的诸多强大之处: 不用像Rufus、Unetbootin等工具一样需要在更换U盘中的镜像时格式化,只需要重新拷贝镜像文件 支持在U盘中存放多个镜像,在启动时可自行选择 支持更多用于存放镜像的文件系统,如exfat、ntfs、x...

Vala中的类型系统简介

Vala语言知识介绍

Vala语言的类型系统较为多样,可能会让初学者感到困惑,但其实部分内容只是为了减小性能开销,表现上并没有太多区别(对于初学者只用struct和继承自GLib.Object的class其实就行了)。笔者在此对Vala中的类型系统进行简单介绍,可以用来了解那些不常用的类在什么时候有用QwQ。 Vala中的类型 继承自GLib.Object的类 非对象类 紧凑类 不透明紧凑类...

Vala中的所有权简介

Vala语言知识介绍

与Rust等语言类似,Vala中也有所有权的概念。Vala主要采用自动的引用计数进行内存管理,对于支持引用计数的类,需要关注其中有没有循环引用,如果存在循环引用,则需要手动使用week关键字标记,打破循环。Vala中还存在着一些没有在GObject类型系统中注册的紧凑类,这些类型往往不支持引用计数,Vala同样利用所有权与生命周期来管理它们。 本文主要介绍Vala中的所有权操作方式及其意义...

GUI版GtkPacker开发日记(一)

开发概要简记

说明 本项目是笔者的第一个GTK项目,这篇开发日志亦为笔者的学习日志。 大致设计 由于笔者预期到该项目的界面较为简单,而xml格式的UI描述文件的布局工具Glade已经停止更新,不再会支持GTK4,手动编写xml格式的UI描述文件的语法又不太友好,再加上Vala语言实际上相对简洁,笔者决定直接用Vala构建程序的图形用户界面。 然而,笔者在开发没多久便开始后悔没有采用UI描述文件了…...

GTK/Vala开发基础教程

基础教程

本文采用CC-BY-SA-3.0协议发布,但本文代码采用LGPL v2.1+协议公开 前言 本文假设读者已经掌握Vala语言的基本语法。如果对Vala的基本语法仍然不熟悉,推荐首先阅读Vala语言官方教程;如果在学习Vala语言前有C#、Java、C、C++等其他语言的开发经验,也可以阅读面向C#程序员的Vala教程或者面向Java程序员的Vala教程,阅读笔者的相关介绍性博客对快速了解...

使用Meson自动获取并写入软件版本信息

Meson构建工具使用技巧

Meson是GNOME社区目前主要使用的构建工具,也是Vala语言的推荐构建工具。Meson采用了类似于Python的语法,很多配置相比其他构建工具更简洁。 本文简要介绍在Meson作为构建系统的Vala程序中如何获取程序的版本号。 原理 对于C/C++这样预处理功能完善的语言,可以直接在Meson中传递-D编译参数定义含有版本信息的宏,进而方便地在程序中获取版本信息。 然而,Val...

FFmpeg的基础使用

FFmpeg常用功能使用回顾

简介 与笔者在上一篇博客中介绍的内容类似,FFmpeg也是一款开源的媒体处理工具。上一篇博客介绍的GhostScript主要用于处理PDF文件,而Imagemagick主要用于处理各种图片文件。而FFmpeg也可以对图片进行处理与转化,但它同时还具有视频与音频处理的强大功能。有不少视频播放器都以FFmpeg作为后端(例如VLC,以及一大堆国产的乱七糟八的播放器),也有大量的录屏软件使用FF...

开源PDF基础处理工具的使用

PDF处理工具推荐

PDF是一种常见的媒体格式,我们常常会有PDF处理的相关需求。Adobe的工具对PDF处理提供了大量的支持,但是因为其缺乏跨平台性,不能很好地在Linux下使用。事实上,有大量跨平台的开源软件具有强大PDF处理功能,本质上国产的一大堆付费的PDF处理工具也基本上都基于这些开源软件。笔者在此介绍部分使用开源命令行工具方便地处理PDF的方法。 相关软件及环境 本博客主要使用GhostScri...

探索Vala语言

Vala语言学习心得

未经特殊说明,本文中的所有代码均采用LGPL v2.1+协议公开 简介 Vala语言是一门专门为GObject对象设计的编程语言,语法类似于C#。Vala并没有自己的运行时,而是在编译时由Vala编译器将Vala源代码转化为C源代码,仅仅依赖C语言的基本特性,实现了现代语言的类型推断、lambda、class等各种高级功能。通常来说,基础的Vala程序的依赖仅有GLib和系统的C语言库,...

在Windows下打包GTK程序

一个简单的程序打包脚本

未经特殊说明,本文中包括的所有代码均采用LGPL v2.1+协议公开 背景 GTK是一个强大的部件工具库,可以用于开发图形用户界面程序。相比Qt、wxWidget等与C++语言深度绑定的部件工具库,GTK采用了纯C语言进行开发。而且,为了减轻开发的工作量,GNOME社区还为GObject对象特别开发了一种语法类似C#的语言——Vala,Vala背靠强大的GLib与GTK库,又拥有较为现代...

工艺化学

Wikipedia条目推荐

工艺化学 工艺化学是开发与优化合成方案和工业生产流程的药物化学分支,用于制造药物开发阶段所需要的化合物。其研究重点与主要负责在药物研究早期阶段中设计并较小规模地合成分子的药物化学有所区别。 一般来说,药物化学家主要专注于利用便于调节的化学构件中快速合成大量化合物(通常用于SAR研究)。而药物发现化学中使用的反应库一般较小(例如,Buchwald-Hartwig 胺化、Suzuki 偶联和...

在不借助oh-my-zsh的前提下进行Zsh配置

Windows(MSYS2)或Arch Linux平台下Zsh的配置

前言 Linux下最常用的Bash发布于1989年,在此后的发展中并没有引入太多么革命性的功能,已经是一款十分古老的Unix Shell了。虽然它仍然是众Linux发行版预装最多的Shell,但是它的扩展性也早已不如其他的Shell。 Zsh、Fish甚至从Windows下发展而来的PowerShell相较Bash而言都极具扩展性。其中,只有Zsh能够很好地兼容Bash的语法,所以,...

记录从Manjaro直接切换到Arch Linux的过程

折腾日志

说明 本文写于该切换完整完成后,并非实时更新,内容可能不能精确反映当时操作情况 更改镜像源 首先需要把/ect/pacman.d/mirrorlist改成Arch Linux的源,在中国可以直接改成: Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch Server = https://mi...

Python版植物大战僵尸

个人Python练习项目

Python版植物大战僵尸 植物大战僵尸游戏的Python实现,基于marblexu的项目进行创作,部分代码也整合自callmebg的项目 本项目为个人python语言学习的练习项目,仅供个人学习和研究使用,不得用于其他用途。如果这个游戏侵犯了版权,请联系我删除 已有的植物:向日葵,豌豆射手,坚果墙,寒冰射手,樱桃炸弹,双发射手,三线射手,大嘴花,小喷菇,土豆雷,地刺,胆小菇...

化学中的空间位阻

各种空间位阻效应的归纳

本文主要由我参与Wikipedia条目:应变 (化学) 的时候作的一些草稿整理而来。该条目在我编辑之前语序混乱,结构颠倒,内容缺失,且有非常多的知识性错误,应该是在2013年由一位不太了解化学的台湾朋友使用当时拙劣的机翻技术创建的。由于原文表述过于混乱,编辑改进十分困难,故我将在本文中持续更新我的编辑过程,很多编辑中力不从心的地方也欢迎读者提供建议。 2022.01.29更新:我...

Python多进程与Windows下exe封装的踩坑实践

multiprocessing、pyinstaller、nuitka的尝试

本文中的代码均采用GPL v3协议发布 前言 由于现在电脑CPU的单核性能提升已经遇到瓶颈,最近AMD与Intel的处理器也通过堆核来大幅提高性能,主流处理器早已达到了达到了8核16线程。因此,合理利用好多核性能对程序运行速度的提升非常重要。最近我打算简单体验一下Python的multiprocessing库中的多进程功能~~~ 在摸鱼过程中,顺便学习了一下两个打包工具——nuit...

硫脲有机催化

Wikipedia条目推荐

在有机催化领域,(硫)脲有机催化指利用脲或硫脲来加快有机反应速率或控制立体化学。与经典的催化方法不同,这种催化方法的利用的是底物和(硫)脲之间形成的氢键作用(可以认为发生“部分质子化”)。(硫)脲有机催化的应用包括立体选择性应用与非立体选择性应用1 历史 Kelly、Etter、Jorgensen、Hine、Curran、Göbel和De Mendoza(参见下文引用的参考文献)在非...

四氟化硫氟化法

Wikipedia条目推荐

四氟化硫氟化法是用于将含氧或含其他卤素的有机化合物转化为有机氟化物的方法。1 四氟化硫是一种气态氟化试剂,可以氟化羰基、醇、其他卤素等多种官能团。羰基化合物通常会被转化为相同氧化态的有机氟化物:例如羧酸氟化生成三氟甲基化合物,醛酮则生成偕二氟化物。该反应适用范围较广,是少数可在相对温和的条件下即可在特定位点直接氟化的方法之一。 醇与其他卤化物也可以用SF4进行氟化。但是,SF4在...

尿素-过氧化氢加合物

Wikipedia条目推荐

这是2022年我创建的第一个Wikipedia条目~~~ 虽然只是一个简单的试剂介绍而已…… 尿素-过氧化氢加合物(也可称为过氧化氢-尿素加合物或UHP )是由等当量的过氧化氢和尿素加合形成的固体。该化合物是一种白色晶体,溶于水后可以产生游离的过氧化氢。尿素-过氧化氢加合物在常温下为固体,且不含无水,在作氧化剂时比液态双氧水的稳定性和可靠性更高。在牙科领域,尿素-过氧化氢加合物也可...

博客辅助工具

用python实现自动生成markdown表格、自动添加化学式下标及自动处理插入图片格式等操作

在2021年的最后一天写一篇博客吧~ 本文中的代码均采用GPL v3协议发布 背景 markdown是一种轻量级的文本标记语言,语法较原始的HTML简单很多,但这并不意味着用markdown写博客就非常轻松。markdown语言中,插入表格或插入图片的格式输入虽然已经大幅简化,但仍然较为麻烦。而且,我的博客的表格中可能会出现带有上下标的化学式,但markdown标记语言本身并不支持上...

在Manjaro下使用VESTA查看或编辑晶体结构

软件推荐

简介 VESTA是一款3D可视化程序,可用于查看或编辑结构模型、体积数据(如电子/核密度)和晶体结构。可以替代Crystal Maker使用。VESTA是一款免费的闭源软件。 与Crystal Maker不同的是,VESTA是一款跨平台软件,除了Windows外,还支持Mac与Linux: 在Manjaro上安装 背景 官方只给出了.bz2格式的压缩包和.rpm安装包,并...

在Manjaro下配置人脸识别

Howdy安装及配置过程

在Manjro上配置人脸识别的缘由 我的系统登录密码设置得太长了,而且各种字母数字特殊符号,输入起来很麻烦 想到Windows系统下有Windows Hello™,由此,我决定用人脸识别来解决这个问题 就是找Linux下Windows Hello™的替代品( 过程 我的设备是联想小新Pro 16 集显版,系统环境是Manjaro KDE 由于硬件太新,主线内核中没有我的无线网卡(RT...

化学竞赛中所需的数据库资源推荐

拓展资料汇总

我为什么要写一篇推荐数据库资源的博客 虽然裴坚老师一再强调: 不要记数据、不要记数据、不要记数据…… 然鹅,我个人认为,只要避免了僵化地套用数据,其实在大脑中形成一套半定量的性质比较体系对选择性的判断还是很有帮助的。真题要求你见过的经典物质的半定量性质比较也不是不可能 而且,第34届国初的第8题大家也都看到了对吧……本来是一道相对简单的题,但我身边就有很多同学没有得到满分(还...

过渡态理论

Wikipedia条目推荐

过渡态理论 过渡状态理论 (Transition state theory,TST)解释基元化学反应的反应速率。该理论假设在反应物和活化的过渡态络合物之间有一种特殊的化学平衡(准平衡)。1 TST最初用于定性地解释化学反应是怎么发生的。TST就其计算绝对反应速率常数的本来目的来说不算十分成功。因为,绝对反应速率常数的计算需要精确的知道势能面。2但是,如果一个特定的反应的速率常数可以用...

科廷–哈米特定律

Wikipedia条目推荐

科廷–哈米特定律 科廷–哈米特定律(Curtin–Hammett principle),是由大卫·亚罗·科廷和路易斯·普朗克·哈米特提出的化学动力学上的一个定律。该定律表明,对于一个反应而言,若其反应中间体或反应物具有一对迅速转换的异构体(通常情况下为构象异构),则由异构体产生的不可逆产物(即不能通过平衡移动反应变回该异构体)的比例将同时取决于过渡态转变为产物的自由能以及这两种异构体之...

互变异构热力学倾向专题归纳

个人专题总结

概述 互变异构是某些有机化合物的结构在两种官能团异构体间产生平衡互相转换的现象。一般都涉及氢原子(或质子)的转移,以及单键向双键的转变。本文旨在对互变异构的热力学平衡倾向的一般规律做一个总结。 常见的互变异构举例 可见,一般的互变异构类型可以分为质子转移和价互变。 倾向分析 价互变 对于以周环反应为基础的价互变的热力学倾向较为明显,一般是由键能(如形成羰基、形成sig...