自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (1)
  • 收藏
  • 关注

原创 定制Octopress

在github pages上搭建好octopress博客之后,博客的基本功能就能使用了。如果想自己定制也是没问题的,octopress有较详尽的官方文档,原则上有问题求助官方即可:octopress-help。官方没有包纳的也可以去询问stackoverflow。 当然,中文的看起来总会省事儿点。我做了如下一些总结;)不会ruby的童鞋特别注意:配置_config.yml的过程中特别注

2013-07-10 12:07:25 7124 3

原创 在github上搭建octopress博客 Mac

最早的时候,是看见了唐巧大哥的博客,UI上已是觉得耳目一新。后来读到过阮一峰的博文,当知道这是搭建在Github这个程序员的facebook上时,更是心头一震,什么时候自己也搭这么个博客呢。直接用github托管代码,完全不用自己租服务器,实在方便。自己之前也有在csdn上维护了一个博客,虽然那已经是一年前的事情了。 深刻的记得,当时想将自己的weibo账户贴到博客页面上,却发现它不支持一般用

2013-04-05 01:10:23 3643

原创 AOP实践:java.lang.instrument的使用

背景想调用ASM API (用于字节码处理的开源API)对字节码进行处理,目标是实现对java程序运行时各种对象的动态跟踪,并进一步分析各个对象之间的关系(研究前提是目前的UML锁阐释的whole-part relation 是比较混乱的)。由于ASM相关内容又可以延伸很远,在此文中略过。在完成了能对字节码进行处理的ASM调用以后,需要考虑如何将这些功能与正常的java程序整合到一起。

2011-11-22 11:17:53 12246 2

原创 Java:方法的虚分派(virtual dispatch)和方法表(method table)

背景知识:java 字节码基本框架,jvm基本框架多态的机制。Virtual Dispatch首先从字节码中对方法的调用说起。java的bytecode中对方法的调用实现分为四种情况:1.invokevirtual 为最常见的情况,包含virtual dispatch机制; 2.invokespecial是作为private和构造

2011-10-31 04:40:12 11413 24

原创 ClassLoader编程实践

java 的类加载机制背景知识:《Java 类加载器( ClassLoader)浅析》《Three principles of Classloader operation(Classloader操作三原则)》以上博文中所提及的java类加载机制,都是java1.2及以后的版本,而在最早的java1.1中,是没有parent-child模式的。这里,将分别

2011-10-30 17:43:19 3952 5

原创 java类的装载(Loading)、链接(Linking)和初始化(Initialization)

Loading 加载按如下三步执行1.通过类的全名产生对应类的二进制数据流。(注意,根据early load的原理,如果没找到对应类文件,只有在类实际使用时才抛出错误.)2.分析并将这些二进制数据流转换为 方法区(JVM的架构:方法区、堆,栈,本地方法栈,pc寄存器)特定的数据结构(这些数据结构是实现有关的,不同JVM有不同实现)。这里处理了部分verificati

2011-10-27 22:03:21 8001 5

原创 Java 类加载器( ClassLoader)浅析

背景知识:java平台无关的特性是由JVM支撑的。不同平台有不同的JVM支持。这其实就是在运行的java源代码和实际的硬件之间抽象出了一个新的层次结构。(据说“计算机中的大多数问题,都可以通过曾加层次结构来解决”)所有.java文件中的java源代码,首先通过编译器产生出后缀为.class的字节码(bytecode)文件。然后由JVM运行那些.class文件

2011-10-14 10:48:11 4613 7

原创 Java类、实例的初始化顺序

阿里巴巴2013校园招聘笔试题倒数第二题:java类、对象初始化顺序的分析

2013-09-22 23:15:32 10006 2

原创 PAT练习题概览

PAT(pat.zju.edu.cn)是一个面向C/C++程序的Online Judge系统。相比ZOJ,HDOJ,POJ等ACM题库,PAT的题目非常基础,对于数据结构、算法的入门是比较有助益的。本文按照自己的认识,给PAT advanced level做出了分类。由于很多题目实际上兼顾有多种解法和思路,我给每道题打上了tag,来应对分类的独占性局限,供大家参考。简单题这

