成都让我最满意的事情恐怕就是住了,在这边花了点大价钱,租了一套不错的房子。南北通透,而且房型还蛮好的。

我们在成都租房子的价格快赶上北京了,但是胜在大和宽敞。猫过来之后有个大房子,天天从这个屋子跑到那个屋子,到处折腾,亲儿子系列

猫对于我们在这边找房子阻碍蛮大的,好多的房东并不希望养宠物,找了绿中介帮忙看了好几家才谈妥,而且可挑选的范围不多。

恐怕剩下的就是赶紧攒钱上车了。。这一年工作攒的钱基本都花在了最近丽江拍婚纱照,准备结婚,来成都往返,还有交了一年的房租上了。

蛋疼,想想就觉得头大。

more>>

C++的语法总是会隐藏在一些边角上的语法,让你觉得还能这么干。最近在了解boost::bind的时候发现了这个语法,之前都不了解这个语法的。拿出来介绍一下,也算记录一下。这个语法在boost::bind还有Inside C++ Object Model中都有用到。 代码和表达均来自与ref[1]。

成员函数指针

废话不多说,上代码:

class Foo {
public:
    int f(string str) {
        cout<<"Foo::f()"<<endl;
        return 1;
    }
};

int main() {
    int (Foo::*fptr)(string) = &Foo::f;
    Foo obj;
    (obj.*fptr)("str");
    Foo *p = &obj;
    (p->*fptr)("str");
}

如上代码所示, int (Foo::*fptr)(string)定义了一个Foo类中的一个成员函数指针,其指向了Foo::f函数。相比起普通函数存放的是函数所指向的地址,其存放的是这个函数在类中相对的offset,这样只要是有相同的内存offset的均能互相转换。 所以要调用它,必须绑定在对应的class object的地址上,才能调用该函数。

more>>

Caddy介绍

Caddy是一个使用Golang开发的http服务器,其主打的特点就是快速支持https和HTTP2。本站的博客也是使用它搭建的,详细搭建过程可以参考这里。最近在其更新的0.10.7中,支持了Froward Proxy,Chrome浏览器也内建了对HTTP2 proxy的支持。

Caddy的Proxy支持一下功能:

  • HTTP2 Proxy
  • Probe resistance,当验证错误时,不会返回HTTP 407 错误。当有Probe进行探测时,其不会就直接暴露出自己是一个Proxy(实验阶段,比较有意思)
  • Basic Auth
  • IP hiding
  • Servers PAC file

more>>

介绍

sofa-pbrpc是百度开源的一个C++ RPC库,使用Google Protobuf作为序列化协议,Asio网络库开发的一个C++ RPC库,现在有很多公司也都在使用。用他来学习boost::asio,C++11的一些新语法是个不错的选择。 计划会通过一系列的文章来研究这个库,并且学习他的一些用法,以及C++语法的笔记。

一个典型的服务器端程序如下所示:

int main() {
    SOFA_PBRPC_SET_LOG_LEVEL(NOTICE);

    sofa::pbrpc::RpcServerOptions options;
    options.work_thread_num = 8;
    sofa::pbrpc::RpcServer rpc_server(options);

    if(!rpc_server.Start("0.0.0.0:12321")) {
        SLOG(ERROR, "start server failed");
        return EXIT_FAILURE;
    }

    sofa::pbrpc::test::EchoServer *echo_service = new EchoServerImpl();
    if (!rpc_server.RegisterService(echo_service)) {
        SLOG(ERROR, "register service failed!");
        return EXIT_FAILURE;
    }

    rpc_server.Run();

    rpc_server.Stop();

    return EXIT_SUCCESS;
}

RpcServerOptions类里面主要是启动server的一些参数,位于rpc_server.h文件中,主要定义的是Server的启动参数,如工作线程数量、io_service 池大小、keep_alive时间等。

more>>

介绍

Hugo是一个强大的静态博客生成器,由spf13使用Golang开发。在性能和生成文章的速度上都不错。目前的版本是0.20.6,依然没有迈出1.0的大版本号。一直在用Hugo进行博客的写作。(半年多没有更新博客了,逃

Caddy同样也是一个由Golang开发的HTTP server,其最大的亮点就是内建了HTTPS和HTTP2的支持,同时自动能够向Let’s Encrypt申请证书。同时,支持Middleware的功能,使用Golang撰写的Middleware能够支持各种各样的功能,同时任何人都可以撰写自己的Middleware,个性化这个HTTP Server。

more>>

今年运气贼好,居然通过摩根的电话面试,邀请我到上海去面试。来回路费加上一晚上住宿费全包, 果断去啊。顺便还绕道到苏州看看晓良和学长, 去微软苏州信仰充值一波。

面试前一天9点的飞机,11点到上海虹桥。然后直接买票到苏州,苏州微软充值了一波信仰。 晚上9点从苏州回来,10点半到住的地方。

面试没有强制要求穿正装,但是还是推荐穿正装。我们面试的有10个人, 有2个没有穿正装,其他都是正装出席。第一次穿正装,非常不适应。 还以为公司内部上班大家都穿正装,结果到了之后发现并没有多少人穿正装。都和普通上班一样。 尽量找个住得近的地方,不要迟到。我们今天面试的时候有两个人就迟到了,不太好。

面试总共有3个环节,上来首先HR和部门的人会介绍面试安排,岗位区别。 仔细看了看JD,EE的开发有一部分侧重在基础架构,他们都是Java开发。 特别强调了如果想去C++就不要去EE。 同时强调所有的面试都是E文,不能和面试官说中文。

完了之后就开始做题,3道比较简单的算法题。这里一定要把题目阅读仔细, 我自己读题的时候不认真,最后一题附加题忽略了一个细节,导致最后一题崩盘。

完了之后就是3轮技术面试,摩根的技术面试非常有意思,3个面试官会商量好 各自问的领域。绝对不会问重复。每轮大概40分钟。

more>>

恩,截止到今天,算是把工作给签下来了。之前找了一段时间的运维开发,但是自己还是想去做开发,所以就滚去链家写PHP去了。

纠结了好几天什么都不想干,还是没有心仪的offer,要是有心仪的我就屁颠屁颠的去了。

感觉目前有倒闭的风险,也有说要上市的公司(又没有股份说个蛋,但还行了。先凑合过吧。

PHP是最好的语言,还是入了这个行。

选择还真是无比痛苦啊。。老老实实搬砖吧。感觉今年的失误在没有刷题上,下班回来就想睡觉,什么都不想干。以后要多刷题才是王道。

切记自己不要做死。

more>>