详情

全站展示位

Archlinux Install & ConfigArch Linux Installation Guide on HP Pavilion方寸之间

My computer details: Computer: HP Pavilion laptop CPU: Intel i5-8250U GPU: NVIDIA MX150 Pre-installation Verify the boot mode To verify if it is UE...。。。

推荐

分类目录归档:ENglISh |

技術文章及人生思考

心灵鸡汤

小故事、疯子和呆子

  一个心理学教授到疯人院参观,了解疯子的生活状态。一天下来,觉得这些人疯疯癫癫,行事出人意料,可算大开眼界。

  想不到准备返回时,发现自己的车胎被人下掉了。“一定是哪个疯子干的!教授这样愤愤地想道,动手拿备胎准备装上。

  事情严重了。下车胎的人居然将螺丝也都下掉。没有螺丝有备胎也上不去啊!

  教授一筹莫展。在他着急万分的时候,一个疯子蹦蹦跳跳地过来了,嘴里唱着不知名的欢乐歌曲。他发现了困境中的教授,停下来问发生了什么事。

  教授懒得理他,但出于礼貌还是告诉了他。

  疯子哈哈大笑说:“我有办法!他从每个轮胎上面下了一个螺丝,这样就拿到三个螺丝将备胎装了上去。

  教授惊奇感激之余,大为好奇:“请问你是怎么想到这个办法的?”

  疯子嘻嘻哈哈地笑道:“我是疯子,可我不是呆子啊!”

  其实,世上有许多的人,由于他们发现了工作中的乐趣,总会表现出与常人不一样的狂热,让人难以理解。许多人在笑话他们是疯子的时候,别人说不定还在笑他呆子呢。

  【小故事大道理】心得:做人呆呆,处事聪明,在中国尤其不失为一种上佳做人姿态。

列表展示

主站展示位

Arch Linux 升级系统提示签名无效方寸之间

今天升级系统的时候,竟然升级失败了,提示:error: PackageName: signature from

Arch Linux音响有杂音的解决办法方寸之间

Arch Linux 台式机(AMD)最近安装完新系统之后,在配置电脑的时候发现电脑的音响在不播放声音的时候会出现puta puta的声音。原因某些驱动模块会在声卡闲置时关闭它以节约用电。解决办法方法1:在/etc/modprobe.d目录下新建一个d…

PGP工作原理方寸之间

最近在浏览博客的时候发现博主的PGP Key页面,虽然之前知道是用于邮件通信加密的,但是具体原理及使用却不太清楚,所以找了时间查阅了相关资料,整理一下PGP加密的一些内容。

Linux的cron命令详解方寸之间

Cron是Linux一个很有用的工具,也是开发人员最喜欢的工具,因为它可以让你使用通用脚本和特定于任务的脚本在特定的时间段、日期和间隔自动运行命令。有了该描述,你可以想象系统管理员如何使用它来自动执行备份任务、目录清除、通知等。

CRLF与LF的差异方寸之间

