自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(634)
  • 资源 (3)
  • 收藏
  • 关注

原创 当我们谈论Erlang Maps时,我们谈论什么 Part 2

声明:本文讨论的Erlang Maps是基于17.0-rc2,时间2014-3-4.后续Maps可能会出现语法或函数API上的有所调整,特此说明.            前情提要: [Erlang 0116] 当我们谈论Erlang Maps时,我们谈论什么 Part 1       继续昨天的话题,在Erlang Factory SF Bay Area 2013有一个议题:"Where are

2014-09-17 12:28:55 7659

原创 当我们谈论Erlang Maps时,我们谈论什么 Part 1

Erlang 增加 Maps数据类型并不是很突然,因为这个提议已经进行了2~3年之久,只不过Joe Armstrong老爷子最近一篇文章Big changes to Erlang掀起不小了风浪.这篇文章用了比较夸张的说法:"Records are dead - long live maps !",紧接着在国内国外社区这句话就传遍了.马上就有开发者忧心忡忡的在Stackoverflow上提问:Wil

2014-09-17 12:28:03 7566

原创 Erlang 杂记 V

我在知乎回答问题不多,这个问题: "对你职业生涯帮助最大的习惯是什么?它是如何帮助你的?",我还是主动回答了一下.  做笔记一开始笔记软件做的不好的时候就发邮件给自己,然后不断的回顾更新笔记;后来用OneNote,由于这玩意当时不是云同步的,硬盘坏掉的时候丢了一些数据,打击还是挺大,好多事情要从头开始再后来用过一段时间Google Wave,还以和朋友分享讨论笔记,结果,你们知道关闭服务了,费力导

2014-09-17 12:27:38 7881

原创 一个技术人的知识管理方法论

说实话,我讨厌这样一个土鳖的标题,希望内容不让你失望.     本文最早源于一系列关于解决问题方法论的思考,从解决问题的一般原则到探索如何让解决问题依赖知识积累和思维工具而不是偶发灵感.这样关注点逐渐从解决问题演变为个人知识体系的构建和知识的管理.    2009年 解决问题:心态 原则 方法       2012年 [Think] 解决问题 Ⅱ     2012年 实用主义的思考与学习 读书笔记

2014-09-17 12:25:29 8181 1

原创 2014值得期待的Erlang两本新书

在2014年的开头就有这样一个令人振奋的好消息,Erlang有一本新书即将出版 《The Erlang Runtime System》,其作者happi在2013年3月份公布了这本书的写作计划:"The plan is to have the book done by the end of 2013 and published early 2014. ",出版方是O’Reilly,按照O’Reil

2014-09-17 12:24:31 7616

原创 Erlang Resources 小站 2013年7月~12月资讯合集

Erlang Resources 小站 2013年7月~12月资讯合集,方便检索.  附 2013上半年盘点: Erlang Resources 小站 2013年1月~6月资讯合集  小站地址: http://site.douban.com/204209/ 七月 Clojure in the Largehttp://www.infoq.com/presentations/Clojure-Larg

2014-09-17 12:23:23 6282

翻译 Elixir - Hey, two great tastes that go great together!

这是Elixir的作者 José Valim 参与的一次技术访谈,很有料,我们可以了解Elixir的一些设计初衷,目标等等.  原文在: http://rubyrogues.com/114-rr-elixir-with-jose-valim/  Podcast 下载地址:  http://traffic.libsyn.com/rubyrogues/RR114Elixir.mp3 

2014-09-12 10:22:44 6567

原创 [Erlang 0112] Elixir Protocols

Why Elixir      为什么要学习Elixir?答案很简单,为了更好的学习Erlang.这么无厘头的理由?     Erlang语法设计几乎没有考虑过取悦开发者,所以学习之初的门槛略高.对于已经克服了最初语法障碍的同学,Elixir其实没有什么吸引力. 在Elixir之前已经有很多类似的项目,比如http://lfe.github.io Elixir类似思路的还有