2013-08-06 00:00:12 7904

原创 PAT 1051-1060 题解

浏览全部代码:请戳本文谨代表个人思路,欢迎讨论;)1051. Pop Sequence (25)题意给定 stack 的容量,给定数据的入栈顺序:从 1 开始的正整数序列,在允许随机的出栈操作的情况下,要求判断某出栈序列是否可能。比如,告知 stack 容量为 5,入栈序列的最大值为 7。有两个序列需要判断合理性:{1 2 3 4 5 6 7}:

2013-08-03 03:06:37 3772 3

原创 PAT 1041-1050 题解

浏览全部代码:请戳本文谨代表个人思路,欢迎讨论;)1041. Be Unique (20)题意给出N (5 31 5 88 67 88 17 , 答案是 31 。分析简单模拟题,开一个大数组int a[10001];,以读入的数为下标,记录count:a[index] ++;。结果输出第一个存储为1的下标:if (a[index] ==

2013-08-03 03:05:21 2343

原创 PAT 1021-1030 题解

早期部分代码用Java实现。由于PAT虽然支持各种语言,但只有C/C++标程来限定时间,许多题目用Java读入数据就已经超时,后来转投C/C++。浏览全部代码:请戳本文谨代表个人思路,欢迎讨论;)1021. Deepest Root (25)题意无环连通图也可以视为一棵树,选定图中任意一点作为根,如果这时候整个树的深度最大,则称其为deepest root。 给

2013-08-03 03:02:48 4442 3

原创 PAT 1011-1020 题解

早期部分代码用Java实现。由于PAT虽然支持各种语言,但只有C/C++标程来限定时间,许多题目用Java读入数据就已经超时,后来转投C/C++。浏览全部代码:请戳本文谨代表个人思路,欢迎讨论;)1011. World Cup Betting (20)题意给定一个3*3的矩阵,找到每行的最大值,格式化输出一个运算结果。分析非常简单的模拟题。

2013-08-03 03:01:47 3828

原创 PAT 1001-1010 题解

早期部分代码用Java实现。由于PAT虽然支持各种语言,但只有C/C++标程来限定时间,许多题目用Java读入数据就已经超时,后来转投C/C++。浏览全部代码:请戳本文谨代表个人思路,欢迎讨论;)1001. A+B Format (20)题意格式化输出两数之和。分析理清输出逻辑即可。1002. A+B for Polynomials

2013-08-03 02:59:11 4849 1

原创 出栈序列的可能性判定问题(PAT1051)

给定stack的容量,给定数据的入栈顺序:从1开始的正整数序列,在允许随机的出栈操作的情况下,要求判断某出栈序列是否可能。不同于常规解法,本文使用更高效的解法完成对pop数组的检验。

2013-07-16 03:11:54 6766

原创 给博客配上CC协议

Creative Commons是一个非营利性组织,也是一种创作的授权方式。简称CC协议,中国大陆正式名称为知识共享。次组织的主要宗旨是增加创意作品的流通可及性,作为其他人据以创作及共享的基础,并寻找适当的法律以确保上述理念。作者在博客中使用了CC协议签名(BY-NC-ND)

2013-07-11 00:40:18 7233

原创 《写给大家看的设计书》——从iOS7的扁平化谈起

昨晚看了WWDC2013的直播,iOS7以扁平化UI的方式展现在世人面前。于是接下来进入了微博吐槽时间。大象要跳舞是很难的,这正是苹果面临的情况。现在无论是Android还是Winphone,与iOS系统体验上的差异已经不是难以企及的,甚至有些方面更能为大众接受。于是Ive带领他的团队开始拥抱**Flat Design**。乔布斯子不知道会怎么想,他可是坚持了一辈子的拟物风格。当然,无论乔

2013-06-11 16:26:24 3984

原创 Mac的GUI哲学

GUI哲学前些日子,看了Tinyfool老师的一篇文章《开发人员为何应该使用 Mac OS X 兼 OS X 小史》,才恍然Mac系统可不仅仅是UI上与Windows大相径庭,而是自底而上的区别。这种区别渗透到了整个系统框架的设计理念中。简单概括下我的认识:相比Windows和Linux两大阵营,Mac OS X除了『品味』上的优势之外,最重要的两点是:1.对GUI应用程序脚本化的

