作者归档:百毒

统一 Mac 和 Win 常用快捷键的个人实践

一 设备及软件

Windows 使用 Filco 忍者 104 Key US Layout 键盘;Mac 使用 ikbc DC-87 键盘。

Windows 上使用 AutoHotKey 来修改及设定一些快捷键;Mac 主要使用 Keyboard Maestro 来修改及设定快捷键,配合一些其他软件。

二 辅助键设置

以 US Layout 的键盘来说,Windows 左下角的三个键依次是:Ctrl、Win 和 Alt,而 Mac 原生键盘应该是 Control (⌃),Alt (⌥) 和 Command (⌘)。

Windows Layout

Mac Layout

一般来说,常见的一些最基本的 Windows 快捷键,比如复制(Ctrl-C)、粘贴(Ctrl-V),全选(Ctrl-A)和打印(Ctrl-P)在 Mac 上是用 Command 替换 Ctrl 的,所以我的第一个操作是在设置里把 Command 和 Control 互换位置,这样可以避免更改多年以来养成的复制粘贴的按键习惯。

三 常见操作

1. 查找文件

Mac 用户最经常的一个操作也许就是使用 Command-Space 打开 Spotlight 查找文件或者软件。Windows 上类似功能的软件是 Everything

在 Windows 10 上,我加入了以下 AHK 代码劫持 Ctrl-SpaceCtrl-Alt-,, 然后将Ctrl-Alt-,设定为 Everything 的“显示窗口快捷键”即可。

2. 切换输入法及大小写锁定

在 Windows 10 上切换输入法的快捷键是 Win-Space,而在 Mac 上恰好是 Option-Space,二者位置一致,不用改动。

但是,Mac 升级到 MacOS Sierra 之后,如果你使用的是系统的中文输入法,那么,一个更高效的切换是使用 Capslock 键,短按 Capslock 键可以在“美国”输入模式和中文输入法之间切换,长按则打开大写锁定。如果习惯了使用这个来切换的话, 会发现比使用 Win/Option-Space 要高效许多。

