分类 开发者手册 中的文章

eventfd 入门

1 eventfd 是什么 eventfd 是linux内核一个计数器,主要用于进程间或者线程间,高效的事件通知。 它也是一个系统调用,在内核空间进行计数,用于事件通知 (since linux 2.6.22)。 eventfd 也是一个fd,同样可以使用read/write进行读写操作,本质上是eventfd实现了read/write接口(里氏替换)。 更详细的可以查看 man eventfd 1 2 3 #include <sys/eventfd.h> int eventfd(unsigned int initval, int flags); eventfd() 创建一个 eventfd 对象,可以由用户空间应用程序实现事件等待/通知机制, 或由内核发送事件通知, 到用户空间的应用程序。 该对象包含了一个无符号64位整型计数器,计数器由内核维护。 此计数器,……

阅读全文

kafka安装

Install zookeeper cp conf/zoo-sample.cfg conf/zoo.cfg vi conf/zoo.cfg 主要修改配置文件中,数据目录的位置。 启动zookeeper服务 bin/zkServer.sh start kafka 2.12 修改配置文件: config/zookeeper.properties 修改数据目录: dataDir=/home/hadoop/zk #因为zookeeper变更为zk,所以需要在这里修改一下 启动zookeeper bin/zookeeper-server-start.sh config/zk.properties 启动kafka服务器(broker) 启动kafka服务器(broker)……

阅读全文

git 源码学习

Preface 最近趁上一个工作任务刚结束,新的任务还在规划中,难得清闲几天,可以抽点时间来看下 Linus 大神在2005年写的 git,为了简单,理解git 的原理,我们可以 checkout 刚开始的版本 比如hash为 79517a067。 这个版本总代码量只有1491 行。 Compile 依赖包:libssl-dev、zlib 修改编译选项:Makefile中LIBS 增加 -lcrypto 编译完之后会生成可执行文件: update-cache show-diff init-db write-tree read-tree commit-tree cat-file fsck-cache checkout-cache Analysis 1 init-db 初始化工作目录: 在当前路径下创建目录, .dircache └── objects ├── 00 ├── 01 ├── ...(255 dirs) ├── fe └── ff 2 update-cache……

阅读全文

Reflection in protobuf (C++/Java)