2013-06-09 17:26:05 5300

原创 SDN:软件定义网络

最近高级网络课的小组任务是在老师给定的范围内自选方向主题研究并做展示报告。我们组选了sdn。原以为这东西会是工业界无人问津的概念化产品,Google了一下却发现其实sdn挺火的,由于它可能带来的可扩展性,一些大互联网企业也在开始涉足相关的研发,比如Google呵Facebook。这里简要的梳理下我对SDN概念性的认识。背景虚拟化的大趋势近年来,大数据、云计算兴起,虚拟化技术的重要性

2013-06-09 00:57:30 10675 7

原创 《Hadoop技术内幕》学习笔记——RPC和动态代理

本文是《hadoop技术内幕——深入解析Hadoop Common和HDFS架构设计与实现原理》第4章的1-3节的学习笔记。内容为Hadoop IPC部分的基础知识介绍。知识框架由于Hadoop分布式环境需要一个更高效和正对性优化的IPC机制,传统的诸如RMI的解决方案无法满足这一要求,Hadoop自己实现了一套IPC方法。第4章第1节讲解了RPC的原理,包括Stub-Skel

2013-06-08 00:37:45 3206

原创 基于BT协议的同步方式的思考

背景毕业季到了,女朋友跟班里同学们一起拍了很多照片。由于照片分散在不同的人的手机、相机里,她也无法立即给我传来她的照片。这个情景一年前我也遇到过,只是当时自己比较忙,加上考虑着还会在本校读研,也没太在意毕业季照片的手机这一需求,以至于到现在我的电脑里甚至没有一张我穿学士服的照片:-=。而现在,当我想看看gf的照片时,这个需求横亘在我面前,让我特别的想解决掉它。让我们从事实出发,理清

2013-05-26 03:16:53 1916

原创 KMP算法实现

本文描述了单模式的字符串匹配的经典算法KMP算法的实现。首先对字符串匹配算法做简单的介绍,然后是KMP算法的实现描述,最后推荐两道简单的ACM模板题做练手用。字符串匹配算法字符串匹配(String Matchiing)也称字符串搜索(String Searching)是字符串算法中重要的一种,是指从一个大字符串或文本中找到模式串出现的位置。一个基本的字符串匹配算法分类如下:单模

2013-05-26 01:40:01 4438

原创 《程序员的思维修炼》——别鄙视方法论

别鄙视方法论曾经很长时间里,我这么认为:方法论的东西没什么实际的用处,不过是其他人按照自己的喜好来处理事物的途径而已,何必照着他人的思路。比如,作为一只不靠谱的程序猴子,在一些偏颇的思维习惯的影响下,我甚至对许多图形化的东西比较反感,自以为文本信息已经足以表达清楚事实且更有效率,从而本能的回避能造成视觉冲击的事物。直到后来,发现自己每每定下的计划都无法完整实施,自然也是没有收到预期的效果。

2013-05-22 02:31:40 3658 4

原创 Hadoop和RDBMS的混合系统

现在大数据概念被时常提起,社会各界对其关注度越来越高。往往越是火热的东西,人们越容易忽略它的本质。在slides中,我首先按照自己的理解,简单的理顺数据处理领域的发展历程。之后,落脚点是两个比较有代表性的混合的分布式系统:HadoopDB和微软的Polybase。由于缺乏实战经验,很多东西由各方论文和博文中得到,有不恰当的地方,欢迎大家拍砖讨论;)slides的提纲如下:提纲背景

2013-05-20 15:08:53 1950

原创 分布式的一致性

本文来自《分布式原理与泛型》的一致性章节笔记。由于缺乏实践经验,这本书对我来说太过理论,难于理解,现在已经暂停该书的阅读,转而加强实践。另有相关博文《CAP和最终一致性》,可供参考阅读。1.分布式的一致性概述分布式系统的一个重要问题是数据的复制。对数据的复制一般有两个原因:1.增加系统的可靠性,防止单点失效的问题;2.提高系统性能,利用不同地理位置的副本迅速响应用户需求。

