Category Archives: 日志
开发输入法是一种妥协的艺术
很久很久以前,我还没有在用 Linux 的那个时候,那会儿还在用 Windows 上的搜狗输入法。有时候经常就会好奇一件事,为什么输入法的更新日志里,经常会有「修复和XXX程序的兼容性」,「修复和YYY程序的兼容性」,难道他们不应该采用一套统一的接口吗? 几年以后当我开始在 Linux 下开发输入法之后,我终于了解了一切…… 有些东西其实还是颇为为难的,我就来说一下曾经处理过的bug(有些解决,有些未解决,或者难以解决)。 1、LibreOffice 的 crash 简单来说原理就是在某个 Qt 调用 IM Module 的函数里调用某个函数可能会导致无限递归。这个相对来说是比较容易修复的,只需要把 IM Module 调用那个函数的移动到事件队列里延迟调用就可以避免递归了。但这个问题并不会在其他任何 Qt 程序中出现,相信也只是在某个 LibreOffice 的版本无意之中导致的。说实话这种问题并没有一种办法归结为是谁的“过错”,毕竟我相信相关的 API 并没有相应的文档来定义这么细节的调用是不合法的或者可能导致问题。 2、Gtk 的 Client Side Input Panel 的语言 tag 失效 Fcitx 5 有一个功能,让 Pango … Continue reading
休闲玩家的「口袋妖怪·走」的入门心得
总之 Pokémon Go 也是开服几天了,赶时髦玩了一玩,总之是勾引宅男出门锻炼的好游戏。这游戏的教学系统不可谓不烂,进去之后几天下来走了不少弯路,那么记录一下也许可以帮助其他人。 1、精灵捕捉 你以为的 pokemon go 是这样的: 其实是这样的: 但是不要小看拉达和波波。游戏中等级是十分重要的,升级的途径是获得经验。而获得经验的途径有以下几种: 捕捉精灵(100exp + 10exp 取决于扔球姿势) 获得新精灵图鉴(500exp) 对战(胜利一次好像是100?) 进化(500exp) pokestop(50exp) 进化需要获得这个精灵家族的糖果,糖果的获得方式是: 捕捉(3) 孵化(10-25,可能取决于种类) 放走(说明是传送给博士,1) 拉达进化需要 25,比比鸟进化需要 12。而进化比雕需要 50。想要刷经验的话,拼命捕捉波波和拉达就可以获得大量经验,可不要忽视了。 对战获得的经验其实不是非常可持续性,因为并没有自动回血/复活这样的设定。 另外坐在原地是几乎不可能刷新精灵的,除非周围有人用 lure module 或者自己使用吸引精灵的道具。 我曾经尝试原地并使用吸引精灵的道具,30分钟的时间内只有 4 只,lure module 我坐在原地刷新则奇快。 2、道具 pokestop 刷新时间其实极短(几分钟),找到有多个 … Continue reading
龙卷风和传奇
虽然是个老故事,也很短。 很久之前的某天我们在 IRC 的 #chakra-devel 上扯淡,突然有个人说,那边来了个龙卷风。 正当其他人为他担心的时候,他又说,没关系,这房子很结实因为是我造的。 众人皆拜服。 ]]>
坑
这个坑不是挖坑的坑,只是随便说说的一些可能比较坑的事情。 比如合租这个事情,找到一个糟糕的室友合租可以有多糟糕? 可以非常糟糕,以下是一些找到的情况。 首先,问题就在于你和你的室友是一起和房东签的合同,任何一方想要搬走都是break lease。 break lease 的罚款是建立在房租上的,到合同到期日为止,剩下的所有房租是可能产生的罚款的最大的量。 当然,为了保护租户,房东也不会和你较劲,一般来讲,如果你找到一个下家就可以转租出去。然后不会因为break lease而被罚款。 房东是不管你们内部如何分配房租的。他只care收到你们完整的金额,那么如果一开始你们就只有口头的协商,就会存在潜在的问题。 假设你的室友某天开始不打算交房租了,房东可能会把房租的责任都放到你身上,因为force你的室友交房租需要你们内部解决。否则你自己的信用也可能会受到影响。 当初房租可能是一个人承受不了的,所以你可能自己陷入一些财政危机当中。 而实质的建议也只有去找房东坦白寻求同情。所以你看到这事是有多么的不靠谱了。 想要从你室友那讨回你应该的部分也只能去和他打官司。找下家,找新房子,和房东得瑟,还有精神上的压力 ¬ _ ¬ ,没人能赔偿得了了。 即使不是房租问题,因为任何原因合租搬家也比较困难。如果你室友你觉得是混蛋,他又不想搬走,怎么回避下家问为什么要搬走的问题?怎么回避你室友对你找的人不满意的问题? 所以核心建议就是: 1、只和绝对信任的人合租。 2、只单独和房东租。 其次就是,划分责任范围也是很重要的。合租的话先在你们之间签个 agreement 是比较好的办法。 =-=-=-=-=Powered by Blogilo
用 systemd 限制用户的内存使用
功能上都是 cgroup 的功劳,但是 systemd 提供了一个容易使用的介面。 作大死把 ext4 换成了 btrfs,以前曾经有很多断点之后就再也起不来的事情。 电池没电倒不是特别担心,因为我电源管理设置成了危急电量就关机。 担心的事情就是现在都不用 swap 了,万一哪天有个进程抽风(对我说的就是你,telepathy-gabble),用光内存导致要强制关机怎么办。 systemd 提供了 user.slice 和 user-id.slice 来访问用户的进程,于是就可以使用下面的命令来限制所有用户进程一共只能使用 7G 内存。 systemctl set-property user.slice MemoryLimit=7G 内存超标就会被简单粗暴的杀掉(总比整个文件系统那啥好点…… 当然针对其他 unit 也可以方便的限制内存使用。 ¬ _ ¬ 系统进程你最好别给我作死。 =-=-=-=-=Powered by Blogilo