博文

目前显示的是 2018的博文

谈按键布局(三):人体工学按键布局的终极解决方案-以 Ergodox 为例

图片
前言上一篇谈到软件改布局,本篇讲的终极解决方案是从硬件层面改变布局。我用了几个月时间逐渐适应了以Dvorak作为日常布局,使用Linux打命令和写代码的舒适度得到了大幅提升。这体现在:打字的时候,手指不需要总是大幅度移动、标点符号符号更好按了,右手小拇指也变得舒服得多。然而还是有一些地方很难以忍受,所以有了这个终极解决方案。 传统方案的不足传统键盘由于历史原因(防止打字机卡键)设计的倾斜布局使得左手特别难按,手腕很不舒服。倾斜布局使得我到现在盲打数字区域都会打错。之前的快捷键位置都变了,非常不好按,我应对的方法是忍着。vim很适应的hjkl现在的位置变得非常不舒服,虽然可以通过修改vim配置解决,但治标不治本,因为没办法一下改掉所有vim模式插件的运行模式。玩游戏的时候按键位置变得很不方便,切换按键布局也很麻烦,我应对的方法是不玩游戏。退格键很远,又没有足够多的按键把退格键映射到好按的位置。 终极方案 综合考虑上面几个不足,从选购键盘开始,把这些问题全都解决掉: 应对倾斜布局:选择直来直去的键盘。通过长时间调查,发现有TypeMatrix、xd75re、planck、ergodox、kinesis、X-bows等上下对齐的键盘。最初非常想要X-bows,可是这个键盘太小众,键盘和键帽太难买到;ergodox又是分体键盘,所以一步到位,既然选择要人体工学就直接选择最极端的键盘。 可能有朋友担心ergodox适应起来困难,我可以很负责任地说,适应成本很低。我为了适应dvorak花了一个星期才能够完全盲打,敲代码速度花了一个多月时间才勉强赶得上之前的打字速度,而双拼打中文的速度至今赶不上曾经的QWERTY键盘。而适应ergodox只需要一天,除了左手下排字母刚开始比较容易打错之外,打字速度与准确度与换键盘相比并没有显著区别。 如果不会盲打,淘宝也有有刻键帽可选。 应对Dvorak下快捷键、游戏、vim不好按购买可编程(尤其是支持tmk/qmk固件的)键盘。这种键盘可以进行极高的自定义。比如我的键盘布局。 这种固件是按层编程的,可以在网页上图形化地进行设计,再烧录到键盘中的单片机里。由于可以设计多层(我的键盘至多能写32层),可以通过发挥想象力在键盘里面设计各种各样的功能。下一节讲我的布局图的时候将会对如何应对快捷键、游戏和vim进行详细介绍。 我的布局图 第零层与第一…

Free Office:Linux下最好用的 Office 软件

前言 最近用Office处理电子表格比较多,而Linux下最常见的两个Office的表现都十分糟糕,电子表格动不动就卡死。难道Linux就真的没有好用的Office软件了吗?其实不然。我在AUR里面用office作为关键词搜到了一些office软件,并逐个尝试了一下,发现还真有比wps和libreOffice好用的软件,而这些软件的市场占有率还很低,真是好奇怪。 FreeOffice官网链接 刚下载好这个软件一看居然要注册码。心想真奇怪,不是叫"FreeOffice"吗,为啥还要注册码?登陆官网发现实际上注册是免费的,会向你的邮箱发送一个免费的注册码,可以永久免费使用,真是够奇葩的。。。 使用评价:性能方面:界面非常好,不像wps使用自己做的一套显示框架,也不像libreOffice拖着一大堆沉重的Java运行环境,所以这个office第一感觉是速度非常快,外观也类似于MS office 2016,满足了我对linux下office的所有要求。 功能方面:Linux的office功能都没有能根MS office抗衡的吧,能满足常用功能就可以了。具体的因为还没怎么体验过,所以功能方面的都只是猜测,过段时间体验之后再更新。 综合评价:再见,libre Office!再见,wps!

2018.10.13更新:
速度:第一次启动比较慢,如果有已经打开的窗口的话秒开。由于不会长驻内存,所以建议如果不是偶尔看看文档的话就先开一个文档别关。
功能:功能比较欠缺,大概和Linux下的wps差不多,不支持公式,电子表格的筛选也十分有限。
结论:wps可以删掉了,libre office可能还有点用,Linux下面居然还真的有可以流畅使用的Office。 PJeOffice 使用评价: 用java写的,不知道为什么还没打得开,等打开之后再评价吧。

2018.10.13更新:最终也没能够成功打开,所以不建议使用。

谈按键布局(二):全平台(包括 Linux)如何方便地修改布局

