Talk is cheap

Show me the code

XPS 13 9350 更换 Intel 8260 AC 无线网卡

Dell XPS 开发者版与普通版最大的区别大概就是无线网卡了。开发者版是 Linux 友好的 Intel 网卡,而其他的版本一般是 Dell 自己的网卡,在我看来就是 Broadcom 网卡的马甲。据说 Broadcom 的网卡对黑苹果很友好,然而我又不用 ... 但最近在更新 linux-lts 内核的时候,却出现了很大的问题。

在上个星期更新内核到 linux-lts-4.9.62-1 时,出现了网卡不可用的情况。给出的报错信息为

# journalctl
11月 20 14:43:34 quad kernel: brcmfmac: brcmf_p2p_create_p2pdev: set p2p_disc error
11月 20 14:43:34 quad kernel: brcmfmac: brcmf_cfg80211_add_iface: add iface p2p-dev-wlp58s0 type 10 failed: err=-16

# dmesg
[    4.061743] usbcore: registered new interface driver brcmfmac
[    4.061803] brcmfmac 0000:3a:00.0: enabling device (0000 -> 0002)
[    4.184308] brcmfmac 0000:3a:00.0: Direct firmware load for brcm/brcmfmac4350-pcie.txt failed with error -2
[    4.645165] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Oct 22 2015 06:16:26 version 7.35.180.119 (r594535) FWID 01-e791c176
[    4.660415] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code (0x30 0x30)
[    4.681113] brcmfmac 0000:3a:00.0 wlp58s0: renamed from wlan0
[    6.054543] brcmfmac: brcmf_p2p_create_p2pdev: set p2p_disc error
[    6.054549] brcmfmac: brcmf_cfg80211_add_iface: add iface p2p-dev-wlp58s0 type 10 failed: err=-16

Google 了好半天,没有发现什么有用的信息,于是滚回 mainline 内核看看。结果一切正常 ...

但我就是要用 LTS 内核,这个 Broadcom 网卡已经让我不爽很久了!于是某宝买了个网卡,就有了下面的故事。

- MORE -

微信开发者工具 在 Linux 中的使用与吐槽

听说微信开发者工具更新了,啊不,不是听说,其实是在某挨踢之家看到的 一篇文章 ,出于好奇,就进去看了一下。发现下载页面只提供了 Win32/64 以及 macOS 的下载。真抠门啊,不给个 Linux 版的。我猜这个“开发者工具”是用 Electron 驱动的,于是下载了一个 macOS 版的准备看看。

下载下来是个 dmg ,可以用 7z x file.dmg 直接解包。这是解包之后的目录结构:

微信web开发者工具
├── Applications
├── .background
│   └── dmg-background.tiff
├── .DS_Store
├── [HFS+ Private Data]
├── .HFS+ Private Directory Data\015
├── .VolumeIcon.icns
└── wechatwebdevtools.app
    └── Contents
        ├── _CodeSignature
        ├── Info.plist
        ├── MacOS
        ├── PkgInfo
        ├── Resources
        └── Versions

打开 wechatwebdevtools.app/Contents/Resources ,里面出现了 app.nw 这个文件夹,原来用的是 nw.js 。继续进入,果然有 node_modules 以及 package.json 。然后进入 node_modules 看一下,发现了 reactreact-domreact-redux ........ 以及一大堆的 babel 插件。从 stage-0stage-3babel-registerbabel-minify 一应俱全。在打包的时候就不能把这些 devDeps 给删掉吗???

暂停一下,继续来看看能不能运行。

AUR 里面装一个 nwjs-bin 就行了。然后 cd 到 app.nw 运行

- MORE -

Arch Linux & KDE Plasma 配置笔记