最近工作中,需要做一些消息动态解析,因为使用的 protobuf,考虑使用protobuf的反射特性。 1 reflection in C++ 在c++中使用protobuf 反射 1 2 3 4 5 6 7 8 9 10 11 package com.sunquan; message Login { optional int64 userid = 1; optional string username = 2; // name optional string password = 3; // passwd optional string email = 4; optional string nickname = 5; // etc ... } C++和Java 不同的是: c++有一个全局的pool,管理了所有定义在 proto 文件里的消息原型, 我们可以通过消息全称,查找到对应的单例的消息原型,然后通过原型构造可变的消息。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 /** * 通过消息名称, 获取构造该类型的默认(原型)。 然后你可以……

阅读全文

C++ RAII

什么是RAII ? RAII即“Resource Acquisition Is Initialization”,也称为“资源获取即初始化”。是C++语言的一种管理资源、避免泄漏的惯用法。利用的就是C++构造的对象最终会被销毁的原则。 RAII的做法是使用一个对象,在其构造时获取对应的资源,在对象生命期内控制对资源的访问,使之始终保持有效,最后在对象析构的时候,释放构造时获取的资源。……

阅读全文

echarts 数据可视化-初体验

Preface 欠缺架构方面的能力,又困于实现业务需求,数据可视化感觉是锦上添花的需求。但是这方面的能力还是很欠缺,最近看了AlphaGo 2017的电影,发现 DeepMind team 数据可视化做的很不错,特别是李世乭 第三局 赢了AlphaGo 的时候,后台 AlphaGo 呈现各个 state 输赢的概率一目了然(不清楚 state 的童鞋可以看下之前写的一篇 MCTS 的译文) 。真正做AI的基础还是数据分析,神经网络可以在海量数据里面寻找 和 发现规律, 但是人类还是很难理解; 如果用把数据 图表或者 投射高维空间,应该能让我们有直观的感受。 Problem 实现一个简单的需求,实时动态展示 一只股票的价格和……

阅读全文

谈谈mutable/unmutable传值/传地址

1 传值/传地址 传地址也可以看成一种特殊的传值,只是这个值会被解析成地址。在C++里面传值更多的时候指的是对象拷贝。 传地址主要:1 为了简化程序逻辑,效率不再生成一个对象的副本。……

阅读全文

Web Design in 4 minutes

网页设计 4 分钟 假如你有一个产品,一个作品集,又或仅仅是一个想法,你想要在你的网站上与大家分享。在你发布在网络上之前,你想要让它看起来有吸引力,专业,或者至少看起来像样。 那么你需要做的第一件事是什么呢? 1 Content 设计的目的是增强你需要呈现的内容。这听起来似乎很明显,但是 2 Centering 长文字很难解析,同样也很难去阅读。设置每行字符数限制,极大地增强了文本块的可读性和吸引力。 1 2 3 4 body { margin: 0 auto; max-width: 50em; } 在对文本块进行样式化后,如何对文本自身进行样式化? 3 Font family 浏览器缺省的(英文)字体是 “Times”, 这可能看起来不那么吸引人(主要是因为……

阅读全文

red 语言初体验

我第一次听到 red 这门语言是在2017-07-20,是通过陈天的一篇关于 red 的文章。正好趁十一,闲得浮生几日,来入个门。下面步入正题: red 目前最新的版本是0.6.3 (2017-10-05) 1 red 语言特性 我们首先来看下 red 语言的一些特性: 1 red 是一门编译型语言,不走虚拟机,直接编译成目标平台的,和 C 代码同级别性能的二进制。编译时可以直接跨平台往 windows / linux / osx 等 target OS,以及 x86 / arm 等 target CPU 上面编译。 2 跨平台的本地GUI 看上去像是一门后端的语言,竟然去抢前端的饭碗。而且,妄图支持 osx,windows,android,iOS,一统江湖。是的,就……

阅读全文

c和c++混用技巧

1 用C-style 来访问vector 1 2 3 4 5 6 7 8 vector<char*> str; str.push_back("abc"); str.push_back("123"); //按照 C-style 来访问vector char** ptr= str.data(); for(int i =0;i<2;++i) printf("%s\n",ptr[i]);……

阅读全文

最近文章

分类

友情链接

标签

-Wall(1) 2017(1) 2023(1) about(1) AC自动机(1) algorithm(2) atomic(1) BigData(1) busy(1) C++11(3) cache(3) chrome(1) cluster(1) CMake(1) cmd(1) Code Review(1) communication(1) core(1) CPA(1) CPC(1) CPM(2) CPP(15) CPS(1) CPT(1) CPU(1) CR(1) CS(4) Diary(3) Docker(1) DP(1) duck-type(1) echarts(1) epoll(1) etcd(1) Eureka(1) event(1) eventfd(1) Feeling(1) future(2) Gerrit(1) git(6) go(3) go-cmp(1) Golang(8) hardware(1) Hundsun(2) intersection(1) iPhone(1) Java(2) kafka(2) lambda(1) Languages(2) LeetCode(3) libuv(1) Life(12) LinkList(1) Linux(2) LogReplay(1) lua(3) MacOS(1) MySQL(1) mysqldump(1) narrow cast(1) nullptr(1) OKR(1) oneof(1) OpenTelemetry(1) owners(1) pkg(2) plan(1) plugin(2) plugins(1) poll(1) promise(1) proto3(1) Protobuf(1) rb-tree(1) Reactive(1) ready_future(1) rebase(1) recommend(2) recursive(1) Redis(1) reflection(3) Registry Center(1) Release(1) resume(1) rpm(1) seastar(4) select(2) set(1) shared_ptr(1) SIGABRT(1) Simulate Location(1) sql(2) std::thread(1) syscall(1) tcp(1) timeout(1) TodoList(1) Tools(3) tracing(1) Travel(1) unique_ptr(1) unwound stack(1) weak_ptr(1) Web(2) Wireshark(4) Work(9) zeromq(2) zookeeper(2) zsh(1) 个人旅游(1) 企微机器人(1) 优点(1) 全麻(1) 动态规划(1) 在线广告(1) 多模匹配(1) 工作总结(1) 广告(1) 开源工具(1) 开源库(4) 总结(2) 扔鸡蛋问题(1) 文本消息指令(1) 智齿(1) 流量录制回放(1) 用户标签(1) 缺点(1) 群收款(1) 背包问题(1) 读书笔记(8) 香港签注(1) 高可用(2) 鼻炎(1)

其它