1.大家听说Erlang,往往是因为其对高并发的良好支持.其实,Erlang的核心特征是容错,从某种程度上讲,并发只是容错这个约束下的一个副产品.容错是Erlang语言的DNA,也是和其他所有编程语言的本质区别所在. 2.从某种意义上讲,Erlang不仅是一门编程语言,更是一个系统平台.它不仅提供了开发阶段需要的支持,更提供了其他语言所没有的运行阶段的强大支持.其实,在静态检查和测试阶段发现的问题往往都是些“不那么有趣”的问题,那些逃逸出来的bug才是真正难对付的.特别是对于涉及并发和分布式的b…
对一个运行中的Erlang系统来说,进程绝对是重要的组成部分.正因为进程是所有运行实体的基础,因此会想去了解它们的更多信息.幸运的是,VM提供了大量的可用信息,其中有些可以安全使用,有些在生产环境中使用是不安全的(因为会返回非常大的数据集合,拷贝到shell以及打印所需的内存量会造成节点崩溃). 进程的所有信息都可以通过调用process_info(Pid, Key)或者process_info(Pid, [keys])86得到. 下面是一些常用的键值:…
error_logger 爆炸 具有讽刺意味的是,负责错误日志的进程竟然是最为脆弱的之一.在Erlang的缺省安装中,error_logger39负责记录日志(写入磁盘或者发送到网络上),它的速度要比错误产生的速度慢得多.尤其是在记录用户产生的日志消息(不是错误)或者大量进程崩溃时,更是如此.对于前者,是因为error_logger本来就不适用于记录高度连续的消息.它只适用于真正的异常情况,并不期望过多的消息量.对于后者,是因为崩溃进程的完整状态(包括其消息邮箱)都会拷贝出来进行日志记录.这种消…
为过载做计划 到目前为止,我在实际工作中所碰到最常见的错误,基本上都是节点内存耗尽.而且通常都和过长的消息队列有关37.解决这类问题的方法有很多,不过只有在深入.全面的理解系统后,才能做出正确的选择.    基本上,我从事的所有项目都可以简化类比成一个非常大的浴室水槽.用户请求和数据从龙头流入.Erlang系统则是水槽和管道,可以把水流出的地方(数据库,外部API或者服务,等等)看作是下水道系统. 当Erlang节点由于队列溢出而死亡时,找到原因所在是至关重要的.是流入槽中的水太多了吗?是下水道…
如果某个进程需要持续地接收新任务,那么其在执行耗时过长的锁或者阻塞操作时,就会出现问题. 最为常见的例子之一就是:某个进程使用了TCP socket,阻塞在了接收新的连接或者等待消息上面.在执行此类阻塞操作时,消息会不受限制地堆积在消息队列中. 一个更为糟糕的例子是我曾经为lhttpc库的某个分支写的http连接池管理器.在大多数测试用例下,它都工作正常,我们甚至把连接的超时时间设置为10ms,以确保不会耗费太多的时间40.正常工作了几周后,该HTTP连接池导致了一次服务中断,原因是有个远程服务…
返回<.Net中的AOP>系列学习总目录 本篇目录 AOP是什么? Hello,World! 小结 本系列的源码本人已托管于Coding上:点击查看,想要注册Coding的可以点击该连接注册. 本系列的实验环境:VS 2013 Update 5(建议最好使用集成了Nuget的VS版本,VS Express版也够用). 这篇博客覆盖的内容包括: AOP简史 AOP解决什么问题 使用PostSharp编写一个简单的切面 AOP是什么? AOP在计算机科学领域还是相对年轻的概念,由Xerox PAR…
在现实世界中,顺序化的(sequential)活动非常罕见.当我们走在大街上的时候,如果只看到一件事情发生的话我们一定会感到不可思议,我们期望碰到许多同时进行的活动. 如果我们不能对同时发生的众多事件所造成的结果进行分析和预测的话,那么我们将会面临巨大的危险,像开车这类的任务我们就不可能完成了.事实上我们是可以做那些需要处理大量并发信息的事情的,这也表明我们本来就是具有很多感知机制的,正是这些机制让我们能够本能地理解并发,而无需有意识地思考. 然而对于计算机编程来说,情况却突然变得相反.把活动安…
1. 如何估算我们这个sprint能做多少个故事点 1) 本能反应 2) 生产率计算  估算生产率/实际生产率  看看团队的历史,看看他们在过去几个sprint里的生产率是多少  然后假定在下一个sprint里生产率差不多  This is also called yesterday's weather    Sprint's Focus Factor                             [Actual Velocity]  [Focus Factor] =  -------…
一.基本名词 泛化(generalization) 训练集所训练的模型对新数据的适用程度. 监督学习(supervised learning) 训练数据的样本包含输入向量以及对应的目标向量. 分类( classification ):给每个输入向量分配到有限数量离散标签中的一个. 回归( regression ):输出由一个或者多个连续变量组成. 无监督学习(unsupervised learning) 训练数据由一组输入向量 x 组成,没有任何对应的目标值. 聚类(clustering):发现…
一.最小化误差函数拟合 正则化( regularization )技术涉及到给误差函数增加一个惩罚项,使得系数不会达到很大的值.这种惩罚项最简单的形式采用所有系数的平方和的形式.这推导出了误差函数的修改后的形式: 在效果上, λ 控制了模型的复杂性,因此决定了过拟合的程度. 二.贝叶斯曲线拟合 1.正态分布( normal distribution )或者高斯分布( Gaussian distribution ) 对于一元实值变量 x ,高斯分布被定义为: 它由两个参数控制:\(μ\) ,被叫做…