開源免費 低代碼平臺開源
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上。
翻譯自: https://www.freecodecamp.org/news/transparency-in-action-free-code-camp-is-now-open-source-9dae1985d925/
開源免費 低代碼平臺開源