2014-09-12 10:19:20 6193 1

原创 [Erlang 0111] Erlang Abstract Format , Part 2

上回书,我们说到飞天玉虎蒋伯芳来到蜈蚣岭,不是,重来,上回咱们说到可以在Erlang Shell里面手工构造,加载并调用一个模块.在那个demo里面,我把多个Form单独生成出来,最后放在一起做compile:forms,是不是可以简单点?我们先看完整的module代码,erl_scan:string之后是什么样子的: erl_syntax 1

2014-09-12 10:13:24 5981

原创 [Erlang 0110] Erlang Abstract Format , Part 1

Erlang Abstract Format并不难懂,只是枯燥一点罢了,如果把Abstract Format的文档翻译出来,其实就是Erlang教科书中语法入门的部分. Erlang Abstract Format实际上是用Erlang代码的AST,下面通过一些真切的实例代码了解一下它的一些细节. 首先,Erlang Abstract Format里面包含一些概念,我会在下面的描述中把涉及到的

2014-09-12 10:12:36 6195

原创 [Erlang 0109] From Elixir to Erlang Code

Elixir代码最终编译成为erlang代码,这个过程是怎样的?本文通过一个小测试做下探索.

2014-09-12 10:09:16 6075

原创 Elixir 入门

Erlang Resources里面关于Elixir的资料越来越多,加上Joe Armstrong的这篇文章,对Elixir的兴趣也越来越浓厚,投入零散时间学习了一下.零零散散,测试代码写了一些,Evernote中笔记更是混乱,还是逐步整理出来.   Elixir is a functional, meta-programming aware language built on t

2014-01-01 16:34:49 9551

原创 [Erlang 0107] Erlang实现文本截断

抽时间处理一下之前积压的一些笔记.前段时间有网友 @稻草人 问字符串截断的问题"各位大侠 erlang截取字符串一般用哪个函数啊",有人支招用string:substr/3,紧接着他补充了一下"大侠们 一个字符串有汉字和字母组合我想截取 但是不管用什么方法每个汉字的长度都是3 字母是1 截取出来总是有乱码 还望高手们赐教",我们一步步看看这个问题.   在Eshell先看下什么情况

2014-01-01 16:33:47 8321

原创 [Erlang 0106] Erlang实现Apple Push Notifications消息推送

我们的IOS移动应用要实现消息推送,告诉用户有多少条消息未读,类似下图的效果(笑果),特把APNS和Erlang相关解决方案笔记于此备忘.       上面图片中是Apple Notification在UI展现的形式之一,Notification共有三种形式:图标显示更新数字(badge),提示信息(alert),提示音(sound);    iOS App

2014-01-01 16:31:36 8680

原创 [Erlang 0105] Erlang Resources 小站 2013年1月~6月资讯合集

很多事情要做,一件一件来;Erlang Resources 小站 2013年1月~6月资讯合集,方便检索.   小站地址: http://site.douban.com/204209/  1 月 A few thoughts about Open Source Software Antirez http://do

2014-01-01 16:30:23 9864

原创 [Erlang 0104] 当Erlang遇到Solr

Joe Armstrong的访谈中有一段关于"打开黑盒子"的阐述,给我留下很深的印象:Joe Armstrong在做XWindows开发时没有使用对应的类库,而是在了解XWindows底层实现后选择了直接和套接字通信,"把这20条消息映射到Erlang术语上,变个小魔术,然后可以向窗口直接发送消息,它们就开始执行动作了". [访谈全文] 回到今天的任务:Erlang使用Solr服务?当问题落实

2014-01-01 16:28:59 8231

原创 [Erlang 0103] Erlang Resources 资讯小站

好久没有写博客,是懒了吗?不是;前面两个月在紧张地推进一个项目,中间积累了一些RabbitMQ和Erlang的东西;本打算在项目结束之后赶紧总结一下,结果老婆怀孕之后生活节奏大乱:早起做饭,晚上回去做饭,洗刷碗筷,衣服,等忙完了也就精疲力尽了;其实这都无所谓主要是老婆反应有点大,身体很不舒服,看她受罪的样子真恨不能以身相替.这样的情况下,惯例的技术学习时间基本上停掉了,偶尔有几天强打精神看书,效果