以下的代码没有完全实现这个功能,因为我很少用到需要切换大小写锁定的场合,所以为了简便,直接将切换大小写锁定扔到了 Capslock-` 这个组合上去了。

然后为了避免去按这个组合,另外写了使用 Alt+z 将选中的文本转为大写——这样可以先用正常的状态输入再加以转换,免去了读大写字母的恐惧。

3. 删除文件

简单:

4. 截图

自从发现 Snipaste 这款软件之后,我再也没有用过系统自带的截图(不管是 Mac 的还是 Windows 的)。但是截图的快捷键我沿用了 OneNote 的习惯——Alt-S(Win) 或者Control-s(Mac)。方法么,分别设置快捷键,并且都设置为开机启动即可。

5. 启动常用程序

这个大概是几项我没有找到最优解的事情之一。Windows 下我已经习惯了Win-R大法,我数了一下, 我在 C:\Windows\ 下面丢进去了16个快捷方式和17个 .bat 文件来快速打开某个应用或者执行某些操作。Mac 上我猜大概可以通过 Alfred Workflow 来写一些类似的东西,但是鉴于我在 Mac 上还是休闲为主,并没有那么多神奇的工作需求,所以目前并没有统一的打算。

6. 窗口管理

Again,现在 Windows 10 也支持了虚拟桌面。配合原本就有的 Win-Arrow可以简单地与 Mac 获得类似体验了。相反,在 Mac 上想要实现 Win-Arrow 类似的功能,我用了最简单的免费应用 Spectacle 来实现。

以上就是我目前做的一些无用功。

Python – 存储二进制数据及序列化

本文是一系列介绍Python数据存储的文章之一。其他文章是:

上周我们已经看到了如何将数据存储到纯文本文件里,这样无论是任何编辑器或者其他程序都可以读取。我们还了解到,如果使用逗号来分割数据,那么文件需要遵循一个标准,然后就可以自动兼容其他应用程序,比如电子表格。这种方法的主要限制之一,就是如果数据本身就含有逗号的,那么文件就不再具有可读性。

本文将进一步讨论数据的编码。这将是我们能够理解为什么您使用Python所保存的内容,能够为普通的文本编辑器或者Web浏览器读取。我们还将了解到,如果我们能以正确的方式对数据进行编码,那么就可以节省磁盘上的空间。最后,我们还将仔细的讲解保存纯文本文件和二进制数据文件之间的区别。

继续阅读

Python – 在文件中存储数据

原文链接

这是一系列涉及python数据存储的文章中的第一篇。其他文章见:

存储二进制数据及序列化

使用数据库存储数据

在Python中使用HDF5文件

在大多数python程序中,将数据存储下来以备后续使用都是其核心部分。无论你是在实验室中做测量,还是要设计一个网络应用,你都会需要将信息以一种稳定的方法存储下来。例如,如果你要在完成实验后分析结果,那么结果就必须存储下来。又或者你可能需要将所有注册了你的网站的用户的邮箱地址存储下来。

即使存储数据是最重要的事情,但在不同的场合下还是要使用不同的方法。必须考虑到不同的因素,例如产生的数据量,数据是否是自明的,你之后要如何使用这些数据等等。这篇文章将带你开始了解不同的存储数据的方法。

继续阅读

Python SQLite 数据库操作指导

Mar 7, 2014
by Sebastian Raschka


连接到一个 SQLite 数据库

我们将在本教程中使用的sqlite3是Python标准库的一部分,它是SQLite数据库的一个良好且简单的接口:没有涉及服务器进程,无需配置,也没有我们需要担心的其他障碍。

一般来说,在我们可以通过Python的sqlite3模块对SQLite数据库执行任何操作之前,惟一需要做的就是打开一个SQLite数据库文件的连接:

 

继续阅读

禁用系统 Win 键 或 Win+F 的方法

作为一个 Everything 的用户,一件必做的事情是将 Win+F 设置为打开 Everything 而不是系统搜索。

但要怎么做到这一点,就比较麻烦。常见的思路是 利用 AutoHotKey 来覆写 Win+F。但我的 Dell 笔记本有一些奇怪的问题,按下三个键以上的组合热键时,可能会导致 Ctrl 或 Alt 键锁定。

所以我需要的方法是禁用掉 Windows 自己的 Win+F 热键,再直接把 Win+F 指定为 Everything 的热键。

通过修改注册表可以实现 1. 禁用所有 Win 组合键 或 2. 有选择的禁用若干 Win 组合键。首先给大家一份系统 Win 组合键列表供参考。

Hot Key Brief Description
Win-B set focus to the taskbar notification area
Win-D show the desktop same as “Show the Desktop” on context menu
Win-E open Computer
Win-F search for files
Win-Ctrl-F search for computers
Win-M minimise windows same as Alt-M
Win-Shift-M restore windows same as Ctrl-Z
same as “Undo” on context menu
Win-R open the Run dialog similar to “Run…” on start menu
Win-T cycle forwards through task buttons on taskbar
Win-Shift-T cycle backwards through task buttons on taskbar
Win-F1 open Windows Help and Support
Win-Break open System Properties
Win-1
Win-2

Win-0
Quick Launch shortcuts
    1. 禁用所有 Win 组合键

打开注册表(Win+R,输入 regedit),在下列位置新建一个 Value 为 NoWinKeys 的键值,设置为 1。

Key: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
Value: NoWinKeys
Type: REG_DWORD
Default: 0

2. 有选择的禁用若干组合键,例如我需要禁用 Win+F

打开注册表(Win+R,输入 regedit),在下列位置新建一个 Value 为 NoWinKeys 的键值,设置为 F。

注意这里如果需要禁用多个,继续添加字母即可。

Key: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
Value: DisabledHotkeys
Type: REG_SZ or REG_EXPAND_SZ

重启后生效。然后将 Everything 的热键设置一下即可。

键盘

虽然穷,但像不少穷人一样,我乐于在一些买一些看似昂贵其实很便宜的小东西上折腾,简单说,就是各类外设。

最近大老远从日本扛了一把键盘回来。嗯,是的,鄙视我吧,不能免俗的买了一把机械键盘。


 

去之前仔细考虑过,要求如下:Filco,红轴,蓝牙,104键,美式布局。然而人生不如意十之八九。蓝牙断货了,我最后扛回来一把普通的 USB 键盘。

原先用的是戴尔的 8115,但用久了很脏。于是在一个无所事事的晚上,我就把它给拆洗了。拆洗之后不可避免的产生了想要买新键盘的念头。网上看了看,觉得还是一步到位,直接来一把 Filco 红轴退烧。

6123ueFI2+L._SL1200_

上面的 Win 键看起来让强迫症抓狂是么?不要担心,盒子里提供了两个侧刻的 Win 键键帽,换上之后,强迫症们就舒服多了。效果如下:

IMG_5974

 

 

好了,我们来谈谈剩下的一个问题。

这东西用起来怎么样,好用么,值么?

呃,我们现在不问这个了。以前我们是会问这种问题的。但现在,大家看到你买了这个东西,就结束了。其他的问题你可以去搜嘛,网上内容多得是。总之,我们现在想要的就是告诉大家,我跟风来了这么一次消费行为。晒点图给你们,晒之前最好 P 一下,就结束啦。使用体验什么的,反正我用了这么想,不代表你用了也会这么想。

哦对了,还有最最后一点,这东西从日本买很便宜,折合不到人民币700块。当然,很多人对键盘的期望价格是50块左右,这我也理解。买这么贵的键盘,是为了装逼么?唔。我只能说现在才想到买机械键盘来装逼,是不是太晚了?

 

Lbf, lbm, lbs 的转换问题

干机械,又要和英制单位,美标图纸打交道的人,常常会碰到这么几个词:

Pound(s), lb, lbm, lbs, lbf.

以及这么一个问题:

如何把 lbm 转换成 lbf?(How to convert lbm into lbf?)

比如,一个机构下面挂了 5000 pounds 的重量,现在想计算承载的压强是否超过许用应力(单位 psi, $$1psi = 1lbf/in^2$$),这时候你的承载到底是多少 lbf?

第一反应必然是 Google,Google 之后的第一个答案,却很可能把所有习惯了公制单位体系的人带到沟里去。

我们先从这个错误答案看起。其实,严格来说,这个答案并没错,只是不是你要的那个答案而已。

lbf 是力的单位,lbm 是质量单位,两者的关系:

$$1 lbf = 1 lbm * 32.2 ft/s^2$$

所以,当你需要把 lbm 转换成 lbf 的时候,要乘以这个 32.2 么?

NO.


这个问题的错误其实很简单。

$$1 lbf = 1 lbm * 32.2 ft/s^2$$只是 $$G=mg$$ 的变形而已。

做个简单类比,我们现在定义一个新的单位,叫做 kgf,1kgf 是 1kg 所受的重力。

那么,我们熟悉的 $$9.8N = 1kg * 9.8N/kg$$ 就会变成:

$$1 kgf = 1 kg * 9.8m/s^2$$

实际上,lbf 的定义就是 1 lbm 所受的重力,二者在数值上相等。但其中差了一个重力加速度 g。

所以,当需要把 Newton 转换成 lbf 的时候,就要当心了。

$$1 N = 1 kg m/s^2 =2.20 lbm3.28ft/s^2 =7.216 lbm*ft/s^2 =7.216/32.2 lbf= .224 lbf$$