换了新电脑之后,便入了 Arch Linux 的深坑。一开始是三天两头换桌面环境,还尝试使用 Unity for Arch ,最后还是停在了 KDE Plasma 。因为听说(真的是道听途说) f2fs 对固态硬盘很友好,便尝试在根文件系统上使用 f2fs 。但没有比较,也感觉不出来系统有多快,反而遇到很多坑 ... 装系统和日常使用的时候都有。比如系统启动的时候突然闪出一个 [FAILED] ,关机的时候半天关不掉(这里似乎忘了提示信息是什么了,反正是一个 1min 30s 的正计时,但时间到了以后又会顺延 1min 30s ,有时能到二十几分钟 ... ),Chrome 三天两头提示个人配置文件已损坏,但重启电脑又接着恢复 ... 等一系列坑爹的问题。一忍再忍,终于忍无可忍,但这时候就要期末考试了,所以只能继续忍下去。现在期末考试终于结束了,可以愉快的重装系统了!

首先是备份,直接把 /home 打成 tar 包复制到固态最后面一块刚划出来的分区里面备用。然后进入 LiveCD ,把 f2fs 分区干掉,换成 ext4 。这里又想吐槽一次了,f2fs 居然不支持分区移动和收缩,要拓展分区只能用 resize.f2fsparted 也是拿他没什么办法。

arch-chroot 分割线

先安装基本的软件包,当然少不了 fish shell 了!

pacman -S sudo fish git vim zsh nodejs npm shadowsocks-libev proxychains

在 Arch Wiki 的 KDE 安装环节,只提到了安装 kde-applications 软件包组或 kde-applications-meta 包。但这样会搞出很多没用的包,比如各种游戏,莫名奇妙的化学工具,“KDE 元素周期表”等等 ... 需要酌情做一些精简。

- MORE -

挖坑与填坑