2014-01-01 16:27:21 7565

原创 [Erlang 0102] 愚人节消息 too_big_to_fail_process

Joe Armstrong 在愚人节介绍了too_big_to_fail flag,这个东西真是好多疑问啊,希望只是愚人节的一个玩笑.   介绍    Too_big_to_fail_process进程平时和正常进程一样,一旦需要更多内存的时候面目就开始狰狞起来:如果它需要内存的时候出现了分配内存错误,就会随机挑选比较占用资源比较少的进程杀掉,然后重新尝试为too_

2014-01-01 16:24:45 7348

原创 [Erlang 0101] Gproc:扩展进程注册机制

2013-3-25 22:45:01更新:抱歉 抱歉 脑子里面想的是进程注册 手误 一直把进程注册写成了进程字典Erlang 进程注册机制目前的限制是:names只能是atom一个进程只能注册一个name不能进行高效的搜索和遍历,进程信息的检索是通过遍历检查进程的元数据完成的. Ulf T. Wiger的开源项目 Gproc 就是解决上面问题的,难得的是这个项目的文档,范例

2014-01-01 16:23:31 7649

原创 Clojure CLR 入门

看过"黑客与画家"之后,你是不是对Lisp心动不已?然后翻了几页ACL(Ansi Common Lisp)又望而却步?叹息:如果有一天可以再.Net CLR 上写Lisp代码那就好了!这一天已经来了,这就是Clojure CLR.看语言转换矩阵, Clojure的寄生能力超强,这方面甚至超过javascript.在CLR上有一席之地不足为怪.       既然是入门,就必须回答下面

2014-01-01 16:21:05 7842

原创 Clojure 宏

开始接触Lisp宏是看Ansi Common Lisp的第十章,Lisp宏定义相关的话题都已经提到,有兴趣的可以看看.ACL的目前已经在Github上有中文译本 [第十章],不要太担心Clojure与Lisp的语法差异,可以看下面这个对照表 http://clojure.org/lisps .       Clojure 宏给人留下第一印象就是各种符号` ' ~ ~@ ,那

2014-01-01 16:17:42 7824

原创 [Erlang 0100] make_ref 与 Selective Receive

春节前后出于对STM和Lisp宏的好奇一直在关注Clojure,新年过后对于Erlang开发者还是有不少好消息,有两本Erlang的新书出版:第一本是O'Reilly公司的小册子"Introducing Erlang";一本是著名的LYSE,这本书终于从有了正式出版的版本,在此之前有热心的网友编译成电子书,印刷版排版精美保持了原站图文并茂的风格.目前这两本电子书都很容易下载到电子版,请自行搜索.

2014-01-01 16:08:58 7371

原创 Clojure STM 笔记-下篇

继续完成"Software Transactional Memory"笔记的下篇,这部分内容基本上就是Clojure STM源码阅读指南,从事务实现的各种概念作为切入点,逐步跟进抽丝剥茧.在本文梳理即将结束的时候我找到"Software Transactional Memory"一文对应的Slide,看这个脉络更清晰一些,早点找到这个Slide会省一些力气. 源码阅读指南

2013-02-27 11:28:10 9441

原创 Clojure STM 笔记-中篇

继续上篇继续完成"Software Transactional Memory"的笔记, 本文关注Clojure处理并发的四种引用类型.    Clojure中除了引用类型(Reference Type)之外所有的变量都是immutable.本质上"Reference types are mutable references to immutable data". Clo

2013-02-27 11:27:10 9149

原创 Clojure STM 笔记-上篇

