ubuntu 6.06上的subversion是1.3.2版本的, 服务器上的subversion旧就旧点, 本来也没有什么问题,最近用mercurial了,心里想要是能把mercurial和subversion结合起来多好阿,在自己电脑上, 笔记本电脑上, 使用u盘可以开发时可以小步提交到本地, 到了公司再提交到subversion服务器,以前我都是带个电脑过来直接同步代码到笔记本电脑上去, 省得把个u盘倒来倒去。
以前从网上看到mercurial和subversion结合的方法, 看到那长段的说明文字,就感觉到太复杂了, 而hgsubversion目前还不成熟; 昨天从网上看到有人说现在hgsubversion可以用了, 于是想试一下。
编译安装好mercurial之后, 也配置好了hgsubversion, 连接到客户段, 发现svnclone下来没有东西, 而hgsubversion提示说服务器subversion太老, 小于1.4, 心想是不是subversion太老的缘故, 后面才知道不是这个原因(其实是因为我用hgsubversion去clone svn的trunk分支了, 而hgsubversion要求版本库的布局必须是branches, tags, trunk, svn clone也必须针对根目录来做, 这些是后面偶然发现总结的),于是决定要升级subversion服务器, 这一个决定便是我接下来24小时痛苦的开始;
上到subversion的主页, 看到1.6版本近日刚刚稳定放出, 心想, 既然要更新就更新到最新版本吧, 根据INSTALL说明, 下载了源代码包还有deps包,编译安装成功,客户段一连发现还是提示版本库过老,以为必须服务器上的版本库更新才行, 所以就挑了一个小点的代码仓库进行了版本库升级操作,这么一搞, 客户端居然打不开版本库了,这时庆幸自己只是用了一个很小的版本库做的实验。停下来想了一下, 通过svnserve访问没有问题, 才想到我是通过apache的mod_dav_svn访问代码库的, 那么mod_dav_svn可能没有更新, 在编译后的目录中找了一下,果然没有,又仔细看了INSTALL说明, 才发现要apx在路径中才可以自动编译mod_dav_svn和mod_authz_svn模块,用aptitude查了一下, 发现apache2-dev没有安装,安装之后再编译configure时提示说apache和APR版本不兼容, 好好看了一下subversion-deps中的内容, 发现其中带了apr和apr-utils依赖,是不是和系统中那些相关dev软件包冲突呢? 重新解压了一个subversion源码包,这次不解压依赖,这个时候configure找到了系统中的apr, 版本为0.9.7, 但是还是提示不兼容, 比较晕倒, 网上一顿狂搜, 找到一个老外的博客说安装1.4.3成功了,根据他博客中说的,我总怀疑我有那个依赖没有安装, 找到ubutnu包查询的网站, 好好看了下还是不行, 这样左搞右搞从下午搞到晚上10点还没搞定, 下午到了办公室继续尝试, 突然想到是不是版本过高?于是下了一个1.5.6的版本来试了一下, 居然configure成功了!另外需要注意的是, 如果需要ssl支持, 那么需要在deps包中取得neon放到subversion源代码包中,系统自带的neon版本过老, subversion1.5要求neon>2.8. 这样成功之后, hgsubversion可以了,不给出警告了,可是有的库可以, 有的库不行? 不行的就是我直接check某个子目录的! 并且对我其中的一个版本库, 也是最重要的版本库, svnclone的时候报错,提示找不到文件。 这样忙忙碌碌搞了两天, 最终还是达不到我的要求,比较懊恼自己浪费了时间样, 不过倒是得到了subversion编译安装的经验, 写下来,给有同样需求的同学参考下。
2009年4月4日星期六
说说163的源
cn99的源已经当掉很久了,这严重影响我用ubuntu的心情,想当年用cn99的源动辄上M的更新速度那就一个爽阿, 在公网了, 不比当年在教育网内用清华大学的源, 有CN99这种源真是我们这些用Linux的人的福气阿。
昨天更新服务器的subversion,试了一下ubuntu.cn99.com, 居然能上, ping一下, DNS解析居然指到了mirrors.163.com, 速度可真快, 可是ubuntu dapper用不了, 很多ubuntu dist没有i386架构的~
于是想想自己电脑上的Arch已经好久没有更新了, 163的镜像上主要的发行版都有了, arch也不例外, 把电脑上的源改到163试了一下, 才发现滞后了很多, 上面的包比我自己电脑上在两三个月前的还旧!看来不能用了,要是163的源更新再及时点就好了!
昨天更新服务器的subversion,试了一下ubuntu.cn99.com, 居然能上, ping一下, DNS解析居然指到了mirrors.163.com, 速度可真快, 可是ubuntu dapper用不了, 很多ubuntu dist没有i386架构的~
于是想想自己电脑上的Arch已经好久没有更新了, 163的镜像上主要的发行版都有了, arch也不例外, 把电脑上的源改到163试了一下, 才发现滞后了很多, 上面的包比我自己电脑上在两三个月前的还旧!看来不能用了,要是163的源更新再及时点就好了!
2009年4月2日星期四
关于VIM使用的惊喜发现
在windows下用官方的gvim有一点不爽的地方, 就是用python2.5不能自动补全, 通过看:version看python的编译参数可以知道, 官方的vim是针对python24编译的, 我今天下班的时候, 决定我必须要解决一下这个问题, 由于显卡的问题, 在桌面电脑上, 我已经很长时间不使用Linux了, 所以在windows上这个问题必须解决, 在google上一顿搜索之后, 知道我必须重新编译gvim或者下载别人编译的vim版本, 但是vim它是要针对多种脚本语言(多个interface)编译的, 那么我暂时没有安装的那些东西我肯定编译不了, 所以如果有别人编译的东西就非常好了, 在google上知道有一个cream的项目, 下载了之后, 发现安装包的文字我不认识, 非英文, 所以就不敢往下继续了. 后来在vim官方网站的下载页面上看到了alternate distribution, 看到另外一个链接"Yongwei's build", (吴咏伟), 介绍说是用了比较新的python, ruby, tcl interface, 这就正是我需要的, 遂下载使用了, 觉得非常好用, 省去了我自己编译的过程; 另外吴咏伟页面上的一篇VIM实用技术写得非常好, 总结了其vim的点滴经验, 在这里强烈推荐一下.
另外, 在这篇文章里, 有一个解决putty中文问题的方案, 解决了一个困扰我很久的putty中文显示和输入的问题, 我曾经在google上搜了很多, 很多人都说可以, 可以我好像没有成功过. 实际上只要保证了远程服务器的encoding为UTF-8, 不管你是zh_CN.UTF-8, 还是en_US.UTF-8; 而putty在连接之前设置encoding为UTF-8, 还有选中treat CJK ambiguous characters as wide, 然后连接, 就可以显示和输入中文了, 解决了这些问题之后, 我完全可以在windows下, 然后用putty连到服务器上去写程序和管理了.
另外, 在这篇文章里, 有一个解决putty中文问题的方案, 解决了一个困扰我很久的putty中文显示和输入的问题, 我曾经在google上搜了很多, 很多人都说可以, 可以我好像没有成功过. 实际上只要保证了远程服务器的encoding为UTF-8, 不管你是zh_CN.UTF-8, 还是en_US.UTF-8; 而putty在连接之前设置encoding为UTF-8, 还有选中treat CJK ambiguous characters as wide, 然后连接, 就可以显示和输入中文了, 解决了这些问题之后, 我完全可以在windows下, 然后用putty连到服务器上去写程序和管理了.
2009年3月26日星期四
说说XSD和XML
最近的项目需要使用xml编写规则已支持自动化文本分析, 但是为了避免运行时出错, 需要有XML验证的功能, 以前一直用DTD, 后来慢慢的看到xsd多起来, 知道其有很大的优势, 但是也没有好好去研究过, 这次要用, 就好好学习了一下, 看了w3cschool上的教程之后, 基本上明确了写法, 但是写起来还是有些费劲, 可能是初学的原因吧, xml已经写出来了, 能否根据给出的xml生成xsd呢? 用visual studio 2008就可以了, 在xml菜单-生成架构里面 原来写xml规则的时候, 充分考虑了各种可选和必须参数出现的情况, 用visual studio生成xsd文件要改动的地方居然非常少, 只要自己加几个restriction就完全和我想要的一样了, 真是非常的不错! 另外, 强烈推荐jdom作为java xml api, 非常好用!
2009年3月25日星期三
Netbeans就是一块广告纸上看起来巨漂亮的鸡肋
(1) 用过很多次了, 每个版本都安装更新, 甚至很多项目故意优先考虑Netbeans开发而不用熟悉的Eclipse, 但是目前为止除了编Java Swing图形界面觉得它很方便之外, 其他的都是装了几个月不动它的主, 即使那次, 还是最后用着用着不习惯, 用了eclipse调试完成的.
(2) 你要在Netbeans里面管理库还有库关联的源代码, 郁闷死你! 给库绑定了源代码非要重启重新项目扫描之后才会生效, 但是重启一下, 我双核扣肉二代, 2G Mem, 等三分钟以上, 郁闷死你. 有些人说要把那些项目关闭掉好一点, 是的, 关闭掉了, 下次我要用再去一路一路点开, 重新打开? 这也就算了, 第三方库源代码即使绑定好了, 如果之间互相依赖, 居然不能互相识别? 比如我给cas绑定了源代码, 因为我需要重载其中的一些类, 所以要看到中间的代码程序结构, 那么cas是依赖spring的, 好, 折腾把spring源代码也绑定好, cas源代码打开了, 晕死, 说找不到spring的类? 一个巨大的Glassfish运行库在那里, 找不到javax.http.*包, 难道也用eclipse先代码浏览完来做开发?
(3) 再说代码浏览, 在java开发领域里面研究别人的代码是非常普遍的事, 无论是学习, 还是尝试看清楚别人的代码结构, 来重载完善适合自己需要. 要用netbeans, 你还不如自己用Editplus一个一个去找好了, 省计算机资源; 如果代码包中有可运行的文件, 比如测试, 你在Netbeans中就找不到一个直接运行库中的class的办法, 而用eclipse右键即可!
(4) 宣传很美吧, 支持动态语言开发, php试过不怎么样, ruby on rails我不用, 新花样很多,但是最基本的java, java ee开发也不能从竞争对手那里学点东西完善起来. 总体感觉就是离它所宣传的the only IDE you need, 差了十万八千里. 吃鸡肋, 把肉剔下来吃, 别咬着骨头不爽!
(2) 你要在Netbeans里面管理库还有库关联的源代码, 郁闷死你! 给库绑定了源代码非要重启重新项目扫描之后才会生效, 但是重启一下, 我双核扣肉二代, 2G Mem, 等三分钟以上, 郁闷死你. 有些人说要把那些项目关闭掉好一点, 是的, 关闭掉了, 下次我要用再去一路一路点开, 重新打开? 这也就算了, 第三方库源代码即使绑定好了, 如果之间互相依赖, 居然不能互相识别? 比如我给cas绑定了源代码, 因为我需要重载其中的一些类, 所以要看到中间的代码程序结构, 那么cas是依赖spring的, 好, 折腾把spring源代码也绑定好, cas源代码打开了, 晕死, 说找不到spring的类? 一个巨大的Glassfish运行库在那里, 找不到javax.http.*包, 难道也用eclipse先代码浏览完来做开发?
(3) 再说代码浏览, 在java开发领域里面研究别人的代码是非常普遍的事, 无论是学习, 还是尝试看清楚别人的代码结构, 来重载完善适合自己需要. 要用netbeans, 你还不如自己用Editplus一个一个去找好了, 省计算机资源; 如果代码包中有可运行的文件, 比如测试, 你在Netbeans中就找不到一个直接运行库中的class的办法, 而用eclipse右键即可!
(4) 宣传很美吧, 支持动态语言开发, php试过不怎么样, ruby on rails我不用, 新花样很多,但是最基本的java, java ee开发也不能从竞争对手那里学点东西完善起来. 总体感觉就是离它所宣传的the only IDE you need, 差了十万八千里. 吃鸡肋, 把肉剔下来吃, 别咬着骨头不爽!
2009年3月23日星期一
我也大二开始写程序, 为什么我就没有成为千万富翁?
最近临时抽调给公司内部网架设一个论坛, 由于需要和公司的单点认证系统, 进行整合还要改风格支持网站的统一风格视图, 所以需要选择一个易于进行二次开发, 且架构比较好的程序, 最好是开源License的, 最终的选择放在了Discuz!和phpBB上了. 查找了相关资料, 由此也了解了Discuz!的一些历史, 说实在的尽管我最后选择倾向于phpBB, 但是我还是挺佩服戴康志的, 我自认为自己在编程方面应该还不错, 但是我似乎缺乏商业头脑, 有些读书人的偏执, 如果我不改变的话, 也许我很难得在商业方面有所成就了, 甭管俗否, 有成就绝非是技术牛逼, 而赚钱是第一要务!
说说我不太喜欢Discuz!的方面吧
(1) 对于普通用户Discuz!很方便, 但是由于license的原因, 我的使用就是受限的, 我既不能自己使用于盈利目的, 又不能提交我的patch, mod等, 所以我学习的投资就要白费了.
(2) 缺乏多语系特别是英语的支持.
(3) 程序代码里面, 过程式架构的, 这不对我的胃口和设计风格, 所以潜意识里有点抵触
(4) 程序代码里面唯一的注释就是" This is NOT a freeware, use is subject to license terms", 我不知道是放出源代码时为了减缓用户读懂代码的步调故意用程序把注释去掉了还是怎么的, 要么就是这个公司编码人员的风格不好, 不过这一点也不决定, 其实php代码挺好懂的, 要不要注释无所谓, 不过没有一行注释真是让我感到奇怪.
(5) 代码大小比phpBB大了一倍.
值得学习的地方:
(1) 目前它号称是最快的性能最好论坛程序, 也有人说这是由于它减少了安全性上的限制来换取速度的提升, 或者说php在面向对象架构方面确实性能不高, 过程式代码性能更高, 具体没有研究, 但是在高性能方面的优化策略, 确实值得有时间来学习和研究.
(2) 用户支持, 文档完善性, 创业模式上, 它是一个成功的商业案例!
说说我不太喜欢Discuz!的方面吧
(1) 对于普通用户Discuz!很方便, 但是由于license的原因, 我的使用就是受限的, 我既不能自己使用于盈利目的, 又不能提交我的patch, mod等, 所以我学习的投资就要白费了.
(2) 缺乏多语系特别是英语的支持.
(3) 程序代码里面, 过程式架构的, 这不对我的胃口和设计风格, 所以潜意识里有点抵触
(4) 程序代码里面唯一的注释就是" This is NOT a freeware, use is subject to license terms", 我不知道是放出源代码时为了减缓用户读懂代码的步调故意用程序把注释去掉了还是怎么的, 要么就是这个公司编码人员的风格不好, 不过这一点也不决定, 其实php代码挺好懂的, 要不要注释无所谓, 不过没有一行注释真是让我感到奇怪.
(5) 代码大小比phpBB大了一倍.
值得学习的地方:
(1) 目前它号称是最快的性能最好论坛程序, 也有人说这是由于它减少了安全性上的限制来换取速度的提升, 或者说php在面向对象架构方面确实性能不高, 过程式代码性能更高, 具体没有研究, 但是在高性能方面的优化策略, 确实值得有时间来学习和研究.
(2) 用户支持, 文档完善性, 创业模式上, 它是一个成功的商业案例!
2009年3月9日星期一
我的修炼之道
(1) 用好IDE = 用好Eclipse, 如果开发DotNet, 用好Visual Studio
(2) 用好编辑器 = 用好VIM
(3) 尝试新的开发环境 = 使用windows, 用DotNet开发
=========
最近一直在windows下做开发, GVIM顺利成为我在windows上最顺手的编辑器, 做了一段时间的DotNet开发工作, 确实发现VS2008不是盖的, 即使是Express版本都很好用, 并且开始喜欢上C#语言了; ASP.NET MVC很对胃口, 至少觉得比Struts对我胃口;
还有一个组件是用C语言来写的, 发现GCC还是我的最爱, GCC的特性比在Visual Studio中编c语言爽多了, 变量可以什么时候想用再申明, 数组的size可以当参数传入;
用Gvim做开发挺好, 但是看着GVim和gdb集成的文章还要自己编译GVIM,自己补丁我就没有兴趣了, 想起了两年前使用过CDT,当时感觉不错, 遂使用Eclipse做c开发的IDE, 调试功能和gdb相比, 那是暴爽无比!
(2) 用好编辑器 = 用好VIM
(3) 尝试新的开发环境 = 使用windows, 用DotNet开发
=========
最近一直在windows下做开发, GVIM顺利成为我在windows上最顺手的编辑器, 做了一段时间的DotNet开发工作, 确实发现VS2008不是盖的, 即使是Express版本都很好用, 并且开始喜欢上C#语言了; ASP.NET MVC很对胃口, 至少觉得比Struts对我胃口;
还有一个组件是用C语言来写的, 发现GCC还是我的最爱, GCC的特性比在Visual Studio中编c语言爽多了, 变量可以什么时候想用再申明, 数组的size可以当参数传入;
用Gvim做开发挺好, 但是看着GVim和gdb集成的文章还要自己编译GVIM,自己补丁我就没有兴趣了, 想起了两年前使用过CDT,当时感觉不错, 遂使用Eclipse做c开发的IDE, 调试功能和gdb相比, 那是暴爽无比!
订阅:
博文 (Atom)
