原创 Prometheus Grafana快速搭建

Prometheus Prometheus和Grafana組合基本上是監控系統的標配。Prometheus做存儲後端,Grafana做分析及可視化界面。 普羅米修斯是開源的系統監控/報警工具庫,功能非常全,且擁有活躍的開發者和用戶社區。P

原创 Java反射和註解

Reflection 今天來挑戰一下如何在2000字以內把Reflection作用說明白? Reflection is commonly used by programs which require the ability to exam

原创 [Erlang23]怎麼有效的遍歷ETS表?

  最近處理的Bug,記錄下: 出現的問題: 不穩定出現gen_server:call/3 的timeout; 直接原因:是call的timeout時間爲10s,但遍歷ets表處理時間大於10s[居然會有進程處理一個請求大於10s,真是

原创 [Erlang37]error/1 exit/1 exit/2 throw/1的區別

1. error/1 主要是系統用來定義內部錯誤的: Erlang內建的run time error 一共有10種: function_clause/case_clause/if_clause/badmatch/badarg/undef/

原创 [Elixir006]CSV(Comma-separated values)處理

1. CSV文件格式是什麼 CSV有時也稱爲字符分隔值,因爲分隔字符也可以不是逗號),其文件以純文本形式存儲表格數據(數字和文本)。純文本意味着該文件是一個字符序列,不含必須像二進制數字那樣被解讀的數據。CSV文件由任意數目的記錄組成,記錄

原创 [Elixir005] 查看指定數據的詳細信息 i helper

elixir在1.2後增加了一個新的特性i helper. 在iex shell中使用i可以查看任意數據的數據類型和詳細描述 #查看變量描述 iex(1)> i {:test, "That sounds great"} Term

原创 gen_server terminate與trap_exit

不論是新手還是熟手,寫gen_server時常會遇到terminate/2,有時執行,有時卻不執行的困惑。 比如stackoverflow中的Handling the cleanup of the gen_server state,因爲te

原创 使用Student T'test方法做性能測試

性能測試 日常工作中對比函數間的快慢時,最直接的方法就是根據timer:tc/1結果的時間來衡量,比如想知道lists:reverse/1與直接使用自己寫的尾遞歸函數誰更快?最直接的方法就是 -module(test). -export([

原创 [Erlang36]kerl輕鬆管理安裝各種OTP版本

kerl只有一個目標:讓我們在不同的OTP版本間隨意切換。他是一個純Bash項目。簡單實用的工作利器! Readme裏面用法已說明得非常清楚了。建議按流程來一次。 1.下載 安裝(一個bash腳本,根本就不用安裝~) curl -O h

原创 格式化輸出io:format的奇技淫巧

格式化輸出io:format是我接觸Erlang使用的第一個庫函數(io:format("Hello World")),隨着學習的深入,它也是我debug優先選擇最簡單直接的工具。 不過它除了簡單的輸出外,還有很多進階用法。甚至通過它,你就

原创 [react002] component基本用法

1 什麼是component 設計接口的時候,把通用的設計元素(按鈕,表單框,佈局組件等)拆成接口良好定義的可複用的組件。 這樣,下次開發相同界面程序時就可以寫更少的代碼,也意義着更高的開發效率,更少的 Bug 和更少的程序體積。 Thi

原创 [Elixir009]像GenServer一樣用behaviour來規範接口

1.Behaviour介紹 Erlang/Elixir的Behaviour類似於其它語言中的接口(interfaces),本質就是在指定behaviours的模塊中強制要求導出一些指定的函數,否則編譯時會warning。 其中Elixir中

原创 [react001] 使用webpack自動構建react 項目

1.react 簡介  React 是一個Facebook出品的前端UI開發框架。react官方的 tutorials 爲了讓人容易上手,並沒有給在平常工作使用react的詳細配置,隨意學習的深入,你爲了調試代碼會不斷的自己重新reload

原创 [Erlang30]Erlang shell是如何工作的?

一些關於Erlang啓動進程的分析:希望你會喜歡。 原英文地址:http://ferd.ca/repl-a-bit-more-and-less-than-that.html 研究Erlang shell是一件饒有趣味的事情。我想肯定有很多用

原创 [Elixir008]Nested Module裏的動態函數調用方式

有時我們需要動態生成一些模塊名,然後調用它裏面的函數。但是我們常常碰到的卻是明明有那個模塊,結果還是raise模塊未定義。。。 我們來看看到底怎麼回事? 首先我們定義一個函數 iex(1)> defmodule Science.Math