图片
前言 在上一篇博客中我已经介绍了我的按键布局,因为是独创的布局所以不可能在设置里选一下就直接切换。接下来我简要介绍一下切换布局的最佳实践(best practice)。
如果你对这篇博客不感兴趣,不妨看看本系列的下一篇:谈按键布局(三):人体工学按键布局的终极解决方案-以 Ergodox 为例 需求任意自定义布局,而不是使用预设布局可以一键切换到 qwerty 以满足游戏需求 全平台如何切换布局 全平台最重要的就是可移植性,而硬件的可移植性是最好的,所以全平台的布局切换唯一方案就是买个能硬件编程的键盘。下面简单推荐几个不贵的键盘 雷柏 vpro v500,100元,我用的就是这个pocker,350元,听说可以硬件编程 雷柏的键盘去官网下载一个驱动(只有 Windows 版),可以将它的模式切换键功能重设。键盘最右上角的模式切换键可以切换键盘到自定义模式,可以随意修改按键布局、添加键盘宏,或者重定义很少使用的 F1~F12,比如换成ctrl+alt+del,或者一键输入邮箱,或者控制音乐播放。 这种方式优点是不依赖操作系统,只要键盘插上去就可以直接使用你自定的布局了;用模式切换键也能一键切回到 qwerty Linux 如何软件切换布局 首先有个软件叫 klfc ,可以让你写一个 json 格式的配置,它帮你把剩下的事情都做了。 我的按键布局配置在这里 下载 https://github.com/39aldo39/klfc/releases解压./klfc --from-json json格式的配置文件 --xkb /tmp/dvcd /tmp/dv./install-system.sh重启 接下来需要配置三个地方: 在桌面设置里面,语言 -> 键盘布局 -> 选择你新建的键盘布局,比如我的布局在语言为 "Other"里面,叫 "Charles Dvorak"。注意这里的键盘布局可以保存两个,一个你自己的,另一个为标准 qwerty 布局(比如普通的中文布局)在 fcitx 设置(如果你们输入中文用的不是 fcitx 那我也不知道该怎么弄)里面,添加一种输入法,去掉“只显示当前语言”选项,找到并添加刚刚的键盘布局,并挪到最上面这个不需要改在 fcitx 设置里面下面一栏最右面那个图标,选择默认键盘布局那里,选择刚刚添…

谈按键布局(一):我的布局方案

图片
前言 键盘布局是个小众得不能再小众的东西了,在大多数人都使用 qwerty 都不怎么熟练的情况下,很少有人愿意学习一个新的键盘布局,更别谈设计自己使用的键盘布局了。 虽然键盘布局很小众,程序员却可以对按键布局做很多微调,比如把括号挪到容易按到的地方,把 Ctrl 与 Alt 互换,或者把 CapsLock 映射到一个更有用的功能上。虽然 gnome-tweak-tool 能进行一定程度的切换,但那完全不够。 我的键盘布局
以 dvorak 为基础,将 CapsLock 映射到 “=”,将 ScrollLock 映射到 CapsLock,将 两个 Ctrl 和两个 Alt 互换。 对原布局微调是因为原来的 Ctrl 实在太难按到了,而 Alt 的使用频率远没有 Ctrl 高;dvorak 的等号也十分难按到,所以换了这个布局用 dvorak 十分方便。 我为什么切换布局 打字不够快的话不会感觉到传统的 qwerty 布局有什么不妥,但是当我使用 qwerty 布局打字速度足够快时,感觉: 手指在键盘上飞,打字一点都不轻松,换了 dvorak 之后手指不需要经常进行远距离移动标点符号、大于等于号都非常远,而且那个位置很不好按还容易按错 因此切换到了 dvorak,并对 dvorak 做了一个微调,上面已经说过了 我的按键布局缺点 这些缺点全都继承自标准 dvorak: 方括号和 F 键非常难按学习起来和 dvorak 一样困难所有快捷键基本也都需要重新学习了,vim/emacs 相当于重新学一遍用别人的电脑就不会打字了下一篇博客将谈谈如何在 Linux 下最方便地创建自己的布局

我是如何以 iTunes 为中心管理和全平台(Windows/Mac/Linux/Android/Chromebook/iOS/iPod)同步音乐的

图片
前言 经过多年的探索,我总结了一套最适合我的听音乐和管理音乐的方法,这个方法并不是十分容易实现,并且为了它我也写了一些脚本,因此我把它分享出来,大家如果有需要也可以试试看。 这个方法适合谁喜欢收藏经典音乐,喜欢将音乐下载到本地音乐库中听有 Windows/Mac,但也希望 Linux/iPod/Android 可以用(有全平台需求) 2018.10.13 更新:我买了MacBook 买了MacBook之后发现,谷歌音乐同步原来是支持对 iTunes 播放列表识别的,似乎 Linux 和 Windows 都没有这种支持;现在安卓上的音乐同步变得简单了起来,只要有 iTunes 和 Google play music,任何可以上网的设备(包括 Chromebook 和安卓手表)都可以同步音乐库,在全设备有着相同的音乐体验。

