heimonsy 发布的文章

ProtoBuf 最佳实践

  1. Enum
    Enum 的第一个元素最好都是 INVALID,否则在很多场景下无法判断数据是否有效。

  2. Deprecated Field
    deprecated 的 field 不要删除!不要删除!不要删除!特别是那些会存储的数据(无论在哪一端)。

整理部分

很一般的几首

四月

没有人歌唱四月
没有开始,没有结束
没有人爱上四月
没有相遇,没有离别
它不是我曾经历过的
所有的四月中的一个
再没有什么人在意它
四月注定要在潮湿中腐烂
四月注定要在欢笑中埋葬
--2015.04.15

无题

我深夜在三教徘徊
没有万年的星与月
夏虫陪伴着我吟唱
细雨薄丝一同落泪
--2013或2014

无题

雨城用雨季迎接我
卑微的我用卑微的青春回敬
但我终被葬在这里
连同每一个原子和光子
下吧 下吧
我的灵魂注定在雨中蒸发

无题

你写给我的明信片躺在
三百公里外的邮局里
叽啦 叽啦
我送你的整片星空藏在
五千平方米的雾霾上
叽啦 叽啦

又一夏

我在这炎热的地下车库中
想念你的清凉而又狂妄的一秋
在这最后的一句过往的言辞中
想念那个副驾的春日暖阳
不不不
那是世界的时钟与虫洞啊

没有

没有病毒,没有疾病
没有爱情,没有生命
没有你
没有我
没有二十一世纪

mac vim 疑难杂症

之前更新macOS Sierra,照例当然会出现一些问题。

YouCompleteMe 无法使用

在vim里UpdatePlugin并且重新编译YouCompleteMe.

./install.py --clang-completer --gocode-completer --tern-completer

但是会发现,启动vim仍然不行。

发现vim又是系统自带的版本,这个YCM的issueissue#2218上有类似的讨论。

解决方法是:ln -s /usr/local/opt/macvim/bin/mvim /usr/local/bin/vim,也可以指定到/usr/bin/vim(因为在我的系统上PATH里"/usr/local/bin"要靠前),但是这样最好备份系统自带的vim。

erlang-erl

代码

-module(tut17).

-export([start_ping/1, start_pong/0,  ping/2, pong/0]).

ping(0, Pong_Node) ->
    {pong, Pong_Node} ! finished,
    io:format("ping finished~n", []);

ping(N, Pong_Node) ->
    {pong, Pong_Node} ! {ping, self()},
    receive
        pong ->
            io:format("Ping received pong~n", [])
    end,
    ping(N - 1, Pong_Node).

pong() ->
    receive
        finished ->
            io:format("Pong finished~n", []);
        {ping, Ping_PID} ->
            io:format("Pong received ping~n", []),
            Ping_PID ! pong,
            pong()
    end.

start_pong() ->
    register(pong, self()),
    pong().

start_ping([Pong_Node]) ->
    register(ping, self()),
    ping(3, Pong_Node).

// -sname 运行
erl -noshell -sname pong -s tut17 start_pong -s init stop
erl -noshell -sname ping -s tut17 start_ping [email protected] -s init stop

// -name 运行
erl -noshell -name [email protected] -s tut17 start_pong -s init stop
erl -noshell -name [email protected] -s tut17 start_ping [email protected] -s init stop