在四月末,我插了三个旗子,在五月要完成这个完成那个。结果现在,六月已经过去两天了,还没有拔光......其实我是有好好填坑云音乐的,然后还建了 一个仓库 用来 分享 备份我的各种配置文件,只是没有写出来而已。至于评论系统么......鉴于这个辣鸡博客基本没人评论,就先扔在那吧,这也不是我所能控制的了啊 (误

在填坑的时候,有时会想,写这些代码的意义在哪里呢?放着作业不去写,来搞这些没什么用处的东西。而且写出来的也不是什么设计模式精良易维护易拓展的代码,如果真的有人看源码的话多半会笑掉大牙的吧。搬了这么多没用的砖,直接后果就是专业课没学好,期末考试就要等着挂了吧。然而就算是期末考试已经快要逼到了头上,还是不紧不慢,真不知道哪来的勇气。小小年纪就搬砖,那以后毕业了除了搬砖还能干啥?借用一句在 V 站上看见的话,“待遇的天花板瞬间就能碰到”。细思极恐。

所以到底为什么要挖这些坑呢?从我自己来看,大多都是出于一时冲动吧。突然有个想法从脑中闪过,就很激动,迫不及待要造个轮子,或者说马上就挖了一个坑。我这个糟透了的博客程序,云音乐,还有各种乱七八糟的仓库,大概都是出于此。之前我还很喜欢自己造轮子,用 Node.js 不喜欢装 npm 包,现在想想简直就是给自己找难受吧。虽然在一定程度上,重新“发明”一些轮子有助于学习,但把这些“多边形”的轮子用在生产环境就是自己的不对了。

为了填这些坑,最近,也可以说是相当长的一段时间以来,我都睡得非常晚,大概每天两点到三点左右的样子。不过一般来说八点就要上课了,自然只能是七点四十从床上爬起来,随便吃点东西/不吃东西就去教室坐着。而这些早课,大概只是一些上机课或英语课,我一般都没什么听的兴趣。有时还能坚持清醒着,大部分时间还是睡着了吧。作为一个大学生,这么做似乎有些舍本逐末的样子。还是痛快的承认自己不是一个“合格的”“当代大学生”好一点。啊,你看,现在都过了十二点,我又熬夜了。一边想着“这样做可不行呢”,一边又默默去填坑了。

我到底在写些什么?算了,还是填坑去吧。

在 Kotlin 中使用 Andorid 的 DataBinding

写教程之前,先闲扯点别的。昨天的 Google I/O 大会上,Google 钦点了 Kotlin 作为开发 Android 的官方语言,据说此言一出,台下开发者立即掌声雷动, 我没看直播所以只是听说 大概是天下苦 Oracle 久矣,Java 太辣鸡还天天想着抢钱。最近要组队搞某创新创业大赛,Android 端由我来负责,我终于也要开始写原生 Android 应用了呢,想想就有些激动。早就听说 JetBrains 的 Kotlin ,因为之前不用 Java 所以也没太在意,只是听说语法甜甜的。之前一直被灌输一些 Java 辣鸡的言论,而且身边有些 Java 使用者也这么认同了,当然不否认 Java 9 加入了很多新东西就是了。但如果让被 JS 惯坏了的我去写 Java ,我肯定是拒绝的,于是就开始学 Kotlin 了呗~

上学期,我接触了第一个前端框架 Vue.js 。当时觉得这个东西设计很精巧,上手也快,看了半天教程跟着打了几个 Demo 就上手写了,于是乎就习惯了双向数据绑定的写法,并且认为这是理所应当的。然而寒假之后接触了 React Native ,对没有双向绑定非常不爽。虽然双向绑定只是块糖,但有总比没有好嘛。听闻 Google 也搞了个 Android 上实现数据绑定的库 DataBinding ,而且兼容性也不错 我好像不是很在意兼容性2333 ,然后就想着要尝试一下。首先对于这个 DataBing 库,是有详细文档的,只不过如果要想在 Kotlin 上用它,有一些不一样。

下文中,~ 代表项目根目录。应用包名为 me.rocka.kotlindemo

- MORE -

四月的尾巴

五一假期放三天,过了两天浑浑噩噩的生活,假期就快要结束了。。。自从三月底服务外包校赛结束,把 React Native 扔到一边,就没怎么认认真真的写过代码 说的好像之前有认真写一样。转眼间四月要结束了,生日也过了,该想想之前都做了什么,以后又该做什么了。

四月刚开始的时候开了个大坑,然后一直有努力的在填 其实是为了GitHub连击数吧,我也不知道具体有什么用,现在大概做到能听歌看歌词的样子了。不过既然是大坑,就要一直填下去,就是不知道所谓服务外包国赛开始之后还能不能有这么多的空闲时间。

Electron Netease Cloud Music

- MORE -

Chrome 终于修复了高 DPI 下 IME 漂移的 bug

今天,北京时间 2017 年 4 月 20 日,Chrome for Linux 浏览器更新了 58.0.3029.81 版本。此次更新修复了一个陈年旧 bug :在 HiDPI 下输入法定位漂移的问题。相信高 DPI Linux 用户都会有亲身体会,而且基于 Chromium 的 Electron 应用也会有这个问题。现在这个 bug 终于被修复了,喜大普奔!接下来就坐等 Electron 同步最新的 Chromium 源码,皆大欢喜了!!!

喜大普奔

- MORE -

在 KDE 中使用 KWallet 自动解锁 SSH 密钥

一开始用 Ubuntu 的时候,创建过一个 SSH 密钥,然后 Unity 很贴心的帮忙勾选上了“每次登录时自动解锁此密钥”,惯得我差点把密码给忘了。前一段时间把所有 Git 仓库的远程 URL 都换成了 SSH,感觉好像快一点,但每次都输入密码很是烦人。虽然 WebStorm 可以在同步更改时选择保存密码,不过关掉以后还得输入。那就随便折腾一下这个 KWallet 吧。

大部分的内容都参考自 Arch Wiki :

  1. KDE Wallet
  2. SSH Keys
  3. systemd/user

- MORE -

生快,阿毛

本来计(Y)划(Y)好要在这个寒假约你出来的,但现在还是没有什么作为。倒不如说是之前也有这样计划过吧,但统统没有什么实际的行动。也许这段,情感?似乎是说不通的,只能以单方面的妄想而告终么。反正也没什么好留恋的,对于你来说。

今天用一天的时间补了一部番,怠惰的假期生活果然是好啊。我果然喜欢贫乳傲娇的妹纸。

算了,没什么好说的,反正在这说了也没人会看见 = =

还是希望能有点进展啊,毕竟一年没见了

划掉,晚安咯。