摘要:
Android 自定义组件Android 提供了非常精致的和非常强大的组件化模型,能够更加方便的构建UI,这些UI组件都是基于基本的layout类:View 和 ViewGroup。部分能够用的widgets包括:Button,TextView,EditText,ListView,CheckBox,RadioButton,Gallery,Spinner,和一些比较特殊用途的widgets(AutoCompleteTextView,ImageSwitcher, andTextSwitcher.)布局组件有LinearLayout,FrameLayout,RelativeLayout,absolu 阅读全文
随笔档案-2013年03月
hive大数据倾斜总结
2013-03-31 19:39 by java20130722, 157 阅读, 收藏,
摘要:
在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这些平均值能代表的价值降低。Hive的执行是分阶段的,map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据均匀的分配到各个reduce中,就是解决数据倾斜的根本所在。规避错误来更好的运行比解决错误更高效。在查看了一些资料后,总结如下。1数据倾斜的原因1.1操作:关键词情形后果Join其中一个表较小,但是key集 阅读全文
Hadoop Job Tuning
2013-03-31 16:16 by java20130722, 145 阅读, 收藏,
摘要:
Hadoop平台已经成为了大多数公司的分布式数据处理平台,随着数据规模的越来越大,对集群的压力也越来越大,集群的每个节点负担自然就会加重,而且集群内部的网络带宽有限,数据交换吞吐量也在面临考验,由此引发了人们对大规模数据处理进行优化的思考。本文仅从实践经验出发,针对Hadoop Job优化提出了一些观点,不包含HDFS的优化。Job Tracker Related严格来说,下面这个配置项,是决定HDFS文件block数量的多少(也就是文件个数),但是它会间接的影响Job Tracker的调度和内存的占用(其实更能影响name node内存的使用)。dfs.block.size这个配置项定义了在 阅读全文
hive 配置参数说明
2013-03-31 14:26 by java20130722, 331 阅读, 收藏,
摘要:
hive.exec.mode.local.auto 决定 Hive 是否应该自动地根据输入文件大小,在本地运行(在GateWay运行) true hive.exec.mode.local.auto.inputbytes.max 如果 hive.exec.mode.local.auto 为 true,当输入文件大小小于此阈值时可以自动在本地模式运行,默认是 128兆。 134217728L hive.exec.mode.local.auto.tasks.max 如果 hive.exec.mode.local.a... 阅读全文
Hadoop 性能调优 重要参数设置技巧
2013-03-31 12:12 by java20130722, 453 阅读, 收藏,
摘要:
这一两个月在做mapreduce的性能调优,有些心得,还是要记下来的,以郷后人~这里主要涉及的参数包括:HDFS:dfs.block.sizeMapredure:io.sort.mbio.sort.spill.percentmapred.local.dirmapred.map.tasks & mapred.tasktracker.map.tasks.maximummapred.reduce.tasks & mapred.tasktracker.reduce.tasks.maximummapred.reduce.max.attemptsmapred.reduce.parallel 阅读全文
MySQL创建用户与授权
2013-03-30 10:50 by java20130722, 198 阅读, 收藏,
摘要:
在linux 上的新装的mysql 需要修改root 密码set password for 'root'@'localhost' =password('root');一,创建用户:命令:CREATEUSER'username'@'host'IDENTIFIEDBY'password';说明:username-你将创建的用户名,host-指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%.password-该用户的登陆密码,密码 阅读全文
linux 不能执行ifconfig
2013-03-29 17:35 by java20130722, 319 阅读, 收藏,
摘要:
最近在用虚拟机安装linux 版本:[root@localhost network-scripts]# lsb_release -a LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarchDistributor ID: RedHatEnterpriseServerDescription: Red Hat Enterprise Linux Server release 5.1 (Tikanga)Release: 5.1Codename: Tikanga新安装的系统执行 ifconfig 的 阅读全文
抽象工厂 abstractFactory
2013-03-28 17:50 by java20130722, 159 阅读, 收藏,
摘要:
AbstractFactory模式就是用来解决这类问题的:要创建一组相关或者相互依赖的对象。AbstractFactory模式典型的结构图:假设:有若干骨头和鱼残渣, 需要狗和猫处理。 因此这种情况下,猫和狗是一起协同工作。 AbstractFactory模式关键就是将这一组对象的创建封装到一个用于创建对象的类中,维护这样一个创建类总比维护n多相关对象的创建过程要简单的多。代码:IAbstractFactory:public interface IAbstractFactory { Dog createDog() ; Cat createCat() ;
}
CreateFactory... 阅读全文
android animator 动画
2013-03-28 15:35 by java20130722, 262 阅读, 收藏,
摘要:
animator 动画动画的作用是让UI有动感, 看上去时尚。Android中动画分两种方式:一种方式是补间动画Tween Animation,就是说你定义一个开始和结束,中间的部分由程序运算得到。另一种叫逐帧动画Frame Animation,就是说一帧一帧的连起来播放就变成了动画。动画可以实现的效果:1. 移动(Translation)2. 透明度(alpha)3. 旋转(rotate)4. 缩放 (scale)现在分别用例子来讲解:以下的实现都是用代码实现的(ObjectAnimator)1. 移动(Translation) 主要代码AnimatorSet set = new An... 阅读全文
linux 常用命令
2013-03-28 12:28 by java20130722, 109 阅读, 收藏,
摘要:
1. 复制一个文件到另外一个文件中example1 文件中内容 : test1example2 文件中内容 : test2 复制example1 的内容到example2 中 cat example1 >> example2 结果:example2文件中的内容:test1test22. 查找文件例如查找文件c.c仅仅在当前目录下查找: find c.c当前目录以及当前目录下的目录递归查找 find . -name c.c3. 切换登陆用户su - {username} 例如:su - root 切换到root用户4. 查看PATH, CLASSPATHenv $PATH ... 阅读全文
工厂模式
2013-03-28 00:16 by java20130722, 152 阅读, 收藏,
摘要:
工厂模式factory模式的两个最重要的功能: 1)定义创建对象的接口,封装了对象的创建; 2)使得具体化类的工作延迟到了子类中。Factory模式也带来至少以下两个问题:1)如果为每一个具体的ConcreteProduct类的实例化提供一个函数体,那么我们可能不得不在系统中添加了一个方法来处理这个新建的ConcreteProduct,这样Factory的接口永远就不肯能封闭(Close)2)可以通过创建一个Factory的子类来通过多态实现这一点,但是这也是以新建一个类作为代价的。解决方法:通过参数化的工厂方法Factory模式仅仅局限于一类类(就是说Product是一类,有一个... 阅读全文
在linux上安装rpm
2013-03-28 00:00 by java20130722, 414 阅读, 收藏,
摘要:
安装root用户 sudo apt-get install root-system-bin在ubuntu里安装jdk时,出现提示信息:rpm: please use alien to install rpm packages on Debian, if you are really sure use --force-debian switch. see README.Debian for more details.deb 是debian linux 的安装格式,跟red hat 的rpm相似安装: dpkg -i file.deb 不过要安装dpkg的package关于rpm转化成deb包的方 阅读全文
盲签名 blind signature 简介
2013-03-27 22:49 by java20130722, 866 阅读, 收藏,
摘要:
盲签名(Blind Signature)定义是一种数字签名的方式,在消息内容被签名之前,对于签名者来说消息内容是不可见的.类比例子:对文件签名就是通过在信封里放一张复写纸,签名者在信封上签名时,他的签名便透过复写纸签到文件上。盲签名(Blind Signature)性质它除了满足一般的数字签名条件外,还必须满足下面的两条性质:签名者对其所签署的消息是不可见的,即签名者不知道他所签署消息的具体内容。签名消息不可追踪,即当签名消息被公布后,签名者无法知道这是他哪次的签署的。盲签名(Blind Signature)模型接收者首先将待签数据进行盲变换,把变换后的盲数据发给签名者。经签名者签名后再发给接 阅读全文
xmllint: command not found
2013-03-27 15:21 by java20130722, 478 阅读, 收藏,
摘要:
在编译android source code是时候,出现如下错误:Copy xml: out/target/product/generic/system/etc/apns-conf.xml
/bin/bash: xmllint: command not found
make: *** [out/target/product/generic/system/etc/apns-conf.xml] Error 127解决方法:安装xmllint : sudo apt-get install libxml2-utils 阅读全文
Ubuntu Server如何配置SFTP
2013-03-26 16:19 by java20130722, 375 阅读, 收藏,
摘要:
SSH File Transfer Protocol是一个比普通FTP更为安全的文件传输协议。(参考资料:http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol)它工作在Secure Shell(SSH)上,确保文件被加密传输。因为工作需要,我研究了一下如何在Ubuntu Server上配置SFTP,记录如下。需求:在服务器上开通SFTP文件服务,允许某些用户上传及下载文件。但是这些用户只能使用SFTP传输文件,不能使用SSH终端访问服务器,并且SFTP不能访问系统文件(即所谓的“Jail(监狱)”)。系统管理员则既能使用SFTP传输文件 阅读全文
Ubuntu下常用文本编辑器
2013-03-26 15:46 by java20130722, 850 阅读, 收藏,
摘要:
常见的基于控制台的文本编辑器有以下几种:emacs综合性的GNU emacs编辑环境nano一个类似于经典的pico的文本编辑器,内置了一个pine邮件程序vim一个改进的vi文本编辑器注意并不是所有的文本编辑器都是基于控制台的,也就是说支持终端使用的。有一些文本编辑器被设计用来提供带有菜单栏,按钮,进度条等的图形界面。例如:gedit 一个GUI的文本编辑器,Ubuntu默认安装kate一个简单的KDE文本编辑器kedit另外一个简单的KDE文本编辑器nano文本编辑器的用法nano编辑器最为简单和易用,而且基本上被所有的Linux所安装。因此我们首先来讲解下它。开启一个nano... 阅读全文
Ubuntu 设置SSH 服务
2013-03-26 15:34 by java20130722, 155 阅读, 收藏,
摘要:
网上有很多介绍在Ubuntu下开启SSH服务的文章,但大多数介绍的方法测试后都不太理想,均不能实现远程登录到Ubuntu上,最后分析原因是都没有真正开启ssh-server服务。最终成功的方法如下: Ubuntu 下安装 OpenSSH Server 是无比轻松的一件事情,需要的命令只有一条: sudo apt-get install openssh-server(查看返回的结果,如果没有出错,则用putty、SecureCRT、SSH Secure Shell Client等SSH 客户端软件,输入您服务器的 IP 地址。如果一切正常的话,等一会儿就可以连接上了。并且使用现有的用户名和密.. 阅读全文
安装linux jdk 错误
2013-03-26 14:27 by java20130722, 383 阅读, 收藏,
摘要:
安装linux jdk 出现以下错误:./install.sfx.XXX: not found系统环境:ubuntu 11(64位) , jdk-6u43-linux-i586.bin 32位在安装的过程中会出现以上错误,./install.sfx.XXX: not foundsudo ./jre-6u43-linux-i586.binUnpacking...Checksumming...Extracting..../jre-6u30-linux-i586.bin: 86: ./install.sfx.8648: not foundFailed to extract the files. Pl 阅读全文
rpm.bin 与 .bin文件的区别
2013-03-26 13:48 by java20130722, 286 阅读, 收藏,
摘要:
*-rpm.binrpm.bin执行后会生成rpm打包的安装文件 你就可以使用命令 rpm -ivh xxx.rpm 来安装了只能在redhat系的发行版上使用 (RHEL,FC,centOs).bin 执行后就是安装文件适合所有的linux发行版 阅读全文
linux各文件夹的作用
2013-03-26 13:29 by java20130722, 102 阅读, 收藏,
摘要:
原文:http://www.cnblogs.com/amboyna/archive/2008/02/16/1070474.htmllinux各文件夹的作用linux下的文件结构,看看每个文件夹都是干吗用的/bin 二进制可执行命令/dev 设备特殊文件/etc 系统管理和配置文件/etc/rc.d 启动的配置文件和脚本/home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示/lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件/sbin 系统管理命令,这里存放的是系统管理员使用的管理程序/tmp 公用的临时文件存储点/r 阅读全文
linux下解压命令大全
2013-03-26 12:13 by java20130722, 162 阅读, 收藏,
摘要:
.tar解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————————.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName.tar.gz 和 .tgz解压:tar zxvf FileName.tar.gz压缩:tar zcvf FileName.tar.gz DirName———————————————.bz2解压1:bzip2 -d FileName.bz2解压2:bunzip2 FileName.bz2压缩: 阅读全文
c# 注册表操作,创建,删除,修改,判断节点是否存在
2013-03-25 18:12 by java20130722, 332 阅读, 收藏,
摘要:
用.NET下托管语言C#操作注册表,主要内容包括:注册表项的创建,打开与删除、键值的创建(设置值、修改),读取和删除、判断注册表项是否存在、判断键值是否存在。准备工作:1:要操作注册表,我们必须要引入必要的命名空间:C#代码usingMicrosoft.Win32;在这个命名空间里面包含了许多注册表相关的类,足够我们使用了~~2:命名空间里面提供了一个类:RegistryKey 利用它我们可以定位到注册表最开头的分支:ClassesRoot,CurrentUser,Users,LocalMachine,CurrentConfig如:C#代码RegistryKeykey=Registry.Loc 阅读全文
ubuntu 安装ssh server
2013-03-25 17:51 by java20130722, 254 阅读, 收藏,
摘要:
在windows上,为了更好的操作虚拟机中的linux(ubuntu)系统,都会用到ssh client 连接linux(ubuntu), 但是如果linux(ubuntu)系统中没有安装ssh server, 就需要在linux(ubuntu)中安装ssh server :安装方式如下,输入命令: sudo apt-get install openssh-server安装成功之后,就可以从windows 上通过ssh client 访问linux(ubuntu)。ssh client 连接过程:这是ssh client 界面上的一个按钮,点击后,需要输入linux IP(获取方式在linux 阅读全文
ubuntu12.04 安装 svn时 SSL handshake failed
2013-03-22 22:26 by java20130722, 402 阅读, 收藏,
摘要:
本文翻译自:http://www.yeap.de/blog2.0/archives/260-Subversion-Certificate-Problems-with-Ubuntu-Precise-Pangolin.html。首先向原作者致敬!!在ubuntu12.04上,安装Subversion官网安装 SVN 后,链接svn地址时,可能会出现错误提示如下:OPTIONS of '': SSL handshake failed: SSL error: Key usage violation in certificate has been detected. ()这个问题的根本原 阅读全文
HDFS文件操作命令
2013-03-22 15:16 by java20130722, 413 阅读, 收藏,
摘要:
Hadoop使用的是HDFS,能够实现的功能和我们使用的磁盘系统类似。并且支持通配符,如*。1. 查看文件列表查看hdfs中/user/admin/hdfs目录下的文件。a. 进入HADOOP_HOME目录。b. 执行sh bin/hadoop fs -ls /user/admin/hdfs查看hdfs中/user/admin/hdfs目录下的所有文件(包括子目录下的文件)。a. 进入HADOOP_HOME目录。b. 执行sh bin/hadoop fs -lsr /user/admin/hdfs2. 创建文件目录查看hdfs中/user/admin/hdfs目录下再新建一个叫做newDir的 阅读全文
linux 下连接mysql服务器
2013-03-22 14:37 by java20130722, 176 阅读, 收藏,
摘要:
mysql -h 服务器主机地址 -u 用户名 -p 用户密码 其中,参数的意义: -h:指定所连接的数据库服务器位置,可以是IP地址,也可以是服务器域名。 -u:指定连接数据库服务器使用的用户名,例如root为管理员用户具有所有权限。 -p:连接数据库服务器使用的密码,但-p和其后的参数之间不要有空格。最后是在该参数后直接回车,然后以密文的形式输入密码。 例:mysql -h 192.168.1.149 -u root -p //指定服务器的主机地址和用户名,回车后输入密码 Enter password :****** //以密文的形式输入用户密码成功登陆Mys... 阅读全文
mysql Load
2013-03-22 14:31 by java20130722, 314 阅读, 收藏,
摘要:
load的语法LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name [FIELDS [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char'] [ESCAPED BY 'char' ] ] [LINES [STARTING BY 'string'] [TERM... 阅读全文
DataSet 操作 XML 文件的方法
2013-03-22 00:05 by java20130722, 234 阅读, 收藏,
摘要:
class Program { static void Main(string[] args) { DataSet ds = new DataSet(); DataTable dt = null; //向DataSet中新增两个DataTable dt = SetDataTable(3, 4); dt.TableName = "Table1"; ds.Tables.Add(dt); dt... 阅读全文
jquery星级评论打分组件
2013-03-21 17:05 by java20130722, 159 阅读, 收藏,
摘要:
下面是html源码,其中需要用到“jquery.min.js”文件和一个“rate.png”文件。rate.png文件如下:html源码文件如下: jquery星级评论打分组件 A B C I ... 阅读全文
ASP.NET Repeater控件的嵌套使用
2013-03-21 16:36 by java20130722, 166 阅读, 收藏,
摘要:
思路:在嵌套使用repeater控件时,内部的repeater控件就要动态绑定数据源。就下面的代码示例来说,外部的repeater控件是 rptTr ,内部的repeater控件是 rptTd 。需要在 rptTr 的onitemdatabound 的处理函数中动态绑定数据源。前台: ... 阅读全文
hive外部表和内部表
2013-03-21 14:32 by java20130722, 498 阅读, 收藏,
摘要:
1.内部表指hive创建并通过load data inpath进数据库的表,这种表可以理解为数据和表结构都保存在一起的数据表。当你通过DROP TABLE table_name 删除元数据中表结构的同时,表中的数据也同样会从hdfs中被删除。[sql]view plaincopyCREATETABLEnew_hbase_table(rowkeystring,xint,yint)STOREDBY'org.apache.hadoop.hive.hbase.HBaseStorageHandler'WITHSERDEPROPERTIES("hbase.columns.mapp 阅读全文
Derby数据库简介
2013-03-21 06:15 by java20130722, 399 阅读, 收藏,
摘要:
一、Derby数据库介绍Apache Derby是一个完美的,100% Java编写的内存数据库,属于Apache的一个开源项目。并且是一个容易管理的关系数据库管理系统,可以和一些商业产品的特性进行交付。Apache Derby是一个与平台无关的数据库引擎,它以Java类库的形式对外提供服务。与其他难以部署的数据库不同,Derby数据库体积小、安装非常简单,只需要将其*.jar文件复制到系统中并为用户的项目添加该*.jar文件即可。另外在MyEclipse中集成了Derby数据库的插件应用,并且Derby还提供了Eclipse的插件供开发人员使用。尽管Derby很容易安装,但是它的特性却非常丰 阅读全文
Hive 中的Mapper个数
2013-03-21 03:22 by java20130722, 566 阅读, 收藏,
摘要:
Hive 中的Mapper个数的是由以下几个参数确定的:mapred.min.split.size,mapred.max.split.size ,dfs.block.sizesplitSize =Math.max(minSize, Math.min(maxSize, blockSize));map个数还与inputfilles的个数有关,如果有2个输入文件,即使总大小小于blocksize,也会产生2个map 阅读全文
linux 环境配置文件
2013-03-21 00:46 by java20130722, 266 阅读, 收藏,
摘要:
login 与 non-login shell在了解linux 环境配置文件前,先了解login 和non-login shell ,因为这两个取得 bash 的情况中,读取的配置文件数据并不一样所致login shell:取得 bash 时需要完整的登陆流程的,就称为 login shell。举例来说,你要由 tty1 ~ tty6 登陆,需要输入用户的账号与密码,此时取得的 bash 就称为『 login shell 』啰;non-login shell:取得 bash 接口的方法不需要重复登陆的举动,举例来说,(1)你以 X window 登陆 Linux 后, 再以 X 的图形化接口启 阅读全文
Android内存管理机制
2013-03-20 15:54 by java20130722, 265 阅读, 收藏,
摘要:
在android的开发中,要时刻主要内存的分配和垃圾回收,因为系统为每一个dalvik虚拟机分配的内存是有限的,在google的G1中,分配的最大堆大小只有16M,后来的机器一般都为24M,实在是少的可怜。这样就需要我们在开发过程中要时刻注意。不要因为自己的代码问题而造成OOM错误。JAVA的内存管理大家都知道,android应用层是由java开发的,android的davlik虚拟机与jvm也类似,只不过它是基于寄存器的。因此要了解android的内存管理就必须得了解java的内存分配和垃圾回收机制。在java中,是通过new关键字来为对象分配内存的,而内存的释放是由垃圾收集器(GC)来回收 阅读全文
Hadoop基于Shell命令与底层Unix操作系统的交互
2013-03-20 08:50 by java20130722, 426 阅读, 收藏,
摘要:
在阅读Hadoop源代码过程中,在org.apache.hadoop.security.UnixUserGroupInformation类中,需要获取到Unix系统的用户名和所属组的信息,就需要通过执行Shell命令得到相应的结果,这里,通过阅读Hadoop项目org.apache.hadoop.util包、org.apache.hadoop.fs.shell包、org.apache.hadoop.fs包中文件来了解,Hadoop基于Shell命令与底层Unix操作系统的交互,以及在MapReduce模型中通过命令行的方式提交管理计算任务的一些详细情况。首先看一下,与Unix系统命令行执行有关 阅读全文
android 应用性能提升
2013-03-20 06:47 by java20130722, 196 阅读, 收藏,
摘要:
虽然Android智能手机和平板电脑的速度一天比一天快,但是开发者必须记住一点:他们开发的应用程序仍在一种资源紧张的环境下运行,这种环境主要依赖性能与最新的台式机或笔记本电脑无法比拟的电池和处理器。下面介绍的一些方法可以帮助你的应用程序“瘦身”或者说“Android提升开发性能十大要点”,以便它们在今天和明天的Android设备上最顺畅地运行。先来说说确保应用程序响应迅即的几个编程要点。第一个要点:首先要有良好的编程习惯要成为一名优秀的资源管理员;既要运用常识,还要使用公认的算法和标准的设计模式。在资源使用方面,如果你打开了资源,要记得关闭资源。要尽量晚地获取,尽量早地释放。这些由来已久的编程 阅读全文
加密算法
2013-03-20 02:48 by java20130722, 234 阅读, 收藏,
摘要:
加密算法的分类按照加密后的信息是否可以被还原,常用的加密算法分为两大类:1.不可逆加密算法2. 可逆加密算法 2.1 对称式 2.2 非对称式不可逆加密算法:不可逆加密算法的特征是,加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文。这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。 比如: md5和shs(Secure Hash Standard)可逆加密算法:对称式加密 加密和解密使用同一个密钥,通常称之为“Session Key ”。这种加密技术目前被广泛采用,如美国政府所采用的DE 阅读全文
C# 实现 FTP 上传和下载功能
2013-03-17 22:20 by java20130722, 588 阅读, 收藏,
摘要:
using System;
using System.Collections.Generic;
using System.Web;
using System.Net;
using System.IO; namespace His.WebService.Utility
{ public class FtpHelper { /// /// ftp方式上传 /// public static int UploadFtp(string filePath, string filename, string ftpSe... 阅读全文
利用cURL来获取网页信息-Using cURL to get webpage content
2013-03-17 20:29 by java20130722, 261 阅读, 收藏,
摘要:
#include #include #include #include #include extern "C" {
#include //#include #include } using namespace std; int writer(char* data, size_t size, size_t nmemb, string *buffer) { fprintf(stderr, "Hello, I am a function pointer\n"); int result = 0; if (buffer != NUL... 阅读全文
分享一个libevent server——cliserver
2013-03-17 12:05 by java20130722, 354 阅读, 收藏,
摘要:
/* * An event-driven server that handles simple commands from multiple clients. * If no command is received for 60 seconds, the client will be disconnected. * * Note that evbuffer_readline() is a potential source of denial of service, as * it does an O(n) scan for a newline character each time ... 阅读全文
编程原则
2013-03-15 23:02 by java20130722, 304 阅读, 收藏,
摘要:
转自点击打开链接编程的原则,广为人认知的:1. KISS – Keep It Simple, Stupid! 小即是美2. DRY – Don’t Repeat Yourself 不要总重复自己作无意义的事情先说KISS, 这是Unix哲学的至高教义,引申起来就是:一个程序只做一件事,并做好;程序要能协作,程序要能处理文本流(因为这是最通用的接口)。再深入下来就可以概括如下:(1) 模块原则: 使用简洁的接口拼合简单的部件。(2) 清晰原则: 清晰胜于机巧。(3) 组合原则: 设计时考虑拼接组合。(4) 分离原则: 策略与机制分离,接口与引擎分离。(5) 简洁原则: 设计要简洁,降低复杂性。( 阅读全文
Ubuntu下设置默认java
2013-03-15 22:49 by java20130722, 267 阅读, 收藏,
摘要:
首先要把java的各种环境变量设置完接着执行update-alternatives --install /usr/bin/java java $(your_dir)/jdk1.6.0_12/bin/java 300
update-alternatives --install /usr/bin/javac javac $(your_dir)/jdk1.6.0_12/bin/javac 300通过这一步将我们安装的jdk加入java选单然后执行update-alternatives --config java
通过这一步选择系统默认的jdk然后执行java -version查看java 是否是我们 阅读全文
Connection listeners: accepting TCP connections 翻译
2013-03-15 22:35 by java20130722, 458 阅读, 收藏,
摘要:
连接监听器:接收TCP连接evconnlistener机制给我们提供一种监听和接收TCP连接的方法。在本节中所有的函数和类型都声明在头文件里。除非其他地方提到,否则这些在libevent-2.02-alpha首次给出。创建和释放 一个evconnlistener接口struct evconnlistener *evconnlistener_new(struct event_base *base, evconnlistener_cb cb, void *ptr, unsigned flags, int backlog, evutil_socket_t fd);
struct ev... 阅读全文
代码之美中的二分搜索算法--Java版
2013-03-15 16:42 by java20130722, 137 阅读, 收藏,
摘要:
很多人写二分搜索的时候,都会存在一些纰漏,前段时间看到代码之美里面有一段程序,总结了二分搜索package com.algorithms.binsearch; public class BinSearch { // expert experience, absolute right ! public static int find(String[] keys, String target) { int high = keys.length; int low = -1; while (high - low > 1) { int probe = (high + lo... 阅读全文
一些用位运算解决的方法
2013-03-15 16:35 by java20130722, 204 阅读, 收藏,
摘要:
所有程序均来自于网上。1、判断奇偶bool isEven(int n) { if (n & 1) { return true; } else return false;
}2、改变符号int changeSign(int n) { return ~n + 1;
}3、取绝对值int abs(int n) { return (n ^ (n >> 31)) - (n >> 31);
}4、高地位互换int exchange(unsigned int n) { return (n >> 16) | (n << 16);
}5、二进制中 1 的个 阅读全文
HelloWorldForU ---九度Online Judge
2013-03-15 13:08 by java20130722, 301 阅读, 收藏,
摘要:
题目描述:Given any string of N (>=5) characters, you are asked to form the characters into the shape of U. For example, "helloworld" can be printed as:hde ll rlowoThat is, the characters must be printed in the original order, starting top-down from the left vertical line with n1 characters, 阅读全文
字符串组合
2013-03-15 12:28 by java20130722, 296 阅读, 收藏,
摘要:
题目:输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。本文整理自http://zhedahht.blog.163.com/blog/static/2541117420114172812217/一般的做法请看原文链接。本文把评论中提到的方法整理出来,思路如下:模拟2进制加法器,某一个为1,则取对应的字符,若为0则不取,就能够实现字符组合。设有n个字符。int num 从 1 自增到 2^n -1, 将num右移i位,跟1做按位&操作,即可判断第i个字符取还是不取。int main(int argc, char** a 阅读全文
hive迁移hadoop namenode时遇到的问题
2013-03-14 17:33 by java20130722, 326 阅读, 收藏,
摘要:
使用了一段时间的hive和hadoop,在迁移datanode时很容易,要迁移namenode,hive里就闹情绪了。更改namenode后,在hive中运行select 依旧指向之前的namenode地址。要如何解决呢,具体操作如下:1.复制打包老的namenode2.复制打包老的namenode的hdfs目录3.到新机器准备好:修改master的值 复制到各节点 修改hive的定义4.hive这里使用了mysql来保存metadata因为这些信息会被写死在hive的DBS和SBS表里,下面是关键的一步:进入mysql,执行下面的sql,update DBS set DB_LOCATION_ 阅读全文
Android网络编程1
2013-03-14 14:56 by java20130722, 189 阅读, 收藏,
摘要:
转载:http://blog.csdn.net/kieven2008/article/details/8210737Android网络编程概述首先,应该了解的几个问题:1)Android平台网络相关API接口a) java.net.*(标准Java接口)java.net.*提供与联网有关的类,包括流、数据包套接字(socket)、Internet协议、常见Http处理等。比如:创建URL,以及URLConnection/HttpURLConnection对象、设置链接参数、链接到服务器、向服务器写数据、从服务器读取数据等通信。这些在Java网络编程中均有涉及。b) Org.apache接口对于 阅读全文
创建Contentprovider,
2013-03-14 11:13 by java20130722, 196 阅读, 收藏,
摘要:
创建Contentprovider:1. 创建一个provider----ExampleContentProvider设计Content URIs(a. 设计authority b. 设计path c.处理content URI IDs d.Content URI patterns)实现Provider中必须的方法(query()insert()update()delete()getType()onCreate())定义MIME Types(getType()One of the required methods that you must implement for any provider 阅读全文
hive 初始化运行流程
2013-03-13 16:34 by java20130722, 558 阅读, 收藏,
摘要:
CliDriver初始化过程CliDriver.main 是 Cli 的入口(1) 解析(Parse)args,放入cmdLine,处理 –hiveconf var=val 用于增加或者覆盖hive/hadoop配置,设置到System的属性中。(2) 配置log4j,加载hive-log4j.properties里的配置信息。(3)创建一个HiveConf,设置hiveJar= hive-exec-0.6.0.jar ,初始化加载hive-default.xml、 hive-site.xml。(4) 创建一个CliSessionState(SessionState)(5) 处理-S, -e, 阅读全文
hive Cli常用操作(翻译自Hive wiki)
2013-03-13 14:33 by java20130722, 207 阅读, 收藏,
摘要:
这里罗列常用操作,更多参考https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Clihive命令行执行一个查询$HIVE_HOME/bin/hive -e 'select a.col from tab1 a'之后过程中,会在终端上显示mapreduce的进度,执行完毕后,最后把查询结果输出到终端上,接着hive进程退出,不会进入交互模式。使用静音模式执行一个查询$HIVE_HOME/bin/hive -S -e 'select a.col from tab1 a'加入-S,终端上的输出不 阅读全文
用于展现图表的50种JavaScript库
2013-03-13 09:46 by java20130722, 190 阅读, 收藏,
摘要:
在很多项目中都会有在前端展现数据图表的需求,而在开发过程中,开发者往往会使用一些JavaScript库,从而更有效地达到想要的目标。最近,TechSlide上的一篇文章总结了50种用于展现图表的JavaScript库,并对每种库做了简要的说明。这对于想要选择合适JavaScript库的开发者很有参考意义。文章作者首推的库是D3,他说到:它非常让人惊叹,我很喜欢它的简洁性。它的文档非常完备,源代码托管在GitHub上,而且不断会添加新的示例。有一种叫做Tributary的创建D3原型的工具,其中有很多非常棒的示例。这个库非常好,以至于xcharts、nvd3、Rickshaw、Cubism.js 阅读全文
Content Provider Basics(内容提供者的基本操作)
2013-03-12 15:42 by java20130722, 414 阅读, 收藏,
摘要:
Content Provider Basics(基本操作)Content provider 管理访问中心库的数据。provider 是android 应用的一部分,它提供自己的UI操作数据。当然,content provider 主要作用是被其他的应用使用。provider 和provider clients是不可分割的,标准的数据接口保证了访问数据的安全性和处理跨进程调用。This topic describes the basics of the following:How content providers work. (Content provider 是的原理)The API you 阅读全文
android Content Providers 内容提供者
2013-03-12 10:49 by java20130722, 128 阅读, 收藏,
摘要:
Content Providers(内容提供者)Content providers 可以访问和管理结构化数据集。它们封装了数据,并提供一种机制来定义数据安全。Content providers是一种标准的接口定义,它可以从一个线程中访问另外一个线程的数据。当您想通过content provider访问数据,您需要借助ContentResolver对象,ContentResolver 对象可以通过Context获得,ContentResolver就相当于ContentProvider的客户端。ContentResolver对象与provider对象进行通信,这个provider实现了Conten 阅读全文
hadoop配置(个人总结)
2013-03-11 20:45 by java20130722, 428 阅读, 收藏,
摘要:
实验机器: namenode: 192.168.120.63 - centos5 datanode: 192.168.120.64 -centos5 datanode: 192.168.120.65 -centos5配置目标: 63机器作为namenode, secondarynamenode 64和65机器作为datanode和tasknode 每台机器使用hadoop账户来管理和运行hadoop配置步骤: 1. 准备文件,包括 jdk 和 hadoop jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk6u 阅读全文
hadoop 第二次启动 50030端口能打开 50070端口打不开
2013-03-11 20:03 by java20130722, 383 阅读, 收藏,
摘要:
第一次启动好好的,第二次启动50030能打开,50070打不开,原因不知道,解决办法:执行以下命令:hadoop namenode -format重新格式化一下即可,原因进一步研究中 阅读全文
坐96路公交车有感--司机凭什么这么屌
2013-03-11 13:10 by java20130722, 212 阅读, 收藏,
摘要:
周六晚上回学校,只有坐96路才能回得去。车上人很多,司机不停的在抱怨,司机也在不停的碎碎念。“死起劲挤嘛,挤死算求了”“我再等20分钟嘛,等到9点,等你们全部上完我再走。哦,不着急,慢慢挤。”“狗日的都要到终点站了还有人上,都装了一万多个人了。”我心头在想,这个司机在屌个毛啊屌。乘客不是想回家或者回学校,谁稀罕来挤你这破车么?按理说,我们付了钱,我们是顾客,他们是提供服务的人。提供服务的人不应该为客户服务吗?那些说的“顾客就是上帝”,为什么在公交车上就行不通了呢?我不禁想到了最近才看的一本书《说谎者的扑克牌》。书中有个交易员就是很屌,对顾客也是很屌的样。但是他却是很nb,很能替客户赚钱。他不该 阅读全文
发布-版本化您的应用
2013-03-08 17:24 by java20130722, 189 阅读, 收藏,
摘要:
版本化您的应用版本控制是一个非常重要的概念,在应用升级和维护的时候非常有用。版本控制的重要性因为:Versioning is a critical component of your application upgrade and maintenancestrategy. Versioning is important because:Users need to have specific information about the application version that is installed on their devices and the upgrade versions a 阅读全文
Preparing for Release(发布前的准备)
2013-03-08 16:56 by java20130722, 228 阅读, 收藏,
摘要:
发布前的准备在发布之前,有些准备工作要做。开发工作是所有过程中的第一个步骤。当您准备发布您的应用,配置,构建,和测试一个将要发布的应用。配置工作是直截了当地,包括清理代码和代码修改,为了优化应用。构建构成与调试过程很类似,可以通过JDK和android SDK工具做到。测试是最后的检查工作,可以保证应用能在真是的环境中正常的运行。当应用准备好并且签名之后,就可以直接发布到应用市场中(google play)。Figure 1. Preparing for release is a requireddevelopmenttask and is the first step in the publ 阅读全文
publishing(android)
2013-03-08 15:46 by java20130722, 454 阅读, 收藏,
摘要:
发布应用发布是使应用能够被用户使用的一个过程,当你发布应用的时候,有两个主要步骤:1.准备要发布的应用2.发布应用应用给用户通常,应用都会发布到应用市场里面,例如google play 市场。然后,还可以把应用直接给用户或者是从网站上下载应用准备应用准备应用有很多的步骤,如下:1.配置要发布的应用最低限度:必须从代码中去掉Log和从manifest文件中去掉android:debuggable属性。还需要在manifest元素下提供android:versionCode和android:versionName属性,为了满足google Play的需求还需要做些配置。2.构建和签名要发布的应用A 阅读全文
[置顶] 忆前年ThoughtWorks面试经历--用门开啤酒
2013-03-06 18:20 by java20130722, 286 阅读, 收藏,
摘要:
本来想不写这样的文章,觉得这种回忆过去的东西,都是一些有文化有层次的人写的。我这种小屁孩儿没做出个名堂,写了这种,以后要是还没出息,不久留下笑话的把柄了吗。后来看到微薄上别人写的回忆面试什么的,感觉写的可开心了,我也就想开心开心。要是以后没什么出息,就当我是个棒槌吧。 大四的时候,给导师做一个项目,是一个用来处理地震数据的分布式批处理系统。有一天,导师把我叫到了办公室,说周六的时候要很多人一起开个会。说是甲方不是很满意,导师说不是我的问题,我负责的部分进度一直还是比较快的。只是说这样的一个系统,用户是“看不见的”,因为我们按照功能划分了模块,不到最后一刻,谁也不知道这个东西运行起来会是什么样. 阅读全文
Common Lisp中的apply和append
2013-03-05 16:25 by java20130722, 483 阅读, 收藏,
摘要:
appendLisp中的append就是把多个list合并成一个list。如:> (append '(a) '(b) '(c d))
(A B C D)注意:1.append后的每一个cell都必须是list,下面这个语句则会报错> (append 'a 'b)
bad syntax for array: APPEND
2.同时,append不是嵌套的,如:> (append '((a b) (c d)) '(e))
((A B) (C D) E)
apply前面提到append不能对嵌套的执行合并,如:> app 阅读全文
Common Lisp中的car和cdr
2013-03-04 15:31 by java20130722, 630 阅读, 收藏,
摘要:
car用于得到list中的第一个cell的值:> (car '(a b c))
Acdr用于得到list中除了第一个cell之外的值,并作为一个新的list返回:>(cdr '(a b c))
(B C)car和cdr最强大的功能是可以通过搭配"a"和“d”达到嵌套的效果:(cadr list) = (car (cdr list))> (cadr '(a b c))
B(cdar list) = (cdr (car list))>(cdar '((1 2 3) a b c))
(2 3)
可以通过搭配“a”和“d”的顺 阅读全文