网站按钮代码,表白网站在线制作app,天津公司网站怎样制作,企业网站建设规划 论文摘自 http://imtx.me/archives/1738.html 今天在北京联想参加了「开源中国」的「源创会」#xff0c;在会场上做了关于《Ubuntu Tweak五年之历程》的分享。 这是至今为止我参加过人数最多的活动#xff0c;大概有300#xff0b;。看着这么多人#xff0c;我刚上台的时候大概… 摘自 http://imtx.me/archives/1738.html 今天在北京联想参加了「开源中国」的「源创会」在会场上做了关于《Ubuntu Tweak五年之历程》的分享。 这是至今为止我参加过人数最多的活动大概有300。看着这么多人我刚上台的时候大概紧张了1分钟但是之后我就进入状态了而且完全没有看演讲稿就很自然地讲下去了。整个演讲大家都给了我很大的支持与鼓励我得以顺利地完成。 这是我自己感觉最好的一次活动我也完全地把自己想表达的东西表达了出来现场大家的提问也非常好可见大家都听懂了 :) 总之真的很享受这次活动。 我把Slides和演讲稿放出来感兴趣的朋友可以一边读文字一边对照Slides。 Slides下载地址 five-years-of-ubuntu-tweak.pdf Ubuntu Tweak五年之历程 大家好 我是来自 Canonical 的周鼎今天我很荣幸收到开源中国的邀请在这里与大家聊聊有关开源的一些东西。 我想跟大家分享一下过去五年来自己在 Linux 开源世界的一些认识、经历和收获。我可能是现场唯一讲桌面软件和桌面系统的与大家的技术交集不多因为现在的主流是 Web、移动应用和云计算平台。但是桌面系统是我们工作离不开的平台桌面系统对我们来说是最重要且最直接的工具我相信大家都是在桌面系统里编程和创造而不是在浏览器和手机里。没有桌面系统我们就无法创造 Web 及移动平台所以在未来还是会继续发挥其重要的作用。 在这里我想简单的了解一下有多少朋友是写代码的现场几乎全部举手 很高兴看到这么多朋友是写代码的那么请允许我代表你们一下作为一个开发者大家都是希望能做出自己的作品的是不是现场反响 所以今天我在这里与大家分享一下我的个人作品——Ubuntu Tweak希望通过个人技术和产品上的经历能与大家产生一些共鸣。 在讲 Ubuntu Tweak 之前我先来提一下 Ubuntu 吧。今天我想首次以官方人士的身份向大家宣布 Ubuntu 的中文名——友帮拓。但是我不要求大家用它因为我自己也不说。 然后我来讲 Ubuntu Tweak 吧。首先它不是「优化大师」它是一个桌面系统的调整工具我从2007年7月开始做这个软件现在最新版本是0.7.2已经做了五年有了50多个版本。它大概有不到2万行代码最多一次下载有50万支持多国语言软件本身是由很多贡献者完成的。 我相信现场有些朋友可能没用过 Ubuntu Tweak我来做个简单的演示 字体调整 Unity设置 清道夫 为什么开发 Ubuntu Tweak 我是在2006年末开始接触Linux并且试了几个发行版后就选择了 Ubuntu。所有 Linux 使用经历在五年以上的朋友应该知道那时 Linux 很不好用尤其是中文支持方面没有像现在这样好的微米黑了。当时用 Linux基本上一装好系统就要各种配置折腾下字体、折腾下输入法再折腾下系统主题啥的让系统更漂亮毕竟是天天工作的系统让它变得赏心阅目是必要的。 当时我非常喜欢把我的 Ubuntu 美化成 Mac OS X已经到了以假乱真的地步了。顺便提一下今天我终于如愿以偿地用上了 Mac。 因为那时 Linux 很不好用我又喜欢解决问题于是做一个系统傻瓜配置工具的想法就这样冒出来了。 开源世界编程初体验 2007 年的暑假当时我仅有一些C语言和 Java 的基础我就参照着另外一款开源软件开始写 Ubuntu Tweak。当时我进入开源世界感觉真的非常棒当时没有 Github 这样的方便的交流沟通平台所有能接触到的源码最全而且最方便的就是 Linux 操作系统。你想想一句「apt-get source foobar」就能把一个开源项目的源码自动下载好并解开来马上就可以看了这对刚刚开始学习编程且如饥似渴的人来说简直是如鱼得水啊。 实际上是现在回想开源世界也有一个缺点就是文档不够齐全。很多库的文档都不完善你只有自己亲自去试才能理解更深。甚至有时候你必须得去看这个库本身是怎么实现的。很多事情都是两面的于是这实际上这也是一个优点只有在开源的 Linux 操作系统上你才有机会因为文档的不齐全直接去接触问题的本质去看一个具体的库是怎么实现的从而解决问题。我觉得使用 Linux 而且在 Linux 平台上编程有助于培养从本质上解决问题的能力。 当时我真的什么都不懂但是意识里还有一些现代项目管理的意思比如我还不知道什么是「版本控制」但是我自创了基于文件夹的「人肉版本控制」还挺自豪地写了篇文章。后来马上有前辈告诉我该去用 SVN当时 Git 还不流行。我马上采纳了意见学习了下 SVN并且入驻了当时比较流行的 Google Code。 这里是当时第一个做出的功能把我激动了好一会就是把系统配置读出并响应到一个响应的显示上如果勾选了这个按钮就把系统配置也改掉了。 利用好开源世界开源的特性多读源码这个「文档」 而这是当时把界面差不多建立好的样子没错当时我为了更中文化改名叫了「Ubuntu优化大师」不过后来又给我改回来了。 2007年9月9月首个0.1.2版本 大概边学边做一个暑假在开学的时候我就推出了 Ubuntu Tweak 的第1个版本0.1.2。这个版本的 Ubuntu Tweak 是用C语言写的很不好用界面非常破功能也有限但总归有了一个开始。而且因为我曾经是做 Linux 资讯网站Linux 桌面中文网的很自然地就把它放在自己的网站和其他论坛上进行推广也引起了不少关注。很快就有朋友说要帮我编译一个64位的版本还有朋友又说要帮我翻译成繁体中文。 当时我还在「LUPA」这个开源社区混当时我在杭州读书LUPA 也正好是杭州的。刚刚 LUPA 准备搞一个开源沙龙看到我发的这个东西就被当时 LUPA 社区的主管发现了他就邀请我去 LUPA 沙龙上讲讲。于是这次是我在开发了这个软件发布没几天后就第一次在线下跟大家分享了这给当时的我有着很大的鼓舞。真的很感谢当时邀请我分享这个软件的 LUPA 社区就像今天开源中国邀请我让我有机会得以贯穿一下这五年。 主动进行宣传愿意参与的人可能比你想像中的还要多 专注 coding 之外也要混一下社区。 发布0.1.2版本后的动作 在发布第一个版本之后我还注册了 ubuntu-tweak.com 的域名我马上搭起了一个 Blog用英语向世界广播。这个意义也是相当巨大的。正所谓开源无国界如果你做的东西没有区域限制那么不要怕英文不好推出国际版可以说是必备的。 然后因为我还在学校经常逃课不去上课时间非常多基本上是全身心放在做这款软件上了。PS我当时还是学习委员。 我的迭代开发速度很快。很快半个月后我又发布了一个新版本0.1.4。这个版本依然还是比较差的但是修正了很多 bug最重要的是给关注它的用户看到了我愿意在上面倾注的热情然后这个版本自然有了比之前更多的关注量。 在连发两个版本后我马上意识到了之前的方式虽然 Quick 但是 Dirty随着功能开发越来越多会越来越难以维护和很多潜在的问题。于是我立马放慢了速度尝试去学习了一些设计模式把软件的框架变得更加灵活而且容易控制记得那个时候就接触了 MVC 设计模式。而且这个版本得到了当时在北京朋友的支持他为 Ubuntu Tweak 设计了全新的Logo让 Tweak 得以在后面争气一下「好歹要对的起这个专业的设计师设计的 Logo 是吧」我开始花精力在界面的设计上而不是仅仅在代码的设计上。当然这个过程非常的漫长。 2007年11月Ubuntu Tweak 0.2.0 在一个半月后2007年11月经过无论是结构还是用户界面改良的 Ubuntu Tweak 0.2发布了。当时我继续像以往一样写了一篇很详细的、图文并茂的发布文章。这个习惯一直沿用到现在我觉得虽然不会有人看也不一定会关心你修了几个 bug 或内部有用什么设计模式但是就当为自己写。 写详细的发布通告至少让自己知道这个版本做了什么变动 然后在这个版本后因为用户增多了大家需要一个报告问题的方式于是当时我把 Ubuntu Tweak 放在了 Launchpad 进行管理当时只接受 Bug报告也没有所谓的项目管理基本上是我想到做什么功能就马上去做。当时收到的第一个Bug报告是UT Logo takes too much place. 当时我不以为然因为我喜欢自己的设计一直没采纳这个用户的意见修正这个 bug 大概花了一年多。 然而我还是认为坚持自己的意见很重要因为自己慢慢认识及争论的过程比毫无保留地接受第三方的意见要好。 Ubuntu Tweak 0.2.0之后的动作及0.2.4的发布 在0.2版本发布以后我还是不满意当前的构架而且那次在 LUPA 的活动上一个大学的教授向我推荐了 Python 这门编程语言。我当时是除了Basic、C 和 Java 没接触过其他语言而且我好奇心比较强既然有大学教授向我推荐了 Python 这个新东西那我就去学学好了。 于是我又是一边学习 Python一边把 Ubuntu Tweak 用 Python 重写了。很快在12月中旬我就发布了完全用 Python 重写后的新版本0.2.4这个版本继续增加了更多功能比如 Compiz 3D桌面的设置比如增加了德语、波兰语。 无论是 Ubuntu Tweak 的图形编程 GTK还是后来用 Python基本上我都是现学现用我觉得这个还是很重要的。 学以致用边学边用。 0.2.4之后的动作 当时 Ubuntu Tweak 的多语言支持是通过 gettext 来支持的当时项目托管平台 Launchpad 有着对 gettext 的在线翻译的支持而且后来还增加了一个叫 「PPA」的机制即Personal Package Archive可以通过该渠道发布软件用户只需要加这个源就可以获得持续更新。相信用 Linux 的朋友都知道这是怎么一回事。 于是我为 Ubuntu Tweak 建立起了翻译平台还开启了这个 PPA。这使得参与 Ubuntu Tweak 的翻译不需要通过手动提交 Pot 文件任何人都能在网上自己翻译了另外 PPA 的增加也使得软件的分发变得非常方便用户不需要每次下载、安装只需要每次更新就能用最新的东西了。 这些因素让 Ubuntu Tweak 后来拥有了30几国语言的支持、更快的流通奠定了基础。 关注开发以外的事物优化分发流程。 第一个半年的荣誉与成果 2008年1月我已经发布到 Ubuntu Tweak 0.2.5版本了。当时我已经不做间接宣传了而只在自己的blog上做主动宣传当时效果很好Linux.com 报道了 Ubuntu Tweak。当时的美味书签del.icio.us 也上头版了。这对当时来说是很大的鼓励。 基本上我以每月两个版本的速度开发着…半年的时候我就发布了11个版本而且只是 0.1 0.2。不知道这个频率是不是太快但是对于一个正在学习阶段的我来说还是比较合适的。 然后我继续紧着不断开发完善各个方面的功能。 Release Soon, Release Often 2008年4月 Ubuntu Tweak 0.3 2008年4月我发布了 Ubuntu Tweak 0.3一个显著的变化是我调小了 Banner 的尺寸迈出这一步是很不容易的…增加了自动更新功能。与此同时Ubuntu Tweak 第一次在国内的《程序员》杂志被报道了。 2008年7月 Ubuntu Tweak 0.3.4 2008的7月我又发布了 Ubuntu Tweak 0.3.4这个版本增加了一个比较重要的东西那就是第三方源的东西。这个功能把一些常用的 PPA 软件收集起来让用户可以随时保持软件的最新版本。这个功能在后来不断完善成为了用户最受欢迎的一个功能。 2008年10月 Ubuntu Tweak 0.4.0 我又马不停蹄的开发出来了0.4.0版本这个版本最显著的改进是我终于去掉了界面那个长条界面变成了这个样子同时加入了软件包清理的功能。任何操作系统在长期地使用后都会留下缓存和垃圾文件因此 Ubuntu Tweak 增加这个功能可以帮助用户方便地去清理垃圾文件。 中途夭折的 Fedora 版: Ubuntu Tweak 0.4.3 这个时候Ubuntu Tweak 已经有了一些知名度我的野心也有点开始膨胀因为我不断地改善了 Ubuntu Tweak 的核心功能使其可以根据环境动态加载模块理论上可以支持除 Ubuntu 以外的发行版本了于是在2008年12月推出它以后反响不如期望之热烈于是我就没有继续唯一而专注在当前的 Ubuntu 平台了。 现在想想当时它的失败是注定的如果叫「Tweak for Fedora」那还有点希望。作为一个用 Fedora 的用户谁愿意用一个 Ubuntu 开头的软件呢要我自己也是不愿意的。 先专注做好一个平台 2009 年,开始实习 工作后的动作 2009年我已经开始工作了基本上就只在业余时间继续更新着这个项目。工作给我很多的收获让我学习到了如何使用规范的流程去发布软件。于是在这一年我最大的改变就是开始详细地应用项目管理模式去管理我的每个发布因为很多时候你无法在工作中去随心所欲地应用一些无论是技术还是其他方面但是在自己的软件中就可以尽管去尝试。 从0.4.4版本开始我开始不再像以前一样想到什么就开发什么而是计划好要开发的内容定制发布计划遵守特性计划、实现和冻结等项目周期。在这2009年这一年我以几乎每月一个版本的频率发布了10个版本。好好地打磨了一遍。 在这背后还有一年显著的变化那就是我在2008年末正式用 Git 取代了 SVN将其作为 Ubuntu Tweak 的源码版本控制软件并将其转移到了Github上去。对于主要是一个人写代码的项目来说Git 的多人协作的优势并没有完全体现出现但是我已经开始通过 Github 接受到一些 patch。 另外Git 的无痛 branch让我在这一年0.4版本和0.5版本的并行开发得到了可能。 实施软件工程应用 Git 技术进 一步优化软件开发流程。 2010年1月1日 Ubuntu Tweak 0.5 然后到了2010年1月1日我发布了 Ubuntu Tweak 0.5版本 这个版本最大的特色是结合我当时跟另外的朋友一块做的网站将一些数据给网络化了而不是像以前一样是写死在代码里的。 我用 Django 做了这个网站当时这个网站的设计师是 Kevin Chou而前端也就是实现的则是 Keke而我就负责前后端的结合我们这个团队当时分布在全国各地就通过Git和网络把它做出来了。这是做 Ubuntu Tweak 以来首次真正通过团队协作完成的一个附加作品。 我在这次合作中认识到了很多产品虽然刚开始都是一个人做出来的但是想要把它做的更好团队的力量是少不了的。特别是对于开源软件来说团队并不是仅仅是参与开发这个项目的人很多用户包括翻译者他们也是团队的一员。 然后这一年Ubuntu Tweak 收到了更多的荣誉首先是在 OMGUbuntu! 上它被评为了「最佳系统清理工具」日本的 Linux 杂志也相继报道了它。这里要很感谢将其告之我的朋友们。 Ubuntu Tweak 0.5 后的动作设计新界面 到了这个时候Ubuntu Tweak 整体上实际上已经比较成熟而且稳定特别是代码方面已经有了比较灵活的可扩展机制。这个时候我把重点转向了用户界面方面因为随着功能的增多现在的界面已经不适合越来越多的功能了。 早在2009的11月我就把我的想法与当时团队的设计师 Kevin 分享了而他也能非常领会我的意思于是很快就做出了一版 Ubuntu Tweak 0.6 的草图。但是在后来的2010年我把重心放在维护和更新0.5版本上就没有精力去实现这个0.6版本。 但是在2010年我在继续维护当前版本的同时也一起与朋友设计未来的版本并以此为意见。这是当时另外一个朋友 Jeonkwan Chan 设计的草图我们已经在讨论一些非常细节的东西了。 这个经历非常美好我们虽然位于不同的地方但是对于如何设计一个简洁好用的用户界面有着一样的热情。 2011年12月 Ubuntu Tweak 0.6.0终于发布 一直到了去年我才开始尝试实现这个全新的用户界面并且在一边实现一边改善。2011年愚人节的时候我还不知道我能不能完成这个版本但是索性就发表了一篇「初探下一代Ubuntu Tweak」提前公布一下借此激励自己去完成这个版本。 后来因为工作的变动和个人的一些事情特别是我来到北京以后软件中断开发了很久很久。我曾一度以为这个版本再也做不出来了。 后来经过自己的努力在2011年就要结束的时候我砍掉一些功能终于将设计中的 Ubuntu Tweak 0.6 发布了出来。从设计稿出现到最终发布整整花了两年时间具体地说是两年的业余时间。 这个版本虽然砍掉了一些如第三方源的功能但还是很受欢迎的。对自己而言这是一次从设计的角度把草稿变成现实的过程而不是之前从程序的角度变成现实。大概从这以后我慢慢地有着「以设计驱动开发」的思想。本质上无论是软件构架还是用户界面都是一个设计的过程。 尝试设计驱动开发 2012年4月 Ubuntu Tweak 0.7.0发布 然后2012年来了在维护了 Ubuntu Tweak 0.6.0 两个版本之后我又积累了一些程序和设计方面的需求于是我制定了0.7版本的开发计划并且在两个月的集中式开发之后它又被顺利地实现出来了。 2012年4月25日也就是两个月前 Ubuntu 12.04 发布的前夜我同期发布了 Ubuntu Tweak 0.7.0。它比0.6版本更接近于我们之前的设计稿不仅将之前砍掉的功能全部带回而且实现了全局模糊搜索、用户界面的进一步打磨。这个版本我才可以说是达到了我心目中该有的 Tweak 的样子。 回头看看 Ubuntu ? 而这5年来Ubuntu本身也有着巨变Ubuntu 有了自己特色的鲜明的黑色系主题有了自己的 Unity 桌面甚至有了自己的软件中心里面还有卖很多商业软件和商业游戏这在五年前是不可想像的。 于是我意识到Ubuntu Tweak 也已经实际上达到我心目中的样子了而且它也不像以前那么重要了。因为在开发 Ubuntu Tweak 这五年Ubuntu 本身有了非常大的改进以前总会折腾输入法、折腾界面但是现在 Ubuntu 默认安装好都已经非常好用了。 于是上个月我宣布了不再为 Ubuntu Tweak 开发新功能而只进行维护和更新等工作。从2007年7月中旬开始开发到现在马上就要满五年了。这五年我还做了其他很多事情但基本都是小小的事情很多也都半途而废了只有这件事情坚持了下来。也是这件事情带给我最多的收获。 接下去的五年Ubuntu 会继续越来越好而 Ubuntu Tweak 会慢慢地淡出去。但是这五年我学到的东西仍然继续影响着我之后要做的事情。 花五年时间认真、专注、持续不断地去做一款软件慢慢把它做好... 谢谢大家