Gnome 应用启动缓慢

先看环境:

$ neofetch
                   -`                    yychi@MiBook-Air 
                  .o+`                   ---------------- 
                 `ooo/                   OS: Arch Linux x86_64 
                `+oooo:                  Host: TM1604 XMAKB3M0P0202 
               `+oooooo:                 Kernel: 5.5.13-arch2-1 
               -+oooooo+:                Uptime: 5 mins 
             `/:-:++oooo+:               Packages: 1153 (pacman) 
            `/++++/+++++++:              Shell: zsh 5.8 
           `/++++++++++++++:             Resolution: 1920x1080 
          `/+++ooooooooooooo/`           WM: i3 
         ./ooosssso++osssssso+`          Theme: Adwaita [GTK2] 
        .oossssso-````/ossssss+`         Icons: Adwaita [GTK2] 
       -osssssso.      :ssssssso.        Terminal: urxvt 
      :osssssss/        osssso+++.       Terminal Font: DejaVu Sans Mono for Powerline 
     /ossssssss/        +ssssooo/-       CPU: Intel i5-7200U (4) @ 3.100GHz 
   `/ossssso+/:-        -:/+osssso+-     GPU: NVIDIA GeForce MX150 
  `+sso+:-`                 `.-/+oso:    GPU: Intel HD Graphics 620 
 `++:.                           `-/+/   Memory: 1608MiB / 7881MiB 
 .`                                 `/

再看问题:Gnome 系软件(gedit, baobab, nautilus 等)启动龟速,通常需要等待 10-30s.

Metapost 学习笔记

想必你也有过这样的疑问,中学数学书上的那些精美的作图是如何画出来的?一直以来,我都想学习一门绘图语言,只是久久未能行动 orz…

闲话少叙,开始学习!

声音的消亡

近日整理以前的文章,发现一个事实:我越来越不会说话,越来越不会表达,越来越没有自己的思想。

以前的我每隔几天都会发表空间说说,即使大部分属于“少年不识愁滋味,为赋新词强说愁”。但好歹能时常发表自己的观点、见解和感悟。我现在看起自己以前写过的东西,不论正确与否,起码可以通过写的文字窥见当时的自己,了解当时的想法,经过时空的转换,这些想法现在品起来十分有味道、并且非常有乐趣。

转义字符到底是什么

转义字符到底是啥?

实不相瞒我就是因为不知道才写下这篇文章,不,准确的说是这篇笔记 orz,既然是笔记,无所谓抄不抄了。每次说到转义字符,多少有点模糊,所以不如记下这篇笔记,以后忘了直接翻出来看看,复习起来要快一些。

小内存机器的自我救赎

在此记录一下我自己用过的非常棒的小软件。

下载

  • aria2c: 命令行下载工具,支持下载种子、磁力等。有 RPC 模式,配合 WebUI 使用更佳。参考简介

多媒体

  • mpv: 命令行多媒体播放器,拥有较强的扩展性和自定义的空间,另外我自己体验上来看比 mplayer 要流畅,mplayer 在我的机子上有丢帧,而 mpv 无明显丢帧。
  • mpd/mpc: 音乐播放,没有界面。mpd 作为服务端,mpc 作为客户端,占用内存非常低。

文档

  • zathura: A vim-like pdf reader. vim 系快捷键,小而轻,但功能也相对较少。

截图

  • flameshot: gnome-screenshot 的替代品,支持截图后标记,复制到剪贴板;平台:Linux
    • flameshot gui: 直接打开截屏功能,更多参考flameshot -h.
  • peek: 小巧易用的录屏软件,支持录制 gif, mp4, webm 等格式。

效率

  • xpad: 小而轻的桌面便签。
  • Taskwarrior: A command-line todo manager,不要因为它的强大而忘记使用它的初衷。
  • ranger: File manager in terminal,三页分栏显示文件树,支持文件预览(需安装对应依赖),支持自定义命令,书签等。
  • rofi: dmenu 替代品,窗口切换,应用启动器,简约大方,纯文本构成。
  • Everything: windows 平台,免费且简单易用的全局搜索器,该有的都有。
  • QTTabBar: 众所周知,windows 文件管理器十分难用,尤其是不支持 tab,所以,它来了。

学习

  • GoldenDict: 离线词典,支持在线页面查词,接有道,维基等,可以看做是 Linux 上的 Eudic,支持多种离线字典格式,支持自定义快捷键查找剪贴板中的单词。

VSCode 插件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$ code --list-extensions
bungcip.better-toml
tomoki1207.pdf
huacnlee.autocorrect                   # 修正中英混合排版的问题
huizhou.githd                          # git history, blame on single file
mhutchie.git-graph                     # git graph
KylinIDETeam.cmake-intellisence
llvm-vs-code-extensions.vscode-clangd  # c++ dev
twxs.cmake                             # cmake syntax support
vadimcn.vscode-lldb                    # c++ debug
vscodevim.vim

See: https://zhuanlan.zhihu.com/p/566365173.

Brief Introduction to Shell Script

This article is mainly refered to “The Linux Command Line”1. I just take some most important things out of the book.

Expansion

Each time you type a command line and press the Enter key, bash performs several processes upon the text before it carries out your command. Just look an example:

1
2
[me@linuxbox ~]$ echo *
Desktop Documents ls-output.txt Music Pictures Public Templates Videos

Why not display an asterisk? That’s expansion! * expands to all files in current directory.

Nueral Network Learning Notes

Hello here.

CNN

Conv Layer

Conv Layer is usually decreasing the input size, i.e., the output size may less or equal than input.

  • take a volume as input: height x weight x depth, e.g., 32x32x3. Typically think an image having three channels: R, G, B.
  • a filter has the same depth as the input volume, e.g., 5x5x3 (since the filter always has a same depth as input vloume, the depth of the filter is sometimes omitted).
  • each filter convolving with the input will produce an activation map, two filters will produce two, etc.

The result of the convolution at each location is just a scalar number (the result of taking a dot product between the filter and a small chunk of the image, i.e., $5\times 5 \times 3 = 75$-dimensional dot product + bias: $w^\top x + b$), which totally yields a 2D matrix (called activation map) as the filter sliding over the image. For example, 32x32x3 image convolved by 5x5x3 filter will yield a 28x28 activation map.

服务端开发预备知识

操作系统

摘自《程序员面试白皮书》

进程 vs.线程

进程(process)与线程(thread)最大的区别是进程拥有自己的地址空间,某进程内的线程对于其他的进程不可见,即进程 A 不能通过传地址的方式直接读写进程 B 的存储区域。进程之间的通信需要通过进程间通信(Inter-process communication, IPC)。与之相对的,同一进程的各线程间可以直接通过传递地址或全局变量的方式传递信息。

设计模式学习笔记

如无特殊声明:本文所有 UML 图均出自《图说设计模式》。在此特别鸣谢!

Singleton

单例模式解决了全局变量的问题,全局只能创建一个实例,保证任何请求该实例的调用均返回同一个对象,保证不会被意外析构。