大多数人应该对这两个并不陌生,但是你有深入了解过这两个概念吗?今天我们通过这篇来深入探讨一下,希望你读完这篇文章之后不会再感到困扰。 CRLF 与 LF:换行到底是什么? 要真正理解 CRLF 与 LF 换行的问题,我们需要复习一些排版历史。 人们使用字母、数字和符号来相互交流。但是计算机只能理解和处理数字。由于计算机上的文件由人类可读的字符串组成,因此我们需要一个允许我们在这两种格式之间来回转换的系统。 ASCII 标准就是这样的系统——它将 A 和 z 等字符映射到数字,弥合了人类语言和计算机语言之间的鸿沟。 有趣的是,ASCII 标准不仅仅适用于字母和数字等可见字符。某个子集是控制字符,也称为非打印字符。它们不用于渲染可见字符;相反,它们用于执行独特的操作,例如删除前一个字符或插入换行符。 LF 和 CR 就是两个这样的控制字符,它们都与文件中的行尾有关。它们的历史可以追溯到打字机时代,因此我将简要介绍其工作原理,以便了解为什么我们有两个不同的控制字符而不是一个。然后,我们将看看这如何影响开发人员的体验。 LF:换行 LF(Line Feed)代表“换行”,但你可能更熟悉术语换行符(转义序列 \n)。简单地说,这个字符代表一行文本的结束。在 Linux 和 Mac 上,这相当于新文本行的开始。这种区别很重要,因为 Windows 不遵循此约定。我们了解回车之后再讨论为什么不同。 CR:回车 CR(Carriage Return)代表回车(转义序列\r),将光标移动到当前行的开头。终端上的下载进度条就是通过CR实现的,通过使用回车符,你的终端可以通过将光标返回到当前行的开头并覆盖任何先前呈现的文本来将文本动画化。 打字机和回车(CR) 将一张纸固定在称为托架的机械卷上,为设备送入一张纸。每次击键时,打字机都会使用墨水在您的纸张上打印字母,将笔架向左移动以确保键入的下一个字母会出现在前一个字母的右侧。 当然,一旦当前行的空间用完,打字员就需要向下移动到纸张上的下一行。这是通过旋转滑架将纸张相对于打字机的“笔”向上移动一定距离来完成的。但是还需要重置托架(carriage),以便键入的下一个字符将与纸张的左侧边距对齐。换句话说,打字员需要某种方式将托架返回到其起始位置。而这正是回车的工作:一个金属杆连接到托架的左侧,当推动时,将托架返回到其起始位置。 电传打字机和回车换行(CRLF) 进入 20 世纪初,出现了电传打字机。基本上,它的工作方式与手动打字机相同,除了不是打印到物理纸上,而是通过传输器通过物理电线或无线电波将消息发送给接收方。 虽然打印方式不同,但是同样需要使用换行符 (LF) 和回车符 (CR),而且这些设备需要同时使用换行符 (LF) 和回车符 (CR) 以允许打字员从下一行文本的开头输入。毕竟手动打字机就是这样工作的,只是它没有任何“字符”的概念,因为它是一种机械操作的设备。 我们可以将 LF 和 CR 视为代表水平或垂直方向上的独立运动,而不是同时代表两者,这样更容易将其形象化。为了实现这个功能,电传打字机在一些最早的操作系统中设定了 CRLF 行尾的标准,比如流行的 MS-DOS。将CR 代表“回车”——CR 控制字符将打印头(“回车”)返回到第 0 列,而无需推进纸张。 LF 代表“换行”——LF 控制字符在不移动打印头的情况下将纸张前进一行。因此,如果您想将打印头返回到第 0 列(准备打印下一行)并推进纸张(以便在新纸上打印),则需要 CR 和 LF。 MS-DOS 使用 CRLF 的两个字符组合来表示文件中的行尾,现代 Windows 计算机一直使用 CRLF 作为行尾。同时,从一开始,Unix 就使用 LF 来表示行尾,为了一致性和简单性而放弃了 CRLF。 Apple 最初仅在 Mac Classic 上使用 CR,但最终在 OS X 上改用了 LF,与 Unix 一致。 虽然这似乎是操作系统之间的差异,但 CRLF 与 LF 的这个问题已经引起人们很长时间的头痛。其实按照今天的标准 CRLF 是多余的——同时使用回车和换行是假设你受到打字机的物理限制,你必须明确地向上移动你的纸,然后重置移动到左边距。但是对于电子文件,将换行符定义为隐式完成换行和回车的工作就足够了。换句话说,只要操作系统定义换行符表示下一行从开头开始而不是从某个任意的列偏移处开始,那么除了换行之外,我们不需要显式回车——一个符号可以完成两者的工作。 现在我们知道CRLF和CR是如何起源的,接下来我们来学习以下怎么处理相关的问题。 检查和转换行尾(在 Bash 中) 在 bash中,你可以使用带有 A 标志的 cat 查看特定文件的行尾: 如果文件使用 CRLF,您将在每行末尾看到字符串 ^M$,其中 ^M 表示回车,$ 表示换行。下面是一个示例: line one^M$ line two^M$ line three^M$ 如果文件使用 LF,那么您只会看到美元符号: line one$ line two$ line three$ ps: 你可以使用dos2unix命令行程序将文件从CRLF转换为LF。 Git中的行尾 诚然,这需要很多背景知识!但这是值得的,因为我们终于准备好讨论与 git 相关的行尾(以及如何在任何给定的代码库中解决 CRLF 与 LF 的问题)。 我们从前面可以知道CRLF和LF是不同的字符表示,因此缺少通用行结尾为 git 等版本控制软件带来了麻烦,这类软件依赖于非常精确的字符比较来确定文件自上次签入以来是否发生了变化。如果开发人员使用 Windows 并且另一个使用 Mac...

Build site with Franklin.jl方寸之间

Forward Franklin.jl is a simple, customisable static site generator oriented towards technical blogging and light, fast-loading pages. At first, I want to learning Julia with a small open source project, smaller and better. Then I search on github with topic#julia, and I find this tool. As I learned about it on its site, I think I can use this for my massively personal site(maybe it is beautiful, but too complex), and learning Julia when rebuilding my site. Therefore, I write this tutorial as my beginning. Last but not least, Franklin.jl has many features: Augmented markdown allowing definition of LaTeX-like commands, Easy inclusion of user-defined div-blocks, Maths rendered via KaTeX, code via highlight.js both can be pre-rendered, Can live-evaluate Julia code blocks, Live preview of modifications, Simple optimisation step to compress and pre-render the website, Simple publication step to deploy the website, Straightforward integration with Literate.jl. Setup Environment...

