-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.json
1 lines (1 loc) · 57.6 KB
/
index.json
1
[{"categories":null,"content":" 罗伯特梁的网站 - 一个主要关于 FPGA 硬件设计和计算机知识的学习博客。 ","date":"2020-08-05","objectID":"/links/:0:0","tags":null,"title":"友情链接","uri":"/links/"},{"categories":["产品测评"],"content":"联想 ThinkPad 出品的第二代小红点键盘已经问世有几个月了,但是由于它的小众性,网上能够找到的测评并不多。作为一个粉丝,我实际买了一块回来使用。到目前为止,体验还是很不错的。 一直以来,ThinkPad 的键盘都被认为是笔记本电脑中的最强者。ThinkPad 的键盘之强,不仅是在于它精心设计的布局、优秀的手感,更是在于那个小红点的加成。这也是为什么,联想会专门为了粉丝们,创造外接的 ThinkPad 小红点键盘,甚至如今还出品了第二代。 ","date":"2020-08-03","objectID":"/2020/08/thinkpad-keyboard-ii/:0:0","tags":["ThinkPad","小红点","指点杆","TrackPoint","小红盘"],"title":"实际体验第二代小红点键盘","uri":"/2020/08/thinkpad-keyboard-ii/"},{"categories":["产品测评"],"content":"总览 PROS 小巧轻便,容易携带 ThinkPad 键盘布局,PrtSc、Delete 等键可以很方便地盲按 与 ThinkPad 笔记本电脑类似的优秀按键体验 有一个可以自己指定功能的特殊按键(ThinkPad 电脑也有) USB 无线连接与蓝牙连接两种模式 适用于电脑(Windows,macOS,Linux)和 Android 有小红点 CONS 价格昂贵 没有背光、掌托等 Fn 与 Ctrl 的位置和其它键盘相比是反的 有小红点(是的,这对于一部分人而言也是缺点) 颜值 一贯的成熟商务风。 更多图片,请自行淘宝或京东搜索「ThinkPad 小红点键盘 第二代」,照片与实物很符合。 ","date":"2020-08-03","objectID":"/2020/08/thinkpad-keyboard-ii/:1:0","tags":["ThinkPad","小红点","指点杆","TrackPoint","小红盘"],"title":"实际体验第二代小红点键盘","uri":"/2020/08/thinkpad-keyboard-ii/"},{"categories":["产品测评"],"content":"相较第一代的提升 作为小红点的重度用户,ThinkPad 的第一代键盘我是全部体验过的。ThinkPad 的第一代小红点键盘共有两款,一款是有线键盘,它只是一个拥有 ThinkPad 键盘布局和小红点的外接键盘,售价 300 多人民币;一款是蓝牙键盘,支持连接三个不同设备并且切换,售价 800 多人民币。(据我观察,由于这一产品的小众性,它们的价格波动很大,但均长期处于严重溢价的状态)我曾经买了第一代的蓝牙键盘,发现和 Arch Linux 系统一起使用不太方便后,退货换了第一代的有线键盘,算是两款都体验过了。在我的实际体验中,第一代小红点键盘有许多非常影响使用体验的缺点: 首先就是严重的溢价了。第一代的蓝牙键盘,最贵的时候能比最便宜的时候价格高出 500 多元,真的是太夸张了。这种价格让太多非粉丝望而却步了。 第一代蓝牙键盘虽然是无线的,使用很方便,但是蓝牙其实是不太可靠的。例如,当我使用 Arch Linux 登录账户时,此时蓝牙尚不会自动连接,键盘也无法使用,可是没有键盘,我也无法输入密码来登录系统。 第一代蓝牙键盘的三个蓝牙切换键的位置,取代了原本非常常用的 Home、End、Insert 三个键,严重影响效率。 第一代有线键盘很长一段时间都没有好用的 Windows 驱动,它的独立三键中的中键要么设置为鼠标中键,要么设置为滚动,居然不能同时起到两者的作用(还好 Linux 上的开源驱动可以实现同时起两者的作用)。只有当第二代小红点键盘出来后一段时间,我的 Windows 才自动更新了最新版的驱动,能够实现中键的全部功能了。(当然,也可能是我没有主动上联想官网找到正确的驱动) 第二代可以说是,完全克服了第一代的这些缺点。 价格姑且不谈,小红点键盘的价格对于非粉丝来说肯定是抢钱一般。 首先,第二代小红点键盘的手感更接近 ThinkPad 笔记本电脑了。我的第二代键盘,明显比第一代的回弹力更强,按键按起来感觉“更硬了”。尤其是这个三键,变成了和 ThinkPad 笔记本一样的扁平式设计,手感非常好。 第一代的三键(左)与第二代的三键(右) 其次,第二代小红点键盘有了 CapsLock 和 FnLock 的指示灯,这个贴心的小设计还是很提升使用体验的。 两个指示灯 第三,第二代小红点键盘目前是无线和蓝牙双模,实在觉得蓝牙不舒服的话,还可以使用 USB 无线接收器。接收器附在了键盘后面的充电口旁边。 无线接收器的位置 第四,第二代小红点右上角的几个键,不再被蓝牙切换键占据。现在,蓝牙的切换键,以及其它蓝牙相关按键,被移动到了键盘的后侧面。 熟悉的右上角按键 几个功能按键 更多功能按键 第五,第二代小红点键盘配备了功能十分完善的驱动(不过你得主动上官网找到并且下载安装)。这个驱动是比第一代的驱动还要强大很多的。 比如,你可以使用小红点+中键进行左右和上下的滚动,并且在滚动时,鼠标光标会有相关的变化(由于鼠标的变化难以截图,这里就不展示了)。 再比如,切换 CapsLock 状态时,屏幕上会有相关提示: 切换 CapsLock 的提示 再比如,你现在可以设置 Favorite 键,也就是与 F12 键在一起的那个功能键,的功能了。 设置面板 第六,第二代小红点键盘的充电口,是 USB Type-C 口了。愿 Type-C 早日一统天下! 总的来说,联想还是很认真地在制作这个“第二代”的。它的升级,比起 ThinkPad X1 系列 2020 版相对于 2019 版的升级来说,要更加丰富、用心。 ","date":"2020-08-03","objectID":"/2020/08/thinkpad-keyboard-ii/:2:0","tags":["ThinkPad","小红点","指点杆","TrackPoint","小红盘"],"title":"实际体验第二代小红点键盘","uri":"/2020/08/thinkpad-keyboard-ii/"},{"categories":["产品测评"],"content":"一贯传承的优点 当然,第一代小红点键盘也并不是一无是处。第一代小红点键盘拥有的优点,第二代小红点键盘同样传承了下来。 首先,相较于第一代的有线版来说,键盘布局仍然是原汁原味。 其次,它纤薄便携的外观仍然没有改变。 第三,这个支架的设计没有改变。这个支架让打字舒服了不少。 我很喜欢这个支架 ","date":"2020-08-03","objectID":"/2020/08/thinkpad-keyboard-ii/:3:0","tags":["ThinkPad","小红点","指点杆","TrackPoint","小红盘"],"title":"实际体验第二代小红点键盘","uri":"/2020/08/thinkpad-keyboard-ii/"},{"categories":["产品测评"],"content":"进一步升级——Soft Rim 虽然我去年(2019 年)才开始使用 ThinkPad 和小红点(学名是指点杆或 TrackPoint,就是 G、H 和 B 三个键之间的那个红点),但是我已经从网上了解到,小红点的使用体验是在不断变差的。不止小红点的高度不断变矮,它的款式也减少了:从原本的三选一,到现在配件只能选择凸小红盘。 但是,粉丝们从来没有停止过自己通过 DIY 来提升小红点体验的脚步。我是看这篇文章了解到由 LKY 制作的 Soft Rim 小红盘的。 如果你足够细心的话,可能已经注意到,我的 ThinkPad 键盘上的小红点,不是默认的小红点了。没错,我已经把它升级成了 LKY 制作的小红盘,并且给我的 ThinkPad 笔记本电脑也进行了一样的升级。如果你感兴趣,不妨也尝试一下。点这里就可以进入 LKY 制作的 Soft Rim 小红盘的主页。 LKY 的 Soft Rim 小红盘 ","date":"2020-08-03","objectID":"/2020/08/thinkpad-keyboard-ii/:4:0","tags":["ThinkPad","小红点","指点杆","TrackPoint","小红盘"],"title":"实际体验第二代小红点键盘","uri":"/2020/08/thinkpad-keyboard-ii/"},{"categories":null,"content":"关于这个博客 正如首页说的,这是一个关于软件工具、硬件与语言的个人博客。这个网站的目的,一是和大家分享日常的学习交流心得,二是放置一些应该放在网上的东西,例如我的私人云、我写的教程等等,三是体验自己精心打磨一个网站的乐趣。 ","date":"2020-07-27","objectID":"/about/:1:0","tags":null,"title":"关于","uri":"/about/"},{"categories":null,"content":"关于我 我是一名有些不务正业的研究生,专业是电子科学与技术,但是喜欢学习和折腾各种有趣的东西。 我喜欢能够深度私人订制的生产力工具,这个网站博客中的许多文章都是关于我对「工具」(主要是软件工具)的精心调配。 我喜欢学习不同的语言。我认为语言不止是一种工具,它更是一种艺术、一种思维方式,学习语言是一件能够带来快乐的事情。 这个网站的目的,一是和大家分享日常的学习交流心得,二是放置一些应该放在网上的东西,例如我的私人云、我写的教程等等,三是体验自己精心打磨一个网站的乐趣。 你可以在首页我的头像下找到我的联系方式或其它社交帐号。 ","date":"2020-07-27","objectID":"/about/:2:0","tags":null,"title":"关于","uri":"/about/"},{"categories":null,"content":"版权声明 除了另外说明的内容外,本站的所有内容均采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。 Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. ","date":"2020-07-27","objectID":"/about/:3:0","tags":null,"title":"关于","uri":"/about/"},{"categories":["教程"],"content":"这篇文章是写给我的母亲的,她是一个愿意接触新鲜事物的人,也是一个思维活跃、懂得变通的女性。 这篇文章适用于:在你已经订阅了 Microsoft 365 的情况下,在一台新的 Windows 10 电脑上安装 Microsoft 365 ","date":"2020-07-21","objectID":"/2020/07/install-microsoft365/:0:0","tags":["Microsoft 365"],"title":"如何在新电脑上安装 Microsoft 365","uri":"/2020/07/install-microsoft365/"},{"categories":["教程"],"content":"第一步:登录你的 Microsoft 帐号(微软帐号) 在一切之前,请确保你的电脑登录的是你的微软帐号,而不是本地账户。理论上讲,本地账户也能使用 Microsoft 365,但是我认为会没有那么方便。 打开开始菜单,点击那个长得像齿轮的图标,从而打开「Windows 设置」。 选择「账户」,在「账户信息」下,如果你的 Windows 10 使用的是微软帐号,应该会和我这里比较类似 如果你显示的是“本地账户”,你可能需要登录一下你的微软帐号。 由于我这里登录的就是在线账户,所以我也不知道如果使用的是本地账户,这个界面会是什么样子。总之你应该使你登录的是在线微软账户。 ","date":"2020-07-21","objectID":"/2020/07/install-microsoft365/:1:0","tags":["Microsoft 365"],"title":"如何在新电脑上安装 Microsoft 365","uri":"/2020/07/install-microsoft365/"},{"categories":["教程"],"content":"第二步,下载与安装 Microsoft 365 首先,点这里打开微软的官方网站。点击右上角的地方登录你的微软帐号。 登录了之后,在这里点击「我的 Microsoft 账户」。 如果你已经订阅了 Microsoft 365,这里应该就会显示成这样: 点击那个「安装」之后,应该会打开这个页面,再点击「安装」,跟着指示一步步安装就好啦! 由于我这里已经安装过了,后面的详细指示,就没有办法做成图片了,发挥你的聪明才智吧! ","date":"2020-07-21","objectID":"/2020/07/install-microsoft365/:2:0","tags":["Microsoft 365"],"title":"如何在新电脑上安装 Microsoft 365","uri":"/2020/07/install-microsoft365/"},{"categories":["教程"],"content":"第三步,安装之后怎么打开 安装应该是一个在线安装程序,要先下载再安装。 安装之后,你应该就可以从开始菜单打开 Microsoft 365 下的程序了。比如说,如果我想打开 Word,我就可以在这里找到它: (全文完) ","date":"2020-07-21","objectID":"/2020/07/install-microsoft365/:3:0","tags":["Microsoft 365"],"title":"如何在新电脑上安装 Microsoft 365","uri":"/2020/07/install-microsoft365/"},{"categories":["软件工具"],"content":"今天遇到了 Matlab 的中文编码问题,经过查询之后发现应该有许多人遇到了这个问题,可是网上能查到的相关文章只是抛出莫名其妙的解决方案,几乎都没有任何分析。在此我详细地分析了这个问题,以及其解决方案。 大概两三周前,我在中文 Windows 10 上的 Matlab 中打开一份之前在 Linux 上写的 Matlab 代码,发现其中的中文居然全部成了乱码,那时我以为是 Windows 和 Linux 操作系统之间字符编码的问题,就没太在意。今天,我发现我在 Visual Studio Code 中写 Matlab 代码时,mlint.exe 程序(即 Matlab 的自动纠错程序)给出的 Warning 信息全都是乱码;而用 Matlab 打开同一份代码,代码中的中文也变成了乱码。此时我就意识到,这个问题值得探索了。 ","date":"2020-07-21","objectID":"/2020/07/matlab-utf8/:0:0","tags":["中文乱码","UTF-8","Matlab"],"title":"如何在 Matlab 中启用 UTF-8 编码","uri":"/2020/07/matlab-utf8/"},{"categories":["软件工具"],"content":"定位问题 同一个文件在同一个操作系统上的不同程序中显示出不同的面貌,说明一定是字符编码出了问题。我心里的第一个想法就是「现在不是全宇宙通用 UTF-8 编码吗?难不成是 Matlab 还在使用其它编码方式?」。在确认了 VS Code 使用的是 UTF-8 之后(VS Code 的界面右下角会显示使用的编码方式。毕竟它是文本编辑器嘛!),我就明白了,一定是 Matlab 在用什么小众的编码方式。 网上很容易搜到,在 Matlab 的命令行中可以使用 feature('locale') 命令来查看当前的编码方式。我的结果如下: feature(‘locale’) 的输出结果\"\rfeature(‘locale’) 的输出结果\r 可以看到,默认的编码方式,果然基本都是 GBK,真的是害人。我用的已经是 Matlab 的 R2019a 版本了,居然还默认使用 GBK 编码,这是多么顽固? ","date":"2020-07-21","objectID":"/2020/07/matlab-utf8/:1:0","tags":["中文乱码","UTF-8","Matlab"],"title":"如何在 Matlab 中启用 UTF-8 编码","uri":"/2020/07/matlab-utf8/"},{"categories":["软件工具"],"content":"为什么应该使用 UTF-8 由于编码问题产生的麻烦和乱码,相信你也遇到过不少。要解决这个问题的一个重要方式,就是统一地球上的所有编码方式,让尽可能所有的程序都使用某一种编码方式。这就是 Unicode 和 UTF 编码诞生的理由。Unicode 字符集几乎包含了所有可以使用计算机来显示的字符,而 UTF 系列编码则是对这一字符集的编码。UTF 编码有 UTF-8,UTF-16,UTF-32 等等,而 UTF-8 是其中最通用、占用存储空间相对较少的一种。 要让乱码不再产生,要么就都让 Matlab 和 VS Code 都使用 UTF-8,要么就让 Matlab 和 VS Code 都使用 GBK。但是 GBK 是专用于中文的编码方式,并不通用,让程序强制使用 GBK,可能会解决一个问题,却带来更多问题。从长远看,“everything UTF-8” 才是好的解决方案。 ","date":"2020-07-21","objectID":"/2020/07/matlab-utf8/:2:0","tags":["中文乱码","UTF-8","Matlab"],"title":"如何在 Matlab 中启用 UTF-8 编码","uri":"/2020/07/matlab-utf8/"},{"categories":["软件工具"],"content":"怎么让 Matlab 使用 UTF-8 如果你搜索 Matlab 的文档,文档会告诉你,使用 slCharacterEncoding() 函数来设置字符编码,那就试试它。 如果不带参数地运行这一函数,会显示 输出结果\"\r输出结果\r 果然是 GBK。那我把它改掉呢?但是事实是,改不掉。即使输入 slCharacterEncoding('UTF-8') 之后,在输入 slCharacterEncoding() 的结果已经变成了 ‘UTF-8’,文件还是会乱码。哪怕重启 Matlab,也会乱码。所以说,官方文档没用。 真正解决问题的是网上的另外一些文章,虽然它们都没说为什么,但是我大概能理解为什么那么做。首先,打开 Matlab 安装目录下的 bin 目录,对我来说,这个目录的路径是 D:\\Program Files\\MATLAB\\R2019a\\bin 在此目录下,会有两个文件,lcdata.xml 和 lcdata_utf8.xml。其中 lcdata.xml 决定了 Matlab 的编码方式,而 lcdata_utf8.xml 似乎是一个不生效,但是专门用来替代 lcdata.xml 的文件。 首先,把 lcdata.xml 重命名为 lcdata_old.xml,即把它备份一份,防止以后要用到。 然后,把 lcdata_utf8.xml 复制一份,就叫做 lcdata.xml,并且打开它,作出一些改动。首先要删掉关于 GBK 的这一部分: \u003cencoding name=\"GBK'\u003e \u003cencoding_alias name=\"936\"/\u003e \u003c/encoding\u003e 然后,改动一下关于 UTF-8 的部分,高亮的那一行是新加入的内容: \u003cencoding name=\"UTF-8\"\u003e \u003cencoding_alias name=\"utf8\"/\u003e \u003cencoding_alias name=\"GBK\"/\u003e \u003c/encoding\u003e 这么做的目的就是,将 GBK 编码从一种独立的编码方式,改成了 UTF-8 的一个别名,从而欺骗 Matlab,让它使用 UTF-8。虽然很不优雅,但是真的有用。 重启 Matlab 之后,乱码的中文应该就不再乱码了。 ","date":"2020-07-21","objectID":"/2020/07/matlab-utf8/:3:0","tags":["中文乱码","UTF-8","Matlab"],"title":"如何在 Matlab 中启用 UTF-8 编码","uri":"/2020/07/matlab-utf8/"},{"categories":["软件工具"],"content":"一点吐槽 在写下这篇文章之后,关于 Matlab 编码问题的折腾还没有结束,因为当我使用 VS Code 编写 Matlab 程序时,mlint.exe 程序仍然输出乱码,错误信息也没法用。 不可能选择屈从于 GBK 编码,否则哪天我在 Linux 上看 Matlab 程序又没法看了。GBK 绝对是一个已经过时了的、没有前途的、故步自封的编码选择。 我现在想尝试的是,使用第三方编辑器(例如 VS Code,我更看好 Emacs)来编写 Matlab 源文件,存储为 UTF-8 格式,使用 mlint.exe 进行代码检查,并且使用集成的 Matlab Terminal 进行即时的运行。这就做好比是把 VS Code(或者 Emacs)变成了 Matlab 的第三方客户端。 既然有 Matlab,为什么还要用第三方客户端?还不是因为 Matlab 太令人不满意了。一个付费商用科学计算软件,不能改字体和主题,编码方式写死在代码里,编程规则各种特立独行,真的让人很难喜欢起来。 ","date":"2020-07-21","objectID":"/2020/07/matlab-utf8/:4:0","tags":["中文乱码","UTF-8","Matlab"],"title":"如何在 Matlab 中启用 UTF-8 编码","uri":"/2020/07/matlab-utf8/"},{"categories":["杂谈"],"content":"距离我第一次创立作为独立网站的个人博客,已经过去了两个年头,但是直到今天,我还在折腾博客的方式,比如平台、管理方式、外观、布局等,而不是内容本身。 固然,博客文章的内容,其实才应该是博客最重要的部分,但是这似乎一直被我放到了第二的优先级。反倒是一些不太重要的地方,被我来回折腾了两年。这两年间,我尝试过各种不同的东西:在平台选取上,我尝试过第三方网站(CSDN、简书等),静态网站生成器(Jekyll、Hexo、Hugo 等),动态网站框架(WordPress.com 与 WordPress.org);在主题风格上,我选择过极简主义的主题,也尝试过 UI 比较复杂的主题;在托管方式上,我选择过用第三方网站托管(Github 与 WordPress.com),也选择过使用自己租用的云服务器;甚至在站点的主要语言上,我都尝试过英语、简体中文与繁体中文三种。我就是个这么喜欢折腾的人,但是这些折腾也并非完全是浪费时间——除了让我更加清晰地认识到自己适合什么样的方式之外,也算是带来了一段美好的回忆吧! ","date":"2020-07-19","objectID":"/2020/07/blog-story/:0:0","tags":["demo","博客方法"],"title":"博客之路","uri":"/2020/07/blog-story/"},{"categories":["杂谈"],"content":"这个博客的折腾之路 用一个 todo list 来记录我折腾这个博客的过程吧! 2020-07-21 完成基本构建,设立好主题,写好第一篇文章。 2020-07-21 完善与 Github 协同工作的工作流(三个 repo 分别包含我修改的主题,源代码与生成的网页)。 转移有价值的旧博客文章到这个博客。 2020-08-06 完善各大平台的流量分析。 完善 SEO。 2020=08-06 完善评论系统。 创建 Gitee Pages 镜像。 完成关于我、友情链接之类的辅助性页面。 网站正式上线,取代原本的 blog.ericzhuochen.com。 加入邮件订阅功能。 在一些平台中推广我的新博客。 ","date":"2020-07-19","objectID":"/2020/07/blog-story/:1:0","tags":["demo","博客方法"],"title":"博客之路","uri":"/2020/07/blog-story/"},{"categories":["杂谈"],"content":"什么样的博客最适合我? 首先,两年前我就已经得出了,第三方网站(CSDN、简书等)不适合我的结论。 在你看到的这个博客之前,我最后一个博客使用的是 WordPress.org,一个强大的动态网站框架(事实上,在我写这篇文章的时候,我的网站还是 WordPress.org 那个,只有当这个静态博客比较完善了,我才会用它替代原来的博客);而在 WordPress.org 之前,我使用的是 Hugo 生成的静态博客。在使用 WordPress.org 之后,我基本就断定,我需要纠结的只有静态或是动态网站了。 刚开始使用 WordPress.org 的时候,这个相对庞大的系统的强大的功能、高颜值的界面、所见即所得的写作方式和丰富的插件系统就深深吸引了我。相比 Hugo 上的主题,WordPress.org 上的主题是那么功能丰富、设计美观;相比 Hugo 的某些主题,WordPress.org 上的主题能提供的定制选项居然要多那么多;而且 WordPress.org 提供的插件功能如此强大,尤其是简繁转换插件,实在是深得我心。那段时间(大概是 2020 年 6 月),我确实投入了很多精力,使用 WordPress 制作了一个比我以往的所有博客都要更美观、优雅的博客。 但是很快,我就发现了 WordPress.org 的弊端了。 首先,它只能运行在自己的服务器上,这实际上对你自己的运维能力就提出了要求;网站小的时候还好,网站大起来,就可能会遭到攻击;除了攻击之外,你自己的服务器的访问(哪怕加了 CDN)可能不一定非常顺畅,而且 SEO 也会比使用大的第三方平台时要更难做一些。 其次,WordPress.org 的很多功能的确不行,哪怕装了插件也不行。例如它的代码块功能就差强人意,我每写一个代码块,都需要在一个有几十个选项的下拉列表中选择我这个代码块使用的编程语言。直接让我离开它的,是它的公式功能,没有一个插件能让我很方便地写、预览行内与行间公式的,这让我这个理工科学生怎么使用?这让我觉得 WordPress.org 其实并不适合用来做技术博客。 第三,在 WordPress.org 的框架下,想实现一些简单的小功能很麻烦,而在 Hugo 中,想实现小功能,只需要稍微改一改主题的代码就行了。 最后,我发现 WordPress.org 真的很费时间,因为它的一切都是在一个在线的图形界面上的。相比折腾静态博客来说,WordPress.org 真的多占用了我的太多时间。 于是,我重新回到了 Hugo,并且这次,我打算这样提高我的写作体验: 不管使用哪个平台,选择一个好的主题,都是高效工作的第一步。WordPress.org 上,好的主题几乎都是付费的,要想选到一个免费又好的主题很困难。但是 Hugo 上没有付费主题。经过一段时间的筛选,我选择了目前使用的 LoveIt 主题,它的功能非常强大,有非常多的参数可调,可以达到和使用 WordPress.org 相近的私人定制体验。 为了能够方便地添加自己的小功能,我把这个主题 fork 了一份:zyxir/LoveIt,并且以后都使用自己的版本。同时,我把博客的源代码放在 zyxir/blog,借助 Hugo 的强大功能,我可以在博客中加入“查看源代码”按钮,读者就可以看到文章在 Github 上的源代码了。 善用 Hugo 的 shortcodes 以及主题内置的 shortcodes,达成强大的功能。我以前居然都不会用它们!(因为我以前坚持用 Emacs 的 Org-mode 写博客,它带来了额外的复杂度,让我难以再去学习 Hugo 的这些小玩意儿) 使用 Typora 来写 Markdown 博客,获得 WYSIWYG 的体验。Typora 真的是一个神一般的软件,我哪怕在商业软件中也很少见到如此这种把用户每一个需求都考虑得这么清楚、使用体验如此完美的软件了。 使用 Github 和 Gitee 来托管我的博客,不仅免去维护服务器的额外麻烦,而且获得国内和国外均不菲的访问速度。 ","date":"2020-07-19","objectID":"/2020/07/blog-story/:2:0","tags":["demo","博客方法"],"title":"博客之路","uri":"/2020/07/blog-story/"},{"categories":["杂谈"],"content":"博客功能测试 还是例行地,要测试一下这个博客的表现力。我所使用的主题 LoveIt 在 Hugo 的基础上,加入了一些自己的 shortcodes,同时,我也把它 fork 了一份,做了一些自己的修改(是的,我已经有这个能力了!现在 html 和 css 我都能看懂一些了)。所有的网页与文章,均是使用 Markdown 写成。 ","date":"2020-07-19","objectID":"/2020/07/blog-story/:3:0","tags":["demo","博客方法"],"title":"博客之路","uri":"/2020/07/blog-story/"},{"categories":["杂谈"],"content":"基本格式化 首先是一些基本的格式化能力,比如列表与 inline markup: - 这是**加粗过的**与_斜体的_文字,这是 Markdown 的基本功能 - 这是~~带有删除线的~~文字,这是 Github Flavored Markdown 的功能 - 这是\u003cu\u003e带有下划线\u003c/u\u003e的、\u003ckbd\u003e像快捷键的\u003c/kbd\u003e文字,这是用 HTML 标签实现的 显示效果为: 这是加粗过的与_斜体的_文字,这是 Markdown 的基本功能 这是带有删除线的文字,这是 Github Flavored Markdown 的功能 这是带有下划线的、像快捷键的文字,这是用 HTML 标签实现的 同时还有有序列表与代办清单: 这是有序的 你看,是有序的吧 代办清单真的是很方便的功能了: 事项1 事项2 事项3 可以放入一条分割线: 也可以插入一条引用内容: 这是被引用的内容。 全部 Markdown 标准可以参照Hugo Markdown Reference。 ","date":"2020-07-19","objectID":"/2020/07/blog-story/:3:1","tags":["demo","博客方法"],"title":"博客之路","uri":"/2020/07/blog-story/"},{"categories":["杂谈"],"content":"表格与 Shortcodes 下面用表格的形式展示一下 shortcodes Shortcodes 是 Hugo 用来拓展内容形式的重要方式。在 LoveIt 主题的文档中,介绍了几种内置的 shortcodes: Shortcode 作用 figure 插入图片 gist 嵌入 gist highlight 插入代码块 instagram 嵌入 Instagram param 使用此页面的某个 param ref/relref tweet 嵌入 Twitter 推文 vimeo 嵌入 Vimeo 视频 youtube 嵌入 Youtube 视频 以及 LoveIt 主题引入的新 shortcodes: Shortcode 作用 style 实现特定 HTML 样式 link 链接,但是能够在代码块中使用 image 更强大的图片插入方式 admonition 不知道怎么翻译,类似“警告”或者“横幅”吧 mermaid 标准化的流程图、时序图、甘特图等等 echarts 交互式的数据可视化库 mapbox 交互式地图 music 内嵌音乐播放器 bilibili 嵌入 Bilibili 内容 typeit 打字动画 script 插入 Javascript 脚本 这些 shortcode 的使用方式在文档中描述得很清楚了,几个经常要用到的在后文展示。 ","date":"2020-07-19","objectID":"/2020/07/blog-story/:3:2","tags":["demo","博客方法"],"title":"博客之路","uri":"/2020/07/blog-story/"},{"categories":["杂谈"],"content":"图片 一个绘声绘色的博客离不开丰富多彩的图片。首先是最基本的图片显示方式:用 Markdown 语法实现: ![头像](/img/profile_picture.png) 效果为 同时,Hugo 的 figure shortcode 能够实现更棒的效果,比如包含字幕、更合适的大小与位置。同一张图片用 figure 来显示: {{\u003c figure src=\"/img/profile_picture.png\" alt=\"我的头像\" title=\"我的头像\" \u003e}} 我的头像 LoveIt 主题提供了一个更棒的 shortcode,叫做 image,甚至能支持 lightgallery.js。 {{\u003c figure src=\"/img/profile_picture.png\" alt=\"我的头像\" title=\"我的头像\" \u003e}} 我的头像 ","date":"2020-07-19","objectID":"/2020/07/blog-story/:3:3","tags":["demo","博客方法"],"title":"博客之路","uri":"/2020/07/blog-story/"},{"categories":["杂谈"],"content":"公式与代码 LoveIt 主题默认使用 KaTeX 来显示公式,我却发现它连多行的矩阵都显示不出来,于是手动修改主题,使用 MathJax 了。 输入以下公式(由于 Markdown 引擎的原因,所有换行符需要输入四个反斜杠): $$ \\frac14 \\begin{bmatrix} U_1 \u0026 U_2 \u0026 \\ldots \u0026 U_n \\end{bmatrix} \\begin{bmatrix} C_{11} \u0026 C_{12} \u0026 \\ldots \u0026 C_{1n}\\\\\\\\ C_{21} \u0026 C_{22} \u0026 \\ldots \u0026 C_{2n}\\\\\\\\ \\vdots \u0026 \\vdots \u0026 \\ddots \u0026 \\vdots\\\\\\\\ C_{n1} \u0026 C_{n2} \u0026 \\ldots \u0026 C_{nn} \\end{bmatrix} \\begin{bmatrix} U_1\\\\\\\\ U_2\\\\\\\\ \\vdots\\\\\\\\ U_n \\end{bmatrix} = W_e = \\frac12 \\int_{\\Omega_\\text{conductors}} \\varepsilon \\vec{E}^2 d\\Omega $$ 这是公式显示效果: $$ \\frac14 \\begin{bmatrix} U_1 \u0026 U_2 \u0026 \\ldots \u0026 U_n \\end{bmatrix} \\begin{bmatrix} C_{11} \u0026 C_{12} \u0026 \\ldots \u0026 C_{1n}\\\\ C_{21} \u0026 C_{22} \u0026 \\ldots \u0026 C_{2n}\\\\ \\vdots \u0026 \\vdots \u0026 \\ddots \u0026 \\vdots\\\\ C_{n1} \u0026 C_{n2} \u0026 \\ldots \u0026 C_{nn} \\end{bmatrix} \\begin{bmatrix} U_1\\\\ U_2\\\\ \\vdots\\\\ U_n \\end{bmatrix} = W_e = \\frac12 \\int_{\\Omega_\\text{conductors}} \\varepsilon \\vec{E}^2 d\\Omega $$ 同样地,代码块也是很容易的功能。我一般直接使用 Markdown 内置的功能来显示。在 Markdown 里写这些(其中还指明了行号从 20 开始,以及把第2、第4-5行高亮): ```Python {hl_lines=2,\"4-5\", linenostart=20} a = [] a[0] = 1 a[1] = 1 i = 2 while i \u003c 100: a[i] = a[i-1] + a[i-2] print(a[100]) ``` a = [] a[0] = 1 a[1] = 1 i = 2 while i \u003c 100: a[i] = a[i-1] + a[i-2] print(a[100]) ","date":"2020-07-19","objectID":"/2020/07/blog-story/:3:4","tags":["demo","博客方法"],"title":"博客之路","uri":"/2020/07/blog-story/"},{"categories":["杂谈"],"content":"嵌入内容 用 shortcode 也可以方便地插入 Youtube 视频: {{\u003c youtube sGIm0-dQd8M \u003e}} (当然,如果你看不到这个 Youtube 视频也不要惊异,毕竟 Youtube 是一个不存在的网站嘛。) 或者是 Bilibili 视频: {{\u003c bilibili BV1Rz411i7bN \u003e}} \r嵌入功能很丰富,也很耐玩。在后面的博文中再慢慢尝试啦! ","date":"2020-07-19","objectID":"/2020/07/blog-story/:3:5","tags":["demo","博客方法"],"title":"博客之路","uri":"/2020/07/blog-story/"},{"categories":["软件工具"],"content":"本文是我在目前阶段对于理想的 Emacs 配置的一些观点。 重新审视于 2020-07-22:这是前年的我写的文字。那个时候我的问题(现在也存在这个问题)就是想得太多,做得太少。现在我想得比那个时候更现实了一些、少了几分浪漫主义,能够做到的,也比那个时候要多了一些。现在文本编辑器对我来说,更多地是一个工具,而不是玩具了,所以我现在主要使用 Visual Studio Code。但是 Emacs 也会一直承载着我的回忆,我也不会彻底放弃折腾它的。 什么是理想的 Emacs 配置?理想的 Emacs 配置就是目前我希望 Emacs 能够被配置达到的最佳状态,最适合我自己的状态。我曾有过配置 Vim 的经验,但我觉得配置 Vim 和配置 Emacs 是不太一样的两个过程。配置 Vim ,是在配置一个与终端融为一体的、高效的源代码编辑环境,同时也不断增强它的文档编辑能力,这个过程中,提高各方面的编辑体验、增添方便编辑代码的各种 feature (如增添插件来完善括号编辑功能、自动补全功能、对齐功能等等),并加入大量自定义键位(以 Leader 键前缀为主)来提高编辑效率。而配置 Emacs 呢? Emacs 本身的编辑能力比 Vim 要强,许多功能不需要插件就已经原生支持(如显示与删除 trailing whitespaces ,书签,将区域转化为注释,等等),但其编辑效率默认没有 Vim 高,可以通过 Evil 这种插件来实现 Vim 的按键方案;配置 Emacs ,绝不仅仅是在配置它的文本编辑功能,因为 Emacs 还有原生的文件管理功能、终端模拟功能、网页浏览功能、邮件管理功能,更重要地, Emacs 还有一个无所不能的 Org-Mode 。更甚之的是,使用 Emacs Lisp ,你可以实现更多想得到的和想不到的功能。我并不是说 Vim 并做不到这些东西, Vim 并不原生支持它们,就算经过详细地配置,用来做文件管理、网页浏览等也十分拙劣,配置 Vim 的本质总是离不开“文本编辑器”这一点,而配置 Emacs 这个话题通常更加宽泛,强化它的文本编辑功能只是其中的一个方面。因此,理想的 Emacs 配置,和理想的 Vim 配置是不同的,甚至可以讲,理想的 Emacs 配置,是可以包括理想的 Vim 配置的(通过 Evil 系列插件模拟 Vim 按键)。 ","date":"2018-11-18","objectID":"/2018/11/ideal-emacs-configuration/:0:0","tags":["Emacs","文本编辑器"],"title":"Ideal Emacs Configuration","uri":"/2018/11/ideal-emacs-configuration/"},{"categories":["软件工具"],"content":"理想的 Emacs 工作流 在 GNU/Linux 上,我通过 Super+A 的组合键打开 Emacs ,打开后就很少关闭,这和使用 Vim 的工作流程就很不同( Vim 只在终端中使用,常开常关,与终端操作融为一体)。如果是在 Windows 上,且不说改变 Windows 默认的快捷键能否做到, Windows 平台对于 Emacs 的支持也是存在一些短板的(比如难配置的环境变量,许多插件不支持),因此下文只讨论在 GNU/Linux 系统或 Macintosh 系统上的工作流。 关于 Emacs 理想工作流的讨论主要在于,到底应该让自己的工作流 以操作系统为中心 ,还是 以 Emacs 为中心 ? 以操作系统为中心就是指,在操作系统中定义一系列键位(我是 Super 加各个键)来开启常用应用程序,包括 Emacs ,然后常开的应用程序是 Emacs ,浏览器和终端。在完成工作时,该用什么应用程序就用什么应用程序, Emacs 只是其中一个。 以 Emacs 为中心就是指,让 Emacs 变得非常全能,以至于能开启大多数工作流中要用到的文件格式。操作系统应该让出一些键位(比如 Alt+Tab, Menu, Super+? 等键),使得 Emacs 可以定义它们。当遇到 Emacs 无法胜任的任务时(比如复杂的网页浏览,影音播放),就通过 Emacs 内定义的命令和键位,开启外部程序作为子进程来完成。 我个人更赞同后一种方式,因为它更加 hackable ,可以做到真正的随心所欲。而将自己的工作流集中到一个强大、可定制的应用程序,也可以变得更加高效、更加契合自己的工作特点。 ","date":"2018-11-18","objectID":"/2018/11/ideal-emacs-configuration/:1:0","tags":["Emacs","文本编辑器"],"title":"Ideal Emacs Configuration","uri":"/2018/11/ideal-emacs-configuration/"},{"categories":["软件工具"],"content":"键位设置问题 如果工作流以 Emacs 为中心,那么就会在 Emacs 中定义一系列用于操作外部程序的拓展键位,比如开启浏览器的键位,开启电路设计软件的键位,开启博客服务器的键位。由于 Emacs 的强大性,以写程序的方式定义和管理这些快捷键,比在操作系统中设置它们更加方便。如果将它们全部以 C-c 作为前缀,光难按不说,还很容易冲突。如果将各个 Emacs 没有占用的键位尽数利用,那会非常难以记忆。最好能够提供一些新的未使用前缀,用统一的前缀来管理自定义的一些模块、功能。 我认为最好的前缀是 Super 键。这里就需要设置一下操作系统了,把以 Super 键开头的快捷键都设置得偏一点,这样 Emacs 就可以设置它们了。在 Emacs 中, Super 组合键以 H+? 的形式呈现。 其次就是未使用的 F5 ~ F8 等功能键,但是它们离键盘中心太远,不适合作为常用快捷键。可以设置为一些冷门键位,比如开启录屏、截图等等。 键位设置这个问题,可以好好 拜读 一下 Bozhidar Bastov 的 prelude 配置,这是一套加强 Emacs 默认体验的配置,设置了非常多十分合理的默认键位。 Bozhidar Bastov 是一位杰出的 Geek ,他为 Emacs 的发展做出了杰出的贡献,他高水准的文章、插件和配置也十分值得我们拜读。 我不是非常喜欢 Spacemacs ,准确来讲我不喜欢这种大幅度修改原有编辑器体验、默认增添大量功能,甚至改变原有编辑器配置方式的额外配置,甚至连太过花哨的 modeline 我都不太喜欢,尽管我是 Spacemacs 主题的坚定用户。但是在键位设置这个方面, Spacemacs 应该是有可以学习之处的。 我先在进行的编程工作不是特别多,如果我以后开始集中编程了,我可能会怀念 Vim 的高效键位方案,可能会使用 Evil 。这时就可以参考 Spacvim 的高效利用 Leader 键的键位方案了。 ","date":"2018-11-18","objectID":"/2018/11/ideal-emacs-configuration/:2:0","tags":["Emacs","文本编辑器"],"title":"Ideal Emacs Configuration","uri":"/2018/11/ideal-emacs-configuration/"},{"categories":["软件工具"],"content":"Org-Mode 在工作流中的作用 Org-Mode 这个工具解决了我很多方面的工具需求,如 GTD 、文档撰写、写博客、知识管理、收集小想法、做计划、番茄工作法等等,它真的是个很好的日常应用,应该被整合到工作流中。但我目前还没有彻底掌握 Org-Mode ,因此此处无法发表太多见解。总之,设计许多 capture 模板,并将 Org-Capture 整合到工作流中,一定不是坏事。 ","date":"2018-11-18","objectID":"/2018/11/ideal-emacs-configuration/:3:0","tags":["Emacs","文本编辑器"],"title":"Ideal Emacs Configuration","uri":"/2018/11/ideal-emacs-configuration/"},{"categories":["软件工具"],"content":"兼容性 我希望 Emacs 可以在各种环境之下运行,包括但不限于 Windows 、 GNU/Linux 、 Macintosh 下的 GUI 模式,终端模式。如果要实现彻底的兼容性,那么配置文件中就必须兼顾各个操作系统,要做一定的针对性配置。这一点上,我可以从陈斌、Steve Purcell等大牛的配置中学到很多。 ","date":"2018-11-18","objectID":"/2018/11/ideal-emacs-configuration/:4:0","tags":["Emacs","文本编辑器"],"title":"Ideal Emacs Configuration","uri":"/2018/11/ideal-emacs-configuration/"},{"categories":["软件工具"],"content":"插件选择 我无法容忍事情超出我的控制,也不能忍受 Emacs 中运行一大堆我不熟悉,甚至都不知道的插件,所以增添新插件必须是经过考虑而做出的决策。 Emacs 中运行的插件必须少而精,简单的功能就自己写 Emacs Lisp 脚本实现,没有用到的插件必须定期删除。插件应该可以分为如下几类: 作为其它插件的库的插件,自己的存在感很低。例如 dash, popup 等。 为 Emacs 提供某项额外功能的插件,如 company 提供自动补全, yasnippet 提供代码片段。 强化已有功能的插件,如 smex 提高输命令效率, dired+ 强化文件管理功能。 ","date":"2018-11-18","objectID":"/2018/11/ideal-emacs-configuration/:5:0","tags":["Emacs","文本编辑器"],"title":"Ideal Emacs Configuration","uri":"/2018/11/ideal-emacs-configuration/"},{"categories":["软件工具"],"content":"坚持 Emacs Emacs 固然小众,但它必然小众,也不会过时。不是每个人都喜欢完全可定制化的东西,也不是每个人都喜欢花大量时间学习新事物,更不是每个人都能忍受 Emacs Lisp 的怪异语法。大部分人就算使用 Visual Studio Code ,可能也没有真正学习它,并没有达到很高的效率。只要我潜心钻研和发掘 Emacs ,是可以用它达到很高的工作效率的。 Emacs 也在不断成长,每个新版本都在添加新的、更新奇的功能。 据说 Atom 编辑器和 Emacs 一样极其具有可拓展性,甚至更加强大。但是 Atom 尚还年轻,也有一些遭到诟病的问题。所以在 Atom 被证明比 Emacs 更好之前,或者下一款具有更高自由度的编辑器出现之前,我都应该坚持 Emacs 。 ","date":"2018-11-18","objectID":"/2018/11/ideal-emacs-configuration/:6:0","tags":["Emacs","文本编辑器"],"title":"Ideal Emacs Configuration","uri":"/2018/11/ideal-emacs-configuration/"},{"categories":["英语"],"content":"这篇文章总结了各种数字在英文中的读法,很可能有你不会的哦! ","date":"2018-11-08","objectID":"/2018/11/numbers-in-english/:0:0","tags":["用英语怎么说"],"title":"英文数字全知道","uri":"/2018/11/numbers-in-english/"},{"categories":["英语"],"content":"Cardinal Numbers Number Cardinal Ordinal 1 one first 2 two second 3 three third 4 four fourth 5 five fifth 6 six sixth 7 seven seventh 8 eight eighth 9 nine ninth 10 ten tenth 11 eleven eleventh 12 twelve twelfth 13 thirteen thirteenth 14 fourteen fourteenth 15 fifteen fifteenth 16 sixteen sixteenth 17 seventeen seventeenth 18 eighteen eighteenth 19 nineteen nineteenth 20 twenty twentieth 21 twenty-one twenty-first 22 twenty-two twenty-second 23 twenty-three twenty-third 24 twenty-four twenty-fourth 30 thirty thirtyth 31 thirty-one thirty-first 40 forty fortieth 50 fifty fiftieth 60 sixty sixtieth 70 seventy seventieth 80 eighty eightieth 90 ninety ninetieth 100 one hundred hundredth 500 five hundred five hundredth 1,000 one thousand thousandth 1,500 one thousand five hundred, or fifteen hundred one thousand five hundredth 100,000 one hundred thousand hundred thousandth 1,000,000 one million millionth 10 to the 9th one billion billionth 10 to the 12th one trillion trillionth 10 to the 15th one quadrillion quadrillionth 10 to the 18th one quintillion quintillionth 10 to the 21th one sextillion sextillionth 10 to the 24th one septillion septillionth 10 to the 27th one octillion octillionth 10 to the 30th one nonillion nonillionth 10 to the 33th one decillion decillionth ","date":"2018-11-08","objectID":"/2018/11/numbers-in-english/:1:0","tags":["用英语怎么说"],"title":"英文数字全知道","uri":"/2018/11/numbers-in-english/"},{"categories":["英语"],"content":"Reading Decimals Written Said 0.5 point five 0.25 point two five 0.73 point seven three 0.05 point zero five 0.6529 point six five two nine 2.95 two point nine five ","date":"2018-11-08","objectID":"/2018/11/numbers-in-english/:2:0","tags":["用英语怎么说"],"title":"英文数字全知道","uri":"/2018/11/numbers-in-english/"},{"categories":["英语"],"content":"Reading Fractions Written Said 1⁄3 one third 3⁄4 three fourths 5⁄6 five sixths 1⁄2 one half 3⁄2 three halves ","date":"2018-11-08","objectID":"/2018/11/numbers-in-english/:3:0","tags":["用英语怎么说"],"title":"英文数字全知道","uri":"/2018/11/numbers-in-english/"},{"categories":["英语"],"content":"Pronouncing Percentages Written Pronounced 5% five percent 25% twenty-five percent 36.25% thirty-six point two five percent 100% one hundred percent 400% four hundred percent ","date":"2018-11-08","objectID":"/2018/11/numbers-in-english/:4:0","tags":["用英语怎么说"],"title":"英文数字全知道","uri":"/2018/11/numbers-in-english/"},{"categories":["英语"],"content":"Pronouncing measurements Written Spoken 60m sixty meters 25km/h twenty-five kilometers per hour 11ft eleven feet 2L two liters 3tbsp three tablespoons 1tsp one teaspoon ","date":"2018-11-08","objectID":"/2018/11/numbers-in-english/:5:0","tags":["用英语怎么说"],"title":"英文数字全知道","uri":"/2018/11/numbers-in-english/"},{"categories":["英语"],"content":"Pronouncing Years Written Spoken 2014 twenty fourteen or two thousand fourteen 2008 two thousand eight 2000 two thousand 1944 nineteen fourty-four 1908 nineteen o eight 1900 nineteen hundred 1600 sixteen hundred 1256 twelve fifty-six 1006 ten o six 866 eight hundred sixty-six or eight sixty-six 25 twenty-five 3000 BC three thousand BC 3250 BC thirty two fifty BC ","date":"2018-11-08","objectID":"/2018/11/numbers-in-english/:6:0","tags":["用英语怎么说"],"title":"英文数字全知道","uri":"/2018/11/numbers-in-english/"},{"categories":["英语"],"content":"How to say 0 zero Used to read the number by itself, in reading decimals, percentages, and phone numbers, and in some fixed expressions. o (the letter name) Used to read years, addresses, times and temperatures. nil Used to report sports scores. nought Not used in USA. ","date":"2018-11-08","objectID":"/2018/11/numbers-in-english/:7:0","tags":["用英语怎么说"],"title":"英文数字全知道","uri":"/2018/11/numbers-in-english/"},{"categories":["西班牙语"],"content":"西班牙语中的 rr 以及单词开头的 r 这个辅音,其发音在 IPA 中写作 [r],名为 alveolar trill,中文名为齿龈颤音,俗称大舌音、大舌颤音、弹舌音等。许多中国人难以发出这个音。但是,只要经过训练,多数人还是可以发出这个音的。 ","date":"2018-11-07","objectID":"/2018/11/spanish-rr-words/:0:0","tags":["alveolar trill","弹舌音","绕口令","齿龈颤音"],"title":"西班牙语中的弹舌音","uri":"/2018/11/spanish-rr-words/"},{"categories":["西班牙语"],"content":"有关的单词 单词 英文对应 perro dog carro car zorro fox cerro hill aburrido bored arriba above raro rare romper to break carrera race correr to run cerrar to close carretera highway ","date":"2018-11-07","objectID":"/2018/11/spanish-rr-words/:1:0","tags":["alveolar trill","弹舌音","绕口令","齿龈颤音"],"title":"西班牙语中的弹舌音","uri":"/2018/11/spanish-rr-words/"},{"categories":["西班牙语"],"content":"绕口令 与 [r] 有关的西班牙语绕口令(Trabalenguas)有这些: Erre con erre cigarro, erre con erre barril, rápido corren los carros cargados de azúcar al ferrocarril. Si don Curro ahorra ahora, ahora ahorra Don Curro. ","date":"2018-11-07","objectID":"/2018/11/spanish-rr-words/:2:0","tags":["alveolar trill","弹舌音","绕口令","齿龈颤音"],"title":"西班牙语中的弹舌音","uri":"/2018/11/spanish-rr-words/"},{"categories":["硬件"],"content":"Concepts source: Quora A digital design consits of several HDL files that together form a so called toplevel, and modules. A design must be verified before translated into a target hardware. The toplevel design is called the RTL code (register-transfer level code) since it can be translated by a tool into a netlist (interconnection of basic cells, like flipflops and logic gates). Next to RTL, there is behavioural code (higher-level code that can’t be synthesized) as well. A testbench providing stimulus to the toplevel (DUT, design under test) and verifies that the outputs are as expected. ","date":"2018-11-04","objectID":"/2018/11/concepts-in-hardware-design/:1:0","tags":["hardware design"],"title":"Some Concepts in Hardware Design","uri":"/2018/11/concepts-in-hardware-design/"},{"categories":["硬件"],"content":"Compilation Every language has a LRM (language reference manual) that defines the syntax that is valid. Both RTL and behavioural code need to be syntactically correct before elaboration. The compiler is in fact a parser that check every HDL files for syntax errors. ","date":"2018-11-04","objectID":"/2018/11/concepts-in-hardware-design/:1:1","tags":["hardware design"],"title":"Some Concepts in Hardware Design","uri":"/2018/11/concepts-in-hardware-design/"},{"categories":["硬件"],"content":"Elaboration A design is a bunch of files that connect to each other in a certain way. Elaboration checks if your design and testbench is connected up in the right way. ","date":"2018-11-04","objectID":"/2018/11/concepts-in-hardware-design/:1:2","tags":["hardware design"],"title":"Some Concepts in Hardware Design","uri":"/2018/11/concepts-in-hardware-design/"},{"categories":["硬件"],"content":"Simulation A synchronous design is always a combination of combinational logic (boolean algebra) and flipflops. A simulator executes the testbench code that applies stimulus to the RTL design. It can show a waveform. ","date":"2018-11-04","objectID":"/2018/11/concepts-in-hardware-design/:1:3","tags":["hardware design"],"title":"Some Concepts in Hardware Design","uri":"/2018/11/concepts-in-hardware-design/"},{"categories":["硬件"],"content":"Tools We need a compiler, an elaboration tool, a simulator and a waveform viewer for EDA (electronic design automation). ","date":"2018-11-04","objectID":"/2018/11/concepts-in-hardware-design/:1:4","tags":["hardware design"],"title":"Some Concepts in Hardware Design","uri":"/2018/11/concepts-in-hardware-design/"},{"categories":["杂谈"],"content":"本文谈及了我对于几种学习方法的看法。 ","date":"2018-07-12","objectID":"/2018/07/xitong-xuexi-shiyi-xuexi-digui-xuexi/:0:0","tags":["学习方法","递归学习法"],"title":"系统学习,拾遗学习,递归学习","uri":"/2018/07/xitong-xuexi-shiyi-xuexi-digui-xuexi/"},{"categories":["杂谈"],"content":"系统学习 系统学习,是我们最常用的学习方式了。系统学习是指系统地将一个知识体系的各个方面,依照着某本教材,某套教程,或是某个老师的讲解,一一吸收学习,从而对该事物形成较为全面的认知。在这一过程之后,我们往往还不能做到十分扎实地掌握这个知识体系的每一个细节,于是我们要通过进一步的复习,以及进一步在实践中的运用,来完成对知识的完全掌握。 一般来说,我们学生学习一门课程(不管是正常地学习还是考前突击),用的是系统学习法。在我看来,这种方法的好处就有: 可以对知识体系形成比较清晰的整体认知,这对于理解概念、把握主次都有帮助;同时也更容易对该知识体系产生更深刻的认识。 一般来说,通过系统学习学来的知识不太容易有遗漏,即使有薄弱的地方,也会有一定印象,需要用到它们时可以很快找到对应章节进行回顾。 系统学习由于有老师或课本的引导,通常所选取的是学习该知识体系的较优顺序,能提高学习的效率;同时在对于各个知识点的深入程度和训练强度的把握上也能更加合理,从而做到事半功倍。 系统学习的方法,一般也被认为是学习知识的最佳方法。它当然也有缺点,那就是急功近利、心浮气躁之人难以坚持走完整个学习过程。 ","date":"2018-07-12","objectID":"/2018/07/xitong-xuexi-shiyi-xuexi-digui-xuexi/:1:0","tags":["学习方法","递归学习法"],"title":"系统学习,拾遗学习,递归学习","uri":"/2018/07/xitong-xuexi-shiyi-xuexi-digui-xuexi/"},{"categories":["杂谈"],"content":"拾遗学习 拾遗学习,是指在进行一些与某个知识体系有关的工作时,每当发现自己对于一个知识点不能理解,就查阅相关的资料、请教学过相关知识的人员,在多次遇到知识盲点后重复该过程,最终形成对该知识体系的整体感知,从而基本掌握知识的过程。 拾遗学习的例子可以有很多。比如说,初中学历的物理爱好者小张,在生活中对于肉眼可见的一些物理现象特别好奇,于是通过翻阅书本、搜索百科、请教他人的方式了解到了这些现象背后的原理。但是在这一过程中,他没有踏踏实实地看过一本数学教材,物理教材也是被当成字典一样查询。在最后,小张通过多年的积累,了解到了大多数生活现象的物理原理,对力学、电磁学、光学、声学、热力学等方面的知识均有积累,这时我们可以认为,小张的物理学知识是通过拾遗学习学会的。 又或者说,天文系的同学阿强,由于成绩优异,获取了研究生推免资格,并且出于对前途的考虑保研到了计算机学院。当导师让他开始做项目时,他只有c语言基础,但是阿强十分好学。阿强根据计算机系同学的建议,购买了全套计算机科学与技术专业课教材,并且只要遇到自己不会的东西,就会查阅相关的教材,并且学到能够运用的地步。勤奋而聪明的阿强在跟随导师做几个项目的过程中,逐渐习得了不少关于数据结构、算法、编译器、操作系统、数据库、计算机网络、计算机组成等方面的知识,只是他的知识大多是东拼西凑。我们可以认为,阿强的计算机知识是通过拾遗学习学会的。 拾遗学习的缺陷是十分明显的,例如: 通过拾遗学习习得的知识体系往往很不牢固,充满漏洞,往往会有那种在遇到之前都不知其为何物的知识盲区。例如阿强可能在做的前几个项目中完全没有用到过哈希表的知识,这就成为了他对于数据结构知识的一个缺口。 有时通过拾遗学习习得的知识,是没有一些基础性知识的支撑的,这会导致学习者无法用知识去解决稍微深入一点的问题。例如小张虽然自认为自己深谙万物运动之道,将牛顿第二定律熟记于心,但是他完全没有微积分基础,更是不知道微分方程为何物,那么遇到力随时变、力随速度变的问题,他就会束手无策了。 拾遗学习通常会走更多弯路。因为在你去拾遗某一具体的知识点时,由于缺少对于与其关联的其它知识点的了解,你可能要花更久的时间去掌握它,甚至无法掌握它。 那么拾遗学习有什么优点吗?也有,那就是我们在拾遗学习时,通常是所学即所用,这样学习的动力通常更加强烈。很多时候,正是因为本应该系统学习时我们没有系统地掌握知识,才被迫在需要用到它的时候来拾遗学习的。 ","date":"2018-07-12","objectID":"/2018/07/xitong-xuexi-shiyi-xuexi-digui-xuexi/:2:0","tags":["学习方法","递归学习法"],"title":"系统学习,拾遗学习,递归学习","uri":"/2018/07/xitong-xuexi-shiyi-xuexi-digui-xuexi/"},{"categories":["杂谈"],"content":"递归学习 递归学习是一种十分不同寻常的学习方法,以至于我质疑它到底能不能算是一种学习方法。递归学习就是指,对于一个不熟悉领域的陌生概念,去直接(在Internet上)查询它的定义、解释;这些定义、解释往往仍然会用到你不懂的很多名词,那么对于它们,继续去查询;抱着一种锲而不舍的精神,去不断地递归这一过程,循环往复地学习上一个概念所用到的概念,直到彻底地搞清楚最开始想搞懂的概念。 这种学习方法需要强烈的求知欲与恐怖的执行力,因为我相信一般人在递归两到三次之后就晕了。我第一次看到这种学习观点是在知乎上,一个答主说,他为了透彻地搞清楚学python时的一些疑惑,去学习c;为了完全搞明白c又去学习汇编语言;为了弄明白汇编而学习计算机体系结构,微机原理;为了弄清楚这些东西去学习电路基础,模拟电路,数字电路;而为了弄清楚电路,又去学习固体物理;为了彻底搞懂固体物理,又去学习统计力学……(细节上可能有偏差)。虽然不排除这个答主有一些吹牛的成分在里面,但是这样一轮下来(假设是老老实实搞明白了每个环节),他该学到了多少知识啊!他对于python的理解又会有多透彻啊!虽然我们很难将统计力学的知识直接和python联系起来,但是如果谈及对python的一些知识的理解时,他便可以滔滔不绝地从c一直讲到玻色子。 递归学习的这种思想我们偶尔也会用到,尤其是在自己独立解决电脑问题、去上网查资料时。我相信,查资料时递归层数越深、每次递归学得越仔细,就越容易成为修电脑大神。 但是,如果真正用它去学东西,那我们很可能没有足够的动力与行动力。毕竟python程序员很多都不会,也没有必要去学习pn结。递归学习,在更多时候,还是作为一种参考思想,来指导我们如何拓宽知识面的。 ","date":"2018-07-12","objectID":"/2018/07/xitong-xuexi-shiyi-xuexi-digui-xuexi/:3:0","tags":["学习方法","递归学习法"],"title":"系统学习,拾遗学习,递归学习","uri":"/2018/07/xitong-xuexi-shiyi-xuexi-digui-xuexi/"},{"categories":["杂谈"],"content":"我对于自己的反思 我在对于非课程知识的学习过程中,甚至是对于某些课程学习的自学过程中,正是太缺少执行力,太过于依赖拾遗学习,而没有静下心来进行系统学习,所以导致学艺不精、基础不劳。我想,有必要对我的学习习惯进行一些调整了。我目前正在进行的主要学习任务之一,就是系统地自学《信号与系统》这门课的知识,希望踏实而系统的学习能给我今后的工作带来更多帮助。 ","date":"2018-07-12","objectID":"/2018/07/xitong-xuexi-shiyi-xuexi-digui-xuexi/:4:0","tags":["学习方法","递归学习法"],"title":"系统学习,拾遗学习,递归学习","uri":"/2018/07/xitong-xuexi-shiyi-xuexi-digui-xuexi/"}]