月度归档:2016年01月

每一个程序员都是自学成才

为什么CS学位并非是成为开发人员的唯一路径,因为每个开发人员在工作于他们的项目时学到了很多很多。

除了CS学位,还有很多成为程序员的方法。如果你正行进在一条非常规的道路上,那么你可能会想知道你该怎样追上那些有学位的人。你该怎么和那些在课堂上花了很多时间学习计算机和编程的人竞争?

从我的经验来看,竞争的要点不在于学位:关键在于你会如何利用你所掌握的技能。条条大路通罗马。事实上,从学校里是学不到如何做一个web开发人员或Android开发人员的。

每个使用计算机技术的程序员大多靠自学成才,在工作中和自己的空闲时间提高技能。我在完成我的电气工程学位的同时,去上了很多与计算机相关的课程,但其中很少是专门讲web开发的。也许你会上过一两堂课,或选修这类科目,但当你使用的时候,这方面的知识很有可能已经过时了。

好吧,如果学位不能教你如web编程或移动开发这些有用的东西,那么学位还有什么用?学位的作用是让你对编程和计算机相关的知识有一个全面的了解。有助于你了解更多相关的学科,例如数学、数据库、算法、网络、编程模式和语言。

你不需要成为任何这些学科的专家:但你需要知道它们的存在,并完善这些技能,并且在现实世界中使用这些技能以便于让这些技能能够对我们真正有用。另一方面,所有这些技能就是一个有用的工具箱,当你启动项目并需要解决新问题的时候,便是你的好帮手。你可以使用你已经学到的知识作为出发点去挖掘更深层次的东西,并根据需要提升自己。

如果你不曾在学校里学到这一点,那么你还可以从其他途径获取,例如在线课程或书籍。和那些从学校获得的知识没什么不同:虽然说在学校里学习更容易集中注意力,进度更快,但你自学也完全可以。

当你开始使用这些技能来完成实际项目时,这些技能才会渐渐变成你的东西,否则就只是纸上谈兵而已。根据兴趣、工作或专门的计划,特定地去学习某些领域,然后一步步前进。作为团队的一员,每个人都有必要构建不同的技巧和知识体系。如果每个人的技能集完全一样,那这个团队该是多么枯燥和低效啊!

而且你在学校中学的东西是不完整的。你需要工作于一些小型的项目,以掌握具体的概念,但在现实生活中,在你运行了你的第一个版本之后,你就会不由自主地继续前进。你会继续学习如何维护,如何修复bug,如何部署以及如何在众多规则的框框架架中完成团队工作。你会在你工作的每一个项目和你修复的每一个bug中不断学到新的技能。

我们最重要的是学习如何学习,这样才能在需要时迅速掌握相关学科和一门新的技术。如果你能一直保持学习的态势,那将更方便你学习新的东西,并且建立一个学习的好习惯,永远是亡羊补牢,犹未晚矣。

Facebook 将关闭 Parse 服务,并将其代码开源

Facebook 于2013年花费了 8500 万美元收购了 Parse ,这是一家为移动应用提供后台开发云服务的平台。而今,由于 Parse 一直以来未能为 Facebook 提供预期的营收,Facebook 决定一年后将其正式关闭,并将其代码开源。

Parse 的 CTO Kevin Lacker 在博客上说:“我们很荣幸帮助了这么多的开发者开发了如此多的优秀移动应用,不过我们今后需要专注在其它的事情上了。”

MBaaS 市场正在不断整合,特别是在 Facebook 收购了 Parse 之后。 Parse 的许多老员工纷纷辞职,这其中包括 Parse 的前 CEO Ilya Sukhar。不像 Instagram,Facebook 从未将 Parse 从 AWS 上移到自己的数据中心。虽然 Facebook 一直在更新 Parse 的功能,即使在其开源了 SDK 之后还是如此,但目前看起来 Facebook 已经对此彻底失望了。

Parse 提供了开发移动应用的后台服务,包括数据存储、消息推送及用户管理等等。这样开发者可专注于客户端的开发商,而不用操心太多服务器端的问题。Parse 的用户包括 Quip 和 Orbitz 等大公司,不过 Parse 并没能为 Facebook 贡献很好的营收。此外,AWS、微软 Azure 和谷歌的 GCP 都为构建和部署移动应用提供了快速交付和增强工具。

