开源免费 低代码平台开源
by freeCodeCamp
通过freeCodeCamp
行动透明:免费代码营现已开源 (Transparency in Action: Free Code Camp is Now Open Source)
We’re thrilled to announce that Free Code Camp is now fully open-source. Now you can fork our code base and use it to set up an educational community of your own. If you notice a bug or think up a way of improving Free Code Camp, you can now take action directly by submitting a pull request.
我们很高兴宣布Free Code Camp现在是完全开源的 。 现在,您可以创建我们的代码库,并使用它来建立自己的教育社区。 如果发现错误或想出一种方法来改善Free Code Camp,现在可以通过提交拉取请求直接采取措施。
我们的守则 (Our Code)
I originally built Free Code Camp in Ruby on Rails, because I was comfortable with it. But it’s been clear for a while now that JavaScript is the future. New tools like Node.js and Express.js have made it possible to move to a fully JavaScript stack, and that’s precisely what lots of schools and companies are doing. A big part of Free Code Camp is eliminating noise and helping busy people focus on learning one opinionated set of tools. Since we were learning Full Stack JavaScript, a non-JavaScript codebase sent the wrong signal. So I scrapped the Rails app, learned enough asynchronous Node.js to be ‘dangerous’, and started building.
我最初在Ruby on Rails中构建了Free Code Camp,因为我对此感到满意。 但是,很明显,JavaScript是未来。 诸如Node.js和Express.js之类的新工具使迁移到完全JavaScript堆栈成为可能,而这正是许多学校和公司正在做的事情。 Free Code Camp的很大一部分是消除噪音,并帮助忙碌的人们专注于学习一套自以为是的工具。 由于我们正在学习Full Stack JavaScript,因此非JavaScript代码库发出了错误的信号。 因此,我废弃了Rails应用程序,了解了足够多的异步Node.js使其“变得危险”,然后开始构建。
The closet office where I built Free Code Camp Version 0.1.0.
我在其中建立了Free Code Camp版本0.1.0的壁橱办公室。
I looked at Meteor.js and Mean.js (this was right before the Mean.io fork), and even considered just using Angular.js with a Google App Engine backend. But ultimately, I decided to go with the Hackathon Starter App. With its authentication suite and API integrations, it’s practically a framework in itself.I launched Free Code Camp a few days later, with nothing more than five coding challenges and a Hipchat room. Slowly people started to come by. Miraculously, many of them stayed!
我查看了Meteor.js和Mean.js(就在Mean.io分支之前),甚至考虑仅将Angular.js与Google App Engine后端一起使用。 但最终,我决定使用Hackathon Starter App 。 凭借其身份验证套件和API集成,它实际上本身就是一个框架。几天后,我启动了Free Code Camp,无非是五个编码挑战和一个Hipchat房间。 慢慢地人们开始过来。 奇迹般地,许多人留下了!
What Free Code Camp looked like when we launched about 10 weeks ago.
大约10周前,我们推出了Free Code Camp。
Free Code Camp was my first Node.js app. I showed the code to one experienced JavaScript developer who kept shouting “What the hell were you thinking here?” as he flitted through the codebase. As hacky as it was, he conceded that since it was serving thousands of page views a day without incident, it wasn’t a total embarrassment and I should go ahead and open source.So we installed Helmet.js for added security, moved the API keys to a .env file, and purged them from Git history. And voila, the exact same code Free Code Camp uses in production is now freely available here.
Free Code Camp是我的第一个Node.js应用程序。 我向一位经验丰富JavaScript开发人员展示了该代码,他不断高喊“您在这里到底在想什么?” 当他浏览代码库时。 他坦率地承认,由于它每天可以提供数千次页面浏览而没有任何事件,所以这并不是完全的尴尬,我应该继续开源。因此,我们安装了Helmet.js来提高安全性,指向.env文件的API密钥,并将其从Git历史记录中清除。 瞧,现在可以在这里免费获得与Free Code Camp在生产中使用的完全相同的代码。
我们的基础设施 (Our Infrastructure)
We were using just one (free) Heroku dyno, but since we occasionally exceed 20 concurrent sessions, we kicked it up to two, for $35 a month. We serve assets through S3 and have a small AWS instance for our Discourse-powered forum. We pay a combined $240 per year for a Vimeo Pro account and a Screen Hero account, and $60 for a single Google Apps for Business team account. This brings the total cost of all our infrastructure to less than $2,000 per year.
我们只使用了一个(免费的)Heroku dyno,但是由于我们偶尔会超过20个并发会话,因此我们将其增加到两个,每月35美元。 我们通过S3为资产提供服务,并为基于Discourse的论坛提供了一个小型AWS实例。 我们每年为Vimeo Pro帐户和Screen Hero帐户支付的费用总计为240美元,对于单个Google Apps for Business团队帐户则需要支付60美元。 这使我们所有基础架构的总成本每年不到2,000美元。
我们的志愿营辅导员 (Our Volunteer Camp Counselors)
We’re a community of busy people learning to code. We call ourselves “Code Campers”. Some of us Code Campers are even busier than others, because we volunteer our time to actively improve Free Code Camp. Our team of “Camp Counselors” hangs out on our chat room and our forum. We do our best to welcome newcomers and answer various coding questions. Our single goal is to maximize the number of busy people like us who are able to work their way through our challenges, build a portfolio of projects for nonprofits, then get a coding job.
我们是一个忙碌的人们学习编码的社区。 我们称自己为“代码露营者”。 我们中有些人甚至比其他人更忙,因为我们自愿花时间积极改善免费代码营。 我们的“露营顾问”团队在我们的聊天室和论坛中闲逛。 我们竭诚欢迎新来者并回答各种编码问题。 我们的唯一目标是最大限度地增加像我们这样的忙碌的人的数量,这些人能够应对挑战,为非营利组织构建项目组合,然后获得编码工作。
Some of our patient, enthusiastic Camp Counselors.
我们一些耐心,热情的营地辅导员。
Nobody gets paid anything. If we eventually accept funding or make money through a job board, we’ll figure out a fair, transparent way to distribute equity to our volunteers or start paying them. Most of our communication takes place through our chat room and our frequent pair programming sessions. We’re geographically distributed, but we meet in person when possible. Our Camp Counselors propose new features and content, discuss the priorities and details, then pair up and start building. This blog post, for example, has been edited and improved upon by several Camp Counselors.
没有人得到任何报酬。 如果我们最终接受资金或通过工作委员会赚钱,我们会找到一种公平,透明的方式来向志愿者分配股本或开始向他们付款。 我们大部分的交流是通过聊天室和频繁的配对编程会议进行的。 我们地理位置分散,但在可能的情况下我们会面。 我们的营地辅导员会提出新的功能和内容,讨论优先级和细节,然后配对并开始构建。 例如,此博客帖子已由多个Camp Counselors进行了编辑和改进。
我们的指标 (Our Metrics)
In less than 3 months, we’ve grown to nearly 5,000 Code Campers. But what we’re really proud of is not the quantity of our Code Campers, but the caliber of their work ethic. A bunch of people with work, school, kids — and even grandkids — are investing their precious time toward learning to code. We completely overhauled our curriculum three weeks ago, and since then, we’ve had hundreds of people work through our hour-long challenges. We’ve made all these metrics publicly available here. As a side note, if you’re interested in analyzing our (anonymized) data, or helping us better visualize it, we’d love to facilitate this.
在不到3个月的时间里,我们已经成长为将近5,000个Code Camper。 但是,我们真正引以为傲的不是Code Camper的数量,而是他们的工作道德素养。 一群有工作,学校,孩子, 甚至孙子孙女的人正将他们宝贵的时间投入到学习编码中。 三个星期前,我们彻底改革了我们的课程,从那时起,我们已经有数百人在应对一个小时的挑战中工作。 我们已在此处公开提供所有这些指标。 附带说明一下,如果您有兴趣分析(匿名)数据或帮助我们更好地可视化数据,我们很乐意为您提供帮助。
我们的未来 (Our Future)
Don’t expect any stealth initiatives or grand unveilings from us. We’re more interested in evolving out in the open, like the internet did, than making an explosive debut, like the atomic bomb did. We believe the Open Source refrain that “With enough eyeballs, all bugs are shallow”, and welcome any ideas you have for making Free Code Camp a better, more efficient place for busy people to learn to code.
不要期望我们有任何隐秘举措或隆重揭幕。 与像原子弹那样进行爆炸性首次亮相相比,我们更喜欢像互联网那样在公开场合发展。 我们相信开放源代码应该避免“只要有足够多的眼球,所有的bug都是浅薄的”,并且欢迎您提出任何使Free Code Camp成为忙碌的人们学习编码的更好,更高效的地方的想法。
In closing, I’d like to compare Free Code Camp’s philosophy with that of Ubuntu. Not the Ubuntu Linux distribution that powers much of the internet, but its namesake, the Ubuntu philosophy of Southern Africa. Ubuntu is a Zulu word that translates roughly to “I am what I am because of who we all are.”
最后,我想将Free Code Camp的哲学与Ubuntu的哲学进行比较。 不是提供大部分Internet功能的Ubuntu Linux发行版,而是其同名的南部非洲的Ubuntu哲学。 Ubuntu是祖鲁语中的一个词,其大致翻译为“我就是我,因为我们都是谁。”
Leymah Gbowee, the Liberian peace activist and Nobel Peace Prize laureate responsible for Ubuntu’s most widely accepted English-language definition.
利比里亚和平运动家,诺贝尔和平奖获得者Leymah Gbowee,负责Ubuntu的最广泛接受的英语定义。
Free Code Camp is what it is because of who our Code Campers are. Busy people helping each other learn to code. And that’s who we’ll continue to be going forward.
Free Code Camp是因为我们的Code Campers是谁。 忙碌的人们互相帮助学习编码。 这就是我们将继续前进的方向。
Originally published at blog.freecodecamp.com on December 29, 2014.
最初于2014年12月29日发布在blog.freecodecamp.com上。
开源免费 低代码平台开源