Mozillian 的副项目:JSFiddle 和 Meatspac.es

在 Mozilla,我们很高兴有机会与许多有才华的人一起工作。因此,作为一个持续的系列,我们想借此机会重点介绍一些 Mozillian 在业余时间从事的令人兴奋的项目。

JSFiddle

JSFiddle 是一种用于编写网页示例(使用 HTML、JavaScript 和 CSS)的工具,称为“fiddles”。它们可以保存并与他人共享,或者嵌入到网站中,非常适合博客、文档或教程。由 Piotr Zalewa 创建。

JSFiddle

Piotr:我想要一个可以帮助我检查我的前端代码是否正常工作的工具。当时我活跃在 MooTools 社区,我们需要一个工具来支持我们的用户,他们对框架和需要解决的特定 bug 有疑问。社区是最好的动力。现在大约有 2000 名开发者正在创建和观看 fiddles!许多大型项目正在使用 JSFiddle 用于文档(MooTools、HighCharts)或 bug 请求(jQuery)。

我总是登录 #mootools IRC 频道,有一天我们举行了一个小比赛,看谁能够第一个仅用一行 JavaScript 代码回答支持问题。一位用户提出一个非平凡的问题,需要使用 HTML 和 JavaScript 来回答。我们通常的工作流程是编写一个 HTML 文件,在浏览器中本地运行它,将代码复制到 Pastebin 网站,然后共享链接。没有人知道可以执行此操作的工具。第二天晚上我创建了一个原型,并且它得到了很好的接受。工作但丑陋的版本不久后就完成了。Oskar Krawczyk 加入作为设计师,项目准备向世界展示。

它最初是在服务器端使用 Django 和 MySQL,前端框架使用 MooTools。从那时起,唯一的主要变化是添加了 Memcache。目前,我们在 DigitalOcean 赞助的 12 台服务器上运行 JSFiddle。2 台数据库服务器、3 台应用程序服务器、2 台 Memcache,以及静态文件和开发服务器。我理想情况下希望以一种更易于扩展的方式来构建数据库。数据库非常庞大,更新表需要花费大量时间。

JSFiddle 在大多数 JavaScript 库仅在一个框架下运行的时代设计。我们希望允许用户混合框架并添加更多语言。目前,您可以使用 HTML、JavaScript、Coffeescript、CSS 和 SCSS 编写代码,但我希望支持更多语言。我们有很多想法需要实现,但我认为提供改进比提供承诺更好。

Meatspac.es

Meatspac.es 是一款单一公共频道聊天应用程序,用户提交新消息后,它会从他们的摄像头生成用户的动画 GIF。由 Jen Fong 创建,并由 Sole Penadés 添加了 GIF 库支持。

Meatspac.es

Jen:我一直在开发各种奇特的聊天应用程序,这些应用程序涉及某种形式的嵌入式媒体,所以这是一个想法,我想让用户通过摆姿势拍照和进行一些动作来超越打字进行互动。我也非常喜欢 GIF,以及它们随处可用的事实。我一直在零零散散地使用 WebRTC,而 Sole 当时正在开发她的 RTCamera 应用程序,当时我想:“我们能否将这两个世界结合起来?聊天和 GIF?”

对于 Web 服务器,我使用了 Nginx,它代理到一个使用 Express 的长期运行的 Node 进程。消息和 GIF 临时存储在 LevelDB 中,并带有 TTL(生存时间),在 10 分钟后删除消息,包括以 Base64 blob 存储的 GIF。在客户端,它使用 jQuery、一些 GIF 库文件并使用 WebSockets 进行更新,并使用 AJAX 作为后备。

该项目最大的挑战令人惊讶地与代码无关!这主要是在大量用户开始使用聊天、在 Twitter 上关注我并联系我时,跟上所有疯狂的事情。几周前我在波特兰的“RealTimeConf”上首次公开提及它,然后开始在 Twitter 上发布相关信息。在那之后,很多人查看了它,有人把它发布在 Hacker News 上,那里又来了更多人(在最繁忙的一天大约有 8000 人)。在接下来的几天里,它在 Twitter 和各种来源上都被提及。

人们在创建 GIF 时可以非常有创意。观看人们互相取有趣的“-bro”昵称也很有趣;女性和男性都有。他们总是会问别人他们的名字应该是什么,而不是给自己取名字。

我现在正在开发一个类似的应用程序,但用于 Firefox OS 的一对多 GIF 聊天,称为 chatspaces。任何有兴趣贡献的人都可以查看 代码库 并查看 README 以了解需要贡献的内容。

关于 Louis Stowasser

我是 Mozilla 的合作伙伴工程师,Gamedev Weekly 的维护者以及位于澳大利亚布里斯班的 CraftyJS 游戏引擎的创建者。

更多 Louis Stowasser 的文章……

关于 Piotr Zalewa

Piotr Zalewa 是 Mozilla 开发者生态系统团队的高级 Web 开发人员。从事 Web 应用程序开发工作。他是 JSFiddle 的创建者。

更多 Piotr Zalewa 的文章……

关于 Robert Nyman [荣誉编辑]

技术布道师兼 Mozilla Hacks 编辑。发表有关 HTML5、JavaScript 和开放 Web 的演讲和博客文章。Robert 是 HTML5 和开放 Web 的坚定支持者,自 1999 年以来一直从事 Web 前端开发工作——在瑞典和纽约市。他还定期在 http://robertnyman.com 上发表博客文章,并且喜欢旅行和结识新朋友。

更多 Robert Nyman [荣誉编辑] 的文章……