年前有时间关注了一下Clojure,兴趣点在Lisp和其对并发的解决方案.对于后者,老聂推荐了一篇比较不错的文章:"Software Transactional Memory" .这篇文章是个很好的切入点,一方面可以学习Clojure,一方面可以借这个机会温习一下"程序设计语言-实践之路"的第12章"并发",不拘泥于文章本身.文章比较长,笔记分而治之,分上中下三篇完成.

2013-02-27 11:24:57 9304

原创 [Erlang 0096] RabbitMQ Boot Step

之前提到[链接]RabbitMQ会把启动过程分成若干阶段,按照依赖关系进行启动.rabbit_boot_step里面的requires 和 enables配置节是描述这种依赖关系的关键.require约定了该项目启动所依赖的前置条件,enables 表示当前项目启动之后可以启动什么;如果有多个项目enable一个项目(比如:external_infrastructure),要等这些项目都启动了

2012-12-20 22:25:55 9805

原创 Storm-Like Projects

类似Storm几个项目,立此存照,备忘.  StreamBase http://www.streambase.com/ESper http://esper.codehaus.org/about/nesper/nesper.htmlHStreaming http://www.hstreaming.com/Yahoo S4  http://incubator.apache.org/

2012-12-20 22:25:17 9325

原创 [Erlang 0095] 善用 Erlang module_info

在.net里面我们可以使用Attribute和反射在运行时完成对程序集元数据的解析; 下面是C#写得一个简单的例子:  Worker1 worker1 = new Worker1 (); var attribute = worker1.GetType().GetCustomAttribute(typeof( ProcessOrderAttribute)) as Proces

2012-12-20 22:24:27 9180

原创 Twitter Storm Real-Life App 排错记

Twitter Storm号称是'实时版本的Hadoop',正好团队在产品中要用,折腾了一下,en,是真折腾;没有Java背景,时间有一些浪费在Java相关的环境和项目维护上.  Storm简介     Storm is a free and open source distributed realtime computation system. Storm mak

2012-12-20 22:23:16 9596

原创 [Erlang 0094] Erlang 杂记 VI

最近一直忙Storm相关的东西,今天抽时间整理一下Erlang笔记,这一次的内容主要是一些开源项目:Mock ,worker pool......   安装Erlan/OTP   之前写过一个关于Centos安装Erlang的文章,还是有人把Erlang编译安装这件事情做到了极致:Kerl   Easy building and instal

2012-12-20 22:22:15 9788

原创 [Erlang 0093] RabbitMQ 3.0的一些变化

速记两笔,RabbitMQ 3.0的一些 Breaking Change.  Mirror queue policies    还记得之前是怎样创建镜像队列的么?x-ha-policy [Link]在新版本,使用这个参数不会报错但是已经镜像不会再生效.替换方案是使用policies.这样修改的动因是:无法在运行时状态判断哪些队列是镜像队列,新方案是把镜像队列

2012-12-20 22:21:29 9517

原创 [Erlang 0079] RabbitMQ 初探

最近在项目中实践RabbitMQ,比较幸运现在除了官方网站,还有一本非常棒的书可以读:RabbitMQ in Action;这本书目前还没有中文版或者影印版,但是从网上很容易找到PDF版本和epub mobi的版本.RabbitMQ上有关于这本书的介绍文章.从本文开始我会陆续把学习实践过程中的收获记录分享出来. What is RabbitMQ?Robust messa

2012-11-28 15:30:00 9398

原创 [Erlang 0080] RabbitMQ :VHost,Exchanges, Queues,Bindings and Channels

和RabbitMQ这个项目的缘分好奇怪,很长一段时间内是只关注源代码,真的是Erlang开源项目中的典范;现在要在项目中应用RabbitMQ,从新的视角切入,全新的感觉.仿佛旧情人换了新衣,虽是熟稔却有不曾领略的风情. RabbitMQ提供了一整套机制来处理消息的发送,接收,容错,管理,上一篇文章中我提到了一篇Rabbits and warrens的文章,是一篇非常棒的入门文章,但是里面忽略了

2012-11-28 15:29:15 9114

原创 [Erlang 0081] RabbitMQ Topic Exchanges Routing Rules

