自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (2)
  • 收藏
  • 关注

原创 由于CSDN博客广告太多,本博客暂时停止更新

由于CSDN博客广告太多,本博客暂时停止更新!新博客地址为:https://jewes.github.io/

2019-06-10 23:03:00 422

原创 RK3399: 支持wifi/4g与以太网共存

开发板芯片:RK3399Android版本: 7.1.2我们在Android开发板上开发一款App,Android开发板有wifi, 4G和以太网接口,App通过以太网与IP摄像头连接获取数据,App处理后通过wifi/4G网络将结果上报到云端。因此,要求Android能同时连接以太网(称为内网)和外网。熟悉Android的同学可能知道,默认情况下Android在同一时刻只能使用一种网络,比...

2018-10-10 19:31:03 12798 8

原创 我需要的就是电钻,不要再问为什么了

我需要的就是电钻,不要再问为什么了

2017-04-16 23:37:10 1912 2

原创 如何找到CPU飙升的原因

三步找出CPU飙升的原因

2017-03-25 11:58:20 6663 1

原创 谈谈TCP中的TIME_WAIT

在服务端可能会经常遇到有很多处于TIMEWAIT状态的TCP连接。如果上网一搜索,可以找到有很多关于处理TIMEWAIT不正确的博文(包括本文),很多文章就放了几个调整参数。至于这些参数有什么用,为什么要调整为那个值就没有深入地介绍了。这就好像生了病不去找医生了解病情,而是随便从别人的药箱里面找点药来吃,看看有没有效果,也不管别人的药是否过期,是否对症。所以,本文也来凑个热闹,来谈谈TIME_WAI

2016-09-24 23:48:06 11430

原创 谈谈对CAP定理的理解

谈谈对CAP定理的理解CAP定理的常规解释是任何分布式系统只能在一致性(Consitency),可用性(Availability)和分区容忍性(Partition Tolerance)中三选二。这个解释很让人费解,笔者在看了一些文章后谈谈我对它的理解,还请斧正。从问题出发假设我们用一台服务器A对外提供存储服务,为了避免这台服务器宕机导致服务不可用,我们又在另外一台服务器B上运行

2015-02-04 22:11:29 8320 2

原创 Kafka的Log存储解析

Kafka的Log存储解析标签(空格分隔): kafka引言Kafka中的Message是以topic为基本单位组织的,不同的topic之间是相互独立的。每个topic又可以分成几个不同的partition(每个topic有几个partition是在创建topic时指定的),每个partition存储一部分Message。借用官方的一张图,可以直观地看到topic和partit

2015-01-21 17:11:20 43137 20

原创 Kafka Producer相关代码分析

