<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[笨小孩的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hittyt</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hittyt]]></copyright><item><title><![CDATA[如何优雅的去做DAL层的UT]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84657593</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84657593</guid><author>hittyt</author><pubDate>Fri, 26 Sep 2014 19:55:37 +0800</pubDate><description><![CDATA[
引子
UT的重要性不言而喻，这里不用多说。但是，码农都知道，一段逻辑往往涉及到很多外部系统调用（不同的数据源、不同的服务等等），配合完成一段code真正想要完成的逻辑。 而UT（Unit Test）本身的重要思想之一，就是测试本单元的核心逻辑。我测试A，你却因为A依赖B，而导致测试的code跑不了，这个不科学。 于是，有了各种各样的mock技术，来模拟B的行为，按照你的需要，返回你期望的数据...]]></description><category></category></item><item><title><![CDATA[*nix下文件字符编码转换方法]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84657386</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84657386</guid><author>hittyt</author><pubDate>Fri, 26 Sep 2014 14:18:02 +0800</pubDate><description><![CDATA[
为毛需要转换
历史原因，公司内部的source code中充斥着大量的GBK编码，但是明显UTF-8更适合国际化的字符需求。如果不转换，在IDE中各种字符编码切换，各种蛋疼。一不小心，多种编码一叠加，造成不可逆的乱码保存，那就永远乱码的噩梦了。当然，更好的国际化支持，除了统一用UTF-8保存文件之外，更好的做法是，source code中压根就不应该出现中文（当然，这点可能会被很多人喷，算了，...]]></description><category></category></item><item><title><![CDATA[Apache性能调优常用的三板斧]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84499879</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84499879</guid><author>hittyt</author><pubDate>Sun, 17 Nov 2013 15:03:53 +0800</pubDate><description><![CDATA[
Apache常用的两种MPM
讨论这个问题时，有必要先界定Apache运行时到底load的是哪个MPM，prefork和worker毕竟运行时在Server端的资源消耗有一些差别。


prefork：典型的“一连接一进程”模式（每个进程内部就启动一个系统线程），在相同的并发连接情况下，显然要比worker模式消耗更多系统资源（最主要消耗的就是Server的RAM，其实很多时候，调优关注的焦...]]></description><category></category></item><item><title><![CDATA[Git回滚的常用手法]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84490804</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84490804</guid><author>hittyt</author><pubDate>Sun, 20 Oct 2013 22:11:18 +0800</pubDate><description><![CDATA[
传统VCS的回滚操作
对于版本控制系统VCS来说，回滚这个操作应该是个很普通也是很重要的需求。
如果你是传统VCS，比如SVN或者P4来说，revert是个最直观，也是最直接的手段，当然前提是你的修改还没有被提交到远程的中央仓库。
如果你已经ci了你的code到了远程中央仓库，那revert恐怕也无能为力，只能借助其他命令workaroud这个问题，比如：你用SVN的话，就得来个逆向mer...]]></description><category></category></item><item><title><![CDATA[正则表达式中的LookAround]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84477281</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84477281</guid><author>hittyt</author><pubDate>Sat, 07 Sep 2013 15:08:26 +0800</pubDate><description><![CDATA[
这个东东有人把他直译为环视，到也还算贴切。因为本来这东西就分为head和behind两种类型。
分别表示找前面的和找后面的部分。然后又根据是想匹配括号里的内容还是不想匹配括号里的内容，分为了Positive和Negative两种。这样你就会发现目前已经分别在两个维度上有了分别两种分法，于是这就组合出了LookAround的全部四种情况：

Positive Lookahead
Negati...]]></description><category></category></item><item><title><![CDATA[如何实现Linux下高亮关键字的tail -f功能]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84470616</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84470616</guid><author>hittyt</author><pubDate>Mon, 19 Aug 2013 13:42:18 +0800</pubDate><description><![CDATA[
公司内部一哥们发布到邮件列表中的一个小tip，挺有意思，属于程序员的“奇淫技巧”类吧，值得记录一下。
如果你在linux下工作，那用tail -f跟踪一个日志文件的输出内容应该是家常便饭了。
但是，有时你更关心的是一些敏感字词，希望能够在动态跟踪的同时，把这些字词高亮出来，比如日志中的ERROR关键字。
那么，一种思路就是把你tail输出的东西再做一次包装处理，这个很符合linux管道处理...]]></description><category></category></item><item><title><![CDATA[中文乱码的那些事儿（二）]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84470400</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84470400</guid><author>hittyt</author><pubDate>Sun, 18 Aug 2013 16:57:09 +0800</pubDate><description><![CDATA[

中文乱码的那些事儿（一）中基本没提及任何乱码的事情，被骂标题挡了，本篇主要侧重乱码问题的排查过程，讨论一下处理这类问题的思路。
一次典型的B/S结构的Web请求过程大概是下面这个样子的：
浏览器发起request（第一次Encode，将待发送的数据通过某种字符编码编码为字节流） -------&amp;gt; 服务器接收请求（第一次Decode，如果此时使用了和浏览器端不一致的字符编码进行解码，...]]></description><category></category></item><item><title><![CDATA[中文乱码的那些事儿（一）]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84470292</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84470292</guid><author>hittyt</author><pubDate>Sat, 17 Aug 2013 23:38:38 +0800</pubDate><description><![CDATA[
昨晚帮同组一个新入行的intern解决了一个中文乱码的问题，想想这个中国程序员几乎无法回避的问题，曾经引得多少程序员竞折腰！很多新人被搞的晕晕乎乎很大一部分原因是因为网上关于这个问题的“歪门邪道”的解法太多，各种场景，各种解法，有人蒙对了，问题解决了，happy ending！有人运气不好没碰上，只能抓狂了。。。
其实这个问题的根本原因不难，谁都都知道问题的关键就一点：编码字符集和解码的字符...]]></description><category></category></item><item><title><![CDATA[JQuery1.6中.attr()和.prop()的区别]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84459579</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84459579</guid><author>hittyt</author><pubDate>Wed, 17 Jul 2013 16:28:48 +0800</pubDate><description><![CDATA[
.prop()这在1.6之后引入的方法在JQuery的官方文档上的解释的很坑爹，就是attribute和property的区别。
对于不清楚attribute和property的区别的人来说，根本看不出来啥区别。
找到两篇国外程序员兄弟的博客，写的不错，记录一下链接：
http://techbrij.com/jquery-attr-vs-prop-difference
http://jq...]]></description><category></category></item><item><title><![CDATA[Oracle中left join中右表的限制条件]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84441508</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84441508</guid><author>hittyt</author><pubDate>Mon, 10 Jun 2013 12:03:46 +0800</pubDate><description><![CDATA[
无过滤条件的LEFT JOIN
SQL中最简单形式的LEFT JOIN，是直接根据关联字段，以左表为基准，对右表进行匹配。在SELECT语句中选取的字段，如果有右表的记录（一般都是需要右表的某些记录的），取出配对成功的右表记录中对应的这个字段的值；否则，直接置NULL。这本身就是LEFT JOIN的特点：保证左表记录完整，右表只是辅助匹配。
直接看例子，为了演示，准备了两张测试表test1...]]></description><category></category></item><item><title><![CDATA[SSH连接远程服务器直接执行command时PATH设置不全的一种解决方案]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84435341</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84435341</guid><author>hittyt</author><pubDate>Sat, 25 May 2013 14:54:27 +0800</pubDate><description><![CDATA[
git作为DVCS的强大功能之一就是可以不用中心server节点，直接在developers之间的host同步源码。这个好处有很多，比如可以想到的一个比较明显的好处就是：可以在code尚未ready的情况下，随意在host之间同步，方便协作开发。（试想一下，如果是传统的CVCS，比如SVN，在代码尚未ready的时候，将代码就提交的中心repo，那简直就是噩梦。不幸的是，如果你如果不借助诸如rs...]]></description><category></category></item><item><title><![CDATA[关于时区、时间、时刻]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84419010</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84419010</guid><author>hittyt</author><pubDate>Sun, 14 Apr 2013 17:43:14 +0800</pubDate><description><![CDATA[
关于时区，其实应该是个地理概念。通常情况下，当我们跟别人说：“现在是上午11点23分”这句话时，隐含了一个信息，那就是我们做了一个假设：我们都处在同一个时区——标准时间东八区，或者是电视上常说的“北京时间”。这也说明了一件我们平时可能并没太注意的一件事情，时间是和时区紧密挂钩的一个概念。
但时刻就不同了，他是一个和时区没有任何联系的概念，中国有句古话叫“此时此刻”，可以当做现在时刻的一个等价表...]]></description><category></category></item><item><title><![CDATA[Perl语言基础注意事项]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84408682</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84408682</guid><author>hittyt</author><pubDate>Sat, 16 Mar 2013 16:15:40 +0800</pubDate><description><![CDATA[

while和foreach分别对应Perl的scalar context和list context。这点最大的区别就是：对应一个大文件的处理，在联合钻石操作符&amp;lt;&amp;gt;或文件句柄&amp;lt;fh&amp;gt;时，要格外小心。因为前者是读取文件一行，进入while循环处理这一行，然后再读取下一行，依次读取执行。后则，则是一次性读入文件所有内容，再进行foreach内部的循环，这样可能效率更高，但是...]]></description><category></category></item><item><title><![CDATA[ORA-01653: unable to extend table X by Y in tablespace Z]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84386354</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84386354</guid><author>hittyt</author><pubDate>Mon, 28 Jan 2013 14:06:03 +0800</pubDate><description><![CDATA[
最近几天遇到了好几次Oracle的这个问题了，场景不太一样而已（注意：标题上的Y的单位是KB）：

insert into table1 values(...) select (...) from table2:(会占用temp tablespace,如果table2数据很大，temp tablespace不够大的话，可能会报出上面的问题)
update table1 set is_dele...]]></description><category></category></item><item><title><![CDATA[Web应用部署描述符（Deploy Descriptor）中Filter的执行顺序]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84362815</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84362815</guid><author>hittyt</author><pubDate>Fri, 30 Nov 2012 15:12:16 +0800</pubDate><description><![CDATA[J2EE Web应用的部署描述符DD对于Web开发人员通常都不会陌生，不过某些细节的问题，不好好研究一下Servlet的规范，就可能有些模糊了。
今天遇到个问题：当一个被请求的Web资源符合多个Filter配置的mapping规则时，这些Filter执行的顺序是怎样的？是根据filter标签本身在web.xml中定义的顺序执行，还是根据filter-mapping标签在web.xml中定义的顺序...]]></description><category></category></item><item><title><![CDATA[【转】你可能不知道的Shell]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84360088</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84360088</guid><author>hittyt</author><pubDate>Fri, 23 Nov 2012 15:20:44 +0800</pubDate><description><![CDATA[今天看了一篇有点小众，但是绝对高级shell应用的文章，牛逼到掉渣。
记录一下链接吧：
 
你可能不知道的Shell]]></description><category></category></item><item><title><![CDATA[Java GC log的解读]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84355432</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84355432</guid><author>hittyt</author><pubDate>Mon, 12 Nov 2012 14:12:47 +0800</pubDate><description><![CDATA[Java的GC log中，往往有很多名称啊、数字啊，第一次看到时候，总会有点晕头转向的感觉。
今天又Google了一圈，找到两篇比较靠谱的网页记录一下：




HotSpot在PrintHeapAtGC输出的内容的格式

Java Garbage Collection Log messages
引用一下stackoverflow上的那个例子

8109.128: [GC [PS...]]></description><category></category></item><item><title><![CDATA[关于cookie domain中的点前缀]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84353739</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84353739</guid><author>hittyt</author><pubDate>Wed, 07 Nov 2012 17:30:58 +0800</pubDate><description><![CDATA[今天同事遇到一个问题，大概描述如下：
浏览器已经接收指令，之前在一级域名下存储了相关的信息。这里为了简化问题，假设我们有两个应用A和B，域名分别为：a.b.com和c.a.b.com。（显然B是A的一个子域）。
上面的描述就是：在.b.com这个一级域名下，我们已经成功写入了一个cookie，假设为：b=level1。
在正常用户的浏览行为中，应用A会向自己的域下写入a=level2(dom...]]></description><category></category></item><item><title><![CDATA[Java范型真的被擦除了吗？]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84353479</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84353479</guid><author>hittyt</author><pubDate>Wed, 07 Nov 2012 11:24:44 +0800</pubDate><description><![CDATA[学习范型的第一课就被警告说，范型信息再编译之后是拿不到的，因为已经被擦除掉了。如果不深入研究，这个观点很容易给人以这样的错觉：只要代码里面用了范型的地方，编译之后，是没法拿到这部分信息的！
 
关于这点的错误之处，可以参考撒伽的这篇文章。 按他的解释是说：
位于声明一侧的，源码里写了什么到运行时就能看到什么； 位于使用一侧的，源码里写什么到运行时都没了。
这里，最根本的原因，还是因为jdk...]]></description><category></category></item><item><title><![CDATA[Java内部类的可见性问题]]></title><link>https://blog.youkuaiyun.com/hittyt/article/details/84341739</link><guid>https://blog.youkuaiyun.com/hittyt/article/details/84341739</guid><author>hittyt</author><pubDate>Tue, 30 Oct 2012 11:44:36 +0800</pubDate><description><![CDATA[关于Java的内部类的可见性问题，平时并未太注意。不过使用时，其实还是应该明确一点：就是关于内部类和他的外部类的可见性问题：private这种修饰符并不能阻止外部类直接访问到内部类中的private属性；反之亦然。
这里直接看代码会更清楚一些：
 
public class VisibilityTest {

    private String outerName;

    pu...]]></description><category></category></item></channel></rss>