I’m often asked why Linux can’t make it easy to “write something like Microsoft Installer, or Installshield”.
That’s the wrong rabbithole, Alice.
Linux can make it so when you dream of databases, PostgreSQL or MySQL are “just there” and “just work”. That’s a much nicer experience - we should make the most of it.
------------------------------Mark Shuttleworth
http://www.markshuttleworth.com/
白 赤 青 黄 黑
水、火、木、金、土
欧洲 大洋洲 美洲 亚洲 非洲
五笨兔的组织构架
The Ubuntu community includes five structures to help it function effectively. Participation in every structure is open to members of the community.
1 Governance管理层
*
Ubuntu has a structure of community governance that aims to:
ensure that a process is defined that allows people to contribute to decisions regarding the Ubuntu community and distribution,公开
ensure that decisions regarding the Ubuntu distribution and community are taken in a fair and transparent fashion,公平,透明
ensure that necessary decisions are actually taken, even when there is no clear consensus amongst the community.务实
2 Members会员
*
Membership in the Ubuntu community recognises participants for a variety of contributions, from code to artwork, advocacy, translations and organisational skills. If you are active in the Forums, or submitting icons or sounds or artwork, then you are eligible for Membership, which gives you a say in the governance of the project.
3 Developers开发团队
*
One of the ways people participate in Ubuntu is to become developers, who can make changes to the packages that make up the distribution. This document describes the process to become an official Ubuntu developer, from your first patch and bug fix, to membership in the core developer team.
4 Technical Board技术专家顾问团
*
The Ubuntu Technical Board is responsible for the technical direction that Ubuntu takes. The Technical Board makes final decisions over package selection, packaging policy, installation system and process, toolchain, kernel, X server, library versions and dependencies, and any other matter which requires technical supervision in Ubuntu.
5 Community Council社区委员会
*
The social structures and community processes of Ubuntu are supervised by the Ubuntu Community Council. It is the Community Council that approves the creation of a new Team or Project, and appointment of team leaders. In addition, the Community Council is the body responsible for the Code of Conduct and tasked with ensuring that maintainers and other community members follow its guidelines.
缘起:
http://www.markshuttleworth.com/archives/date/2003/11/
Successful open source projects are usually initiated by someone with a clear vision and also the knowledge to set about turning that vision into reality. But what happens when someone has an idea and also has the resources to hire programmers to execute that idea?
My experience with SchoolTool v1
This note was inspired by Tom Hoffman’s blog entry which referenced SchoolTool and Chandler. I thought he was touching on a subject which has interested me for some time - how best to fund open source development. Trust me this is not easy. Most open source projects are led by the person who had the original vision. It’s much harder to HIRE people to work towards your own vision. But if philanthropists are to invest in open source software, then we have to figure out how to do just that.
First, some more history on the SchoolTool project, because I think it nicely illustrates the phenomenon.
I hired a talented and diverse team to build SchoolTool just as I was heading to Russia to see if I could get into the Russian space program. All of the team members were familiar with and fans of open source software and open source development. There was no one at the Foundation that had experience managing an IT project, but I figured the that the team would have no trouble managing itself. They should have the best of all worlds, with steady salaries to allow them to focus their time exclusively on an open source project.
Most open source projects are part-time efforts, with the team members constantly constrained in the time they can devote to their “hobby”.
While I was in Russia, the team sent me a series of regular reports on their progress. They settled on Java, not an environment I like, and SQL database, a reasonable proposition. So far so good. But over the next few months I noticed that they were spending a lot of time solving problems that didn’t really need to be solved. For example, we wanted SchoolTool to be cross-platform. They invested a huge amount of effort designing an XML-based UI description system, which would then automatically generate a UI for each platform. Why reinvent XUL, I asked? It seemed as if, given free reign, the developers pursued their own personal interests rather than the goals of the project. Sure, they could always argue that the tools they were developing were ultimately going to be USED by SchoolTool, but I was always left thinking that if I were in their shoes I would want to start solving the unique problems of school administration FIRST, and leave some of the other niceties till later.
After a while it became clear to me that the team was not going to produce a functional tool. So I canned the project and shutdown the development office, letting the developers go. This was a very unpopular decision, quite a few educational groups had pinned their hopes on SchoolTool. Rather than keeping those hopes artificially alive I killed the project outright and said we would not develop SchoolTool further. But at the back of my mind was still the belief that SchoolTool is a project that is both feasible and worthwhile, and that it should work in an open source environment once it has critical mass.
The issue, as I see it, is leadership. Most open source projects are founded by one or two people who have a very clear idea of what they want to create and how they plan to do so. They have an itch to scratch. Once they have a basic framework together, other people start to use it and the stone soup effect kicks in… some of the users become developers, and the bazaar magic happens. But here’s what’s critical - the success of the project continues to depend on it’s leadership, usually by the founders but sometimes in a more institutional way (like the Debian project).
Contrast this with my experience of hiring developers who had great skills but no personal attachment to the idea of having a SchoolTool out in the wild. They did what all open source developers do - they scratched THEIR itch.
In a proprietary development scenario the company and hence the developers are driven to ship product - they get no sales without a shipping product, and thus no salaries without shipping code. So there is an urgency and a pressure to ship something. We have all seen that sometimes that pressure is not constructive, and code is shipped in barely working state. Contrast this with open source developers who want a good, working tool out there - they ship it when it’s “done”. But that assumes that they really want it out there. If they are simply being paid to cut code, they cut the code they find most interesting, not necessarily the code that is on the critical path to ship the actual tool they’re working on.
Recognising this, I decided to cut the code myself. The two month hiatus Tom describes was part of this time, with me trying to recreate the good old garage days when I could spend all day working on the code that ultimately became Thawte. It took me that long to realise that times have changed - life’s too good these days. Try as I might I don’t have the self-discipline to shut out the rest of the world when the phone keeps ringing, email keeps flooding in (although I did learn to ignore most of that, a useful exercise) and there are limitless opportunities to do fun stuff. I quite enjoy life as a retired cosmonaut with some financial security, but that enjoyment comes at the expense of focus. So much for plan B, what would be plan C?
I decided to hire the best Python developer I could to lead the project, then hire one or two other teams to work in collaboration with that core team. Hence my search for and appointment of Steve, Marius and Albertus.
How will we avoid a simple repetition of the previous problem? What makes this effort different? Nothing, so far. We once again have a bright team of developers who are at the end of the day motivated by a contract, not by a personal itch in education administration. But this is only the story so far. The next step will be to hire an additional team to collaborate with Steve’s. It may seems strange to hire a separate team rather than bolster the core one, but there’s method in my madness. Right now, a lot of the critical thinking and discussion happens inside an office in Vilnius, with no reference to the rest of the world. That makes it efficient, but not necessarily effective, since it may be efficiently going down the wrong road. Steve’s been pretty good about going to the list to get a sense of how different educational communities work whenever they start work on a new section of the project, for which I’m grateful. But the problem still remains - a lot of SchoolTool development happens in a non-transparent manner. By hiring a second team to collaborate on the core infrastructure I hope to force these discussions to happen online - in the mailing list and in wikis etc - in a way that makes them transparent and accountable. That way outsiders will be able to comment, and more importantly, we will be able to go back and understand what was decided, and why.
As for directedness, I came away from my visit to Vilnius with the impression that Steve really wants to see SchoolTool reach its full potential. There were some slight alarm bells (the dev team spent a lot of time showing me what their engine COULD do, and I spent a lot of time shifting the discussion back to what it DOES do), but at this stage I think we are still in reasonable shape. Perhaps we should actually have one or two schools that will deploy their work, to keep their debates grounded in the real world… but that can come in due course.
Lessons Learned
So the risk is that a well-funded open source team that is NOT led by someone with a personal interest in shipping the project will get distracted by other shiny tech toys and fail to actually ship something focused and constructive. How are we dealing with that in the current round of work on SchoolTool? First, I’m personally watching and asking the core team to focus on actual functionality. They assure me that their engine work is “done”, and that they are currently working on a usable tool that can be tested by schools. Time will tell. And second, we will shortly have a second, collaborating team, that will I hope also bring much of the engineering work into a more public forum.
Time will tell. These are expensive ways to learn, but I feel that the experiment is very much worth doing. There are lots of tools I would like to see developed in the open source world that developers have not yet done for themselves, and which I would be prepared to fund. Perhaps other philanthropists are in a similar position. We need to learn how to do this effectively, and the only way to learn is to try.
- 描述: 五笨兔
- 大小: 56.1 KB
分享到:
相关推荐
"五年级数学上册鸡兔同笼练习题及答案精选" 本资源为五年级数学上册鸡兔同笼练习题及答案精选,旨在帮助学生巩固鸡兔同笼基础知识,提高数学运算能力和逻辑思维能力。通过本资源,学生可以熟练掌握鸡兔同笼基础概念...
"五张可爱兔的ICO图标"是一组专为桌面应用或网站设计的图形资源,其特点是形象可爱,主题为兔子,适用于吸引儿童或者喜欢温馨、卡通风格的用户群体。 ICO图标是一种特定的文件格式,主要在Windows操作系统中使用,...
鸡兔同笼问题可以分为五大类型: 1. 基本类型:鸡兔同笼共x只,y只脚,求鸡、兔各几只? 2. 差倍类型:鸡兔同笼共x只,y只脚,求鸡、兔各几只?(其中y=2x或y=4x) 3. 火车过桥类型:一列火车长x米,每秒行y米,这...
流氓兔流氓兔流氓兔流氓兔流氓兔流氓兔流氓兔流氓兔流氓兔流氓兔流氓兔流氓兔流氓兔流氓兔流氓兔
1对儿大兔子每个月生一对小兔子,一对儿小兔子要长一个月才能成为大兔子,问第n个月一共有多少对儿兔子....
《Linux入门很简单》(又名笨笨兔的故事)是一本专为Linux初学者设计的教程,以Ubuntu操作系统为核心,旨在以生动活泼的方式引导读者轻松掌握Linux基础知识。Ubuntu是一款基于Debian的开源Linux发行版,因其用户友好...
咪兔象棋破解 中国象棋助手
《C#实现鸡兔同笼问题详解》 鸡兔同笼问题,又称“雉兔同笼”,是中国古代经典的数学问题之一,出自《算经》。它的问题背景是:在一个封闭的笼子里,有若干只鸡和兔,已知它们的头数和脚数,求鸡和兔各有多少只。在...
实验4-1-10 兔子繁衍问题 (15 分) 一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才...
【标题】:“奇兔解除刷机限制(勿升级)”这一主题主要涉及到手机刷机以及相关的安全注意事项。奇兔刷机是一款知名的安卓设备刷机工具,它允许用户自定义手机系统,安装第三方ROM,以获得更多的功能或者优化性能。...
在小学五年级的数学教学中,鸡兔同笼问题通常会通过具体的实例来讲解,例如题目中给出的例子:有35个头,94只脚,要求解野鸡和兔子的数量。在这个问题中,关键是要利用鸡有2条腿、兔子有4条腿的特性,建立数学模型。...
兔知云课堂独立版源码。 Q:兔知云课堂是干什么的? A:兔知云课堂是私域场景下的知识付费的解决方案,直白一点讲就是商家使用兔知创建课程,这个课程可以是文章、视频、音频、直播等等。用户在付费购买后可以在线...
# 题目:有一对兔子,从出生后第3个月起每个月都生一对...考虑到三个月成熟,可以构建四个数据,其中:一月兔每个月长大成为二月兔,二月兔变三月兔,三月兔变成年兔,成年兔(包括新成熟的三月兔)生等量的一月兔。
五、结论 本实验报告展示了使用 MATLAB 软件来解决微分方程的初值问题的强大功能。通过实验,我们可以学习使用 MATLAB 软件建立简单微分方程数学模型,并了解计算机数据仿真、数据模拟的基本方法。同时,本实验也...
鸡兔同笼问题是中国古代数学中的一个经典问题,源自《算经》等古代数学书籍,旨在通过已知的条件——头的数量和脚的数量,来求解鸡(每只有1个头2只脚)和兔(每只有1个头4只脚)各自的数量。这个问题在编程领域中...
最新苹果下载兔子最新苹果下载兔子最新苹果下载兔子最新苹果下载兔子最新苹果下载兔子最新苹果下载兔子
【标题】:“斯坦福兔子模型 ply 免费”指的是一个开放获取的3D模型资源,源自斯坦福大学的计算机图形学组。这个模型通常用于计算机图形学、虚拟现实、游戏开发以及各种三维可视化应用中。"PLY"是Polygon File ...
《Python编程实现“跳跳兔”小游戏详解》 在编程世界中,小游戏是学习和实践编程语言的一个绝佳途径。本文将深入探讨一个基于Python编写的“跳跳兔”小游戏,这款小游戏不仅富有娱乐性,同时也提供了丰富的编程学习...
"鸡兔同笼"是一个经典的数学问题,源自中国古代的算术书《孙子算经》。在VB(Visual Basic)环境中,我们可以通过编程解决这个问题。VB是一种面向对象的编程语言,常用于开发桌面应用程序。现在,我们将深入探讨如何...
"鸡兔同笼"是中国古代数学中的一个经典问题,它涉及到基础的代数思维和方程组解法。在这个问题中,我们假设鸡有1个头和2只脚,兔子有1个头和4只脚。给定头的总数和脚的总数,目标是找出鸡和兔子各有多少只。在MATLAB...