Erlang OTP 新版17.0 发布!

由 Kenneth 于2014-4-9发布,由erlang-china.org于2014-4-10转载

Erlang/OTP 17.0 是一个包含新特性和某些特有改进的主要版本,与之前版本相比这些改动有些小的不兼容性。 欲知详请,请参考文档README。

以下是一些本次发布的摘要:

    Erlang/OTP 已经可以移植到实时操作系统 OSE。

  • Maps,一种新的字典数据类型(实验性支持)
  • 从ASN.1 OCTET STRING 和 BIT STRING 向 Erlang 类型的映射转换更自然了, 同时还有些其他有关 ASN.1 的改进和优化。
  • TCP, UDP,和 SCTP socket拥有了新的选项{active, N}。
  • 一种新的(可选的)调度平衡机制。
  • ERTS内部的内存申请机制默认向内存匣迁移。
  • 增加了垃圾收集的保有率
  • 实验性的“脏调度”功能
  • 现在可以给Funs起名字了
  • 提升了对unicode的支持
  • 针对OTP应用,引入了一种新的版本方案

更多信息以及资源下载,请移步 download page.

Erlang/OTP 新版 R16B03-1 发布!

Kenneth于 2014-01-28发布, 由erlang-china于2014-02-10转载

OTP R16B03-1是一个维护性更新,修了几处在R16B03版本中发现的错误。具体修正如下:

  • ODBC应用在Windows预编译安装包中遗漏了。
  • SSL 应用有三处修正:
    • 加入了server_name_indication选项中遗漏的验证部分,并且对其做了针对性测试。
    • 服务器模式中,椭圆曲线将尽量选用客户端的建议值。
    • TLS扩展生效时,服务器将“不明确表示”支持安全性重协商(SSL不大懂啊,这句好扭曲啊,看起来像是服务器支持重协商(secure renegotiation),但是在初次协商时并不明确的显示出来。在readme中这个问题的是这样描述的:在建立链接时,一个bug导致了服务器表现为不支持重协商这一功能)。
  • 语法工具应用中发现了一个问题,将会破坏本地函数的重建。现在修复了(感谢Anthony Ramine)。
  • wx – 修复了一个一关闭窗口,调试器就崩溃的问题。同时修复了一个Mac上的静态链接的问题。
  • xmerl – 修复了一个SAX解析器的问题,这个问题在当下一段文本的头部在缓冲区时,如果调用了xmerl_sax_parser:stream/2就会出现(槽点是没说是啥问题,反正有问题)。

具体信息请移步发行注记

过完年又要开工啦,在这里,给大家拜个晚年,祝大家“晚年幸福”。下一篇OTP R17-rc的新闻有点长,可能要翻几天。按计划,R17三月底就要发布了,如果rc2,3,4一路下来,赶不上可能就不翻了,反正是个测试版。

Erlang/OTP 新版 R16B03 发布!

OTP R16B03 是一个维护性升级,主要是修正了几处小错误,还有一些贡献者的小功能。但是还是有几个新的功能值得提一下:

  • 引入一个称为“超级内存匣”(译注:可能是某些黑暗料理界的神器)的新的“内存申请”功能。举个栗子说的话,它可以用来预先申请整个运行时可以用到的所有内存。通过命令行选项 +MMscs (单位:MB)生效。更为详细的信息请参考 erts_alloc(3)的文档中的 +MMsco, +MMscrfsd, +MMscrpm, +MMscs, +MMusac, 以及 +Mlpm。
  • LDAP客户端 (eldap application) 现在支持了 start_tls 操作。这个操作可以将一个运行中的 tcp 连接提升为一个使用 TLS 的加密连接,参见 eldap:start_tls/2 和 eldap:start_tls/3。
  • FTP 客户端 (inets 应用) 现在支持 FTP over TLS (ftps)了。

约50个其他的开源贡献者。超感谢你们~~

其他详细信息,请移步发行注记

Erlang/OTP 新版 R16B02 发布!

Erlang/OTP 新版本 R16B02 已经发布。

此次更新的重要特性有:

  • 新的启动选项 +SP, 可以用来设定调度器占用资源的百分比。
  • 加入了一个新测试项,用来测试erlang vm以及其他相关的库在被编译的平台上是否被正确编译了。
  • 新增了一个函数 application:ensure_all_started/1-2。
  • 大约40个其他的开源代码贡献。

