芬兰税卡详解

每年新年前后,在芬兰的同学们都会收到一封来自 VERO (芬兰税务局)的信。这封信里面就是税卡以及税率的解释。很多同学都有疑问:

  1. 为什么我没有收入还会收到税卡?
  2. 为什么我的税率和别人的不一样?
  3. 为什么我的税率这么高?
  4. 为什么我的税率额这么高?

这篇文章将解答这些问题。

继续阅读 →

Btrfs 断电损坏

强制关机是危险的,至少对于 Btrfs 文件系统来说。

即使如今 Linux 桌面的稳定性已经极大改善,使用滚动发行版或特殊显卡驱动的用户仍然可能会遇到系统卡死的情况。这时候很多人就会直接长按电源键关机。这会导致系统强制断电,而文件系统读写尚未完成(可能是文件系统层面,也可能是存储硬件层面)。

为什么偏偏 Btrfs 会特别敏感呢?

其实 Btrfs 本身并没有特别弱势的地方,但是使用 Btrfs 的发行版,比如 openSUSE,会定期进行 btrfs-balance 和 btrfs-cleaner。这些 Btrfs 维护任务会带来巨大的 CPU 和 IO 负担,让桌面更容易卡死崩溃。假如你正在玩一款特别占用资源的游戏,而这时 btrfs-balance 开始了,系统很可能会被卡死。如果此时强制断电,btrfs-balance 的数据转移就会被中断,从而使文件系统处于异常状态。

再次开机时,则可能会遇到无法挂载分区,无法进入系统,甚至无法启动的情况。通常系统的 /home 分区或子卷读写最频繁,也最容易因为断电而损坏。无法挂载 /home 分区或子卷的表现为:能进入登录界面却无法进入桌面。

这时要怎么做呢?

第一,重启后即使无法进入系统,也请先让机器继续运行。这可以让 SSD 硬件断电保护机制工作,将之前未完成的数据操作恢复,这可能需要几分钟。请尽量等待时间长一些,以确保数据写入已经完全完成。

第二,再次重启。如果第一步有效,那么您应该能够正常进入系统了。您可以多试几次。如果最终仍然不能进入系统,那么您还需要检查和修复 Btrfs 文件系统。

第三,制作救援盘,从救援盘启动。

第四,插入移动硬盘,使用 btrfs restore 将数据恢复出来。这一步是完全安全的,不会更改已有文件系统。接下来的步骤都或多或少有些风险,因此建议您先保留数据。

第五,按照维基上的 Btrfs 修复教程操作。需要注意的是,这些修复方法的风险依次增大。某些情况下,btrfs check --repair /dev/sda1 甚至可能会完全摧毁一个 Btrfs 文件系统。

译:《永久记录》序

我的名字是爱德华·约瑟夫·斯诺登。我过去为政府效力,现在则为公众工作。我花了三十多年才意识到这之间的差别。那之后,这份工作变成了一种煎熬。于是我现在专注于保护公众,对抗以前的我那种人——CIA 和 NSA 特工,年轻的技术专家——构建一个更好的世界。

我在美国情报体系 (IC) 的工作仅持续了七年,仅仅比我在非我选择的国家被迫流亡的时间长一年而已。在任职的七年时间里,我却参与了美国谍报历史上最重大的变化——从针对个人的监视到对全民的大规模监视。我协助了政府使它们的计划在技术上可行:仅凭单个政府就可以收集全世界上所有的数字通讯,永久保存,随意查询。

在 9·11 之后,IC 因为未能保护美国而饱受罪责。自珍珠港事件以来,对这个国家最具破坏性的袭击,在它的眼皮底下发生。作为回应,它的头目试图建立一个系统,以防止他们再次被打得措手不及。系统的基础是技术,这对他们这些学习政商出身的人来说完全是陌生的。通往世上最机密情报部门的大门,为我这样的年轻技术员打开了。自此,世界落入了极客手中。

继续阅读 →

构建基于 React 的 WebExtension 浏览器扩展

创建一个 React 应用,然后把它转化成一个 Firefox/Chrome 浏览器扩展。

继续阅读 →

Code Journey #11

九月亮点:高分屏BUG修复模拟器打包

KDE:

  • Kompare 高分屏渲染支持 [patch]
  • Filelight 高分屏渲染支持 [patch]
  • KSysGuard 系统卫士高分屏渲染支持,传感器折线图尚未支持 [patch]
  • 字体管理器高分屏渲染支持 [patch]
  • 字体管理器的 enablefont 和 disablefont 图标 [patch]
  • KWallet 钱包高分屏渲染支持 [patch]
  • KWin 高分屏渲染支持 [patch]
  • Krita 加载界面高分屏渲染支持 [patch]
  • Kate/KonsolePart 多屏渲染问题 [bug] [patch]
  • Spectale 多屏渲染问题 [bug] [patch]

openSUSE:

  • 更新 python-PyMuPDF 包并修复库链接问题
  • 更新 arcanist 包并提交到 Factory [request]
  • 提交 PCSX2 包到 Factory [request]
  • 更新 retroarch 包使之开箱即用 [request 1] [request 2]
  • 创建 retroarch-assets 包 [request]
  • 创建 retroarch-joypad-autoconfig 包 [request]
  • 创建 libretro-core-info 包 [request]
  • 创建 libretro-database 包 [request]
  • 创建 libretro-mame2000 核心包 [request]
  • 创建 libretro-genesis-plus-gx 核心包 [request]
  • 创建 libretro-flycast 核心包 [request]
  • 创建 libretro-yabause 核心包 [request]

Code Journey #10

KDE:

  • 修复 JuK 每次启动都弹出文件夹设置对话框的 BUG
  • 翻译 TechBase
  • 修复每日一图不更新的 BUG
  • 研究蓝牙耳机自动连接后无法识别的 BUG。确认是 Linux 内核的问题,已经汇报给上游。

openSUSE:

  • 更新维基 FAQ 页面,还在继续
  • Chameleon 主题:新的导航栏的页脚设计,以及暗色模式
  • 更新文档网页主题
  • 更新维基网页主题

openSUSE Conference 2019 @纽伦堡

openSUSE Conference 每年都有,以前总是因为各种要忙的没有下定决心去。这次提前安排了一下,公司还赞助了机票。

继续阅读 →

Code Journey #9

Code Journey #8

openSUSE

Wiki

  • 更新 FAQ 页面

Plasma 主题

  • 更新配色方案
  • 改进面板透明度

opi

  • 修复 Leap 15.1 系统版本空格问题

Geeko Store

  • OBS/PMBS 搜索 API 集成
  • 软件包列表

打包

  • 更新 php-composer
  • 创建 npm2rpm
  • 打包 npmjs-gulp-cli
  • 打包 npmjs-create-react-app
  • 打包 npmjs-webpack-cli
  • 更新 patterns-base,移除 dejavu-fonts 推荐,以改进 emoji 支持

KDE

翻译

  • 更新 KDE Connect 翻译
  • 构建同步到 SVN

Code Journey #7

openSUSE

opi

  • 解决了硬编码登录信息的安全问题,使用代理服务器转发请求
  • 支持 Packman 软件包查询
  • 解决了依赖关系缺失的问题

chameleon

  • 添加主题文档页面
  • 支持 hot reload 的开发模式
  • 增加暗色背景下的按钮和表单控件主题
  • 改进主题风格

打包

  • 更新 python-PyMuPDF

其他

Rabbit Lyrics

  • 支持多个歌词块