C++ inline关键字详解方寸之间

当程序执行函数调用指令时,CPU将存储该函数调用后指令的内存地址,将函数的参数复制到堆栈上,最后将控制权转移到指定的函数。然后,CPU执行函数代码,将函数返回值存储在预定义的内存位置/寄存器中,并将控制权返回给调用函数。如果函数的执行时间少于从调用者函数到被调用函数(被调用者)的切换时间,则这可能会成为开销。对于大型函数和/或执行复杂任务的函数,与函数运行所花费的时间相比,函数调用的开销通常微不足道。但是,对于小型的常用功能,进行函数调用所需的时间通常比实际执行函数代码所需的时间多得多。对于小功能,由于小功能的执行时间少于切换时间,因此会产生开销。 C ++提供了inline函数,以减少函数调用的开销。内联函数是在调用时在行中扩展的函数。调用内联函数时,将在内联函数调用时插入或替换内联函数的整个代码。替换由C ++编译器在编译时执行。如果内联函数很小,则可以提高效率。 inline函数看起来像函数,动作像函数,但是又比宏方便很多,调用inline函数省去了参数压栈、生成汇编语言的 CALL 调用、返回参数、执行 return 等过程所花费的额外开销。不过inline函数也有缺点:增加目标码的大小。因为inline函数的设计思想是对该函数的所有调用都用函数本身替换掉,和宏定义一样,但是比宏定义用起来要简单很多。而且inline的调试同样很难。 所以,inline函数对于函数体积很小,却又频繁调用这样的函数来说,可能比函数调用产生的代码更少,但是效率却不可同日而语。有一点需要注意的是:inline只是对编译器提出一个申请,并不是强制命令。编译器可以忽略内联请求。在以下情况下,编译器可能不会执行内联: 如果函数包含循环。(对于while,do-while) 如果函数包含静态变量。 如果函数是递归的。 如果函数的返回类型不是void,并且函数主体中不存在return语句。 如果函数包含switch或goto语句。 inline可以显示声明,也可以隐式声明。隐式声明方式是将函数定义在类定义之中(函数定义时没有inline关键字),编译器也会当作inline函数。另外,定义在类中的friend函数也会被隐式声明为inline函数。 显式声明的时候必须与函数定义体放在一起才能使函数成为内联,仅将inline 放在函数声明前面不起任何作用。定义函数内联的语法为: inline return-type function-name(parameters) { // function code } 此外,inline函数通常放在头文件中,因为大多数build environments在编译期进行inlining,编译器必须知道函数什么样子才能把函数调用替换成函数本体。 大多数virtual函数不能inlining:因为virtual知道运行时才知道调用哪个函数,而inline是在执行前进行替换。此外,编译器通常不会inlining_通过函数指针进行的调用,_下面是一个实例: inline void f() {...} // assume compilers are willing to inline calls to f void (*pf)() = f; // pf points to f ... f(); // this call will be inlined, because it's a

How to Create Linux Desktop Entry方寸之间

create a file named yourappname.desktop in /usr/share/applications/ directory or ~/.local/share/applications/. input the following lines: [Desktop Entry] Type=Application Terminal=false Exec=/path/to/app Name=app Comment=app comment Icon=/path/to/app/icon

快速查看github代码库中某次commit的记录方寸之间

本文介绍了如何快速查看 GitHub 代码库中某次 commit 的记录。通过本文介绍的方法,你可以快速查看 commit 的相关信息,包括提交时间、提交者、提交内容等。

[译]费曼技巧:最好的学习方式方寸之间

写在前面 最近读书的时候偶然发现了费曼技巧,所以查阅了一些资料,找到了这篇文章,写的还不错,就翻译了一下给大家看看,原文在这里。 其实费曼技巧原理很简单,当时了解到的时候,就感觉有点像我给自己的父母去解释一些新的概念的时候的思路:用简单的语言去解释一些较为复杂的概念,在这个思路的转换期间,你也就学会了这个概念。 如果你正在寻找一种方法来增强你的学习并变得更聪明,那么费曼技术可能就是绝对学习任何东西的最佳方法。 费曼技巧(Feynman Technique)有四个步骤: 选择想学习的概念 假装正在将其教给小孩子 找出解释中的空白(gaps,自己不理解的部分);回到原始资料,以更好地理解它。 查看并简化(可选) 如果你不学习,就表示停滞不前。但是,我们如何获得关于所学知识的反馈?以及我们如何去学习新的学科并找出我们现有知识中的空白? 两种知识 费曼了解了解某事和知道某事的名字之间的区别,这是他成功的最重要原因之一。我们大多数人专注于错误的知识类型。第一种知识集中在知道事物的名称,即所谓的事物名称。第二种知识重点是实际了解一些东西,即了解一些东西。 “说自己知道自己的想法但无法表达的人通常不知道自己的想法。” —莫蒂默·阿德勒 费曼技巧 第一步:教给孩子(Teach it to a child) 取出一张空白的纸。在顶部写下你要学习的主题。现在,把你要了解的所有知识写出来,就像在教给孩子一样。不是你的聪明成人朋友,而是12岁的孩子,而且他的词汇量和注意力跨度足以理解基本概念和关系。 事实证明,我们欺骗自己的方法之一就是我们使用了复杂的词汇和行话,以掩盖我们缺乏理解的事实。 当你以一种可以让孩子理解的简单语言从头到尾写下一个想法时,你会强迫自己更深入地理解该概念,并简化这些想法之间的关系和联系。其中一些可能很容易理解。在这些地方你可以清楚地了解该主题。在其他时候,你会很挣扎。这些是你在理解上有一些空白的地方。 第二步:检查(Review) 只有当你遇到知识上的空白时,即你忘记了重要的东西,无法解释它,或者只是在思考一些因素如何相互作用时,才能真正开始学习。 既然你已经知道自己陷于何处,那就回到原始资料重新学习它,直到可以用基本术语进行解释。当你可以不加专业术语地阐述自己的理解时,就可以表明自己真正理解它了。这是学习新知识所必需要的努力,如果你跳过这一步会导致“已经理解了“的错觉。 确定自身的理解范围还可以限制您可能犯的错误,并增加应用知识时获得成功的机会。 第三步:组织和简化(Organize and Simplify) 现在,你有了一组手工制作的笔记。检查它们,以确保你没有错误地从原始资料中借用任何专业术语。将它们整理成一个简单的解释,你可以说出来给自己听。如果阐述的不简单或听起来令人困惑,则表明你对该领域的理解仍需要一些努力。 如果你一遍又一遍地遵循这种方法去学习新的知识,最终将得到一个装订满各种主题页的活页夹。如果你每年花费一些时间整理这种活页夹,你会发现你已经学会了很多东西。 第四步:可选:传播(Transmit) 如果你真的想确定自己的理解力,那就把它说给某个人听(最好是对这门学科了解甚少的人,或者找到那个12岁的孩子!)。对你掌握的知识的最终考验是你将知识传达给他人的能力。 费曼技巧不仅是学习的绝妙方法,而且还是进入不同思维方式的窗口,可让你将想法分解并从头开始进行重构。你不仅可以加强自己的学习,而且还可以加强他们的学习。重要的是,以这种方式处理问题可以使你了解那些不知道他们自己在说什么的人。(请参阅贝茨模拟)Feynman的方法直观地认为,智力是成长的过程,与Carol Dweck的著作很好地吻合,后者很好地描述了固定和成长心态之间的差异。

Hugo+Github搭建个人博客网站方寸之间

安装Git 在这个页面下载最新版的Git。 然后按照wizard指引安装Git。 配置环境变量 graph LR a[control panel] --> b[System and Security] b[System and Security] --> c[System] c[System] --> d[Advanced system settings] d[Advanced system settings] --> e[ENvirment Variables..] e[ENvirment Variables..] --> f[select Path then Edit] f[select Path then Edit] --> g[add git path] g[add git path] --> Done! 创建GitHub账号 这个自行百度 or Google 安装Hugo 从Hugo Releases下载Hugo压缩包(记得注意系统位数是32 or 64)。 解压压缩包 配置环境变量(同上) 当然还有其他方法,这边就暂时不介绍了,有兴趣的同学可以参考这里. 配置Hugo 创建网站 使用hugo new site sitename命令来创建一个网站模板模板包含下面这些文件 ├── archetypes ├── content ├── data ├── layouts ├── static ├── themes └── config.toml 安装主题 在这个Hugo 主题页面找一个喜欢的主题下载并安装。 下载的应该是一个压缩包,把它解压到themes这个文件夹里面。 接下来就是配置网站了,在上面我们可以发现有一个名为config.toml的文件,所以我们只要编辑这个文件就可以配置我们的网站了。我们上面只是下载解压了那个主题文件夹,并没有把它加载到我们的创建的网站上,所以这个时候我们只要在config.toml这个文件里添加一行themes =

nohup命令使用方法方寸之间

操作系统中有三个常用的流: 0:标准输入流 stdin1:标准输出流 stdout2:标准错误流 stderr一般当我们用 > console.txt,实际是 1>console.txt的省略用法;< console.txt ,实际是 0 < console.txt的省略用法。 例子: nohup ./start-dishi.sh >output 2>&1 & 解释: 带&的命令行,即使terminal(终端)关闭,或者电脑死机程序依然运行(前提是你把程序递交到服务器上); 2>&1的意思是把标准错误(2)重定向到标准输出中(1),而标准输出又导入文件output里面,所以结果是标准错误和标准输出都导入文件output里面了。 至于为什么需要将标准错误重定向到标准输出的原因,那就归结为标准错误没有缓冲区,而stdout有。这就会导致 >output 2>output 文件output被两次打开,而stdout和stderr将会竞争覆盖,这肯定不是我门想要的. 这就是为什么有人会写成: nohup ./command.sh >output 2>output出错的原因了

友情链接方寸之间

欢迎交流联系,互换友链!

几个超级好用的UML工具方寸之间

废话不说, 直入主题 draw.io 这个是我一直在用的一个在线UML工具,超级好用。 支持多种导入格式: 添加图片注释,不超过 140 字(可选) 当然还支持导出,如果你想自定义一些导出参数,选择advanced选项进行导出前的配置: 添加图片注释,不超过 140 字(可选) 支持多种存储方式:Google Drive、Onedrive、Dropbox、GitHub、GitLab以及存储到本地。 添加图片注释,不超过 140 字(可选) 支持各种形状,不仅可以画电路图: 添加图片注释,不超过 140 字(可选) 还支持手绘风格的流程图,字体的话,可以通过更换字体格式为Comic Sans MS来实现手写体: 添加图片注释,不超过 140 字(可选) 最最最强大的是,现在还支持导入.VSDX文件来进行编辑,不过导出还有点问题,过一段时间更新了应该就解决这个bug了。 之前只有web版,最近好像又更新出了桌面版,网站一直在推荐,大致看了看介绍,感觉就是把web封装起来了,不过还没用过,不知道体验怎么样,毕竟web版已经满足我的所有需求了:) Excalidraw 这个之前写文章的时候经常用,功能比较简单,只支持简单的导入导出,而且还有一个最大的特点(其实也算缺点)只支持手绘风格,支持中文,但是中文字体不是手绘体,换句话说,就是只支持英文的手写体。 添加图片注释,不超过 140 字(可选) 如果要导入的话,支持.json格式以及.ezcalidraw格式的文件导入,虽然比较少,但是呢,其实使用这个也绘制不了太复杂的图,而且一般用这个也是即画即用、即用即画。即使你想之后再绘制或者更改,使用工具自带的.ezcalidraw这个格式也够用了。支持导出的格式也只支持PNG、SVG,哦,还支持剪切板导出,如果你想,还能加个官方水印。 导出界面 剪切板导出效果 比较惊喜的是,还支持链接共享,不过不知道链接有效期是多久,个人猜测应该是永久有效的吧,毕竟是加密上传到服务器的。 链接分享界面 下面的链接是我测试的用例,有兴趣的童鞋可以点下看看是不是还在: 太臃肿了!!!不适合我这种追求极简生活的人。

Make a TODO robot with Github Actions方寸之间

What's Github Actions Github Actions is a CI(continuous integration) and CD(continuous deployment) service that help you automate your software development workflows in the same place you store code and collaborate on pull requests and issues. It was launched in October 2018 and was officially available to all users in November 2019. With Github Actions you can write individual tasks, called actions, and combine them to create a custom workflow. Workflows are custom automated processes that you can set up in your repository to build, test, package, release, or deploy any code project on GitHub. You can create workflows using actions defined in your repository, open source actions in a public repository on GitHub, or a published Docker container image. But workflows in forked repositories don't run by default. If you don't want to create your actions by yourself, you can discover actions in the GitHub Marketplace, also...

iwd命令浅析方寸之间

介绍 iNet Wireless Daemon(iwd) 项目旨在为基于 Linux 的设备提供全面的Wi-F

How to prettify git log output方寸之间

4 formats git log --color --date=format:'%Y-%m-%d %H:%M

博客寄语:

    There are two wolves who are always fighting. One is darkness and despair. The other is light and hope. The question is... which wolf wins?

实时播报:

博客号-学习成长

相信每一分耕耘都有每一分收获,致力帮助博客主所创作的博客能更快的被收录! 如果有其它需求,可联系下方邮箱。