博文

今天终于顺利把eclipse的项目导入到IntelliJ IDEA中了

这东西我一直都是没搞定的...今天阴差阳错的尝试居然终于搞定了... 之前一直没搞定主要的原因就在于确实缺少这方面的教材,加上我的IntelliJ IDEA的版本又很高(11.1),导致网上根本没有类似的教材.不过终于让我摸索出来了. 首先自然还是新建项目,然后选择从eclipse中导入已有项目 然后Ctrl+Alt+Shift+S,设置Project Structure: 选择Project,设置好Project的JDK(这一步一般都会在导入项目的时候强制让你去做) 然后设置好你的输出目录,我这里保持默认就可以了 然后切换到Modules,首先把自己已有的框架添加进去,比如我现有的项目用了Spring和Hibernate,那么就直接点击+号,然后把它俩添加进来,设置不用更改,保持默认就可以了。之后再添加Web,更改Web Resource Directories,把第一个项目改为原项目的WebContent目录。 然后这个时候下方应该出现了两个让你Fix一下的错误了,点击它,让它自动生成Artifacts,它会自动的生成一个[项目名称]:war exploded的设置,保持它的设置不用改变就可以了。 理论上它现在应该添加了一个output root下有WEB-INF和Web facet resources的文件夹结构。 然后点击Run,选择Edit Configurations,添加一个Tomcat的路径,Deployment下使用我们刚才添加的那个Artifacts,然后保持默认就可以了…… 然后,如果你的项目是GBK的项目,记得在File-Setting-File Encoding里面把默认的文件编码改为GBK。 这样就应该可以正常的启动由eclipse创建的项目了。

一边学Python,一边学算法

不带着问题去学习永远是没有什么成就的。 于是为了更好的学习Python,我还是决定开始看算法的研究书,然后用Python来实现这些算法。在学习算法的同时巩固Python的知识。 今天看的是《计算机程序设计艺术》第一卷,用Python验算了欧几里得的求最大公约数的算法 算法的描述是: 有数m和n,求它的公约数的方法是: 1.找到m和n之间的最大数,求它们的余数 2.如果余数为0,则其中较小的那个数即为所求 3.如果余数不为0,则将较大的数置为较小的那个数值,将较小的那个数值置为1中产生的余数,继续进行步骤1 于是产生的程序如下(Python3): __author__ = 'Siglud' # -*- coding: utf-8 -*- def find_greatest_common_divisor(x, y): '''查找最大公约数函数 根据计算机程序设计艺术中第一节的算法来求最大公约数''' temp = x > y and x%y or y%x if temp == 0: return x > y and y or x else: if (x > y): return find_greatest_common_divisor(y,temp)#此处一定要有Return,否则还会执行一轮 else: return find_greatest_common_divisor(x,temp) x = input("请输入x的值:") y = input("请输入y的值:") print(find_greatest_common_divisor(int(x),int(y))) 值得注意的是以下几点: 如果要在Python的程序中使用中文,记得加注释:# -*- coding: utf-8 -*- ,这样才能顺利的进行调试。 在递归的调用中记得一定要用return调用下一轮的函数,否则最后还会执行一轮,这样产生的数据就是错误的了。 ...

开始了,我愉快的蹭网生活~

莫名其妙的跑到华北电力来了...然后莫名其妙的连上了他们的校园网... 结果很正常的...需要登录= = 但是我却惊讶的发现虽然我其他啥都不能用,但是却可以用Google Talk... 最初我以为是Talk连接的是其他端口导致可以使用,后来验证发现并不是如此...结果打开笔记本就发现我获取到了IPv6的地址.... 果然,现阶段的防火墙对IPv6的概念都是0....于是所有走IPv6的数据连接都可以毫无障碍......=v= 于是顺理的上了PPG(PPG一直都有IPv6的地址),然后上去求助找打了Google的HOST,甚至连Twitter都畅通无阻了.... 剩下的就等IPv6的代理,好让我畅游外网了...=3=

今天骑车骑在路上突然想到以前犯的错误

犯错误不可悲,可悲的是不知道自己犯了错 今天骑车骑在路上的时候突然想起来以前做毕业设计的时候,在座的老师的提问。 问题是:你们做的这个内网OA系统所采用的是什么样的加密?可以保证用户不会越权读取其他人的信息? 我当时的回答是Base64……在座老师的笑而不语…… 于是今天我不得不重新的更正一下:不应该用Base64,应该用RSA。 因为RSA是非对称加密,可以保证发信息的人的信息的有效性和安全性。而Base64不能算是加密,只能算是一种编码,主要用于邮件方面对附件等二进制信息的传输。与之相对应还有DES,这个是对称加密,主要用于文件保密,但不能适用在需要点对点阅读传输的情况下

