- 博客(18)
- 资源 (1)
- 收藏
- 关注
原创 程序员的思维修炼--读书感悟
《程序员的思维修炼--开发认知潜能的九堂课》读书感悟 进来一直埋头专注于研究分布式系统的开发,很多问题一直在脑袋里打结,看不清也想不透该用怎样的方式去处理其中棘手的问题。偶然间看到了这本书,倒不是冲着程序员这几个字来的,开发认知潜能才是我所关心的重点。细细读来,感触颇丰,以两三言叙之,当做笔记,日后常常提醒自己,参考之。 书中最提倡的就是随时随地记录下你脑海中一
2013-05-17 20:04:03
1069
原创 数据挖掘中的经典算法(一)汇总--谁说做系统的就不能研究数据挖掘?
硕士读了快一年了一直专注于系统开发方向,尤其是分布式和数据库这一块,身边其他很多同僚都是数据挖掘这个方向,耳濡目染,最近学习了数据挖掘的相关内容,突然觉得还是蛮有意思的东西,在这里对数据挖掘领域的相关经典算法做一个综述,日后一一详解。一、分类算法#1. C4.5 #2. CART(Classification and Regression Tree)分类和回归树#3.
2013-05-17 11:57:13
1352
转载 大数据?别唬人了!我们真的需要盲目烧钱追求大数据吗?
大数据可能是现在最炙手可热的技术名词了。热就意味着有泡沫,有值得反思的地方。Quartz的Christopher Mims 5月6日发表了一篇文章,名为“大多数数据都不大,假装大数据其实是瞎浪费钱”,有理有据,推荐一读。以下为译文:如果你现在还没有加入大数据的阵营, 那你想办法弄到一些。毕竟, 竞争需要大数据。如果你的数据量很小, 你将被竞争对手彻底打败。作为顾问和 IT公
2013-05-15 10:19:39
879
原创 利用socket搭建一个多客户端/服务器的框架
在设计分布式系统或者涉及到及时通信的相关内容时,我们常常需要利用socket(套接字)来进行网络通信及文件传输,如果只是一个客户端跟一个服务器端进行通信,那么这将是一件很好办的事情,但是实际情况往往是有多个客户端需要跟服务器端进行通信,那么在这种情况下我们如何实现呢? 我们先从原理出发:客户端和服务器端一旦建立连接,套接字连接的行为就类似于打开的底层文件描述符,而且在很多方面类似于双向管
2013-05-15 10:06:50
2710
转载 MapReduce中Shuffle过程剖析及性能优化
1. Map端当Map 开始产生输出时,它并不是简单的把数据写到磁盘,因为频繁的磁盘操作会导致性能严重下降。它的处理过程更复杂,数据首先是写到内存中的一个缓冲区,并做了一些预排序,以提升效率。每个Map 任务都有一个用来写入输出数据的循环内存缓冲区。这个缓冲区默认大小是100MB,可以通过io.sort.mb属性来设置具体大小。当缓冲区中的数据量达到一个特定阀值(io.sort.mb
2013-05-06 12:08:07
1323
转载 C++中namespace的使用
C++中经常会使用到namespace关键字,那么到底什么是namespace呢?它有什么用呢?namespace直译就是命名空间的意思,它是一种逻辑分组机制,将按照某些标准在逻辑上属于同一个任务的所有类声明放在同一个命名空间。最常用到的using namespace std就是在标准C++中所有包含的内容(包括常量,变量,结构,类和函数等)都被定义在命名空间std中了。命名空间的格式为:
2013-04-18 21:35:19
655
原创 scala中的object和class
近来一直在阅读spark的源码,发现一个问题,一直不太理解为什么在同一个 .scala文件中可以同时存在名字相同的class和object经过一番研究,终于明白原来是在scala中没有定义static类型的变量,取而代之的是单例对象:singleton object除了object关键字取代了class,单例对象看着就像是类的定义。一个单例对象与一个类共享同一个名称时,他被称作是这个类
2013-04-10 17:48:01
2902
原创 C/C++中的枚举类型
C/C++中的枚举类型如果一个变量你需要几种可能的值,那么就可以定义成为枚举类型。之所以叫枚举就是说将变量或者对象可能存在的情况也可以说是可能存在的值一一列举出来。enum box{pencil,pen};这里就定义了一个枚举类型的变量叫box。若果想定义两个具有同样特质的枚举类型变量那么可以1. enum box{pencil,pen};2. enum box
2013-04-10 16:17:16
635
原创 Cmake探究 奏起来!(二)
上一篇中我们说到了项目工程文件夹中存在的两个文件,其中最关键的一个就是CMakeLists.txt下面我们来具体研究一下每一条命令对应的含义是什么,内容如下:PROJECT (HELLO)SET(SRC_LIST main.c)MESSAGE(STATUS "This is BINARY dir" &{HELLO_BINARY_DIR})MESSAGE(STATUS "This is
2013-04-09 21:41:59
636
原创 Cmake探究 奏起来!(一)
惰性总是人不可逃避的恶魔,所以我总是尽量让自己动起来,不要让自己的激情一点点的被磨灭。鉴于目前要做一个比较大的项目,而自己一直以来对automake那一套东西又不是很熟悉,总是觉的配置起来非常的繁琐麻烦,所以驱使自己开始对Cmake的一段旅程。废话不多说,直奔主题,首先,什么是Cmak?为什么要用Cmake?怎么用?我想作为一个新手接触到Cmake能想到的最直接的几个问题吧。说
2013-04-09 20:52:11
942
原创 C++下的引用类型
什么是引用?引用类型也称 别名,这样说就比较好理解了吧,他是一个比较有意思的东西。在C++中你可以把它看做是另外的一种指针,通过引用类型,我们同样也可以间接的操作对象,引用类型主要是用在函数的形式参数上,通常我们使用它是把类对象传递给一个函数。引用对象采用类型名加上&符号,和名称的方式定义。例如:(int &test;),这里我们就定义了一个名为test的引用,但是int &test;这样
2013-04-03 17:48:15
741
原创 C++中const限定修饰符
const修饰可以把对象转换成为常数对象,什么意思呢?就是说利用const进行修饰的变量的值在程序的任意位置将不能在被修改,就跟常数一样。使用方法: const int a = 1;但是对于指针来说,const依然是起作用的,以下两点非常重要!Ex.1#include using namespace std;static void compositor(i
2013-04-03 15:49:05
679
原创 C/C++初学者练习指针的两个绝好的例子
对于C/C++初学者来说,指针可能是一个比较陌生的内容,下面的例子可以很好的帮助你理解指针的用法。Ex.1#include using namespace std;int main() { int a,b; int *piont_1,*piont_2,*temp_piont; cin>>a; cin>>b; piont_1 = &a; piont_2 = &b; if(a>
2013-04-03 15:21:46
738
原创 Spark源码解读 deploy模块(一)
Spark源码分析随笔:(deploy模块) 本模块包含3个文件夹,分别为1. Master2. Worker3. Client以及其他少量文件,我们先将他们解决掉。 1. 一个类文件ApplicationDescription用来描述用户传来的应用 其中包含5个val描述信息,分别是name(Strin
2013-04-02 18:14:49
1387
原创 scala的特别之处
对于java程序员来说,最新鲜的一点是function也是object。这意味着function也可以当成value一样进行传递。Function are also object in Scala.It is therefore possible to pass funjction as arguments, to store them in variables, and to return t
2013-04-02 16:30:37
801
原创 scala中的trait
scala是以实现scaleable language为初衷设计出来的一门语言。官方中,称他是object-oriented language和functional language的混合式语言。三个特殊内容:1.Tuple-可以将不同类型的数据存储在一个数组里val pair = (99,"Luftballons")println(pair._1)println(pair._
2013-04-02 15:39:27
1505
原创 C++ inline 函数
在函数声明或者定义中函数返回类型前面加上关键字inline即把min()指定为内联。inline int min(int first,int second){/***/}inline 函数对编译器而言必须是可见的,以便它能够在调用点内展开该函数。与非inline函数不同的是,inline函数必须在调用该函数的每个文本文件中定义。当然,对于同一程序的不同文件,如果inline
2013-03-26 11:00:04
592
原创 C++中的operator关键字
operator是c++中的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名.这是C++扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面要是运算符的使用方法与原来的一致,另一方面扩展功能只能通过函数的方式(C++中,"功能都是由函数是实现的").一、为什么使用操作符重载?比如判断两个人是否一样大,我们默认用年龄,所以在
2013-03-26 10:50:54
965
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人