在宣布了服务即将关闭之后,Parse 也提供了数据迁移工具,以便用户可以将应用迁移到 MongoDB 数据库上去。此外,Parse 还发布了开源版的 Parse 服务器,可以运行在你自己的 Node.js 服务器上。这样用户的应用可以在新的数据库上,用自己的 Parse 服务器支持绝大部分原有的 Parse API,对于客户端的影响很小。

参考来源:parse.comventurebeat.com

Slashdot 和 SourceForge 再次被出售

DHI Group Inc.(旧称Dice Holdings Inc.) 宣布将 Slashdot 和 SourceForge 出售给 BIZX LLC,出售价格没有披露。BIZX LLC 是一家增长最快的由私人控股的网络媒体公司。

DHI Group Inc. 是在去年7月宣布了出售 Slashdot Media 的计划,这次交易已于 2016年1月27日完成。出售的理由是 Slashdot 业务不再符合该公司的策略,它要把精力集中在在线招聘业务上。Slashdot 和 SourceForge 是 DHI Group Inc. 于 2012 年收购的

虽然 Slashdot 自称感觉良好,将不会做任何激进的改变,但是据 Fossforce.com 引用可信消息来源称,Slashdot 将大量裁员,许多资深雇员将被解雇。SourceForge 可能面临同样的遭遇,这个曾经最受欢迎的开源代码托管平台过去几年日渐衰落。

理查德·斯托曼经典语录集锦

理查德·马修·斯托曼(Richard Matthew Stallman, RMS)

(题图来自:wikimedia)

理查德·马修·斯托曼Richard Matthew Stallman (RMS) – 神级程序员之一。他是一名程序员,是 GCC、GDB、Emacs 的构建者,软件自由的传教士,GNU ProjectFSF 的创办人。

GNU 是 “GNU’s Not Unix!”的递归缩写。GNU 是一系列用于基于 Unix 的操作系统的自由软件集合。它能用于 GNU/Hurd 和 Linux 内核。于1983年9月27日公诸于众。常用组件有:

  • GNU Compiler Collection (GCC)
  • GNU C library (glibc)
  • GNU Core Utilities (coreutils)
  • GNU Debugger (GDB)
  • GNU Binary Utilities (binutils)
  • GNU Bash shell
  • GNOME desktop environment

自由软件基金会Free Software Foundation (FSF) – 一个自由软件的非营利组织,致力于推进计算机用户的自由和捍卫他们的权力。于 1985年10月4日成立。阅读更多

许多人不理解开源代码open source code自由软件free software的区别。每个程序都应该是自由软件:

  • 与目的无关,随心运行程序的自由(自由0)。
  • 学习程序如何运作,并改变它为你所用的自由(自由1)。可以访问源码是这一条的前提。
  • 重新发布副本的自由,如此你便可以帮助你周围的人(自由 2)。
  • 发布自己修改版本给他人的自由(自由 3)。这样能让整个社区有机会从你的改变中受益。可以访问源码是这条的前提。

以上为自由软件的四项自由原则。

以下为理查德·斯托曼关于自由、软件、社交、哲学等方面的名言摘引。

关于 Facebook:

Facebook is not your friend, it is a surveillance engine.

Facebook 不是你的朋友,是监控引擎。

关于 Android:

Android is very different from the GNU/Linux operating system because it contains very little of GNU. Indeed, just about the only component in common between Android and GNU/Linux is Linux, the kernel.

Android 和 GNU/Linux 有很大的区别,因为其中几乎没有 GNU。的确,Android 和 GNU/Linux 之间仅有一个共同组件,那就是内核 – Linux。

关于计算机行业:

The computer industry is the only industry that is more fashion-driven than women’s fashion.

计算机行业是唯一一个比女人们的时装更时髦的行业。

关于云计算:

The interesting thing about cloud computing is that we’ve redefined cloud computing to include everything that we already do.

关于云计算,有趣的是我们已经重新定义了云计算来包含我们曾干过的所有事。

关于伦理:

Whether gods exist or not, there is no way to get absolute certainty about ethics. Without absolute certainty, what do we do? We do the best we can.

无论神存在与否,都没有绝对的伦理道德。没有这份理所当然,我们该如何?也唯有尽善吧。

关于自由:

