Author Archives: csslayer
无聊的感想
关于开源软件和用户 开源软件和用户到底是什么关系,这非常微妙。 以下言论是我见过的非常无稽的言论: 1、你觉得不好用你去改进啊 2、你觉得不好用去报bug啊 3、你又没掏钱你没资格批评啊 用户始终是用户,不管用什么软件,用户都是用户。 开源软件和那些闭源的软件(其实并非所有的开源软件,这里特指那些可以汇报bug的那些更加“open”的)都是软件而已,区别在于开源软件给予了用户查看源代码,以及和开发者直接交流的机会(mostly)。而并非你用了开源软件你就需要承担任何责任。 无论你用什么软件,你都不需要承担以下责任: 1、参与开发 2、汇报bug 同时你也有自由批评或者赞扬任何软件的权利。 用开源软件给予的是用户参与开发和汇报bug的权利,而不是加在用户身上的义务。开发者只可以善意的建议你如果有能力,有兴趣,可以来写个patch试试,任何人不能因为你“没这么做”而指责你。 关于代码万能论 这是需要承认的,但是不可滥用。 代码确是是万能的,如果你说一个软件有这个功能,另一个软件没有,然后反驳的理由是另一个软件“凭什么就不能实现”这个功能。代码当然可以写,区别在于: 1、现在有这样的代码吗?没有,“空谈无益,show me the code”。 2、其次,即使没有,潜在的实现这个功能的工作量是多少?如果需要的工作量很大或者你压根就不了解,用一个潜在而不确定的理由来argue就更加没意义。 关于项目和项目 太多人早就忘记了backward compatiblity 这种事情(当然,我说这种事也代表了我做好了被打脸的准备)……所以,不支持同一个软件包名多版本的包管理只能玩具一辈子。当然如果你没法认清他是玩具的事实,你活该。那些商业操作系统在向后兼容上的重要贡献是没一个发行版比得上的。 以及有些很“NB”的项目忘记了自己是被很多人用的事实,以及忘记了版本号的意义。 当然如果你的潜在目的就是搞那些用你的人…… 我觉得以上这些都是正常人应该能想明白的道理。欢迎自行对号入座。
Wine Touhou series
……嘛,我为数不多的几个游戏就是这个了。 最近遇见一些奇葩的问题……但总之我现在可以跑起东方的全部正作了……(相对正常的) 1、声音 用pulseaudio的话可能会忘记装32位的alsa-plugins……然后就没声。不过在前几个版本的wine似乎用alsa和pulseaudio会爆音,结果就跑去编译 wine-multimedia 来用原生的 pulseaudio 支持。 因为编译很烦人,所以测试前先看看到底能不能用alsa和pulseaudio。没音乐玩毛东方…… 2、诡异的按键问题 描述上和这里一样 http://ubuntuforums.org/showthread.php?t=1577051 一启动游戏就处于上和左被按下的状态。 不过没人提过解决办法,我这里非常奇妙的是,插上usb鼠标的话,就会出现这个问题,拔了就消失。Raven Dark 兄的提示是和direct input 有关,于是我今天突然想看看替换成windows的direct input 的 dll 如何,于是用winetracks替换了,结果似乎问题消失。 3、绯想天和非想天则 找了很久找到了这个补丁,提取出来放在这,打了就可以跑绯想天和非想天则了。 http://uploads.csslayer.info/uploads/chakra/wine_th123_th105.patch 4、for chakra 前几天又编译了个wine-multimedia,带了上面的补丁,arch/chakra 这种发行版你们也知道的,以后肯定会不得不需要recompile,于是到时候出了问题别来找我,这个大概现在能用吧。 http://uploads.csslayer.info/uploads/chakra/wine-multimedia-1.5.19-1-x86_64.pkg.tar.xz 5、性能 我的intel显卡禁用垂直同步之后似乎可以跑60fps全速…… 修改 ~/.drirc,为以下内容 <device screen=”0″ driver=”dri2″> <application name=”Default”> <option … Continue reading
Clang 的 inline
看,活了这么久,依然可以当小白。 Clang 的 inline 是怎么回事呢? 先来段代码: inline void f() { } int main() { f(); return 0; } 然后 $ clang main.c /tmp/main-hn0696.o: In function `main’: main.c:(.text+0x12): undefined reference to `f’ clang: error: linker command failed with exit … Continue reading