自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cherry_sun的专栏

为了记忆我易逝的年华

  • 博客(74)
  • 资源 (4)
  • 收藏
  • 关注

原创 VMC源码的简单分析

简单看了下VMC的源码,写一个类似提纲的东西。文章里面主要包括VMC各个代码块和他们实现的功能,通过一个命令的实现流程来分析。VMC执行一条命令的流程:1. bin/vmcvmc是一个gem包,所以我们可以在自己的gem文件夹下面找到他们,执行vmc命令其实就是运行bin目录下的vmc文件。这个文件很简单,首先require lib/cli.rb,然后调用VMC::Cli:

2012-11-27 12:40:07 4173

转载 Zookeeper开源客户端框架Curator简介

From: http://macrochen.iteye.com/blog/1366136, 作者:macrochenCurator是Netflix开源的一套ZooKeeper客户端框架. Netflix在使用ZooKeeper的过程中发现ZooKeeper自带的客户端太底层, 应用方在使用的时候需要自己处理很多事情, 于是在它的基础上包装了一下, 提供了一套更好用的客户端框架. Netf

2012-08-28 14:44:21 7825 5

原创 svn 使用

中文:http://www.php-oa.com/2008/03/12/svnminglingzailinuxxiadeshiyong.html英文:http://www.yolinux.com/TUTORIALS/Subversion.html需要在rep中建议个新的目录,然后直接使用这个目录,就使用svn mkdir http://URL/directory

2012-08-15 17:08:50 2259

原创 CloudFoundry的状态监控:varz

CF的组建其实都有自己的状态监控,我们可以通过http查看他们的状态。这个就是varz。比如我们在dea.yml配置文件中加入:status: port: 2222 user: user password: pw然后http访问http://本机的ip:2222/varz,那个ip不能是localhost或者127.0.0.1,必须是对外的ip。然后就会有验证信息,输入上面

2012-08-15 15:58:19 14715 1

原创 ruby 寻找类所在的文件

ruby的require很强大,自己能找到各种依赖。然后有时候想找到某个类或者module所定义的文件。这个时候可以使用ruby1.9+的source_location方法。require 'csv'p CSV.new('string').method(:flock)# => #CSV.new('string').method(:flock).source_location#

2012-08-10 11:04:31 2710

原创 Cloud Foundry新版router源码分析

调整格式太费力了,这里直接粘帖过来了,原文我写在自己的博客上了:http://lory-yang.com/2012/08/06/cloud_foundry_router/。Cloud Foundry在几个月前改进了它的router,我们可以在新版cloudfoundry解密中看到它的介绍:上个版本中。Router作为一个nginx脚本存在。所以的请求都必须经过Ruby代码,然后

2012-08-06 13:24:34 4297

原创 cloud foundry 默认文件路径列表