以下是原文: 多平台同步: 使用 Winodws 或 Mac 的 iTunes 作为中心服务器使用 isyncr 从 Windows 同步到安卓设备,安卓设备使用任何可以识别到 m3u 格式的软件(Google play music, poweramp)听歌。注:poweramp 对这些音乐支持的最好。iTunes 可以直接同步到 iPod/iPhone使用 rsync 将整个 iTunes 文件夹同步到 Linux,使用 itunes2rhythmbox rsync 同步 bat 脚本:itunes-sync.bat
X: cd X:\music rsync -e ssh -rzhu --delete-before --info=progress2 --progress iTunes user@ip_address:~/Music pause 将 iTunes 库转换为 Rhythmbox 的库脚本:itunes2rhythmbox
https://github.com/the0demiurge/CharlesScripts/blob/master/charles/bin/itunes2rhythmbox

这样,在某些地方听到好听的歌就下载整个专辑到 iTunes,然后同步到所有设备即可;一切操作都在中心服务器中运行,而一旦中心服务器崩溃,Linux 里面还有一份 iTunes文件夹的完整拷贝,迁移到 Mac 或 Windows 都十分容易。
下载歌…

[解决]非ubuntu发行版默认打开文件行为异常

前言: 由于刚装好的gnome默认用vlc打开文件夹,双击压缩文件直接就解压了,默认使用google-chrome打开pdf,这可太过分了,所以今天又读了一些Arch Wiki,解决了这个问题 TLDR Gnome 桌面:yaourt -S gnome-defaults-list 解释:https://wiki.archlinux.org/index.php/XDG_MIME_Applicationslinux 默认文件打开方式和 MIME Type 的配置有关,而这个设置在 defaults.list 中会设置默认打开方式。某些软件在安装时会提供这个 defaults.list,而有的不会,这就造成了有的文件打开方式错乱。
我后来研究了一下 Ubuntu 有没有自带的 defaults.list,发现果然安装桌面的时候都会自带一个与桌面相关的 defaults.list,本着 aur 无所不包的想法,果然就找到了
https://aur.archlinux.org/packages/gnome-defaults-list/
进入这个页面看一下这个默认列表来源,想弄清楚为啥它在装 gnome 的时候不会自带,看到了一个链接:
http://archive.ubuntu.com/ubuntu/pool/main/g/gnome-session/gnome-session_3.26.1-0ubuntu5.debian.tar.xz
它的来源竟然是 Ubuntu!
这说明 Ubuntu 自己维护了一个很好的默认列表却没有有效提交到上游(自己偷着用?),还是 Arch Linux 打包时漏掉了它?

[解决] Arch Linux 中 vscode 和 sublime-text 都无法使用中文输入法

原来是因为没装 fcitx 的 gtk2 模块,所以只要
sudo pacman -S fcitx-gtk2 就可以了

看来不能精简过头啊


我居然用 gedit 写了一上午的 LaTeX ...

TensorForce: (可能是)最好用的强化学习库

前言: 实现好用的强化学习算法不容易,这之间需要踩许多坑。工业界使用强化学习的话可以考虑使用这个现成的库,基于宽松的 Apache-2.0 协议;学术界也可以将其作为 baseline 。我自己实现过一些算法,如果对论文理解的不正确,或代码里有小疏漏,查错和调试是一件非常难的事情。有的时候做项目移植别人的代码会降低许多风险。 优点: 1. 把有名的主流算法全都实现了,共十几种算法,算法效果在这里。 2. API 设计非常方便,非常值得借鉴,这也是为什么我没有推荐 OpenAI 的 baselines 3. TensorFlow 实现的 A3C 有两种可选选项:基于多线程的和基于分布式的,可以合理避免掉 Python 的GIL 4, 用了 TensorBoard 做可视化,会很好用 5, 代码结构比较清晰,静下心来慢慢看可以作为不错的教学代码
6. 可以快速应用自己设计的强化学习环境,只需要继承自Environment类并实现相关方法即可,把自己设计的环境包装一下工作量非常小 缺点: 1. 用的 TensorFlow,而不是PyTorch,如果单机多 CPU 并行依赖分布式,并不是个好思路,而且显存使用会很不合理,也会更麻烦,比 PyTorch 的 multiprocessing 麻烦多了,这也是为什么我切换到了 PyTorch
2. 包装的层数实在太多了,源码阅读起来时间成本很高,毕竟用的是 TF。竟然把 TF用成了PyTorch 风格 结论: 1. 工业界使用的话问题不大 2. 科研完全可以基于这个框架写新的强化学习算法,或只用它作为 baselines 3. 用它学习强化学习也不错 4. 学学它的 API 设计会很好,现有的开源强化学习代码通常写得都很乱 5, 我用 PyTorch 链接:TensorForce: A TensorFlow library for applied reinforcement learning

