erlang下lists模块sort(排序)方法源码解析(二)

上接,到目前为止,list列表已经被分割成N个列表,而且每个列表的元素是有序的(从大到小)下面我们重点来看看mergel和rmergel模块,因为我们先前主要分析的split_1_*对应的是rmergel,我们先从rmergel查看,如下....................................................... split_1(X, Y, [], R, Rs)
阅读本文

Erlang运行时的错误

Erlang运行时发生错误时,会返回一些错误信息,理解这些信息,对于学好、用好Erlang来说是必要。Erlang中的运行错误包括:badarg, badarith, badmatch, function_clause, case_clause, if_clause, undef, noproc, system_limit等。badarg这个错误很好理解,参数类型错误,传入函数的参数和函数声明要求
阅读本文

python知识

计算机容量 1位 = 1bit 8bit = 1byte = 1字节 1024bytes = 1kbytes =1KB 1024个字符,小文档 ,几百k可以表示一张图片 1024KB = 1Million Bytes = 1MB = 1兆 , 几万字的文档, 大图片 1024MB = 1Gigabytes , 一个清晰的电影,不是高清,高清能达到数10个g 1024GB = 1T
阅读本文

Windows10安装RabbitMQ

一、简介    RabbitMQ是流行的开源消息队列系统,用erlang语言开发。RabbitMQ是AMQP(高级消息队列协议)的标准实现。二、安装     1、安装erlang环境,下载安装包,网址:http://erlang.org/download/,如我下载的版本是:otp_win64_20.2.exe      安装比较简单,双击安装包,然后一直点击下一步,需要权限提示点击是即可。
阅读本文

表、栈和队列

1.表  数组的插入和删除有可能是昂贵的,取决于发生的位置。在开始的地方插入,需要把整个数组往后移动,删除则需要把整个数组往前移动,复杂度为O(n),如果是表尾则为1。  为了避免上面的这种开销,链表允许不整块的存储。无法避免的是打印整个表都是O(n)的,查找的时候最坏也是O(n),但是删除插入的时候只需要改变几个指向就可以。2.栈  第一种实现是用单向链表,push和pop操作都在表头进行,这样
阅读本文

物联网架构成长之路(3)-EMQ消息服务器了解

1. 了解  物联网最基础的就是通信了。通信协议,物联网协议好像有那么几个,以前各个协议都有优劣,最近一段时间,好像各大厂商都采用MQTT协议,所以我也不例外,不搞特殊,采用MQTT协议,选定了协议,接下来就是选一个MQTT服务器(Broker),项目初期肯定是使用开源的解决方案会好一点,一方面是有人为之填坑,一方面可以快速搭建原型。等以后有人、有资源、有用户,在自己定制开发一套系统。基于各种考虑
阅读本文

RabbitMQ的远程Web管理与监控工具

RabbitMQ提供了完善的管理和监控工具,分management plugin 和 rabbitmqctl 两种类型的工具。1、management plugin rabbitmq-management plugin提供HTTP API来管理和监控RabbitMQ Server,具体包含如下功能: 删除、生成、列表,包括:exchanges,queues,bindings,users,virtu
阅读本文

为什么Erlang比C慢那么多倍?

单个核心我们先来看一下这个程序要实现的功能是什么。刚好这个例子实现的功能是 shootout benchmark 目前 13 个测试中最好理解的,不需要任何数学背景和复杂的数据结构或算法,只涉及到非常简单的高中生物学知识。这个程序的功能是计算给定 DNA 序列的反向互补链。根据高中生物学,DNA 序列就是碱基对序列,碱基对是由两个互补的碱基构成的。碱基的互补关系如下所示:code meaning
阅读本文

Erlang第二课 ---- bit串

Erlang是被设计来用在电信设备中的,这意味着需要处理大量的二进制数据。也正因为如此,Erlang把binary和binary string提升到了一个相当高的位置,提供了极为丰富的操作机制。当然,丰富意味着多,多了可能会有些眼花缭乱,有人给的建议是,如果感觉搞不定怎么处理bit串,可以先在shell里面慢慢的试出自己要的表达,然后copy到程序中去。 1、下面例子形象展示了bit 流的组装:>
阅读本文

markdown学习经验

文章首发于我的github博客前言学习方法工具为先,从工具中学习,熟能生巧。工具选择可以参考 我最终选择了Haroopad这款软件,官网地址是http://pad.haroopress.com/ 。 more 其优点如下:开源、免费跨平台内置了各种markdown扩展,支持100多种编程语言代码的直接显示,例如C/C++, JAVA, C#, Ruby, Python, Erlang, Make
阅读本文