2013-05-18 19:06:08 15476

原创 HadoopDB浅析

HadoopDB是一个Mapreduce和传统关系型数据库的结合方案,以充分利用RDBMS的性能和Hadoop的容错、分布特性。2009年被Yale大学教授Abadi提出,继而商业化为Hadapt,据称从VC那儿拉到了10M刀投资。本文是对HadoopDB论文的总结。其中不免掺杂些自己的不成熟想法,更详细的内容,还请参见原论文 HadoopDB: An Architectural Hybr

2013-05-18 18:05:47 4165 2

原创 iOS安全性和越狱

提到越狱,很多人第一反应大概是免费的游戏和app。作为软件从业人员,深知中国的大环境的特殊性。内有用户想吃免费午餐的不良付费习惯,外有行业内大头诸如某讯对创新的绞杀。大家对越狱是为了免费、盗版软件的认识,也就不奇怪了。还有另一派人。越狱对他们来说,意味着开放。个人认为这也是Hack精神的精髓之一。事实上,iOS越狱也有自己的生态圈:Cydia就是越狱设备上App Store。越

2013-05-17 01:36:43 2857

原创 CAP和最终一致性

查阅资料整理了最终一致性、CAP相关的内容。由于图省事儿,没有做文字的整理记载,只有slides和一些查阅过的链接,大家将就着看。欢迎指正。csdn博客似乎不能内嵌js的,就不能直接展示slides了。 放个slides链接:请戳这里背景为什么系统要扩张?历史的发展路径是怎么样的?请看《系统可扩展性演化》CAP理论CAP理论的提出:分布式系统的CAP理论是2

2013-05-15 00:35:28 2114

原创 《免费》——比特经济的到来

比特经济的到来克里斯·安德森人称鸟人安德森,现效力于热火队,一直以来都是值得信赖的角色球员,板凳匪徒,内线尖兵。好了,不扯了……回到另外一个克里斯·安德森的思想世界来。长尾理论早就为人熟知了,最早就是由安德森提出的,用于解释Amazon和Netflix的商业和经济模式。虽然没有阅读过原书,只是从网络接收了一些二手甚至三手的相关观点,但也可以从当今互联网的新兴中发现许多端倪。

2013-05-13 09:40:04 1776

原创 我的MBTI职业性格测试

背景最近在看《程序员的思维训练——开发人之前能的九堂课》,其中讲到了MBTI职业性格测试的指导意义。记起来两年多以前在面试ASES的时候有做过这个测试,只可惜当时的测试结果在好几次的更换电脑的过程中不知踪影了。最近自己的思考也集中在认知领域,于是重新找到那个链接,做了一次测试。点击链接测试,正文是我的测试结果。我也使用了另一个在线MBTI来检验测试结果,相差不大。一个是ENTJ(本

2013-05-12 01:54:58 1986

原创 全分布式的Hadoop初体验

背景之前的时间里对Hadoop的使用都是基于学长所搭建起的实验环境的,没有完整的自己部署和维护过,最近抽时间初体验了在集群环境下装机、配置、运行的全过程,梳理总结到本文中。配置内存:8GCPU:i5-2400 3.1GHz;硬盘:960G系统:windows 7旗舰 64bits虚拟机:VMware7.1.1虚拟集群:T (master节点)Ubuntu11

2013-05-12 00:46:41 1734

原创 虚拟机中的网络配置

本文介绍三种虚拟机中常用的网络配置模式:NAT(网络地址转换模式)、Bridged nerworking(桥接网络模式)和Host-only(主机模式)。Network Address Translation (NAT)NAT模式使用了NAT服务来给虚拟网络提供网络连接。这种模式下,虚拟机能访问外部网络,外部无法直接连接到内部网络,除非使用端口映射port forwarding

2013-05-09 23:09:58 1619

原创 根据前中后序和层序重建二叉树(PAT1020、PAT1043)

欢迎访问新博客,这里有更好的排版哦 ; )  点击打开链接背景《二叉树的遍历(递归、非递归)分析》总结了二叉树不同遍历方式的递归和非递归实现,本文则讨论如何针对不同遍历方式的组合重建二叉树。为了简化问题的考虑,假定二叉树中不会出现重复值。列入考虑范围的有前序、中序、后序、层序遍历这四种的组合。前中后序比较常见,而层序则相对特殊一点了。PAT的1043和1020题是遍历相关的