Free software is software that respects your freedom and the social solidarity of your community. So it’s free as in freedom.

自由软件是尊重个人自由和社会团结的软件。所以才能如自由般自由自在。

关于目标和理想:

If you want to accomplish something in the world, idealism is not enough – you need to choose a method that works to achieve the goal.

如果你想为这世界做些什么,仅有理想是不够的,你需要找条通往目标的道路并走完。

关于分享:

Sharing is good, and with digital technology, sharing is easy.

分享很棒,而且数字化技术也使分享变得容易。

关于 facebook(进阶版):

Facebook mistreats its users. Facebook is not your friend; it is a surveillance engine. For instance, if you browse the Web and you see a ‘like’ button in some page or some other site that has been displayed from Facebook. Therefore, Facebook knows that your machine visited that page.

Facebook 蹂躏它们的用户。它不是你们的朋友;它就是个监控引擎。举个例子,你是否曾在一些网页或网站上看到 Facebook 的 “like” 按键。对,Facebook 知道你的电脑曾访问过那些网页。

关于 web 应用:

One reason you should not use web applications to do your computing is that you lose control.

给你个为什么不应该使用 web 应用的理由,因为你失去了计算机的控制权。

If you use a proprietary program or somebody else’s web server, you’re defenceless. You’re putty in the hands of whoever developed that software.

如果你使用私有程序或他人的 web 服务器,那么你只能任人鱼肉。被软件的开发者轻易操纵。

关于书:

With paper printed books, you have certain freedoms. You can acquire the book anonymously by paying cash, which is the way I always buy books. I never use a credit card. I don’t identify to any database when I buy books. Amazon takes away that freedom.

印刷出来的书,当然是自由的。你可以付现金匿名买书,这也是我一直买书的方式。我绝不会使用信用卡,我买书时不会被任何数据库记下。是亚马逊把自由夺走了。

关于 MPAA:

Officially, MPAA stands for Motion Picture Association of America, but I suggest that MPAA stands for Malicious Power Attacking All.

MPAA 其实是美国电影协会Motion Picture Association of America,但我认为叫做攻击万物的邪恶力量Malicious Power Attacking All更为合适。

关于金钱与职业:

I could have made money this way, and perhaps amused myself writing code. But I knew that at the end of my career, I would look back on years of building walls to divide people, and feel I had spent my life making the world a worse place.

我可以找份工作赚钱,并沉浸在编码的快乐中。但在职业生涯结束后,回首目睹自己筑就的高墙将人与人分隔开,我会觉得我耗尽毕生精力只换来了一个更糟糕的世界。

关于私有软件:

Proprietary software keeps users divided and helpless. Divided because each user is forbidden to redistribute it to others, and helpless because the users can’t change it since they don’t have the source code. They can’t study what it really does. So the proprietary program is a system of unjust power.

私有软件使用户孤立、无助。因为禁止将软件给他人使用所以孤立,因为无法改变源码所以无助。他们不能学习其中真正的工作方式,所以整个私有软件体系就是一种不公的力量。

关于智能手机:

A smartphone is a computer – it’s not built using a computer – the job it does is the job of being a computer. So, everything we say about computers, that the software you run should be free – you should insist on that – applies to smart phones just the same. And likewise to those tablets.

智能手机就是电脑 —— 虽然做的和常用的电脑不同 —— 但是却能干电脑能干的活。所以我们所说的一切有关于电脑上的软件应该能自由运行 —— 必须坚持这一点 —— 在智能手机上也是这样,当然也包括平板。

关于 CD 和数字内容:

CD stores have the disadvantage of an expensive inventory, but digital bookshops would need no such thing: they could write copies at the time of sale on to memory sticks, and sell you one if you forgot your own.

CD 商店有一个弱势就是需要昂贵的库存,但是电子商店就没有这方面的需求:他们只需要将售卖的副本写入记忆棒,并在你忘带自己的记忆棒时卖你一个就是了。

关于竞争范式paradigm of competition

The paradigm of competition is a race: by rewarding the winner, we encourage everyone to run faster. When capitalism really works this way, it does a good job; but its defenders are wrong in assuming it always works this way.

竞争范式就像是赛跑:奖励胜者,鼓励每一个跑得更快的人。当资本主义真的这样运作时,当然是件好事;但是维护它的人若是假设它一直这样运作的话那就大错特错了。