其他详细信息,请移步发行注记

 

[招人贴]网页游戏Erlang工程师

第一次发帖毫无技术含量,但是绝对有市场含量。

广州4399招聘Erlang服务器开发工程师,市场和技术优势就不多说了,有意向就联系我吧,一起开创一片事业!

职位有求:

  • 本科及以上学历
  • 熟悉TCP/IP, HTTP协议
  • 了解Linux开发环境
  • 较好的编程能力(不限定语言)
  • 1年以上工作经验
  • 热爱游戏,有强烈的进取心
  • 良好的编码习惯,善于学习
  • 能够独立解决问题,具有拼搏精神

联系人: litaocheng(at)gmail.com

[招人贴] Redwood

之前和 Redwood 的 Raymond 聊过一下。他们有一个相当宏伟的计划(具体内容当然不方便透露啦),可以说的是,他们关注于金融领域,大家可以从“支付网关”之类的关键词展开联想。所以,看到他们在这里贴出来的招人贴,理应是要帮忙推一下的啦。各位对这个领域有兴趣的童鞋。不妨考虑下。

Redwood Technology is a new division of Redwood Group International, specializing in product and project development. We are seeking exceptional computer scientists and electrical engineers who live to work in an exciting and challenging fast paced startup environment using new technologies to rapidly develop proof of concepts and then work with product management to transform them into production solutions.

Responsibilities:
- You will be responsible for rapidly developing solutions in Erlang/OTP, and supporting them through their product life cycle (requirements, design, code, test, support).
- Work with product management and clients to define requirements, solution architecture, and technologies.
- Involved in all aspects of the product/project lifecycle, and must be able to develop all aspects of the web application.
- Incrementally and iteratively develop the solution over many short sprints
- Work with and mentor other team members

You must have:
- Practical experience developing distributed, concurrent, scalable, and fault tolerant enterprise web applications.
- Proven exceptional experience with Erlang/OTP design and development
- Experience with multiple languages including Erlang/OTP, Java, Javascipt, PHP, C/C++, HTML, etc.
- Proven exceptional experience with embedded device design and development
- Experience producing UML artifacts (use case requirements, sequence diagrams, state/activity diagrams, class diagrams, component diagrams, deployment/package diagrams) to document your system architecture
- experience reverse engineering Java and PHP applications
- Practical experience with Cloud computing
- Practical experience with multiple operating systems (Unix, Linux, Windows, OSX)
- Practical experience with iOS and Android
- Experience building ReST services and application platforms
- Experience with Data Storage (RDBMS, NoSQL, etc.)
- Good communication skills
- A strong belief or experience in Agile and iterative development approaches
- Ability to document (UML) architecture and designs
- A CS or EE degree, and be passionate about applying the latest software ideas to your systems
- Be a startup junkie who wants to see a new idea (and company) succeed.
- Solid experience with web development technologies (both browser-centric and server-centric).
- Ability to get things done
- Ability to think outside of the box; generate creative solutions

[招人贴] PtMind

上次 ECUG 2010 以来,Erlang 在国内其实已经在渐渐地进入“实战单元”了。各路大佬本着“悄悄地进村,打枪地不要”的原则,私下里暗自招兵买马,囤积人才,已经有一阵子了。二十一世纪什么最贵?从各路的跳槽消息来看,冯小刚的话似乎也蛮有预见性的嘛。

“暮春三月,江南草长,杂花生树,群莺乱飞……”,又到招人的季节。坊间招人的英雄贴,渐渐地多了起来。以下便是一则。

Continue reading

芝加哥老板[chicagoBoss]

Chicago Boss 这个名字听起来,怎么也让人联想不到 Web 开发领域。反而总让人不由得想起黑帮、枪战、还有私酒泛滥的 1920 年代(估计是最近看《大西洋帝国》给闹的)。但是,的而且确,这个玩意明白无误地就是 Web 开发领域的事儿。

先上亮点:

High Productivity

Compact query syntax:

boss_db:find(person, [age > 25])

Elegant controllers:

edit('GET', []) ->
ok;
edit('POST', []) ->
{redirect, "/somewhere"}.