2013-05-06 00:23:43 2069

原创 二叉树的遍历(递归、非递归)

背景二叉树是一种很基本的数据结构。很多地方能看到它的身影,比如大名鼎鼎的霍夫曼编码(好了,别问我再比如了,见识浅薄,真不知道更多了。。。)它的结构很简洁、巧妙。本文讨论二叉树的常见遍历方式的代码实现(这里贴出的是Java),包括前序(preorder)、中序(inorder)、后序(postorder)、层序(level order),进一步,考虑递归和非递归的实现方式。递归方法的实现相对

2013-05-04 23:31:24 1478

原创 PDW中的Split Querying Process

最近看了关于SQL Server的分布式处理方面的论文,觉得它提出的Polybase跟之前看过的HadoopDB有些神似,这里做个小总结(抽空再把HadoopDB的总结贴出来)。不算翻译,只是挑出自己认为是重点的部分。详细情况,还请论文查阅原文,引用中有写明出处。文章末尾有我总结的slides,可以辅助查阅。由于缺乏实践经验,很多东西未必能理解其本质。如有其他观点,还请多指教。当下的计

2013-04-25 23:24:25 2208

原创 SSH原理和使用

在linux上工作,ssh是必须要了解的技术方法。它可以建立起多台主机之间的安全的加密传输,以进行远程的访问、操控、传输数据。ssh是什么SSH為Secure Shell的縮寫。為建立在应用层和传输层基础上的安全协议。传统的网络服务程序,如FTP、POP和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-mid

2013-04-20 01:10:17 2520

原创 《谁是谷歌想要的人才?》——道理都明白,还得靠自己

道理都明白,还得靠自己关于本书藉由大多数程序员天然的对google怀有的朝圣般的向往和喜爱,开始看这本书。{% img left http://img.cnbeta.com/upimg/121231/raymon725_1451506190985.jpg 250 400 Place Kitten #2 %}书中的中文版序的标题就是“跳出框框来思考”,这种观点倒不是第一次见到了,甚至

2013-04-20 01:06:39 1860

原创 分治、时间空间的权衡:最大合的连续字串问题 (PAT 1007)

欢迎关注我的新博客点击打开链接PAT1007:给定一个整数串,找出连续子串中合最大的子串。《编程珠玑》中用专门的一章对这个问题进行了讲解。(《编程珠玑(第2版)》P73 第8章 算法设计技术)第一次在PAT上遇到这个题目时,我的思路如下:最简单的淡然是一个三层循环咯,O(n3),肯定会超时。节省时间的话,用动态规划吧。但简单的动态规划,显然是会超出内存限制的。有没有更巧

2013-04-05 21:43:52 2107

原创 PAT Advanced Level (1) Easy Problems

PAT Advanced Level (1) Easy ProblemsAPR 4TH, 2013今天做的这批题目,总的来说几乎不需要数据结构基础。几个小时刷完。1001: 数字的格式转换。第一次做的时候,将正负数分两种情况处理了,其实负数可以拆成正数加上一个负号。太简单的道理,竟然没注意。另外,Java完全可以使用NumberFormat实现格式转换。好简单的

2013-04-05 01:20:44 1493

原创 PAT Basic Level 1001-1010

PAT Basic Level 1001-1010APR 4TH, 2013背景算法开始练手了。从最简单的做起。由于实验室用的是Java,为了节省时间,也为了更好的掌握这门语言,我先用Java来实现了。在并非以比赛为目的的前提下,这并不妨碍什么,唯一的可能就是没有足够的参考代码咯。:(话说,自己也并不是特别喜欢一些“简洁”的代码。我现在的手速是不快,但过于简介的

2013-04-05 01:15:11 2700

android 贪吃蛇 源码分析

刚开始学细android开发,对于SDK Samples中的贪吃蛇开源代码进行了分析和注释。发上来大家共享~

2011-07-22

空空如也

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

TA关注的人

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