关于 vi 和 emacs:

People sometimes ask me if it is a sin in the Church of Emacs to use vi. Using a free version of vi is not a sin; it is a penance. So happy hacking.

有时会有人问我在 Emacs 的阵营使用 vi 是不是一种罪过。使用自由版的 vi 并不是一种罪过;是一种自我惩罚。所以好好享受其中乐趣吧。

关于自由和历史:

Value your freedom or you will lose it, teaches history. ‘Don’t bother us with politics’, respond those who don’t want to learn.

历史教会我们:珍惜自由,否则你将失去他。“别和我们谈政治”,对听不进的人这就是答复。

关于专利:

Fighting patents one by one will never eliminate the danger of software patents, any more than swatting mosquitoes will eliminate malaria.

和专利一个一个的战斗并不能解决软件专利带来的危害,就像打再多的蚊子也消灭不了疟疾一样。

Software patents are dangerous to software developers because they impose monopolies on software ideas.

软件专利对于软件的开发者来说十分危险,因为它们加剧了对于软件理念的垄断。

关于版权:

In practice, the copyright system does a bad job of supporting authors, aside from the most popular ones. Other authors’ principal interest is to be better known, so sharing their work benefits them as well as readers.

其实,版权制度对作者也没有什么好处,撇开最受欢迎的那个,其他作者的主旨可能更好理解,所以分享无论对他们还是你的读者都是一件好事。

关于工作与报酬:

There is nothing wrong with wanting pay for work, or seeking to maximize one’s income, as long as one does not use means that are destructive.

劳有所得,或寻求收入的最大化并没有什么错,只要不是不择手段。

关于 Chrome OS:

In essence, Chrome OS is the GNU/Linux operating system. However, it is delivered without the usual applications, and rigged up to impede and discourage installing applications.

Chrome OS 确实是 GNU/Linux 的操作系统。但是,它在发布时没有安装常用应用,并为安装他们设置了阻碍。

关于 Linux 用户:

Many users of the GNU/Linux system will not have heard the ideas of free software. They will not be aware that we have ideas, that a system exists because of ethical ideals, which were omitted from ideas associated with the term ‘open source.’

许多的 GNU/Linux 用户并没有听过自由软件。他们并没有意识到,这个系统是因为道德理想才存在的,与此一起被忽视的还有所谓的“开源”。

关于 facebook 的隐私:

If there is a Like button in a page, Facebook knows who visited that page. And it can get IP address of the computer visiting the page even if the person is not a Facebook user.

如果页面上有 “like” 按键,Facebook 就能知道谁访问了页面。即使不是 Facebook 的用户,也可以得到访问该页面电脑的 IP 地址。

关于编程:

Programming is not a science. Programming is a craft.

编程不是科学,编程是手艺。

My favorite programming languages are Lisp and C. However, since around 1992 I have worked mainly on free software activism, which means I am too busy to do much programming. Around 2008 I stopped doing programming projects.

Lisp 和 C 语言是我的最爱。然自 1992 年以来我主要工作在自由软件活动上,导致我太忙了,没法做更多的编程。大概在 2008 年我便停止了做编程项目。

C++ is a badly designed and ugly language. It would be a shame to use it in Emacs.

C++ 设计的真糟糕、真丑陋。在 Emacs 上用它应该觉得羞愧。

关于钻研hacking和学习编程:

People could no longer learn hacking the way I did, by starting to work on a real operating system, making real improvements. In fact, in the 1980s I often came across newly graduated computer science majors who had never seen a real program in their lives. They had only seen toy exercises, school exercises, because every real program was a trade secret. They never had the experience of writing features for users to really use, and fixing the bugs that real users came across. The things you need to know to do real work.

今时不同往日,大家再也不用走我的老路了,完全可以在实际的操作系统上提升自己。上世纪 80 年代,我常遇见计算机专业的毕业生,有生以来没见过真正的程序。他们接触的到的只有小玩意和学校的作业,因为每一个程序都是商业机密。他们没有机会为用户去写真正实用的特性,修复用户真正遭遇的问题。做这些事便是你应知晓的最好的提升方式。

It is hard to write a simple definition of something as varied as hacking, but I think what these activities have in common is playfulness, cleverness, and exploration. Thus, hacking means exploring the limits of what is possible, in a spirit of playful cleverness. Activities that display playful cleverness have “hack value”.

