Author Archives: csslayer
关于代码风格和宏
这是个反思的时机。 由于现在fcitx只有我一个人修改,不需要合作的时候怎么写都无所谓。主要是让一位兄弟望而却步。 我的代码风格到底猎奇吗? 他对于libfcitx-config这个库的意见最大 fcitx的代码现在总体上受了很多其他的代码影响,比如插件的设计,灵感来源于compiz,包括配置文件的设计,比如采用独立文件描述配置文件,这样fcitx-config-gtk就可以像ccsm一样简单设计了。同时为了易于手动修改,于是采用了类ini的写法。 然后为了在代码中方便取用配置文件的值,可以将配置文件的值和一个c的struct绑定,为了方便描述这种绑定这里使用了大量的宏。 使用宏的习惯是我从Postgresql继承来的,学校的开发涉及Postgresql,里面也使用了很多宏,比如系统表的初始值,系统表的定义。 CONFIG_BINDING_BEGIN(FcitxPinyinConfig); CONFIG_BINDING_REGISTER(“Pinyin”, “PinyinPriority”, iPinyinPriority); CONFIG_BINDING_REGISTER(“Pinyin”, “ShuangpinPriority”, iShuangpinPriority); CONFIG_BINDING_REGISTER(“Pinyin”, “DefaultShuangpinSchema”, strDefaultSP); CONFIG_BINDING_REGISTER(“Pinyin”, “UseCompletePinyin”, bFullPY); CONFIG_BINDING_REGISTER(“Pinyin”, “AutoCreatePhrase”, bPYCreateAuto); CONFIG_BINDING_REGISTER(“Pinyin”, “SaveAutoPhrase”, bPYSaveAutoAsPhrase); CONFIG_BINDING_REGISTER(“Pinyin”, “AddFreqWordKey”, hkPYAddFreq); CONFIG_BINDING_REGISTER(“Pinyin”, “DeleteFreqWordKey”, hkPYDelFreq); CONFIG_BINDING_REGISTER(“Pinyin”, “DeleteUserPhraseKey”, hkPYDelUserPhr); CONFIG_BINDING_REGISTER_WITH_FILTER(“Pinyin”, “InputWordFromPhraseKey”, strPYGetWordFromPhrase, FilterGetWordFromPhrase); CONFIG_BINDING_REGISTER(“Pinyin”, … Continue reading
Linux的桌面为什么这么傻逼(翻译)
就算成天被桌面折磨着早就成了M,但该骂还是他妈得骂,下面是别人骂的,总之都说到心坎里面了。本来想多加点脏话表达下心情,不过毕竟是翻译还是不要偏离原意为好。 来源: http://news.ycombinator.com/item?id=2643671 作为VLC的主要开发者和VideoLan的实际领导者,尽管我不想说什么,但最近有那么点受不了了。(啊,我还没叛逃到Windows去……)……是的,我是开源的强烈支持者,并且在大多数桌面操作系统上为FLOSS做了很多工作(包括匿名和不匿名的),并且相信计算机应该是自由的。我作为Linux用户和系统管理员已经有8年了。 但是,我被最近所谓的Linux桌面的“进步”震惊了:大多数所谓的进步就是渣……而且不光是我一个人这么认为,我所看到的用户反馈也都是些抱怨……尽管我会因为这篇回复而被人讨厌,但是我不吐不快。 – PulseAudio还是半生不熟的时候,就被Ubuntu和Fedora硬塞给了用户,并且许多用户都讨厌它;它具有严重的NIH综合征,和老架构相比它只带来了一点点新特性,那些新特性反而老平台做得更好。它的维护团队拒绝持续更新,也不愿意对某些应用友好(这完全不可接受),不光线程不安全,而且某些情况会占用大量CPU。 – PolicyKit 十分复杂,占用大量进程,而且几乎不能正确初始化(似乎只有gdm3能办到这件事)。它会弄坏大量的程序,特别是 Network Manager …现在我不得不用命令行来在KDE上连接wifi。并且如果你使用Gnome3或者NM的话,你还不得不使用它。 – KDE4.x 在4.3之前完全不能用(事实上我可以接受),但到了4.6,我还是不得不禁用语义学桌面和strigi从而让它不要操掉我那点CPU资源。Network Manager 还是无法工作,并且使用Nvidia的闭源驱动时我这里kwin会发生奇怪的崩溃。 – 尽管PackageKit不那么重要,并且它做得还不错,但它也十分复杂,需要维护者为大多数发行版打大量补丁,这玩意其实没啥必要,但是还是占用了大量时间…… – Unity 和 Gnome3 的可用性大踏步倒退,当然在下个版本出来之前我不会太在意这个(KDE 4.0 和 4.1 也不咋地)但他们还是烂到家了。对他们来说,窗口管理器无法正确处理全屏程序,x11 和 OpenGL 的混合程序,当然还包括了了 Xv。无障碍访问(注:残障人士相关的那个功能)完全被Unity抛到脑后了。不仅如此,Unity还时常崩溃或者死循环,我的家人对这次升级十分不满意。 所以,当人们问到我对于systemd和Wayland的观点时,我也不乐观。 幸好,我在打印上完全没问题 🙂 ——————–我是风骚的分割线———————– (注,这是另外一个人了) 如果你对四年前的linux桌面很满意,事实上我也是这么想的,好消息是,如果你还想找回它来,它始终还在那里。你也许所需要做的事情就是放弃或者降级Gnome,但它确实还在那。(或者对我来说,把KDE的一陀默认设置给取消了。)但不可否认的是,最近关于Windows的尝试就是场灾难。考虑到开源的基本工作方式,现在有大量的架构宇航员(含义请参考[1])在满世界乱窜。他们在干这些事情: 1、搞一个看起来富丽堂皇的设计 … Continue reading
闲谈
既然是闲谈就毫无逻辑。其实我的blog一向毫无逻辑。于是下文会有很多风骚的分割线,妄图掺和一些逻辑进去。 我不是啥好人。大概我的理想就是干自己想干的事情。不喜欢被无谓的事情束缚。 我也不高尚,我相信世界上也不存在什么高尚。如果真的存在的话,应该早早被进化论淘汰才对。不过这也没什么好被谴责的,为了个体而活着的个体才能够达到最好的情况。道德什么的也就是简单的个人标准而已。 不要搞坏User Space。一个会让用户的桌面不能用的桌面不是好桌面。 顺便来谈论下Linux全局菜单的不可行性。我知道很多人想要,但它无法达到Mac的效果。 总前提,一致的用户体验是重要的。如果不同意这点可以不用继续看了。 全局菜单是窗口和菜单的分离,但是现有程序不支持。好,接下来怎么办?让所有程序都修改成支持全局菜单?这是短期乃至长期不可行的,因为开源环境不可能有人领导这个。如果KDE或者GNOME想做,早就做了,何必等到现在。于是只能靠打补丁。Ubuntu使用了特别的Qt和GTK补丁,使得所有程序都可以支持全局菜单(GTK + Qt + Firefox + OOO),但是没有程序的支持,无法获得很好的效果,因为他们本身就不是为全局菜单型程序设计的。 假设给这些程序加了filter,那么将有些程序是全局菜单,有些程序还不是。便失去了一致的用户体验。 这点说明应该足够了。 另外我之前也讨论过全局菜单为何没有必要。窗口化程序距离太远,最大化程序没有必要。 以下是些ACG的感想。 Steins Gate 真的不错的说。日语苦手也就是看看中文影像版就满足了。其实由于最近才看了小圆,所以剧情上来说稍稍没那么惊喜。不过音乐超赞的,中后期那种无力和忧伤的气氛,衬托得很美。这种独自与世界为敌的孤寂感总是超能感染我。OST已经收了。 凉宫春日的惊愕的话,说起来最近玩世界线和轮回真的蛮多的。当然作为这样的轻小说而言就是爽快就好了。我一向剧情记忆都很清楚的。 另外灼眼的夏娜离大结局也不远了,从16之后的就一直没看,不过我也相信没人能剧透我,毕竟我身边完全没有夏娜的观众。到时候一定重新收一套祖国版。
Linux 究竟有多难用?
我前段时间教我女朋友装Linux,是远程语音一步一步教的。先是第一步就难倒了我,我不知道怎么选择安装介质,kubuntu自带的usb creator没能创建成功u盘,最后还是感谢unetbootin。 安装过程其实非常顺利,因为我是一句句教她怎么装的,包括分区怎么分,怎么选择挂载点。其实有傻瓜的方法啦。比如最大空闲区域安装Linux…… 然后重启进入Linux的时候,第一个问题就是她不会连接无线网络。为什么呢?因为KDE的托盘图标,在未连接,且开启无线网的情况下,是一个小圆点,她没找到……我费了多翻周折才发现是这个问题(俺一定会给KDE报Wishlist的……)。然后就是Kwallet跑出来捣乱……其实真的,初学者谁搞得清楚这是啥。应该有一些更多的说明文字才好。 然后就是后来的事情了,她想装flash,然后第一件事情是去google,于是她最后搞到了个so文件……当然我教她的时候,让她以后所有软件先去源里面找啰。其实她后来表示这方法挺高级,比网上说的一大串在终端内输入命令的方法高级多了。 比较意外的是她自己就安装了google talk 的plugin,也正好是我帮她选择kubuntu的好处,提供了预装deb。另外感谢nouveau这次给力了,一直没出bug,感谢kpackagekit工作一切正常。 然后她表示没有输入法,于是我让她装fcitx(啊,这简直是一定的),然后再感谢im-switch,让我只需要让她在终端使用一条命令就可以好好使用fcitx(其实fcitx装好后会触发debian的im-switch hook是吗?不过她用的locale是英文。) 她顺便表达了Fcitx还不错看的感想(啊我自high一下,果然是很配KDE的输入法的说)。 于是,Linux到底难用不难用呢? 就算在这些过程中,我也不得不让她在终端中输入一些命令……于是还是很难用。在不提软件本身质量的问题下,问题还是很多…… 真的要感谢KUbuntu做了这么多努力。省了我不少事情。就我的经验看,ubuntu的那一堆及其衍生真的是唯一一个可以让普通人用的发行版。Fedora我就不说了,就是个RH实验田,openSUSE你该颤抖,yast是什么破玩意,搞得这么复杂。也是一副做服务器发行版的德行。再剩下的就不用拉出来遛了吧。
