Manjaro 手动降级 AUR 应用

2018-12-31 · 775 chars · 4 min read

平时工作用的笔记本装的 Manjaro 系统,然后公司有一些必须的办公软件并不支持 Linux,所以极其依赖 Virtualbox。就在昨天,看到 yay 提示有软件可升级,随手升了下,悲剧的升级 virtualbox-ext-oracle 时报错,之后发现虚拟机启动不了了:

Packages (1) virtualbox-ext-oracle-6.0.0-1

Total Installed Size:  13.76 MiB
Net Upgrade Size:       3.36 MiB

:: Proceed with installation? [Y/n]
(1/1) checking keys in keyring                                                   [##############################################] 100%
(1/1) checking package integrity                                                 [##############################################] 100%
(1/1) loading package files                                                      [##############################################] 100%
(1/1) checking for file conflicts                                                [##############################################] 100%
(1/1) checking available disk space                                              [##############################################] 100%
:: Processing package changes...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
(1/1) upgrading virtualbox-ext-oracle                                            [##############################################] 100%
0%...
Progress state: NS_ERROR_FAILURE
VBoxManage: error: Failed to install "/usr/share/virtualbox/extensions/Oracle_VM_VirtualBox_Extension_Pack-6.0.0.vbox-extpack"
VBoxManage: error: Failed to load the main module ('/usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack/linux.amd64/VBoxPuelMain.so'): VERR_FILE_NOT_FOUND - /usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack/linux.amd64/VBoxPuelMain.so: undefined symbol: _ZNK16RTCRestArrayBase9baseCloneEv
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component ExtPackManagerWrap, interface IExtPackManager
VBoxManage: error: Context: "RTEXITCODE handleExtPack(HandlerArg*)" at line 1211 of file VBoxManageMisc.cpp
error: command failed to execute correctly
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...

在 Linux 和 Windows 上调试 iOS Webview

2018-09-05 · 583 chars · 3 min read

前端 H5 开发,在 macOS 上使用 Safari 调试 Webview 页面相对容易。但是在 Linux 和 Windows 上就比较麻烦了,今天在这里介绍两种方案,方便使用 Linux 和 Windows 的开发者。

由于我手头上只有一台 archlinux,所以主要演示 Linux 下的操作,Windows 只会更简单。

npm hook scripts 不执行的问题

2018-05-29 · 783 chars · 4 min read

最近在做一个 node 工具,需要在 npm install 之后做一些事情,然而又不希望在每个包里加 scripts(可以想象成 eslint 和 eslint plugins,我不想在每个 plugin 里写 scripts,而是希望 eslint 在 plugins install 的时候“发现”他们,然后执行一些必要操作)。开始想各种方法,然后在 npm 文档 里看到了一个之前完全没印象的功能:"hook scripts" 。

强化你的 git

2016-09-29 · 530 chars · 3 min read

git 是目前最流行的版本管理工具之一,日常开发中时时刻刻都在于 git 打交道,git 原本已经足够强大,但是在命令行模式下,并不美观,这次介绍几个我积累的配置,强化你的 git。

pull 模式使用 rebase

在你执行git pull 的时候,如果远程仓库已经有人提交了新的代码,那么 git 默认会进行 merge,结果就是:

告别 Postman、ARC、DHC,拥抱 curl

2016-09-17 · 992 chars · 5 min read

今年一直在公司折腾 nodejs,实实在在的体会了一把“随便玩玩”和“真正投产”的区别。在各种环境,各种防火墙,各种权限中对程序做验证,少不了 curl 这个神器,只要掌握几个简单的命令,完全可以抛弃 Postman、ARC、DHC、REST Console 等“好用”的 chrome 扩展。

在介绍前,我需要先做两点说明:

  1. 下面的例子中会使用 httpbin.org,httpbin 提供客户端测试 http 请求的服务,非常好用,具体可以查看他的网站。
  2. 大部分没有使用缩写形式的参数,例如我使用--request 而不是-X ,这是为了好记忆。

下面开始简单介绍几个命令:

npm script 与 glob

2016-07-24 · 586 chars · 3 min read

好久好久好久没有写文章了,因为最近的闲暇时间全部贡献给了nfm

现在是广告时间,nfm 是一个基于 nodejs 的文件管理系统,目的是解决前端 cdn 静态资源的管理,前端使用 react+redux 实现,后端为 nodejs,目前还没完成(努力中),欢迎大家 star,https://github.com/keenwon/nfm

在写 nfm 单元测试的时候,遇到个诡异的问题…

使用 rel=noopener

2016-03-18 · 319 chars · 2 min read

最近看到一篇文章,又涨知识了,以前还真没想到 opener 能这么玩。简单介绍下:

解决什么问题

假设你当前在浏览一个页面,上面有个链接(可能是用户输入的):

<a target="_blank" href="">点击</a>

在新打开的标签页通过 window.oponer ,可以获得当前页面的 window 。这样的话,http://keenwon.com (被打开的页面)将获得当前页面的部分控制权,即使新打开的页面是跨域的也照样可以(例如 location 就不存在跨域问题)。

大家试试这个 demo,demo 只是跳到了百度首页,但是如果跳到了钓鱼网站呢?直接提示用户登录,而此时用户注意力集中在新开标签页里,很可能不会注意到原页面在后台的变化。