莫名其妙的通过改HOST访问Blogger了

因为Blogger不支持HTTPS,而且你强制让Blogger使用HTTPS之后会导致页面无限死循环,所以虽然可以通过HTTPS访问到页面也基本没办法使用的.会提示你在Google.cn上根本就不存在Blogger这个网站. 但是这一点在某个特殊的地方可以被突破..那就是 Draft.blogger.com 首先,还是要翻墙到Blogger,同时将Draft.blogger.com设置为自己的默认,然后直接用访问http://Draft.blogger.com 这时候就不会出现报错提示了...整站也可以正常使用 当然了,对应的blogspot网站还是无法使用,但是至少不用翻墙写了...看不看得着是另外一回事了

在Windows 2008 R2下安装Oracle 10g R2

服务器有需要重装,因为本身有6G内存,为了能够发挥6G内存实际的功效,所以64bit的操作系统是必要的,但是之前有同事在64位的Win7上都无法正确的安装Oracle 10g,所以我特别留心的查看了一下到底需要注意哪些事情. 首先,要下载Oracle 10g的64位Windows版,但是Oracle 10g R2本身就不支持Windowns 2008R2这么新的操作系统,Oracle推荐是安装11g,如果一定要装,首先应该更改安装文件的配置文件: 位置位于/install/oraparam.ini文件.打开它,然后找到: #You can customise error message shown for failure, provide value for CERTIFIED_VERSION_FAILURE_MESSAGE Windows=5.0,5.1,5.2,6.0 改为: #You can customise error message shown for failure, provide value for CERTIFIED_VERSION_FAILURE_MESSAGE Windows=5.0,5.1,5.2,6.0,6.1 其实就是在末尾添加",6.1 "这句话,意思就是让它兼容Windows 6.1,也就是Windows 2008 R2. 然后就可以顺利开始安装了.安装的时候切记选择 不要安装实例 ,在安装过程中可能会提示你检查操作系统要求状态为"错误",无视它就行了. 安装完成之后,开始打补丁P8202632,其实就是Oracle 10g R2的10.2.0.5版升级包,官方网站其实在你下载Oracle 10g R2 for Windowns 2008 R2的版本的时候就提到过,如果你在WIndows 2008 R2下安装,你一定要升级这个包. "If installing on Windows 7 or Windows Server 2008 R2, then 10.2.0.5 patchset or higher must be used." Oracle本身提供了这个升级包的下载,但是需要用服务ID登陆后下载...我仅仅只是作为测试用户的...

C#编程处女行

这几天被Tomcat频繁的报告数据库异常、数据库处于不一致状态、违反协议搞得焦头烂额。 查阅遍了网上的相关资料,没有找到一个真正解决了问题的。而且诡异的是,这个问题是不时的出现的。而且哪怕是系统正在报告数据库异常,同样连接到同一台数据库服务器的本地测试服务则可以很正常的运行,让我对这种状况感到彻底无语了。好在这个异常虽然让整个系统陷入瘫痪,但是只需要重启Tomcat就可以恢复正常了。但是现在面临的难题是:客户也着重要求加强系统的稳定性了,为此专门找我谈话。所以,无论最后如何从根本上解决,起码我现在所需要做的是要先把表面工作做好。 于是最简单的办法就是写守护程序了。检查到数据库报错就马上重启Tomcat,本来像写一个服务,不过后来发现如果写Windows服务的话太难以测试了。于是只能退而求其次,写个控制台运用程序让它一直运行着就行了。 思路很简单:应用程序一打开,就开始不断的访问本机的HTTP地址,如果检查到页面报告异常,就重启Tomcat,如果没有异常,就过5分钟再检查一次。 因为是C#写作,不得不说操作Windows进程之类的应该很简单了,最终程序如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; namespace RestartTomcat { class Program { static void RebootTomcat() { System.Diagnostics.Process.Start("net", " stop \"Tomcat5\"");//关闭Tomcat进程 System.Threading.Thread.Sleep(10000);//休息10秒钟 System.Diagnostics.Process.Start("net", " start \"Tomcat5\""); ...