Simple data models:

-module(person, [Id, FirstName, LastName]).

full_name() ->
FirstName ++ " " ++ LastName.

Rails-y records:

Person = person:new(id, "Joe", "Blow"),
Person:save()

Django templates:

{% for person in people %}
- {{ person.full_name }}
{% endfor %}

Easy Comet – New in 0.4.5

BossMQ introduces a simple API for sending and receiving messages. Here is a complete long-polling chat backend:

send_chat('POST', [Channel]) ->
boss_mq:push(Channel, Req:post_param("msg")).

receive_chat('GET', [Channel]) ->
{ok, Time, Messages} = boss_mq:pull(Channel),
{json, [{time, Time}, {messages, Messages}]}.

With BossMQ, any controller action is a potential Comet endpoint. Thus, Comet endpoints have complete access to your entire application — databases, templates, the whole stack.

High Reliability

100% asynchronous network I/O

  • Under load, uses less RAM than synchronous apps (PHP, Rails, Django)
  • Comet long-polls won’t block the app server
  • Single-process model keeps CPU context switches to a minimum

Supports both SQL and schema-less databases

  • MySQL
  • PostgreSQL
  • MongoDB (NEW)
  • Tokyo Tyrant
  • Mnesia
  • Or write your own adapter — usually ~300 lines of code

Operational simplicity

  • Zero downtime code upgrades in production (NEW)
  • Standalone server does not require Apache, Nginx, etc.
  • Direct SMTP mail delivery does not require Postfix

Unique testing framework

  • Closure-based tests reduce test code size
  • Run functional tests in-memory — no network I/O
  • Integrated web and email testing

Future plans (not yet implemented!)

  • Full OTP compliance
  • Full test coverage
  • See the Roadmap

好吧我得承认,其中的一些亮点其实是来自 Erlang 语言本身的。

毫无疑问,这个项目提供了 Erlang 和 ruby on rails’ way 的跨界组合优势。比如说,在采用高生产力的 rails 方式来构建项目时,如果心存疑虑,担心某一天会被可能的性能问题跳出来反咬一口的话,那么现在又多了一个具有 FP 风格的选择了。

有必要表扬一句的是:chicago boss 的文档整理得相当靠谱,单就这一点而言,在众多的 Erlang Web 项目中,就很有走红潜质。此外,开发过程似乎也可圈可点,按照 roadmad 的特性持续升级,很让人看好。不过也有的地方让人感觉有点奇怪,比如说,源代码竟然是要下载的,而没有用“开源工业标准”的 github ,这多少有点让我不适应。

顺便 blah 一下,如今这世道, web 开发似乎已经渐渐地在更多转变为前端以 jquery 为基础的 ajax 开发了,换句话说,前端正在静态页面化。而所谓的后端系统也已经相对标准——更像是 restful 的 CRUD 接口再加上薄薄的一层业务逻辑。前端与后端之间的接口方式与约定已经相当之稳定。那么,比如说,有了 chicago boss 这么有生产力的架构,在后端性能开始吃紧的情况下,趁着系统升级的机会,简单地整一把,平滑地将后端系统“迁移”到更高效的平台上,未尝也不是一个不错的升级方向嘛。

ECUG2010作业

为期两天的 ECUG2010 圆满闭幕,按照惯例,交作业。

[ slides videos ]

上次在上海办的,没有去成,这次在北京,无论如何,抛下一大堆事情还是去了。感觉很好,非常之好,但是你又很难跟人讲清楚到底好在哪儿,组织、演讲、提问、茶歇、闲聊……,样样都好,但似乎让人感觉超好的又还不止是这些而已……,具体是什么,我说不上来,还是得大家亲身去感受才行。

这次大家的 Topic 密度都很大,就好像你还没站稳,对方就势大力沉地给你一个降龙十八掌,如果没被砸晕的话,你至少也得腾腾腾地退个十步八步才能站得住。而且,每个人讲的东西都很不好消化,以至于,我这里趁着每日清晨思路最为敏捷之时,勇猛精进地消化了这许多天,也只能大概其地理出一个思路,还得赶紧动笔写下来,以免一会儿又犯糊涂了。

下面开始 Blah …
Continue reading