对于如“hacking”这般多样化的东西真的很难简单的下定义,不过在我看来诸如此类的行为都会有以下的这些共同点:嬉乐、智慧和探索。因此,hacking 意味着对可能的极限的探索,一颗向往快乐与智慧的心。能带来快乐与智慧的行为就有 “hack 的价值” 。

关于浏览网页:

For personal reasons, I do not browse the web from my computer. (I also have no net connection much of the time.) To look at page I send mail to a daemon which runs wget and mails the page back to me. It is very efficient use of my time, but it is slow in real time.

出于个人原因,我不会在我的电脑上浏览网页。(大部分时间处于没有网络连接的状态。)要浏览网页,我需要给一个守护进程发 mail,然后它会运行 wget 并把页面通过 mail 发还给我。这对我而言已经是最效率了,但那真的比实时慢太多了。

关于音乐共享:

Friends share music with each other, they don’t allow themselves to be divided by a system that says that nobody is supposed to have copies.

朋友之间彼此分享音乐,绝不会希望因为系统的一句:“禁止私下拷贝!”而生分。


via: https://tlhp.cf/fsf-richard-stallman/

作者:Pavlo Rudyi 译者:martin2011qi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

孵化 Docker 的 PaaS 平台 DotCloud 即将关闭

随着CloudControl在官方博客中宣告即将破产,隶属于cloudControl公司的dotCloud也宣布将于二月29日关闭服务。作为Docker的前身,DotCloud看着Docker逐渐成长,成为云平台的一颗新星,然而Docker的繁荣却又间接地导致dotCloud在PaaS平台的衰败,兴衰成败,令人唏嘘。下面就让我们来回顾下,dotCloud从初创到落寞的过程。

2010,几个大胡子年轻人在旧金山成立了一家做 PaaS 平台的公司,起名为dotCloud,并且还获得了创业孵化器Y Combinator的支持。虽然dotCloud期间获得过一些融资,但随着大厂商(微软、谷歌、亚马逊等)杀入PaaS平台,dotCloud举步维艰。

幸运的是,上帝每关上一扇门,就会打开一扇窗。

2013年,dotCloud的工程师们决定将他们的核心技术Docker开源,这项技术能够将Linux容器中的应用代码打包,轻松的在服务器之间迁移。

无心插柳柳成荫。

Docker技术风靡全球,于是,dotCloud决定改名为Docker Inc,全身心投入到Docker的开发中,并于2014年8月,Docker宣布把平台即服务的业务dotCloud出售给位于德国柏林的平台即服务提供商cloudControl,自此,dotCloud和 Docker分道扬镳。

在过去的两年时间里,Docker迅速成长,成为了云环境的标准。Docker在PaaS和IaaS(甚至SaaS)平台上展现的商业潜力PaaS市场的紧缩都使得dotCloud难以脱颖而出。因此,那些小型的,以开发者为中心的PaaS提供商逐渐走向衰落。毕竟,这些厂商都是用相同的开源基础元件,市场比拼的是各方面的实力,那些拥有大量市场份额的公司(亚马逊),技术和资金雄厚的公司(微软)或者是具有大量灵活基础设施的公司(谷歌)才是这场比赛的一号选手。


CloudControl也不可避免的受到了冲击,通告中“我们总公司(CloudControl)的破产”也成为了dotCloud服务关闭的主要原因。

由于dotCloud使用的是Heroku的buildpacks系统,因此那些还在使用dotCloud服务的开发者将会被转向Heroku PaaS平台。简单介绍下Heroku,做为最早一批PasS平台,在2010年的时候被Salesforce收购,并且被重组以弥补Salesforce在这方面的缺陷。

多年来,很难说的清PasS的市场究竟有多大。主要的云平台供应商,例如亚马逊的Web Services,微软的Azure还有谷歌的云平台都提供了PasS服务,而一些PaaS的初创公司则走向了灭亡。其他公司也跃跃欲试,惠普从ActiveState购买了Stackato,Engine Yard 收购了 OpDemand,Earlier AppFog 则被CenturyLink收购。

每家公司都有不同的考虑,最终谁将获胜,不得而知。这是否功过,且留予后人说。

参考:venturebeat.com