Windows下安装RabbitMQ

今天正好给自己机器安装rabbitmq,总结下安装经验。现在国内访问erlang,和 RabbitMQ 官网好像都很难连上。我已下载好了资源,需要的朋友可以下载。 1.Windows下安装RabbitMQ需要以下几个步骤1)安装erlang。RabbitMQ服务端代码是使用erlang编写的。下载地址:http://www.erlang.org/downloads 选一个版本双击.exe文件进行安
阅读本文

Elixir与编辑器安装

安装 Elixir每个操作系统的安装说明可以在 elixir-lang.org 网站上 Installing Elixir 部分找到。安装后你可以很轻松地确认所安装的版本。~$:elixir -v Erlang/OTP 20 [erts-9.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-po
阅读本文

SpringCloud的Bus(一)消息中间件的概念和用途

一、概念与定义1、Message BrokerMessage Broker是一种消息验证、消息转换、消息路由的架构模式,用于如:消息路由到一个或多个目的地消息转化为其他的表现方式执行消息的聚集、消息的分解,并将结果发送到他们的目的地,然后重新组合相应返回给消息用户调用Web服务来检索数据响应事件或错误使用发布-订阅模式来提供内容或基于主题的消息路由2、AMQPAMQP,一个面向消息中间件的开放式标
阅读本文

erlang rpc 远程调用

跨节点进行远程调用的时候,会经常用到rpc模块提供的方法,例如rpc:call、rpc:cast。那么每个节点上的rpc模块是怎么工作的呢? rex进程 rpc模块的启动过程很简单,并没有初始化做太多事情,以{local,rex}的名称启动了一个gen_server进程,这个gen_server进程的state是一个gb_trees的数据结构。 -spec start() -> {‘ok‘, pi
阅读本文

RabbitMQ基本理论

本节内容一  RabbitMQ介绍二  RabbitMQ安装配置三  RabbitMQ的Python实现-pika  1. 生产者消费者  2. 工作队列   3. 持久化和公平分发  4. 发布与订阅  5. RPC附:概念汇总  一  RabbitMQ介绍   1.  RabbitMQ使用场景RabbitMQ是一个消息中间件,消息中间件【最主要的作用:信息的缓存区】从应用场景如下:场景一:
阅读本文

开发中遇到的一些问题一

问题记载问题记载 11、做好各个功能的性能评估 12、 任务结构调整 13、缓存的充要条件 24、数据散列设计带来的问题 25、计算层和网关层的分层考虑 26、增加进程指定规则创建机制,原因在于: 27、排行榜,P25之前遇到的排行榜问题性能问题 38、P25大地图的设计 39、其他建议 3 1、做好各个功能的性能评估P28-17年7月24日渠道瞬时导量2w+,导致服务器承载超过上限服务器卡顿无法
阅读本文

Python主流框架

15个最受欢迎的Python开源框架。这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等。 Django: Python Web应用开发框架Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响。Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功
阅读本文

推荐一个WebIDE在线编程语言编译器C9.io

有时借用别人电脑或者不想在电脑上安装各种乱七八糟的IDE,就可以考虑 Web IDE。随着Web技术发展,很多语言的编译工作都可以利用Web 浏览器来完成。1. 推荐国外的 C9.io    个人可以免费使用一个工作区,里面支持很多编程语言,并且是个较重的Web IDE,功能非常丰富,能多人实时一起编程,能团队评论,版本控制,版本回溯,相互分享。反正就是各种NB,做的也很用心。全英文界面。
阅读本文

rabbitmq安装使用

1、获取invest_package_20161215.zip获取安装包; 2、新建rbmq用户; 3、解压invest_package_20161215.zip; 4、进入invest_package目录,执行:sh install.sh 5、新建vhost ot: [rbmq@huydvm sbin]$ rabbitmqctl add_vhost ot Creating vhost
阅读本文

rabbitmq基本操作

一些基本的管理命令:一步启动Erlang node和Rabbit应用:./rabbitmq-server在后台启动Rabbit node:./rabbitmq-server -detached关闭整个节点(包括应用):./rabbitmqctl stop   怎样仅仅关闭应用而不关闭整个节点呢?因为rabbitmq-server一起启动了节点和应用,它预先设置RabbitMQ应用为standalo
阅读本文