本文致力于列一份cloudfoundry默认的文件分布路径列表,方便大家查询。vcap代码:/root/cloudfoundry/vcapconfig文件:/root/cloudfoundry/.deployments/devbox/configlog:/root/cloudfoundry/.deployments/devbox/log安装的ruby gems(可以去那

2012-08-01 14:51:27 4215 2

原创 RVM初次见面

今天发现在centOS安装1.9.*版本的ruby非常不方便,磊哥推荐用RVM,所以学习一下。rvm主要可以负责ruby版本的安装和切换。就比如在centOS上面,ruby1.9版本安装不方便,如果使用rvm,就可以:rvm install 1.9.3rvm use 1.9.3就可以成功切换了。当然RVM也支持更多的功能,比如在一个项目中,添加一个.rvmrc文件,就可以通过这个文

2012-07-26 16:53:30 4086

原创 关于cloud_foundry自己的ruby, gem, bundle

很早就大致了解cloud_foundry有自己的ruby,而不是使用系统提供的ruby。并且还有两个版本的ruby,今天终于遇到了,大致搞清楚了。他们在哪里首先我们要知道cloud_foundry把自己的ruby,gem装到哪里去了,这个可以去看config目录下面的deployment_info.conf文件。里面包含了一个ruby_bin_dir变量。这个路径就是ruby所在,在本机上

2012-07-24 15:58:43 4913

原创 cloud controller和health_manager can't connection to server when starting

电脑挪了个地方,发现cc和hm启动的时候直接无法连接server了,exception是在postgresql的类当中抛出来的。经过磊哥的帮忙,发现问题在于postgersql的配置文件出现问题了。在/etc/postgresql/8.4/main/postgresql.conf文件最后,有一个监听ip,localhost似乎完全没有作用,然后因为换了地方,ip变动,所以原来的ip也不对了,因

2012-07-24 14:35:16 3221 1

原创 cloud controller 源码分析(包括Ruby on Rails项目结构分析)

本文记叙我作为一个完全不懂ror(ruby on rails)的开发者,了解ror以及cc所需的知识。全文包括了cloud controller的代码结构,MVC架构分析,最后有一个例子帮助分析。目录结构cc是一个ror项目,所以是按照ror的目录结构来安排的,如下所示。app:是web应用的主程序目录,包含了mvc组件的代码config:runtime rules,r

2012-07-16 16:58:11 5193 1

原创 ruby&python 从CGI 到 WSGI 到 Rack, 顺带Sinatra

本篇只是学习篇,我贴了一些阅读的学习链接,然后加上一些comments。CGIhttp://zh.wikipedia.org/wiki/%E9%80%9A%E7%94%A8%E7%BD%91%E5%85%B3%E6%8E%A5%E5%8F%A3http://www.hudong.com/wiki/CGICGI让人感觉就是一个很简单的远程脚本调用。他的概念就是:我在服务器端有

2012-07-16 16:57:41 4169

原创 Ruby gem install Error(mkmf.rb can't find header files for ruby at...)

安装gem的时候遇到这个错误:ERROR: Error installing bluecloth: ERROR: Failed to build gem native extension./System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/rubyextconf.rbmkmf.rb can't find h

2012-07-13 12:57:40 18248

原创 Cloud Foundry vcap_dev start过程分析

我们会通过bin/vcap_dev start命令来启动所有的cf组件,当然,也可以指定某些组件,比如bin/vcap_dev start health_manager。下面大致研究下流程。1. vcap_dev文件首先是vcap_dev文件,前面主要处理了命令参数以及路径等问题。最后可以看到exec_cmd("#{ruby_binary} #{vcap_launch} #{c

2012-07-09 17:20:48 3915

原创 cloudfoundry dev setup 分析以及chef学习

cf通过chef可以部署单节点实例。只需要按照http://support.cloudfoundry.com/entries/20407923-single-multi-node-vcap-deployment-using-dev-setup的介绍即可安装。本文就尝试着分析一下整个部署的流程,同时也对chef进行一些学习。vcap_dev_setup好了,首先从最外部的脚本进入,就是bin

2012-07-03 17:03:52 7684

原创 CloudFoundry DEA运作源码分析

这篇文章结构比较糟,我在http://lory-yang.com/2012/09/09/cloud-foundry-dea/中做了一些改进,可以去那里看看。另外我的博客整体搬迁到独立地址了:lory-yang.com,欢迎大家来访问本文是对Cloud Foundry中的DEA组件源码的一些分析。有点流水帐的感觉,就事论事吧,同时因为本人能力有限,而且研究不深,错误在所难免。诸位就随便看看,

2012-06-27 17:16:08 5841 1

原创 Openshift源码与运作方式初步分析

大致看了一下源码,然后参考redhat给的liveCD,分析出一些Openshift的大致运作方式。首先:openshift是通过打包成RPM来安装的,redhat上面的https://openshift.redhat.com/community/wiki/rebuild-openshift-origin-packages就是再说如何将源程序build成为RPM文件。RPM大致介绍可以看htt

2012-05-25 17:20:54 6450

原创 OpenShift架构

参考redHat的官方文章翻译而来:https://openshift.redhat.com/community/wiki/architecture-overviewOpenShift OriginOpenshift Origin是Openshift的开源版本,可以用来创建、部署以及管理云端的app。根据每个app使用到的服务的类型(数据库、语言环境),Oepnshift会为你提供一个文件

2012-05-24 16:39:17 10470

原创 MongoDB提要二

数组定位修改器:比如comments键对应的值为数组,那么可以使用comments.0.author 来定位一个数组元素,同时可以使用$符号来代替0,表示所有符合查询条件的第一个元素upsert,update的第三个参数,如果设为true,如果没有匹配的文档,会创建一个新的,然后执行updatesave也基本同上,只是参数是一个文档update第四个参数,表示修改所有满足的文档,默认为false,

2012-05-19 23:50:30 2519

原创 MongoDB提要一

恩,把MongoDB的要点记下来面向文档:没有模式容易扩展:分割数据、负载平衡、MapReduce聚合使用JS语言交互,利用JS的强大功能。shell是个完整的js解释器不支持join和复杂的多行事务性能:使用自己的交互方式,用空间换取性能,尽可能将服务器端的处理逻辑推给客户端数据结构类似于JSON,添加了更多的数据类型由于JS数据类型的限制,所有通过Shell覆盖的文档数字都会变成双

2012-05-19 18:22:03 2566

原创 web应用的log4j配置

完全不懂,大致看了一会儿,发现一些信息:web应用的log4j使用基本上都采用:新建一个servlet,这个servlet在init函数中为log4j执行配置。一般就是读入配置文件。所以需要在web.xml中为这个servlet配置,同时设定load-on-startup为1。 这个servlet配置log4j就是读出配置文件,然后调用configure函数。这里有两个问题:一、需要知

2012-05-18 16:17:47 2113

原创 Could not find postinst hook script [update-grub] 错误

在执行apt-get和系统更新时都遇到了一个错误:update-initramfs: Generating /boot/initrd.img-2.6.32-41-genericNot updating initrd symbolic links since we are being updated/reinstalled (2.6.32-41.88 was configur

2012-05-17 10:21:28 1485

原创 zoj 1554 Folding

DP题,还是比较容易想到解法的,虽然我的解法略微弱了点。一看到字符串处理就可以想到把字符串分隔开处理,所以可以想到解决方案:对于一个字符串,从每个位置来分隔,计算此种分隔的folding长度,那么取最小即可。这里唯一麻烦的是分隔开的两端如果可以一起再fold起来,那就会更短,需要特殊考虑。我算法用了一个名词叫:可聚合度。意思就是当前字符串可以表示成n(X)的样子,n是数字,X是字符串,那么可聚

2012-05-13 21:18:11 1034

原创 zoj 1039 Number Game

恩,做这道题目是因为有人把它归类到dp题中,而最近在专攻dp。这个叫mask dp。不过和我眼中dp的一般算法不太一样。说明我土了。一般dp会先算最小子问题的答案,然后利用小的资问题往大了算,最终得到答案。但是这道题目其实算是打表,就是每当算出一个子问题,就把答案记录下来,以备后用。然后dp的转化不是很难,主要要想到一点:必赢和必输是互相转化的两个状态(如果当前必赢,那么我采取必赢步骤之后,下

2012-05-13 21:10:45 1174

原创 zoj 1499 Increasing Sequences

都说经典dp,但是居然没有反应过来。dp方式和最长递增子串这种问题类似:从首位开始长度为n的子串,假设可以获得的最小的最后位数字为f(n)。那么f(n)可以通过比n小的子串得到。具体就不说了然后这样可以知道最后能够得到最小的末尾数是多少。但是题目对于多种解情况还有要求,如果有多个解,那么要求前面的数越大越好。恩。。。比较难以想象,这里还是可以用dp解决。就是反过来而已,就是从最后一位往前推,其

2012-05-08 20:16:51 1338 2

原创 zoj 1107 FatMouse and Cheese

恩,比较简单的dp题,容易想到转移方程的转移路线,就是按照cheese从小到大来做,每一个位置可以由附近奶酪数小于它的位置来推出。恩,所以需要为cheese数量排序,然后从小到大开始。有几个地方可以加速,可以参考:http://www.fookwood.com/archives/188

2012-05-06 23:47:39 789

原创 zoj 1013 Great Equipment

恩,DP题,我以前一直认为dp是那种两次方复杂度的解决方案,看到这题之后领悟了,其实只要能把复杂度降下来就可以了。这道题目算是背包问题,有两个限制条件:weight和size,然后有多个背包。最后呢,这些装备还可以合体之后升值。恩。。。我们用dp来解决一个背包的w,s是很简单的,但是这里就不行了,因为有好多背包。我们的转移方程是在第n-1个和第n个背包之间转换的,意思就是我知道前面n-1个背包全部

2012-05-06 15:16:42 1918 1

转载 Java 7七大新功能预览

<br />From: http://www.blogjava.net/ywj-316/archive/2011/03/18/346539.html<br /> <br /><br />Java 7已经完成的7大新功能:<br />      1 对集合类的语言支持;<br />      2 自动资源管理;<br />      3 改进的通用实例创建类型推断;<br />      4 数字字面量下划线支持;<br />      5 switch中使用string;<br />      6 二进制字

2011-03-19 19:41:00 708

原创 zoj 1195 Blowing Fuses

血一样的教训:过于复杂的循环编译器无法优化,因此将IO操作分布于一个复杂的for循环中会造成性能的急剧下降<br />#include<iostream>#include<stdio.h>#include<math.h>using namespace std;int main(){#ifndef ONLINE_JUDGE freopen("input.txt", "rt", stdin); freopen("output.txt", "wt", stdout);

2011-03-17 22:44:00 1135

原创 zoj 1133 Smith Numbers

<br />一道比较简单的题目,题目意思比较明确,没必要多解释。但是我读题的时候还是着急了点,中间的一段直接忽略的,导致没有看到素数的影响,浪费了不少时间。<br />寻找Smith Number基本上就是寻找素数的方法,使用试除法,比较简单。也就是用素数不断的除啊除,除到差不多了就可以搞定了。题目的主要难点在于时间,有可能会超时。做题前建议先看看status,这样可以发现TLE的比较多,一般这道题目就是需要做好时间优化。好了贴下代码,结合代码说说我的解法。<br />#include<iostream>

2011-03-16 23:24:00 1006

原创 zoj 1163 The Staircases 动态规划(dp)

zoj 1163 The Staircases 动态规划(dp)背包问题 滚动数组 空间复杂度优化

2011-03-12 23:42:00 1902

原创 dividing zoj 1149, PKU 1014

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=149这道题目真是打击人的自信心啊,在题目分类中被分为dp(动态规划),但是又不是随便dp的出来的。Google了好久,发现一般有以下几种解法:基本的动态规划双向dp居然还有人直接迭代搞定的。他的代码中优先考虑了sum/2为奇数而1,3,5的数量同时为偶数的情况,然后迭代。我没有验证,当然也没必要验证,因为这显然很投机。就像完全不懂的人买了一只股票,然后涨了,第二天还在那里沾沾自喜,表明自己

2011-03-10 00:36:00 1234

原创 ZOJ 1168 Function Run Fun

<br />http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1168<br /> <br />题意比较简单,就是用一些给定的逻辑计算结果。由于有很多重复计算所以需要建个表,把数据存起来。<br />这道题目最主要的问题是输入输出对速度的影响,因为测试数据数量相当惊人,如果用比较费时的cin cout,那么必然超时,所以必须使用比较快速的输入输出,比如scanf,printf,然后就过了。通过这道题目,我知道了这两种输入法居然有这么大的

2010-12-13 23:07:00 901

原创 ZOJ 1154 Niven Numbers

<br />http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1154<br /> <br />题意: 提供一系列数以及各自的进制数,请判断每个数是否能被 每个位上的数字只和 整除。<br />解题思路:首先把除数,也就是每个位上面的数字加起来,然后把数字转成十进制,取余一下,OK。<br />我在代码中做了几处优化,防止计算溢出:<br />1. 转化为十进制时,每个位上的数会乘以一个相应的基数,我把这些基数先取余了一下(baseMo

2010-12-11 00:24:00 1342

原创 ZOJ 1188 DNA Sorting

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1188题意:本题提供了一个string的reverse值:对string的每个位上的字符,在其后面如果有一个字符小于它,reverse值加一。本题需要对一系列string(DNA序列)按照reverse值由小到大排序。当有相等情况时,按照输入顺序排序。题目没有太大难度,一般来讲需要自行进行比较、排序。然后注意相等情况的判断。我这道题投机了一下,用了C++的map的自动排序,然后对key

2010-12-11 00:15:00 1053

原创 ZOJ 1109 Language of FatMouse

<br />http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1109<br /> <br />简单的MAP操作题。题意是fat有一种自己的语言,所以有自己的词典,每个fat的单词对应一个人类单词。输入是个词典。然后给你一系列fat的单词,通过词典给出对应的人类单词,如果找不到,输出eh。<br />这个时候就体现出高级语言的便利了,如果是Java、C++之类的,方便多了,C会麻烦很多,需要自己操作数组之类的数据结构。<br />注意:

2010-12-11 00:05:00 1318

原创 zoj 1101 Gamblers 为什么总是WA?

<br />http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=101<br />一道被各种人认为简单题的题,但是我WA了将近10次,我觉得有必要写出来,以供有需要的人参考。<br /> <br />这道题就是暴力解,需要的只是少量的优化,但是在优化过程中还是出了很多问题,其中的逻辑需要很严密。从另一方面可以看到ZOJ内部的测试数据很bt。好了,下面就贴上我改了很多仍然WA的代码,照着代码来分析一些容易出错的地方。<br />#include

2010-12-05 22:31:00 1749 5

转载 Eclipse 插件安装方法

<br /><br />from:http://developer.51cto.com/art/200909/154964.htm<br />做为当下最流行的开源IDE之一,Eclipse的一大优势就在于其无数优秀的插件。一个好的插件可以大大的提高我们的工作效率,学习如何安装Eclipse插件自然也是必修课了。下面介绍Eclipse插件的安装方法。<br />Eclipse插件的安装方法大体有以下三种:<br />第一种:直接复制法<br />假设你的Eclipse的在(C:/eclipse), 解压你下载

2010-08-10 08:55:00 720

原创 Windows下PHP开发工具WAMP

<br />http://www.wampserver.com/en/。 WampServer集成了Apache, MySQL和PHP,可以用来简单的PHP开发起步。今天刚装,先试试,好不好用。

2010-06-25 14:49:00 3456

原创 Mxml文件打开出错 Adobe flex eclipse plugin 错误信息:Could not open the editor: Assertion failed

安装了Adobe flex的eclipse插件之后发现mxml文件无法打开,出现了Could not open the editor: Assertion failed的错误。网上查了一下之后发现了解决方法。http://www.tekool.net/blog/2008/06/28/flex-builder-3-plugin-dont-work-with-eclipse-34/这是个英文的

2010-01-16 13:45:00 5981 3

java socket Bio Nio example

几个用java写的小程序,实现了bio和nio

2012-09-08

Hadoop应用程序

Hadoop的小程序,看代码比较方便,如果要运行,那么需要加很多jar build path,这些jar包大部分都是hadoop的jar。

2011-01-10

Hadoop应用程序

使用Hadoop API写的一个简单的Map Reduce程序。是我一门课的作业。

2011-01-10

Flex eclipse 插件解决Mxml打开问题

如果你的flex插件出现mxml无法打开的问题,请下载此文件,同时参考:http://www.tekool.net/blog/2008/06/28/flex-builder-3-plugin-dont-work-with-eclipse-34/或者:http://blog.csdn.net/cherry_sun/archive/2010/01/16/5198991.aspx

2010-01-16

空空如也

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

TA关注的人

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