Kafka Producer相关代码分析标签(空格分隔): kafkaKafka Producer将用户的消息发送到Kafka集群(准确讲是发送到Broker)。本文将分析Producer相关的代码实现。类kafka.producer.Producer如果你自己实现Kafka客户端来发送消息的话,你就是用到这个类提供的接口来发送消息。(如果你对如何利用Producer AP

2015-01-17 20:38:03 7491

原创 Kafka的通讯协议

Kafka的通讯协议标签:kafkaKafka的Producer、Broker和Consumer之间采用的是一套自行设计的基于TCP层的协议。Kafka的这套协议完全是为了Kafka自身的业务需求而定制的,而非要实现一套类似于Protocol Buffer的通用协议。本文将介绍这套协议的相关内容。基本数据类型定长数据类型:int8,int16,int32和int64,对

2015-01-15 18:34:47 37844

原创 Kafka SocketServer源代码分析

本文将详细分析Kafka SocketServer的相关源码。

2015-01-04 22:16:24 7115 4

原创 从餐厅运营来看如何构建高性能服务器

本文通过类比运营一个餐厅,来看看如何构建服务器程序。

2015-01-03 22:54:07 3355 1

原创 Java程序员必学的Hotspot JVM选项

本文将介绍Hotspot JVM的常用选项。选项的分类Hotspot JVM提供以下三大类选项: 1. 标准选项:这类选项的功能是很稳定的,在后续版本中也不太会发生变化。运行java或者java -help可以看到所有的标准选项。所有的标准选项都是以-开头,比如-version, -server等。2. X选项:比如-Xms。这类选项都是以-X开头,可能由于这个原因它们被称为X

2014-12-26 18:25:28 23550 11

原创 好的Unix工具的九大启示

我们每天都在使用前人开发的各种工具。一款好的工具能无缝地融入到你的工作环境中,而一款“差”的工具常常需要花费额外的精力才能集成到你的工作环境中。(注意:这里的差是指用户体验方面的问题,但这些工具本身还是有用的)。作为工程师,我们总是需要开发一些工具给自己或者给别人用。Marius Eriksen的这篇文章(http://monkey.org/~marius/unix-tools-hints.htm

2014-11-05 08:05:22 2792

原创 几个cd快捷技巧

cd是工程师每天都会用到的命令。今天就来分享几条和cd有关的小技巧cd如果你用cd ~来进入当前用户的home目录的话,那么可以试试直接敲cd。同样效果,少敲两下键盘。cd -cd -用了于在最近的两个工作目录的切换。比如,现在是在/usr下面,然后cd /var,如果又想回到/usr下面的话就可以用cd -。cd ~username该命令可以直接进入use

2014-11-03 20:19:23 5416

原创 详解HDFS Short Circuit Local Reads

Hadoop的一大基本原则是移动计算的开销要比移动数据的开销小。因此,Hadoop通常是尽量移动计算到拥有数据的节点上。这就使得Hadoop中读取数据的客户端DFSClient和提供数据的Datanode经常是在一个节点上,也就造成了很多“Local Reads”。本文将介绍在优化Local Reads的一些方案。

2014-10-17 18:22:26 21512

原创 Decommission Datanode

Decommission Datanode就是把Datanode从HDFS集群中移除掉。那问题来了,HDFS在设计时就把诸如机器故障考虑进去了,能否直接把某台运行Datanode的机器关掉然后拔走呢?我认为理论上可行的,不过在实际的集群中,如果某份数据只有一份拷贝而且它就在这个机器上,那么直接关掉并拔走机器就会造成数据丢失。本文将介绍如何Decommission Datanode以及可能会遇到的一些问题及其解决办法。

2014-10-14 23:33:24 8519

原创 Spark RDD API详解(一) Map和Reduce

本文用实例介绍Spark中RDD和MapReduce相关的API。

2014-10-08 17:31:13 112963 7

原创 用Linux Container在单机上部署完全分布式的Hadoop集群

在Hadoop开发和学习过程中,经常需要部署一个完全分布式的Hadoop集群。而目前在单机上用得最多的方法就是用Vmware建虚拟机,不过一般的机器开3-4个虚拟机就差不多了。如果想在单机上(而且是虚拟机里面)跑10个节点Hadoop集群,那么可以考虑一下Linux Container。阅读本文你将得到:1. 如何在Centos上创建和使用Linux Container2. 简要的Linux Container使用方法

2014-03-24 23:25:17 4911 2

原创 Kerberos认证流程详解

Kerberos是诞生于上个世纪90年代的计算机认证协议,被广泛应用于各大操作系统和Hadoop生态系统中。了解Kerberos认证的流程将有助于解决Hadoop集群中的安全配置过程中的问题。为此,本文根据最近阅读的一些材料,详细介绍Kerberos认证流程。欢迎斧正!

2014-03-08 19:08:56 56891 19

原创 亲历2013中国产品经理大会

虽然我是一名程序员,但是我认为程序员都应该学习一下产品经理的思维方式,所以我也通过参加了今年的产品经理大会。下面简单总结一下我所看到听到的。多位嘉宾都谈到了在当今激烈的竞争中,创业公司要专注在一个很细分的领域才可能有机会。比如金山网络的CEO傅盛讲到的要为小众而设计,但是小众的东西要有可能成为大众的,但实际上还是为以后的大众而设计。再比如,今夜酒店特价的CEO任鑫讲,创业公司的

2013-06-23 13:07:52 3988 1

原创 实例阐述MapReduce中的基本概念

MapReduce是一种全新的编程模型,对于第一次接触MapReduce的人来讲,其中有些概念不是很容易理解。本文将运用一个实例来阐述MapReduce中涉及到的基本概念,包括InputSplit, Mapper, Combiner, Shuffle, Reducer。不足之处还请高手指正。假设现在高考成绩出来了,领导让你统计学校有多少考生上了一本线,考生的成绩打印在20张纸上

2013-06-12 14:41:50 3824

原创 静态和动态链接

引言即使是最简单的HelloWorld的程序,它也要依赖于别人已经写好的成熟的软件库,这就是引出了一个问题,我们写的代码怎么和别人写的库集成在一起,也就是链接所要解决的问题。首先看HelloWorld这个例子:// main.c 1 #include 2 3 int main(int argc, char** argv) 4 { 5

2013-04-07 00:50:02 12329 6

原创 本质论-Unix系统I/O

简单总结一下学习系统IO的内容,本文只涉及如何使用系统IO,不涉及内部的实现。为什么需要I/O?I/O是解决如何在外部设备和内存之间交换数据的问题,也就是如何从外部设备上读取数据到内存中,以及如何把内存中数据写入到外部设备中去。最常见的外部设备就是硬盘,我们经常需要读写里面存储的文件。一个文件可以看成是一个m字节的序列,内存中的数据也是一些字节序列(也可以认为是字节

2013-03-02 15:26:35 2646 1

原创 有道君-这真是一个Bug

试用了有道笔记后,其简洁的风格就立刻吸引了我,我需要的简单功能也都有,当然我更看中的是国内的产品被墙得可能性相对小一些,于是就果断抛弃了其他同类的产品,不过最近发现了其网页版的一个可能导致数据丢失的Bug。如何重现?1. 登录网页版后默认是一个三栏的界面,类似于Outlook,在最右边的区域编辑当前选中的笔记。2. 这时,如果你觉得窗口太小,于是点击右上角的“新窗口打开”按钮以

2013-02-21 07:29:02 2070

原创 软件调试的一般思路

解决软件的Bug就像警察破案一样。警察在掌握了案件发生的时间地点和相关人物后进行分析推理,采访相关人员,排除嫌疑人,最终找到凶手。同样的,软件开发人员在接到Bug时,也是分析Bug发生的背景,然后在运用各种方法来找出问题的原因。并不是所有的Bug都能一眼看出问题发生在哪个地方。虽然Bug发生的原因千差万别,但是我们还是有一些比较通用的方法来逐步缩小bug的根源的范围。在水缸里面抓鱼要比在河里面抓鱼

2013-02-04 00:07:11 2709 1

原创 Http Basic Digest 认证

汇总几篇讲http basic 和 digest的文章。1. 基本原理介绍Basic and Digest Access Authentication (rfc2617) 及HttpClient实现: http://www.cnblogs.com/jcli/archive/2012/12/11/2812459.html。 该文介绍了Basic和Digest认证的基本流程和htt

2013-01-17 23:29:36 4215

原创 最常用的也是最容易忘记的Shell知识

最近在写个Shell脚本,由于是第二次写比较大的脚本,第一次是几年前的事情。shell的相关知识已经忘记得差不多了。不过大概知道解决问题的思路,剩下的就是用shell脚本的语法来实现。因此,没有系统地学习shell,基本上是想要实现个什么功能就到网上去找。本文简单罗列了我曾经搜索过的问题(不全),一是方便自己以后查找,二来可能对其他人有些帮助。因为我只关注结果,所以有些问题有更好的解决方法,抛砖引

2012-12-02 01:07:07 10829 2

原创 去美国出差需要注意什么

出差回来,简单把去美国出差的一些事项罗列一下。因为是第一次去国外,所以对像我一样第一次出差的人可能会有些帮助。一、出差前的准备工作1. 首先就是办理签证了,具体细节就不表了。多长时间拿到签证完全看运气了,有的面试完第二天就拿到了,有的像我和我同事,都是等了4周才拿到的。不过,我开始相信一切安排都是最好的。2. 信用卡:如果额度不是很高的话,最好是申请临时提高额度。因为需要自行先垫付些费

2012-10-18 23:38:42 49879 1

原创 如何向别人介绍你做的东西

码农不可避免地需要经常向别人介绍自己做的产品和项目。简单地把项目向别人介绍清楚是门学问。最近,给队伍里面的新同事做入职培训,结合之前的一些认识,简单谈谈我的体会。1. 向根本不懂你这个行业的人介绍你的产品对方越不了解你的行业,你的介绍就要越泛化,并且要用和对方身边熟知的东西做类比。工作后第一次回老家,亲戚朋友问我在外面打工做什么。我简单的回答是做数据的保险柜。如果时间允许的话,我就会举个例

2012-09-12 23:26:39 7969

原创 NPIV - 连接虚拟机与存储的桥梁

最近工作的项目和NPIV相关,于是花了点时间学习了一下NPIV,简单总结了一下,望高手指正。解决什么问题我们知道在存储区域网络(SAN:storage area network),主机(Host)能够访问后端存储(比如CLARiiON,VNX)必备的一个前提是主机必须配备HBA卡(Host Bus Adapter)。在没有虚拟化之前,每台物理主机自己配备HBA卡是无可厚非的事情。但是,在虚

2012-07-01 00:25:05 17877 2

原创 看WWDC 2012 Keynotes有感

作为一名伪果粉,虽然Jobs去世了,但是Apple的Keynotes还是一定要看的。看了这次WWDC 2012的keynotes,有下面一些感受。1. Tim是Tim,Jobs是Jobs,他们是两个完全不同风格的人,不要期望Tim在舞台上能有Jobs当年的风范。估计Tim自己也知道这点,所以接近2个小时的keynotes,他在台上的时间也就10来分钟,把时间都让给了自己的同事。平心而论,Tim

2012-06-17 18:03:51 2046

原创 蕃茄工作法 - 让你轻松应对繁忙的工作

如果下面任何一个情况都发生在你身上,那么建议你继续往小看。否则,请忽略本文。当你正聚精会神地工作的时候,突然有人过来找你讨论什么事情,你不好意思拒绝。几分钟或10多分钟以后,讨论结束了,你不得不回忆刚才的工作做到哪里了;当你在做事情A的时候,突然想起来另外一件事情B还没做(比如给老板的报告),于是赶紧去做事情B。然后再切换到事情A上;在你连续工作一上午解决一个很棘手的问题的时候,突然间发现

2012-05-20 16:32:45 3249 1

原创 一些Ant经验

最近写了不少Ant脚本,总结一下经验吧,仅供参考。1. 脚本应当尽量减少对Build机器环境的依赖。Build过程中依赖的一些工具可以放到公共目录中,或者提交到代码库中。理想的构建环境是,只要代码checkout出来,执行一条命令,代码就能编译。2. 使用相对路径以减少代码构建时对代码所在目录的依赖。3. 慎用depends。假设两个target,compile和test,test只有

2012-04-23 00:20:37 921

原创 JUnit Assertions vs assert

我们知道在写JUnit的单元测试Case时,要用assertEquals, assertTrue 等方法来判定某个方法的输出值是否和预期一致,如果不一致测试案例就失败。在Java中还有一个关键字assert,它的用法是如下:assert Expression;Expression必须是一个布尔表达式,当Expression的值为false的时候,它会抛出AssertionError。

2012-04-12 00:05:03 2646

原创 单元测试应该测什么?

JUnit的测试案例谁都会写,但是用JUnit写的测试案例不一定是单元测试。单元测试是什么?应该测什么?本文抛砖引玉,谈点自己的想法。单元测试,顾名思义就是对组成软件的一个单元进行测试。在面向对象开发的语言中,我们通常将类作为单元进行测试。如果从一个更高的层次来看一个类,它无非是从类的外部取得一些输入(Input),经过这个类加工处理后,输出一部分新的信息(Output)。类的核心就是加工

2012-04-04 21:03:40 1911

原创 扩大无线的覆盖范围 - 谈DD-WRT固件中无线模式的异同

我家的无线路由器放置在房间的角落里,导致了在其他房间的信号很差。作为用户的我的需求很简单,就是在家里的任何地方都有信号能上网,所以解决方案很多了,比如重新换一个更牛X的路由器,把路由器换个位置等等。把路由器换位置是不可能的,因为线已经布好了。换路由器嘛倒是可以考虑,于是在同事的推荐下买了个Netgear的路由器,不过改善效果不明显。既然现在有两台路由器了,那么就可以考虑采用将其中的一台用做中继,来

2012-04-02 19:58:54 15138

原创 在Jenkins中实现“云构建”

随着越来越多的项目加入到持续构建服务器中,开发人员越来越频繁地提交代码,紧缺的构建服务器资源无法满足广大人民群众日益增长的构建需求。幸好Jenkins支持分布式构建,能够无缝地将一个构建任务分发到另外一台机器上执行,从而在一定程度上实现“云构建”。本文探讨在Jenkins中实现云构建的一些想法和实践,其他的持续集成服务器也是类似的。什么是云构建?以我对云计算浅薄的理解,所谓云计算就是N多机

2012-03-20 00:07:30 5814

原创 动态更新.Net项目Build的版本号

每个.Net项目编译出来的exe或者dll文件都有三个版本,分别是:Assembly Version, File Version 和 Product Version (也叫AssemblyInformationalVersion)。可以点击鼠标右键,然后选择属性里面可以看到。它们的区别可以参考这里:http://stackoverflow.com/questions/64602/what-are-

2012-03-14 20:44:39 3546

原创 向Jenkins学习 - What we can learn from Jenkins?

今天是学习雷锋日,像我这样的码农没有那么高的素质,就不去瞎掺和了,改为向Jenkins学习。 Jenkins是一个非常流行的持续集成软件,功能非常强大。如果抛开其持续集成的核心功能,它的附属功能也做得非常出色,用户体验很不错,值得我们学习。1. 简洁安装方式Jenkins是用Java开发的一个Web应用。我以前用过的一些开源web应用,安装很麻烦,通常要先装个tomcat,然后在下载war

2012-03-05 22:22:08 2164

原创 反馈 - 软件开发流程与实践的本质

我在大学里面学的专业是自动控制。反馈是任何自动化控制系统中必不可少的。比如,在控制锅炉炉温的控制系统中,想要把炉温控制在600℃,那么传感器必须周期性采集锅炉的温度,控制系统再根据炉温来调整火力。温度不够的话,烧火的还得再给点力;温度差不多了就可以一边歇着了。反馈的概念相当简单,它在很多地方都发挥着重要的作用。本文抛砖引玉,初探软件开发流程和实践中的反馈以及利用反馈来改进流程的一些想法,并利用

2012-03-03 23:57:08 1682

蕃茄工作法

蕃茄工作法一种让你自己掌控你的时间工作方法,简单有效,让你工作更轻松。

2012-05-20

高质量C++/C编程指南

个人觉得非常好的C、C++资料,虽然讲的内容不是很全,但是讲到的内容都很清晰,被很多公司作为面试题目。

2009-05-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除