由于另一个程序或正在运行的服务可能正在使用网络地址转换组件(Ipnat.sys)
今天在服务器上遇到了这个问题,在CSDN上也没找到解决方法,
后来自己解决了,步骤如下:
1, 开始–>管理工具–>服务 找到Windows Firewall/Internet Connection Sharing (ICS) 并启动这个服务
2,开始–>控制面板–>Windows防火墙 启动就可以了.
Popularity: 10% [?]
今天在服务器上遇到了这个问题,在CSDN上也没找到解决方法,
后来自己解决了,步骤如下:
1, 开始–>管理工具–>服务 找到Windows Firewall/Internet Connection Sharing (ICS) 并启动这个服务
2,开始–>控制面板–>Windows防火墙 启动就可以了.
Popularity: 10% [?]
如果你常在不同地方开发,代码维护是一个问题有的时候老是做重复性的工作,如果做好版本控制的话,也许就不会这么囧了…为了更好的维护代码,可以在code.google.com上建立一个svn projects代码仓,网上可以找到两个subversion服务的提供者:OpenSVN和Google Code上的Project Hosting 。这两个网站你都可以建立新的repository放你的project (不过好象Google Code一个project的repository限制空间最多只能使用100 MB)

在Google Code的左侧导览列中点选Project Hosting便会来到上面的网页,这时再点选Create a new project就可以填入你project的相关资料,这样Google Code就帮你产生了一个repository了。设定好之后你只要先知道你repository的位址(到你Project首页的Sources里去 看,会是https://<你project名称>.googlecode.com/svn/)就可以了,同时你也要知道你在Google Code的密码,到右上角的My Profile -> Settings里就会有Google Code产生的密码,这个也要记住,因为当你在commit的时候会需要用到。

在Windows上,可以使用一个有图形化介面的subversion软体:TortoiseSVN,我的上篇日志介绍过用TortoiseSVN来升级wordpress,安装这个软件后,它就会在你资源管理器的右键选单中加入subversion的相关指令,相当方便易用。SVN Checkout安装好TortoiseSVN之后,
你可以选择你要存放project的位址,然后在该处按右键选SVN Checkout…,再填入你project repository的网址及要储存的资料夹,输入完帐号及密码后, repository上的档案就会下载下来了。注意你repository下会事先建立好三个目录:branch、trunk及tags,如果你还不是很熟悉版本控制的话,就先把你的code放在trunk目录下就好了,所以在checkout的时候网址应该输入:https://<你 project名称>.googlecode.com/svn/trunk/,然后本地端再输入你project的名称就好,这样一来你就有一份本地端的repository了。



接着,你就可以在这个目录下放你project的资料了,当你决定要commit到伺服器上的repository时,只要在project的目前上按右 键,选择SVN Commit…,这时就会跳出一个对话盒问你要加入或修改哪些档案,然后也可以让你填入log好记录这次的修订版本做了什么修改,方便日后你要取出某 个修定版本时作参考。
如果不公布代码? 到这里http://code.google.com/p/**your project**/adminAdvanced设置 delet project 则提示” This project is scheduled for deletion: Project owner request.”这样别人就不能check out然后你可以添加一些您信任的自己人的gmail 到 Project Members 中的 Project owner在project owner中的人就可以访问update了。
Popularity: 34% [?]
经简绍说installsheild不错,打包方便快捷,于是要来软件,安装的是InstallSheild x英文版。
如下图,这是打开的见面,红线是我画上的,点击这条语句就开始新建工程了。

弹出对话框中默认的InstallScript Project(如下图) 正是我们所需(以Script的方式来完成更多任务)。填入你要打包的项目名,和要释放的位置(打成的包要放的位置),(什么?你说我打的怎么是TTplay,不好意思,TTplay确实是别人的,要先试验再动真格的,要不就元气大伤了。把安装了的TTplay打成包不是很简单的试验方式么。一来就把你几百兆的软件拿过来打,又慢风险又大。你也不知道刚用的软件会发生些什么事故,保险起见,把安装在你电脑里的整个TTplay的文件夹考到一个地方备用。才2点几兆,尽情试验吧)。点击Ok进入下一步。

于是你就见到了Project Assistant和install Designer.如下图所示
我们就叫Project Assistant为工程助理吧,用工程助理就可以完成一般的打包工作,只要点击最下排图标,从左至右来按向导填写就行,网上应该有简绍的,但我还是要唠叨,好像这儿会更有特色。你也完全可以在install Designer里全部完成,但通常都是结合着用。

Project Assistant共九步形成一个安装流程。
点击第一个Application Files,如下图
以此是公司名称、应用软件名称、版本、公司首页。最后的选项是是否自动提醒更新。
生成的软件安装后会以你的公司名为文件夹,应用软件名称为其子文件夹,接着是你的放进去的文件夹(后面会讲到),很多时候你可能不需要这么多文件夹嵌套,像我打包的文件夹就不要应用软件名称,否则,所设置的环境变量就不好处理了,但这的试验就不用管了,后面具体讲。你要根据你所需的文件结构来决定。

点击installation Architecture,如下图,只有一个选择项,问你是否要个性化安装,意思就是可以选择部分安装,我们就不管了,我们都是要全装的,哈,而且这儿也很简单。(还是说说吧,点选yes,点击New,添加文件夹,取个名字,Set Default来设计你选定要做默认安装的,下一步骤是选定你要打包的文件,其中All Application下拉框选项就会发现刚才你new的文件,选定谁,当前放进的包就属于它了,好像有点抽象,看看想想就应该明白了)

点击Application Files看到如下图
我们要全安装所以用All Application Data,下面的Destination Computer中的重点文件夹是Application Target Folder,其意义就是客户所选路径+公司名+软件名这样一个路径。
Program Files 是绝对路径”C:”Program Files“群里有哥们为要放一些文件到这个绝对路径,问了几天人,告他用Indesigner中的Program Files,他没明白,效果和项目助手的一样。
Windows也是绝对路径,”C:”WINDOWS“下属分别为”C:”WINDOWS”Fonts“和”C:”WINDOWS”system32”

这儿还没操作呢,开始操作,点选Application Target Folder,点击Add Folders 选定你打包的文件夹,确定就会在Application Target Folder里显示你的文件结构,这可是个慢动作,文件越多就越慢,实际它只是记录了你的文件结构,并非复制。结果如下图:
如果你看不到,很正常,这是它的一个bug,点一下其他的步骤,再点回来就看到了(点回来有时也要你一些时间,bug呀)

点击下一个步骤Application Redistributables,如下图:
就是问你用不用ODBC、sql Server 2000 等等的,都不管了,我们喜欢用开源的。

点击下一步骤Application Shortcuts,即应用程序快捷方式,如下图

它自动帮你提起你所给文件夹下的exe,你的软件要没exe就先生成exe,以后会讲到
你的问题出来了,要是exe不在所给文件夹下怎么办,你就点new,弹出窗口展示的是DefaultFeature里的文件分类(如下图),文件分类和前面讲的一样,Application Target Folder 是客户所选路径+公司名+软件名这样一个路径……回忆起来俺就不废话了。大部分情况点击Application Target Folder到你提供的文件夹里找到你的exe就有了。

点选你的exe,然后在右边的复选框选择是否创建开始菜单快捷方式和桌面快捷方式(看下图)。点选并删除你不用的exe。你可能觉得这样方式真好,后面你会发现工程助手的方式不如Install Designer 的方式好,工程助手可能会令你反复弄来弄去。

下一步Aplication Registry,如下图:
你就需要选择一个根目录,然后不断点右键新建选项,最后定变量-数值对就行

如下图,新建一次后,再次新建里就可以新建各种值,或者选择导入Reg的方式,具体自己研究了。也是Install Designer 的方式更好。这儿什么都不需要注册,把刚加的删了。

下一步Installation Interview 如下图:
共四个选项,第一个选项是是否要license,是的话你要提供一个txt的license或者写一段脚本来处理。我们选择否。
第二个选项是是否填入公司名和用户名,不用了,我们这不用那么麻烦客户。
第三选项说是否让客户选择安装目录,默认就行(yes)。
第四选项说是否同意客户只安装部分。也默认就行(yes)。

下一步骤Installation Localization 安装本地化,如下图:
选上简体中文。All String Data等功能和All Application Data的意义是一样的就是看你要整个处理还是安装某部分才这样处理。我们用默认的就行。

最后一步Build Installation 就是生成你的软件了。如下图:
三个选项意义就是生成单个执行文件、网络版、光盘版。
点击Build Installations就开始建造了。这个过程也有点慢,毕竟要把所有文件存储到一个dat文件里。

结果如下图:

点击setup.exe就可以安装了。
当然这样的效果可能不如你想象的好,例如点开可能是英文的,你就急了,不是本地化了吗?你忘了看,同时选中的English上有个红勾,表示它是默认语言,要么你把英语的去掉,要么你上Install Designer处理。
如果你已经安装过这个setup.exe,再次点击时它就会提醒你是要修改、修复还是卸载,如下图:

这就是InstallSheild用向导打包软件的简单过程。你应该知道有exe的软件怎么打包了,下次讲InstallSheild用install Designer的方式,它能满足你更多的需求。能解决你在工程助手这令人抓狂的问题。
错漏之处,谢谢指正。
Popularity: 21% [?]
在SIP项目设计的过程中,对于它庞大的日志在开始时就考虑使用任务分解的多线程处理模式来分析统计,在我从前写的文章《Tiger Concurrent Practice –日志分析并行分解设计与实现》中有所提到。但是由于统计的内容暂时还是十分简单,所以就采用Memcache作为计数器,结合MySQL就完成了访问控制以及统计的工作。然而未来,对于海量日志分析的工作,还是需要有所准备。现在最火的技术词汇莫过于“云计算”,在Open API日益盛行的今天,互联网应用的数据将会越来越有价值,如何去分析这些数据,挖掘其内在价值,就需要分布式计算来支撑海量数据的分析工作。
回过头来看,早先那种多线程,多任务分解的日志分析设计,其实是分布式计算的一个单机版缩略,如何将这种单机的工作进行分拆,变成协同工作的集群,其实就是分布式计算框架设计所涉及的。在去年参加BEA大会的时候,BEA和VMWare合作采用虚拟机来构建集群,无非就是希望使得计算机硬件能够类似于应用程序中资源池的资源,使用者无需关心资源的分配情况,从而最大化了硬件资源的使用价值。分布式计算也是如此,具体的计算任务交由哪一台机器执行,执行后由谁来汇总,这都由分布式框架的Master来抉择,而使用者只需简单地将待分析内容提供给分布式计算系统作为输入,就可以得到分布式计算后的结果。
Hadoop是Apache开源组织的一个分布式计算开源框架,在很多大型网站上都已经得到了应用,如亚马逊、Facebook和Yahoo等等。对于我来说,最近的一个使用点就是服务集成平台的日志分析。服务集成平台的日志量将会很大,而这也正好符合了分布式计算的适用场景(日志分析和索引建立就是两大应用场景)。
当前没有正式确定使用,所以也是自己业余摸索,后续所写的相关内容,都是一个新手的学习过程,难免会有一些错误,只是希望记录下来可以分享给更多志同道合的朋友。
搞什么东西之前,第一步是要知道What(是什么),然后是Why(为什么),最后才是How(怎么做)。但很多开发的朋友在做了多年项目以后,都习惯是先How,然后What,最后才是Why,这样只会让自己变得浮躁,同时往往会将技术误用于不适合的场景。
Hadoop框架中最核心的设计就是:MapReduce和HDFS。MapReduce的思想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapReduce就是“任务的分解与结果的汇总”。HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,为分布式计算存储提供了底层支持。
MapReduce从它名字上来看就大致可以看出个缘由,两个动词Map和Reduce,“Map(展开)”就是将一个任务分解成为多个任务,“Reduce”就是将分解后多任务处理的结果汇总起来,得出最后的分析结果。这不是什么新思想,其实在前面提到的多线程,多任务的设计就可以找到这种思想的影子。不论是现实社会,还是在程序设计中,一项工作往往可以被拆分成为多个任务,任务之间的关系可以分为两种:一种是不相关的任务,可以并行执行;另一种是任务之间有相互的依赖,先后顺序不能够颠倒,这类任务是无法并行处理的。回到大学时期,教授上课时让大家去分析关键路径,无非就是找最省时的任务分解执行方式。在分布式系统中,机器集群就可以看作硬件资源池,将并行的任务拆分,然后交由每一个空闲机器资源去处理,能够极大地提高计算效率,同时这种资源无关性,对于计算集群的扩展无疑提供了最好的设计保证。(其实我一直认为Hadoop的卡通图标不应该是一个小象,应该是蚂蚁,分布式计算就好比蚂蚁吃大象,廉价的机器群可以匹敌任何高性能的计算机,纵向扩展的曲线始终敌不过横向扩展的斜线)。任务分解处理以后,那就需要将处理以后的结果再汇总起来,这就是Reduce要做的工作。

图1:MapReduce结构示意图
上图就是MapReduce大致的结构图,在Map前还可能会对输入的数据有Split(分割)的过程,保证任务并行效率,在Map之后还会有Shuffle(混合)的过程,对于提高Reduce的效率以及减小数据传输的压力有很大的帮助。后面会具体提及这些部分的细节。
HDFS是分布式计算的存储基石,Hadoop的分布式文件系统和其他分布式文件系统有很多类似的特质。分布式文件系统基本的几个特点:

图2:HDFS结构示意图
上图中展现了整个HDFS三个重要角色:NameNode、DataNode和Client。NameNode可以看作是分布式文件系统中的管理者,主要负责管理文件系统的命名空间、集群配置信息和存储块的复制等。NameNode会将文件系统的Meta-data存储在内存中,这些信息主要包括了文件信息、每一个文件对应的文件块的信息和每一个文件块在DataNode的信息等。DataNode是文件存储的基本单元,它将Block存储在本地文件系统中,保存了Block的Meta-data,同时周期性地将所有存在的Block信息发送给NameNode。Client就是需要获取分布式文件系统文件的应用程序。这里通过三个操作来说明他们之间的交互关系。
文件写入:
文件读取:
文件Block复制:
最后再说一下HDFS的几个设计特点(对于框架设计值得借鉴):
下面综合MapReduce和HDFS来看Hadoop的结构:

图3:Hadoop结构示意图
在Hadoop的系统中,会有一台Master,主要负责NameNode的工作以及JobTracker的工作。JobTracker的主要职责就是启动、跟踪和调度各个Slave的任务执行。还会有多台Slave,每一台Slave通常具有DataNode的功能并负责TaskTracker的工作。TaskTracker根据应用要求来结合本地数据执行Map任务以及Reduce任务。
说到这里,就要提到分布式计算最重要的一个设计点:Moving Computation is Cheaper than Moving Data。就是在分布式处理中,移动数据的代价总是高于转移计算的代价。简单来说就是分而治之的工作,需要将数据也分而存储,本地任务处理本地数据然后归总,这样才会保证分布式计算的高效性。
说完了What,简单地说一下Why。官方网站已经给了很多的说明,这里就大致说一下其优点及使用的场景(没有不好的工具,只用不适用的工具,因此选择好场景才能够真正发挥分布式计算的作用):
使用场景:个人觉得最适合的就是海量数据的分析,其实Google最早提出MapReduce也就是为了海量数据分析。同时HDFS最早是为了搜索引擎实现而开发的,后来才被用于分布式计算框架中。海量数据被分割于多个节点,然后由每一个节点并行计算,将得出的结果归并到输出。同时第一阶段的输出又可以作为下一阶段计算的输入,因此可以想象到一个树状结构的分布式计算图,在不同阶段都有不同产出,同时并行和串行结合的计算也可以很好地在分布式集群的资源下得以高效的处理。
Popularity: 17% [?]
这本电子书是原版《开源技术选型手册》的精选版,包括Web框架篇、动态语言篇、Ajax开发篇、版本控制篇、项目管理篇(AOP)、面向方面编程篇和面向服务架构篇(SOA)等,作者均为 InfoQ中文站编辑。
结合本书面向中高端技术人员选型手册的定位,《开源技术选型手册》编委会将本书的版式进行了严格统一,在每一个篇章开始部分你会先看到一个关于该领域技术的综述,从中可以了解到该领域的过去、现在和未来;然后在对该领域单个技术的探讨中,你会看到该技术的活跃度,了解到它在社区中是否很受欢迎,文档是否齐全等;通过简介和上手指南,你可以简单了解到该技术是什么,主要解决什么问题,使用是否方便等;资料参考一般包括网络和图书两部分,你可以了解到目前社区对该技术的支持;最后的社区观点是告诉你使用该技术的人对其是如何评价的,有些评论来自于社区大牛,有的来自一线开发人员,它们可以作为你技术选型的有力参考。另外值得一提的是,该书的所有作者还将他们的稿费全部捐献给了地震灾区,向他们致敬!
Popularity: 14% [?]
如果通过点击一个按钮便自动生成所有的文档,是不是觉得非常惊奇?
以下便是抛砖引玉,介绍几个opensource的生成文档工具:

图 2. 用 SchemaSpy 和 Ant 创建的 ERD

图 3. 使用 Ant、Grand 和 GraphViz 生成 Ant 目标的图示



Popularity: 11% [?]
下载地址http://download.sybase.com/eval/PowerDesigner/powerdesigner12_eval.exe
修改安装目录下的pdflm12.dll文件,使用二进制编辑器打开此文件,查找:83 C4 14 8B 85 E4 FE FF FF将此字符串改为83 C4 14 33 C0 90 90 90 90
Popularity: 10% [?]
最近评论