字节跳动 EB 级 HDFS 实践
本文选自“字节跳动基础架构实践”系列文章。
“字节跳动基础架构实践”系列文章是由字节跳动基础架构部门各技术团队及专家倾力打造的技术干货内容,和大家分享团队在基础架构发展和演进过程中的实践经验与教训,与各位技术同学一起交流成长。
本文选自“字节跳动基础架构实践”系列文章。
“字节跳动基础架构实践”系列文章是由字节跳动基础架构部门各技术团队及专家倾力打造的技术干货内容,和大家分享团队在基础架构发展和演进过程中的实践经验与教训,与各位技术同学一起交流成长。
字节跳动技术团队 2017-09-08
今天我要分享一个用于对日志文件进行二分查找的工具:timecat
在线演示页面:http://aap.reetsee.com/page/timecat
置于变量或函数前,用于标示变量或函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。它只要有两个作用:
当它与“C”一起连用的时候,如:extern “C” void fun(int a,int b);则告诉编译器在编译fun这个函数时候按着C的规矩去翻译,而不是C++的(这与C++的重载有关,C++语言支持函数重载,C语言不支持函数重载,函数被C++编译器编译后在库中的名字与C语言的不同) 当extern不与“C”在一起修饰变量或函数时,如:extern int g_Int;它的作用就是声明函数或全局变量的作用范围的关键字,其声明的函数和变量可以在本模块或其他模块中使用。记住它是一个声明不是定义!也就是说B模块(编译单元)要是引用模块(编译单元)A中定义的全局变量或函数时,它只要包含A模块的头文件即可,在编译阶段,模块B虽然找不到该函数或变量,但它不会报错,它会在连接时从模块A生成的目标代码中找到此函数。
大家好,这是面试专题的第四篇文章,中间间隔许久,实在是事情比较多,有些忙不过来。好在现在校招时间还没过去,也许还能给大家一点帮助。
前段时间有一个妹子在知乎里给我发了一个有偿咨询,让我帮她看看她的简历有什么问题,为什么很多公司简历关都过不去。一般对于这种有偿咨询,我都是有求必应的。倒不是为了钱,而是我觉得别人愿意花钱来提问,说明对方是真的想要得到一个解答。那么如果有能力的话,我都会给予力所能及的帮助。但这一次我真没好意思收这个钱,原因也很简单,因为她连基本的模板都没选对,我很难用三言两语帮助到她。
大家好,最近由于我司发展不错。在国内知名度越来越大,这两天从各种渠道收到了朋友送来的几封简历,让我帮忙内推。
收到简历我当然是很开心的,因为通过了会有奖金嘛。但也有几封简历让我很尴尬,不知道如何是好。你说推吧,推了也肯定不过,挂在HR手上大家都不好看。你说不推吧,朋友那边面子过不去,很难受。大学里没有关于简历以及就业的培训,简历写不好我非常理解,但是可以写得这么出人意料还是挺难得的。所以这篇文章老生常谈,再和大家聊聊写简历这件事。
众所周知互联网公司当中充满了套路,什么把年终奖摊平到每个月跟你说薪水的,什么把年终的月份说得特别多,等你发现已经来不及的。明明跟你说的是A岗位结果让你去做B事情的,这些事情数不胜数,简直都不叫个事。要说其中最让人不能忍受的,我个人觉得还是无休无止的杂活。
当我第一次使用 Go 的 channels 工作的时候,我犯了一个错误,把 channels 考虑为一个数据结构。我把 channels 看作为 goroutines 之间提供自动同步访问的队列。这种结构上的理解导致我写了很多不好且结构复杂的并发代码。
以促进 India 的 go 编程作为 GopherConIndia 承诺的一部分。我们采访了 40 位 Gophers(一个 Gopher 代表一个 GO 项目或是任何地方的 GO 程序员),得到了他们关于 GO 的意见。从 2014 年的八月到十一月,我们将每个星期发表两篇采访稿。