E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Elixir
[
elixir
! #0028] 掌控元编程的魔法(1) ---- 宏的卫生性
宏的卫生(hygienic)是指,我们在宏里赋值的变量,不会对宏之外的变量造成影响.例如:defmoduleHygienedodefmacrono_interferencedoquotedoa=1endendendrequireHygienea=10Hygiene.no_interferencea#=>10虽然我们在宏之内将a赋值为1,但a的值仍然为10.如果我们想打破宏的卫生性,使用宏来更改变量
Tericoder
·
2020-08-24 13:22
elixir
元编程
[
elixir
! #0027] 在
elixir
项目中使用 RiakKV 数据库(0)
riakKV是一个分布式的键值存储数据库.这里我使用的操作系统为ubuntu16.04.配置riak安装好riakKV之后,我们需要将riak.conf文件中的nodename修改为本机的IP地址
[email protected]
=192.168.10.83:8098listener.protobuf.internal=192.168.
Tericoder
·
2020-08-24 13:20
riak
nosql-分布式
elixir
[
elixir
! #0022][译] 用
Elixir
和Elm做个混音web应用:后端-Part II by Jeff Cole
原文在上一篇文章中,我们了解了
Elixir
和Phoenix如何实现我们的应用的多客户端连接.那篇文章中介绍了我们的应用,"LoopWithFriends".最后的也时最复杂的功能就是在后端平衡每个channeltopic
Tericoder
·
2020-08-24 13:19
elixir
phoenix
elm
Collectd & InfluxDb & Grafana 之三: 应用程序运行指标统计
通过Elixometer搜集
Elixir
的运行时统计信息,并存储到InfluxDB中,提供给Grafana进行可视化.应用程序统计添加依赖defpdepsdo[{:quantum,">=1.8.0"},
developerworks
·
2020-08-24 13:09
influxdb
statistics
elixir
[
elixir
! #0020][译]
Elixir
和 Elm 制作的交响乐应用Part.1 by Jeff Cole
当我开始学习
Elixir
和Phoenix时,让我最震惊的部分是它对实时网络连接的一流支持.一旦你掌握了
Elixir
,并习惯于函数式编程,你就可以愉快地使用Phoenix为我们设置好的socket和channels
Tericoder
·
2020-08-24 13:51
elm
elixir
phoenix
[
elixir
! #0016] 在 phoenix 项目里配置 elm
新建phoenix项目$mixphoenix.newelm_base$cdelm_base$mixecto.create添加elm-brunch$npminstall--save-develm-brunch打开brunch-config.js文件往paths/watched添加"web/elm”往plugins添加:elmBrunch:{elmFolder:"web/elm",mainModule
Tericoder
·
2020-08-24 13:15
elixir
phoenix
elm
Erlang/
Elixir
: 使用 Leex 和 Yecc 解析领域语言(DSL)
本文的目的是处理Telegram协议的定义语言TL本文需要对编译原理有一定的了解.Leex是一个Erlang语言实现的词法分析器(LexicalAnalyzer).接收字符流输入,产生符号流输出.Yecc是一个Erlang语言实现的语法分析器(SyntacticParser).接收符号流输入,产生AST.词法分析器leex一个leex词法分析文件的包含下面三个部分:符号定义Definitions.
developerworks
·
2020-08-24 13:10
telegram
erlang
elixir
Elixir
Ranch: 监听器 (Listener)
监听的定义:服务器等待来自任意远端的连接请求.这张图的信息量很大,可以仔细研究.图中顶部黄色的LISTEN方块就是监听器的所处的位置.监听器一个监听器是一组进程,它的用途是在一个指定的端口上监听新的TCP连接.它管理着一个接收器进程池,池中的每个接收器一直持续不断的接受连接.当一个新的连接到达时,它启动一个新的进程来执行协议处理代码,所有的套接字编程通过使用传输处理模块进行抽象.监听器关注于监控所
developerworks
·
2020-08-24 13:14
elixir
ranch
Elixir
Ranch: Embedded 模式
嵌入模式允许你把Ranch监听器直接插入到你的监控树中.如果整个应用程序其他部分挂掉了,可以通过关闭监听器的方法,来提供更好的容错控制.嵌入(Embedding)要嵌入Ranch到你自己的应用程序中,只需要简单地把子进程规范添加到监控树中即可.在应用程序的一个(一般在顶层Supervisor,如果应用程序比较复杂,也可能是其他层)Supervisor的init/1函数中完成这个过程.对于嵌入,Ra
developerworks
·
2020-08-24 13:13
elixir
ranch
Elixir
Ranch: 一个用于处理套接字的网络库
Ranch是一个很牛逼的Acceptorpool,它让Phoenix跑到了200W的并发.监听器监听器(listener)是一组进程,它的用途是在一个指定的端口上监听新的连接.它管理一组acceptor进程,每个acceptor无限地等待接受客户端的连接请求.当接受一个连接时,它启动一个新的进程执行协议处理代码(一般是二进制数据格式的处理).监听器监控所有的acceptor进程和连接进程,让开发者
developerworks
·
2020-08-24 13:22
elixir
ranch
【天赢金创】Crystal 语言
,没有字节码和解释器.很容易在速度上超过这些JVM语言.同样是编译成LLVMIR再到机器码,和RubyMotion的区别是:RubyMotion依赖ObjC运行时,而Crystal不依赖除了编译外,和
Elixir
天赢金创
·
2020-08-24 13:39
crystal
Elixir
管道操作符 |>
比如:像这种代码可以写成这样在
Elixir
中|>就管道操作符(pipeline)用来写管道风格的表达式,|>把符号左边表达式的结果作为右边表达式的第一参数例如:iex>[1,[2],3]|>List.flatten
lidashuang
·
2020-08-24 13:32
elixir
管道
开源以太坊 浏览器 汇总
1.blockscoutBlockScout是一个
Elixir
应用程序,允许用户搜索交易,查看帐户和余额,并验证整个以太坊网络上的智能合约,包括所有的叉子和侧链。
weixin_34168700
·
2020-08-24 03:00
以太坊浏览器汇总
前言:通过区块链浏览器查询ETH交易信息,罗列以下区块链浏览器:1.Etherscanetherscan.io/(推荐)通用,数据刷新及时2.blockscoutBlockScout是一个
Elixir
应用程序
weixin_34050519
·
2020-08-24 03:16
【随笔】Linux PID
一、IDtask_struct结构体里面设计taskid的有三个字段:pid_tpid;pid_ttgid;structtask_struct*group_leader;源码地址:https://
elixir
.bootlin.com
扶我起来我还要写代码
·
2020-08-23 19:53
linux
为什么我放弃Redux
相关技术背景:曾经做过一些桌面GUI程序的开发和手机端APP的开发,现在主要是基于
Elixir
和Scala开发后端应用。背景这两周
4Freedom
·
2020-08-23 05:16
2018-06-13 sched.h
sched.hhttps://
elixir
.bootlin.com/linux/latest/source/include/linux/sched.h
七点水Plus
·
2020-08-22 02:24
【
Elixir
】记录
Other:
Elixir
Documents点击进去,查看对应版本,了解
elixir
以及它所用到的EEx、ExUnit、Logger、Mix、IExMix.config在
Elixir
1.9.
_xk
·
2020-08-21 02:46
elixir
CentOS 7.7安装Erlang和
Elixir
Elixir
Elixir
是一种动态的功能语言,旨在用于构建可伸缩和可维护的应用程序。
Elixir
利用了以运行低延迟
沉默是金
·
2020-08-20 22:30
elixir
CentOS 7.7安装Erlang和
Elixir
Elixir
Elixir
是一种动态的功能语言,旨在用于构建可伸缩和可维护的应用程序。
Elixir
利用了以运行低延迟
沉默是金
·
2020-08-20 22:30
elixir
[
elixir
! 55] DateTime 的正确比较方法
用Ecto的时候通常会自动添加timestamp(),它的类型是DateTime.在iex里面看是这样的:~U[2019-10-3115:52:49Z]它的本质是一个Map结构,如果直接进行比较,会不准确:iex>Enum.sort([~U[2019-11-0104:06:52Z],~U[2019-10-3115:52:49Z]])[~U[2019-11-0104:06:52Z],~U[2019-
Tericoder
·
2020-08-20 22:33
datetime
elixir
[
elixir
! 54] Plug.Conn.read_body 的配置问题
需求读取http请求中的大数据,每次读取一定的体积.Plug.Conn.read_body/2@specread_body(t(),Keyword.t())::{:ok,binary(),t()}|{:more,binary(),t()}|{:error,term()}此函数有三个配置选项,根据文档,length:表示这一次函数调用读取数据的长度;read_length:表示从底层的socket每
Tericoder
·
2020-08-20 22:32
elixir
http
[
elixir
! 54] Plug.Conn.read_body 的配置问题
需求读取http请求中的大数据,每次读取一定的体积.Plug.Conn.read_body/2@specread_body(t(),Keyword.t())::{:ok,binary(),t()}|{:more,binary(),t()}|{:error,term()}此函数有三个配置选项,根据文档,length:表示这一次函数调用读取数据的长度;read_length:表示从底层的socket每
Tericoder
·
2020-08-20 22:32
elixir
http
[
elixir
! 55] DateTime 的正确比较方法
用Ecto的时候通常会自动添加timestamp(),它的类型是DateTime.在iex里面看是这样的:~U[2019-10-3115:52:49Z]它的本质是一个Map结构,如果直接进行比较,会不准确:iex>Enum.sort([~U[2019-11-0104:06:52Z],~U[2019-10-3115:52:49Z]])[~U[2019-11-0104:06:52Z],~U[2019-
Tericoder
·
2020-08-20 22:32
datetime
elixir
[
elixir
! 52] 使用 PhoenixLiveView 调用 JS 代码
需求:新内容出现时滚到到底端1定义js钩子代码constHooks={}Hooks.Scroll={updated(){this.el.scrollTop=this.el.scrollHeight},mounted(){this.el.scrollTop=this.el.scrollHeight}}constliveSocket=newLiveSocket('/live',Socket,{hook
Tericoder
·
2020-08-20 22:55
elixir
[
elixir
! 52] 使用 PhoenixLiveView 调用 JS 代码
需求:新内容出现时滚到到底端1定义js钩子代码constHooks={}Hooks.Scroll={updated(){this.el.scrollTop=this.el.scrollHeight},mounted(){this.el.scrollTop=this.el.scrollHeight}}constliveSocket=newLiveSocket('/live',Socket,{hook
Tericoder
·
2020-08-20 22:55
elixir
[
elixir
! 51] Stream.resource 和 Enum.reduce_while 的用法
Stream看个简单的例子,如何制造一个stream源,并且用reduce_while来提取数据.计算自然数集合中数字的和,直到遇到不满足条件的数.fn_start=fn->1endfn_next=fnx->{[x],x+1}endfn_after=fn_->:okendhandler=fnlimit->fnx,acc->iflimit.(x)do{:cont,x+acc}else{:halt,a
Tericoder
·
2020-08-20 22:22
elixir
[
elixir
! 51] Stream.resource 和 Enum.reduce_while 的用法
Stream看个简单的例子,如何制造一个stream源,并且用reduce_while来提取数据.计算自然数集合中数字的和,直到遇到不满足条件的数.fn_start=fn->1endfn_next=fnx->{[x],x+1}endfn_after=fn_->:okendhandler=fnlimit->fnx,acc->iflimit.(x)do{:cont,x+acc}else{:halt,a
Tericoder
·
2020-08-20 22:22
elixir
[
elixir
! 50] 使用 nginx 为 phoenix 应用做 https 转发
安装nginx之后,将/etc/nginx/nginx.conf修改成:#extractPhoenixappupstreamforbetterreadabilityupstreammyapp{serverlocalhost:34567;}#hideserverinformationhttp{server_tokensoff;}#redirectallhttprequeststohttps#anda
Tericoder
·
2020-08-20 21:11
elixir
[
elixir
! 50] 使用 nginx 为 phoenix 应用做 https 转发
安装nginx之后,将/etc/nginx/nginx.conf修改成:#extractPhoenixappupstreamforbetterreadabilityupstreammyapp{serverlocalhost:34567;}#hideserverinformationhttp{server_tokensoff;}#redirectallhttprequeststohttps#anda
Tericoder
·
2020-08-20 21:10
elixir
[
elixir
! 49] 对大文件做哈希运算
大文件要用File.stream!来分段读取,否则一下子读到内存里会撑爆内存.erlang的:crypto标准库中有内置:crypto.hash_init/1:crypto.hash_update/2和:crypto.hash_final/1这三个函数,帮助我们进行分步的哈希运算.所以最后可以写成:defsha256_file(path)whenis_binary(path)doFile.stre
Tericoder
·
2020-08-20 21:33
elixir
[
elixir
! 49] 对大文件做哈希运算
大文件要用File.stream!来分段读取,否则一下子读到内存里会撑爆内存.erlang的:crypto标准库中有内置:crypto.hash_init/1:crypto.hash_update/2和:crypto.hash_final/1这三个函数,帮助我们进行分步的哈希运算.所以最后可以写成:defsha256_file(path)whenis_binary(path)doFile.stre
Tericoder
·
2020-08-20 21:33
elixir
Discord CTO 谈如何构建500W并发用户的
Elixir
应用
从一开始,Discord就是
Elixir
的早期使用者。ErlangVM是我们打算构建的高并发、实时系统的完美候选者。我们用
Elixir
开发了Discord的原型,这成为我们现在的基础设施的基础。
誉儿
·
2020-08-20 21:58
elixir
Discord CTO 谈如何构建500W并发用户的
Elixir
应用
从一开始,Discord就是
Elixir
的早期使用者。ErlangVM是我们打算构建的高并发、实时系统的完美候选者。我们用
Elixir
开发了Discord的原型,这成为我们现在的基础设施的基础。
誉儿
·
2020-08-20 21:58
elixir
elixir
/erlang内存泄漏排查.
前言对服务端程序来说,内存泄漏是经常会面临的问题.使用erlang的情况下,不用程序员手动管理内存.如果不写cdriver,一般的内存问题还是很容易定位的.这篇blog对常见的内存泄漏类型,排查手段做个小结.内存泄漏类型process泄漏如果没有etopiex(xxxx@xxxx.)1>:erlang.system_info(:process_count)5369可以通过process_count
enjolras1205
·
2020-08-20 21:48
memory
erlang
使用Rust和
Elixir
实现高效的下发好友列表
去年,Discord的后端基础设施团队努力提高核心实时通信基础设施的可扩展性和性能。我们进行的一个大项目是改变我们更新公会成员列表的方式(屏幕右侧的那些漂亮的头像)。我们可以直接发送会员列表中可见部分的更新(分页),而不是为会员列表中的每个人都发送更新。这样做的好处很明显,例如网络流量更少,CPU使用率更低,电池寿命更长等等。然而,这给服务器端造成了一个大问题:我们需要一个能够容纳数十万个元素的数
誉儿
·
2020-08-20 21:09
rust-lang
rust
elixir
使用Rust和
Elixir
实现高效的下发好友列表
去年,Discord的后端基础设施团队努力提高核心实时通信基础设施的可扩展性和性能。我们进行的一个大项目是改变我们更新公会成员列表的方式(屏幕右侧的那些漂亮的头像)。我们可以直接发送会员列表中可见部分的更新(分页),而不是为会员列表中的每个人都发送更新。这样做的好处很明显,例如网络流量更少,CPU使用率更低,电池寿命更长等等。然而,这给服务器端造成了一个大问题:我们需要一个能够容纳数十万个元素的数
誉儿
·
2020-08-20 21:08
rust-lang
rust
elixir
[
elixir
! #0048] 好玩的时间戳数据格式
逝者如斯夫,不舍昼夜.时间戳的处理恐怕是我们日常编程中经常要面对的问题,尤其是涉及到国际服务的时候,如何存储正确的时间,就特别重要.一般我们使用UTC时间,也就是0时区的时间作为标准时间.获取当前的UTC时间戳:iex(1)>DateTime.utc_now~U[2019-05-2004:50:52.943370Z]这得到的是个啥?其实是一个struct:iex(2)>Map.from_struc
Tericoder
·
2020-08-20 21:11
elixir
[
elixir
! #0048] 好玩的时间戳数据格式
逝者如斯夫,不舍昼夜.时间戳的处理恐怕是我们日常编程中经常要面对的问题,尤其是涉及到国际服务的时候,如何存储正确的时间,就特别重要.一般我们使用UTC时间,也就是0时区的时间作为标准时间.获取当前的UTC时间戳:iex(1)>DateTime.utc_now~U[2019-05-2004:50:52.943370Z]这得到的是个啥?其实是一个struct:iex(2)>Map.from_struc
Tericoder
·
2020-08-20 21:11
elixir
elixir
基准测试记录
elixir
基准测试代码见
elixir
_basic_benchmark测试变量OperatingSystem:Linux"CPUInformation:Intel(R)Core(TM)i7-7700CPU
enjolras1205
·
2020-08-20 21:50
benchmark
elixir
elixir
基准测试记录
elixir
基准测试代码见
elixir
_basic_benchmark测试变量OperatingSystem:Linux"CPUInformation:Intel(R)Core(TM)i7-7700CPU
enjolras1205
·
2020-08-20 21:49
benchmark
elixir
拆分umbrella project遇到的deps编译env为prod问题
问题此前代码放在一个repo下,代码重用的方式是umbrella.为了将代码拆分,让服务间的边界更明显,我们将
elixir
project拆分开,以deps方式重用代码.遇到了deps编译时默认env为prod
enjolras1205
·
2020-08-20 21:26
elixir
拆分umbrella project遇到的deps编译env为prod问题
问题此前代码放在一个repo下,代码重用的方式是umbrella.为了将代码拆分,让服务间的边界更明显,我们将
elixir
project拆分开,以deps方式重用代码.遇到了deps编译时默认env为prod
enjolras1205
·
2020-08-20 21:25
elixir
3年,从工程师到创始人
【玩转LeanCloud】活动开发经验分享:作者:黄涛大家好,我是htoooth,在一家电商公司做Node.js开发,爱折腾,喜欢追新语言,像golang、
elixir
、clojure、人工智能和python
LeanCloud
·
2020-08-20 20:20
虚拟现实
人工智能
创业者
node.js
3年,从工程师到创始人
【玩转LeanCloud】活动开发经验分享:作者:黄涛大家好,我是htoooth,在一家电商公司做Node.js开发,爱折腾,喜欢追新语言,像golang、
elixir
、clojure、人工智能和python
LeanCloud
·
2020-08-20 20:47
虚拟现实
人工智能
创业者
node.js
Elixir
Ecto: 使用Geo库操作空间数据(地理坐标)
AbbrFullnameDescriptionWKTWellKnownText空间数据的文本标识WKBWellKnownBinary空间数据的二进制标识GeoJSONGeoJSON基于Javascript对象表示法的地理空间信息数据交换格式GeoJSON
Elixir
developerworks
·
2020-08-20 20:56
elixir
postgresql
postgis
geo
Elixir
Ecto: 使用Geo库操作空间数据(地理坐标)
AbbrFullnameDescriptionWKTWellKnownText空间数据的文本标识WKBWellKnownBinary空间数据的二进制标识GeoJSONGeoJSON基于Javascript对象表示法的地理空间信息数据交换格式GeoJSON
Elixir
developerworks
·
2020-08-20 20:56
elixir
postgresql
postgis
geo
Elixir
分布式 Application 故障转移和接管
Elixir
可以运行在主/从,故障转移/接管模式下.要使
Elixir
应用程序能够执行故障转移/接管,
Elixir
应用程序必须是一个OTP应用程序.下面来创建一个包含Supervisor的
Elixir
项目
developerworks
·
2020-08-20 19:14
erlang
elixir
distributed
Elixir
分布式 Application 故障转移和接管
Elixir
可以运行在主/从,故障转移/接管模式下.要使
Elixir
应用程序能够执行故障转移/接管,
Elixir
应用程序必须是一个OTP应用程序.下面来创建一个包含Supervisor的
Elixir
项目
developerworks
·
2020-08-20 19:14
erlang
elixir
distributed
elixir
/erlang内存泄漏排查.
前言对服务端程序来说,内存泄漏是经常会面临的问题.使用erlang的情况下,不用程序员手动管理内存.如果不写cdriver,一般的内存问题还是很容易定位的.这篇blog对常见的内存泄漏类型,排查手段做个小结.内存泄漏类型process泄漏如果没有etopiex(xxxx@xxxx.)1>:erlang.system_info(:process_count)5369可以通过process_count
enjolras1205
·
2020-08-20 16:14
memory
erlang
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他