<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mdifferent的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mdifferent</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mdifferent]]></copyright><item><title><![CDATA[Java容器与Hash算法的研究]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/51279998</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/51279998</guid><author>mdifferent</author><pubDate>Fri, 29 Apr 2016 11:29:23 +0800</pubDate><description><![CDATA[在这篇博客中我们以HashMap为例研究了容器类初始化和自动扩容时对内存的占用，通过阅读源代码我们发现 
 1. 初始容量为16 
 2. 扩容时会翻倍 
另外在代码中我们还发现这样一条注释： /**
     * The default initial capacity - **MUST be a power of two.**
     */
    static final int DEFAU]]></description><category></category></item><item><title><![CDATA[Java容器类默认初始容量研究]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/51261403</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/51261403</guid><author>mdifferent</author><pubDate>Thu, 28 Apr 2016 17:50:20 +0800</pubDate><description><![CDATA[昨天参加了个公司的Java Performance的培训，其间提到了一些容器类的构造函数有默认的参数，用来控制容器的初始容量，建议是尽可能准确地预测容量需求，根据需求创建指定大小的容器，而不是使用默认的容量，这样可以有效减少内存的浪费，以及扩容所带来的开销。培训中主要提到了StringBuilder和HashMap两个类，下面我们结合JDK源代码来看看到底是怎样的情况。


StringBuild]]></description><category></category></item><item><title><![CDATA[利用Node.js流和事件处理文本文件]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/51242484</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/51242484</guid><author>mdifferent</author><pubDate>Mon, 25 Apr 2016 18:05:42 +0800</pubDate><description><![CDATA[想用之前爬取的数据文件来给Cassandra做个benchmarking，Cassandra支持CSV格式的数据导入，但是之前爬虫爬下来的数据是JSON格式的，需要做个转换，要是在以前就直接写python脚本了，正好这次尝试下nodejs来做。 
现有的数据格式是这样的：[
{"price":"商品价格","name":"商品名称","comment":"商品说明","id":"商品ID"},
..]]></description><category></category></item><item><title><![CDATA[Node.js的expressjs框架对response的处理流程实验]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/50978007</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/50978007</guid><author>mdifferent</author><pubDate>Fri, 25 Mar 2016 11:17:45 +0800</pubDate><description><![CDATA[欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来，用它写博客，将会带来全新的体验哦：
Markdown和扩展Markdown简洁的语法
代码块高亮
图片链接和图片上传
LaTex数学公式
UML序列图和流程图
离线写博客
导入导出Markdown文件
丰富的快捷键
快捷键
加粗    Ctrl + B 
斜体    Ctrl + I 
引用    Ctrl]]></description><category></category></item><item><title><![CDATA[搭建Hadoop集群中遇到的坑]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/44854393</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/44854393</guid><author>mdifferent</author><pubDate>Fri, 11 Dec 2015 11:01:00 +0800</pubDate><description><![CDATA[工作需要搭建个Hadoop集群，找了几台机器，配置如下：




IP
角色


10.128.84.20
ResourceManager


10.128.84.21
NameNode &
SecondaryNameNode


10.128.84.22
DataNode & NodeManager


10.128.84.24
DataNode &]]></description><category></category></item><item><title><![CDATA[Java类初始化阶段静态初始化不抛出异常]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/45397001</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/45397001</guid><author>mdifferent</author><pubDate>Thu, 30 Apr 2015 17:01:29 +0800</pubDate><description><![CDATA[最近接手实习生写的一个项目A，主要是往HDFS里写文件，因为项目比较急所以代码写的很乱，我就顺便新建个项目B重构一下。
其中把对HDFS的操作封装成了一个类：

public class HDFS {
	private static final String HDFS_ADDR = Config.HDFS_PATH;
	private static FileSystem fs;
	stati]]></description><category></category></item><item><title><![CDATA[通过HDBSQL将当前目录下所有CSV文件导入到HANA的脚本]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/45149985</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/45149985</guid><author>mdifferent</author><pubDate>Mon, 20 Apr 2015 14:27:50 +0800</pubDate><description><![CDATA[工作需要每天都要执行相同的导入动作，每天都会生成很多新的CSV文件，直接在STUDIO里手动导入太累，直接写个脚本搞定。
#!/bin/sh  
a = 'pwd'
list_alldir(){  
    for file2 in `ls -a $1`  
    do  
        if [ x"$file2" != x"." -a x"$file2" != x".." ];then ]]></description><category></category></item><item><title><![CDATA[Unity2D使用经验一则——如何让文字与Sprite一起移动]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/43953271</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/43953271</guid><author>mdifferent</author><pubDate>Thu, 26 Feb 2015 15:04:56 +0800</pubDate><description><![CDATA[最近又这么一个需求，RPG战斗场景中头像边上要显示角色的名字、HP等信息，如下图所示：


因为每场战斗登场的角色数量不一样，需要动态确定头像的位置，所以把这个对象做成一个Prefab，生成战斗场景时Initialize。最开始时候是把头像作为Sprite，然后再在这个Sprite下添加Canvas作为子节点，Canvas下面添加Text显示名字和Image显示血条。但是这样发现名字的位置和]]></description><category></category></item><item><title><![CDATA[Ren'Py引擎源代码解读(2)——语句解析:解析树的构建]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/41945729</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/41945729</guid><author>mdifferent</author><pubDate>Mon, 15 Dec 2014 17:12:27 +0800</pubDate><description><![CDATA[语句解析
刚才跳过了parse这一条语句，这里我们回头来看，这里的代码比较集中，主要是在parser.py这个文件里面，由于这个模块其具有较强的独立性，所以有时候可以单独拿出来添加一些输入输出，这样便于理解他的机制。

def parse(fn, filedata=None):
    """
    Parses a Ren'Py script contained within the f]]></description><category></category></item><item><title><![CDATA[Ren'Py引擎源代码解读(1)——脚本文件加载]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/41700639</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/41700639</guid><author>mdifferent</author><pubDate>Wed, 03 Dec 2014 18:21:46 +0800</pubDate><description><![CDATA[因为想要尝试把Ren'Py移植到Cocos上，尽可能的使用原来的rpy文件，这就难免要解析rpy文件，因此就参考了一下Ren'Py自己是怎么解析脚本的。]]></description><category></category></item><item><title><![CDATA[用ClippingNode实现文字AVG游戏的对话字幕效果]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/40785917</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/40785917</guid><author>mdifferent</author><pubDate>Tue, 04 Nov 2014 15:39:20 +0800</pubDate><description><![CDATA[玩文字AVG游戏主要的行为就是阅读j]]></description><category></category></item><item><title><![CDATA[Ren'Py上手指南1]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/40342435</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/40342435</guid><author>mdifferent</author><pubDate>Tue, 21 Oct 2014 11:37:20 +0800</pubDate><description><![CDATA[Ren'Py是一个文字AVG游戏引擎，基于Python编写的。]]></description><category></category></item><item><title><![CDATA[Cocos2dx中Opacity属性及相关操作(2)----Cocos2dx 3.2 Fade系列Action]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/39737541</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/39737541</guid><author>mdifferent</author><pubDate>Thu, 02 Oct 2014 18:02:30 +0800</pubDate><description><![CDATA[想制作一个显示伤害数字的组件，]]></description><category></category></item><item><title><![CDATA[cocos2dx中Opacity属性及相关操作(1)]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/39736953</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/39736953</guid><author>mdifferent</author><pubDate>Thu, 02 Oct 2014 17:03:10 +0800</pubDate><description><![CDATA[Opacity指的是Node的透明度，从0~255之间的一个整数，通过Node的setOpacity来进行设置：]]></description><category></category></item><item><title><![CDATA[Pyhton处理JSON]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/39551701</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/39551701</guid><author>mdifferent</author><pubDate>Thu, 25 Sep 2014 14:55:05 +0800</pubDate><description><![CDATA[如果在代码里直接给字符串变量赋值的话]]></description><category></category></item><item><title><![CDATA[Python删除冗余文件技巧]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/24241229</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/24241229</guid><author>mdifferent</author><pubDate>Mon, 21 Apr 2014 11:51:05 +0800</pubDate><description><![CDATA[za


import os
import string
filelist = os.listdir("./")
for l in filelist:
	if l.endswith(".dat"): 
		name = string.split(l,'.')[0]
		if os.stat(l).st_size > 0:
			os.remove(name+".txt")
			os.rem]]></description><category></category></item><item><title><![CDATA[Python实现的两个文件操作：当前目录下所有文件和转码]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/23299257</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/23299257</guid><author>mdifferent</author><pubDate>Wed, 09 Apr 2014 21:27:23 +0800</pubDate><description><![CDATA[在客户那里做PoC导入数据的时候，客户导出的]]></description><category></category></item><item><title><![CDATA[PhoneGap+SAPUI5搭建本地应用（Android平台）]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/16806181</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/16806181</guid><author>mdifferent</author><pubDate>Mon, 18 Nov 2013 18:04:09 +0800</pubDate><description><![CDATA[一直想尝试一下使用PhoneGap来搭建本地程序，正好之前开发的smart app是基于SAPUI5的，SAPUI5提供了独立的js包，可以导入到PhongGap工程中，这样就可以使用UI5的各种控件了，顺便一提UI5也包括了JQuery。
搭建环境的过程比想象中的要复杂，折腾了两天才搞定，主要是百度到的教程大多已经过期，官网文档的结构有点混乱，所以特此把慢慢摸索的过程记录下来。


Ph]]></description><category></category></item><item><title><![CDATA[写宏定义：得到一个field在结构体（struct type）中的偏移量[转]]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/7907508</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/7907508</guid><author>mdifferent</author><pubDate>Sat, 25 Aug 2012 19:33:22 +0800</pubDate><description><![CDATA[http://hi.baidu.com/tian_20032242/blog/item/77fd7afa5ffcc29d59ee90ba.html



#define OFFSETOF(type, field) ((size_t)&(((type *)0)->field))
(type *)0：把0地址当成type类型的指针。
((type *)0)->field：对应域的变量。]]></description><category></category></item><item><title><![CDATA[sizeof(struct var) 的长度如何计算]]></title><link>https://blog.youkuaiyun.com/mdifferent/article/details/7907507</link><guid>https://blog.youkuaiyun.com/mdifferent/article/details/7907507</guid><author>mdifferent</author><pubDate>Sat, 25 Aug 2012 19:31:58 +0800</pubDate><description><![CDATA[http://goodfunman.itpub.net/post/15807/148405

本文主要包括二个部分，第一部分重点介绍在VC中，怎么样采用sizeof来求结构的大小，以及容易出现的问题，并给出解决问题的方法，第二部分总结出VC中sizeof的主要用法。
1、 sizeof应用在结构上的情况
请看下面的结构：
struct MyStruct
{
double dda1;]]></description><category></category></item></channel></rss>