在Blogger上书写LaTeX公式

坑:如果你在后台设置的主题背景中编辑HTML,出现下面这个错误:
The widget settings in widget with id <b>AdSense1</b> is not valid. An internal error occurred. Please try again.我在网上发现有不少人都遇到过,而且没有太好的解决办法。所以我就用比较暴力的方法:
直接定位到这个插件的位置,把AdSense的两个插件相关的几行代码删掉。教程:1. 复制下面的内容 2. 在后台设置$\rightarrow$主题背景$\rightarrow$编辑HTML,把这些内容粘贴到head标签内
示例:$\LaTeX$
$\sum \limits_{i=0}^n(\gamma \times Q(s|a))$

使用Ubuntu创建Windows安装盘(懒人法)

前言: 以前用过一个软件可以在Linux下创建Windows安装盘的,因为极少用Windows所以忘记是哪个软件了。今天突然有装Windows的任务,在网上找了半天都没找到,后来心想不能偷懒全都找中文教程,换成英文关键词“windows bootable usb from iso on linux”,结果第一个搜索结果就解决了问题。从这次事故中收获了两个教训: 有收获就赶紧记下来,好脑子不如烂笔头偷懒有时反而要付出更多辛苦 正文: 1. 安装 winusb (现在叫 woeusb ) sudo apt install woeusb 2. 打开 woeusb (在Application菜单里面)
3. 插上U盘
4. 这一步有点坑,需要手动卸载U盘,不然没法把Windows写入U盘
sudo umount /media/xxx/xxxxxx 5. 然后在woeusb界面里面点refresh然后随便点点点就ok
评价: 比用老毛桃方便多了

最好的电子笔记本:GitBook + Typora

2018-07-25 更新:GitBook好像支持插件了
https://notebook.pythonic.life LaTeX 公式现在能显示了 2018-05-28 更新:对于 GitBook 改版后的应对方案 改版内容:换了新界面,确实比以前界面好看了不再支持以前的所有插件(latex)不再支持构建电子书 应对方案: 使用 Travis CI + GitHub Pages 自动构建并发布 参考阅读:使用 Travis CI 自动部署 GitBook 到 GitHub Pages 补充说明:deploy 的详细参数请见这篇文档成功部署后,网址为 https://[你的 GitHub用户名].github.io/[项目名称],例如我的是 https://the0demiurge.github.io/Notes,如果要设置 CNAME 的话,就添加一条 CNAME 为 [你的 GitHub用户名].github.io需要自动构建并发布电子书,先使用 gitbook-cli 构建好各种格式的电子书和 html 文件,将构建好的电子书放到 html 文件的文件夹内,删掉 html 文件夹中的 .gitignore,Travis 将会把你的电子书上传,比如 我的笔记 我的笔记: 在线阅读:http://notes.pythonic.life下载:https://github.com/the0demiurge/Notes/tree/gh-pages/books可以到我的 GitHub 项目阅读 build.sh 和 .travis.yml 作为参考:https://github.com/the0demiurge/Notes 以下是原文: 前言: 作为爱折腾的Linux 用户,有了做笔记的需求,免不了多方调查。我自己对于笔记本的基本需求包括如下: 安全性:笔记本一定要托管在云端,而这个云端一定要足够可靠免费,不用多说便于迁移:我有一天找到更好的笔记本不需要很复杂的劳动就能迁移所有笔记方便:最好支持Markdown,不需要复杂的部署富文本:肯定要支持图片、超链接、代码片(语法高亮),最好能支持LaTeX多平台支持:Linux、Mac、Windows、Android、iOS、网页最好都能支持 常见笔记本的比较(收费产品不考虑): OneNote:可迁移性差不支持markdown …

Shell alias的有趣用法

我有多个工作目录而且切换起来很麻烦的时候,想找一个命令行的工作目录管理器,可以输入很少几个字符就能顺利切换到相应工作目录,而这时突然想起来其实shell里面的alias就可以实现此功能。以fish-shell的abbr为例:
abbr prj '~/Workspace/Lang/Long/Path/To/Your/Project; ls' 然后输入prj就可以直接跳转到该项目了,多个项目也同理。
想删掉这个abbr,就用
abbr  -e prj 即可。

我在网上搜索的时候顺便找到了一个和我想法类似的文章,分享给大家
10 个实用的 Bash alias

此博客中的热门博文

免费爬墙网站项目(ShadowSocksShare)开发简记

Ubuntu Gnome 酷炫完整指南(一):小工具篇