RabbitMQ Topic Exchange 按照规则进行消息路由,注意这里使用的Topic表达方式并不是正则表达式.在入门教程[点击链接]里面,简单描述了一下如何编写规则: * (star) can substitute for exactly one word.  # (hash) can substitute for zero or more words.

2012-11-28 15:28:51 9163

原创 [Erlang 0082] Erlang Web Servers & Frameworks

Erlang应用程序需要暴露出来Web Service接口,你该如何处理?需要做复杂点的页面展现你又将如何选择?不同规模解决方案解决不同规模的问题,这里的问题其实是你要选择哪个Web Server,你要选择哪个Web Framework? Erlang Web Servers     现在(2012-10-27)还处于活跃开发状态的Web Server有:Mochiweb Ya

2012-11-28 15:27:50 9600

原创 MySpace Mapreduce Framework:Qizmt

临时要处理一批数据,目标是从销售订单明细获得电子商务常见的一些推荐:1.购买了XX的用户还购买了什么 2.XX经常和YY一起购买 3.XX商品被同一用户多次购买;这是典型的MapReduce场景,但由于数据量比较小22w条数据,实在不想搭Hadoop,就找了一个简单的方案搞定:Qizmt;  看下项目简介:      MySpace Qizmt is a map

2012-11-28 15:27:16 9017

原创 [Erlang 0083] All about Erlang Shell

Erlang Shell是一个强大的工具,几乎只要我的电脑开着,就会有一个Erlang Shell开着,随时验证想法.就是因为是常用武器,也会有一些常见问题,今天做下回顾,顺便解决两个新问题.算是Erlang shell常见问题的不完全合集了吧.后续和Erlang Shell相关的问题也会在本文追加更新.    对于Erlang Shell有些问题已经有解决方案了,你可以先翻翻下面

2012-11-28 15:26:47 8912

原创 [Erlang 0084] RabbitMQ: fire-and-forget and RPC

在项目中引入RabbitMQ通常会考虑它会带来的好处:解耦应用程序,实现不同编程语言之间的互通,解除对特定通信协议的依赖,解除应用程序在时序上执行的依赖(异步).落实到代码层面就是两种常用应用模式:"发后即忘"(fire-and-forget)和RPC. fire-and-forget    之前提到过[链接],RabbitMQ解决的是应用程序之间互联(connec

2012-11-28 15:26:18 9054

原创 [Erlang 0085] RabbitMQ 集群: data and metadata

我们希望 RabbitMQ的集群能够解决单点故障,一旦节点异常自动重连到正常的节点;希望RabbitMQ 集群可以完成负载均衡,可以保证消息不丢失,希望可以快速增加节点到集群,单个节点当掉不会给集群带来灾难影响..... 哦,停下来,我们似乎把构建健壮地可扩展系统的所有梦想都寄托在RabbitMQ之上了.事实又是怎样呢?我们不能臆测软件对一个功能的实现,最好的办法就是用一下;我们近距离看一下.

2012-11-28 15:25:30 9196

原创 [Erlang 0086] RabbitMQ 集群: 从零开始

之前文章介绍了RabbitMQ的metadata, 元数据可以持久化在RAM或Disc.从这个角度可以把RabbitMQ集群中的节点分成两种:RAM Node 和 Disk Node. RAM Node只会将元数据存放在RAM,Disc node 会将元数据持久化到磁盘.   单节点系统就没有什么选择了,只允许disk node,否则由于没有数据冗余一旦重启就会丢掉所有的配置信息.但在节点环境

2012-11-28 15:25:04 9237 1

Becoming.Functional

Becoming.Functional 介绍函数式编程的基础概念,条理清楚 非常好,非常适合初学者

2014-08-12

高质量C#代码

在团队中推广的几个编写高质量代码的技巧 在团队中推广的几个编写高质量代码的技巧

2014-07-18

Linux经验集

非常精彩的服务器监控分析,让你读懂监控指标

2014-07-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除