近期评论
分类目录
标签
anjuta apache apache2 backup breezy c++ convert dapper debian dns edgy evolution feisty firefox flash gnome gobang GRASS gutsy humor intrepid Linux mailman MapServer mysql openoffice Oracle php phpbb postfix PostGIS postgresql qgis sarge scim skype subversion svn tomcat ubuntu utf8 westdc Windows wordpress 中文
Category Archives: Program
遍历TreeStore
如何遍历TreeStore? gtkmm的邮件列表上有一个简单的例子,但是经过测试,发现只能遍历到第二层枝。 Gtk::TreeModel::Children child=refTreeModel->children();//只能获取到第一级分类 Gtk::TreeModel::Children::iterator iter ; for( iter = child.begin() ; iter != child.end() ; iter++ ) { if ((*iter)[columns.id]==t[i].parent_id) { row=*(refTreeModel->append(iter->children())); break; } } 最终通过递归实现全部遍历,代码如下。 void CategoryView::getrow(Gtk::TreeModel::Children child,unsigned int pid, Gtk::TreeModel::Row& row) { Gtk::TreeModel::Children::iterator iter; for( iter = … Continue reading
c++中的string转换
如何转换string到其他类型?如何从其他类型转换到string? 代码1:toString template <class T> std::string toString(const T& a) { std::ostringstream ost; ost << a; return ost.str(); } 代码2:fromString template<typename T>T fromString( const std::string& s) { std::istringstream is(s); T t; is >> t; return t; } 使用方法: int d = … Continue reading
使用FileChooserDialog打开多文件
单文件比较简单, 看到这个函数的原型是这样的: Glib::SListHandle<Glib::ustring> Gtk::FileChooser::get_filenames ( ) const 因此,就以为要使用这样的变量来进行声明: Glib::SListHandle<Glib::ustring> filenames =dialog.get_filenames(); for(int i=0;i<filenames.size();i++) { //Notice that this is a std::string, not a Glib::ustring. //std::string filename = dialog.get_filename(); std::cout << “File selected: ” << filenames[i] << std::endl; } 结果发现编译不通过,再仔细看看,Glib::SListHandle并没有重载[]操作符。 再网络上搜索后发现有人和我的问题相同: That … Continue reading
在ubuntu gutsy下编译codeblocks svn版本
本来一直用的是feisty下的一个源: deb http://lgp203.free.fr/ubuntu/ feisty main 但是自从svn4413版本后就出现问题了,执行codeblocks提示错误: codeblocks: /usr/lib/libwx_gtk2u_aui-2.8.so.0: version `WXU_2.8.5′ not found (required by codeblocks) 因此,决定自己编译SVN版本,首先下载: svn co svn://svn.berlios.de/codeblocks/trunk codeblocks 编译前首先要作一些准备工作: sudo aptitude install debhelper fakeroot wx-common 然后修改codeblocks/debian/control文件,使其中的一些依赖替换为当前gutsy里的版本: Build-Depends: debhelper, autotools-dev, libc6-dev, libstdc++6-4.1-dev, libwxgtk2.8-dev, wx-common, zip 然后就可以编译了: cd codeblocks ./bootstrap … Continue reading
转换vbb 3.0.3到phpbb3
集思学院已经用了很长时间的vbb3.0.3,现在有些功能在我们的服务器已经出问题了,而且不想再跟vbb了,因为数字流域论坛已经转换到phpbb了,为了以后维护方便,决定从vbb3.0.3转换到phpbb 3 rc1。(估计RC2版本就要出来了,BUG已经很少了) 因为之前已经写了一个webwiz到phpbb的转换程序,所以再写vbb3到phpbb3的转换程序,比上次要轻松不少,但webwiz的设计思想就是来源于phpbb,所以很多库结构都非常像,而vbb的结构和phpbb有较大差异,在调试过程中还是耗费了大量的时间,回头来看,大约耗费了有一个礼拜的时间。感觉我都能提供有偿论坛转换服务了,哈哈。 转换过程: 首先要进行数据库的UTF8转换。之前论坛采用的是gb2312编码,但论坛上有台湾的注册用户,原来也能显示繁体中文,所以应该采用的是gbk或gb18030的编码。 在进行数据库的备份之前,要在原来的vb论坛后台把附件的存贮方式修改为文件方式,上传头像的存贮方式也修改为文件方式,而customprofilepic我没有找到对应的phpbb设置,所以这一块就直接丢弃了。 然后导出数据库: mysql -uroot –add-drop-table –default-character-set=latin1 cngis > cngis.sql 进行编码的转换: iconv -c -f gb18030 -t utf8 cngis.sql > cngisutf8.sql 然后修改此sql文件,替换所有的latin1为utf8,并在文件的开始处添加: SET NAMES utf8; SET CHARACTER_SET_CLIENT=utf8; SET CHARACTER_SET_RESULTS=utf8; 然后新建一个数据库cngisutf8,作为我们的测试数据库并尝试导入此sql文件。 mysql -uroot cngisutf8 < cngisutf8.sql 若在导入过程中没有错误,那么恭喜你,你太幸运了。 … Continue reading
gfortran中缺失的函数:tand, dtand
在gfortran中,包括g77到现在的gfortran 4.1都缺失了一些函数实现,包括以角度为参数的三角函数等。 那我们在编译这些函数时要如何处理呢? gcc的邮件列表里有一个解决方案。 我本来想用这个方案的,结果fortran语法全部忘光,这个方案里面居然没有看懂。没办法,就自己实现了一个简单的方案,不过还没有进行测试。 tand(x) 变为: tan(x*atan(1.0)/45.0) 而 dtand(x) 则变为: tan(x*atan(1.0d0)/45.0d0) 若有错误,还请帮忙指出。
c++ compile error: discards qualifier
在调试matrix类的时候,遇到了这个错误。 参考这儿知道这个错误的原因了: discards qualifier 1. Example myfile.cpp: In function `int main()’: myfile.cpp:20: passing `const DayOfYear’ as `this’ argument of `void DayOfYear::Set(int, int)’ discards qualifiers 2. Meaning You have an inconsistency with the use of “const” 3. Usual Causes 1. A … Continue reading
PHP的Framework
很长时间没有关注PHP,今天无意中点到javaeye.com,发现其已经改版,使用了ruby on rails框架技术,做得很好,然后又看到了还有php相关的框架,最近最近一段时间在PHP的世界里也出现了很多框架。作为php的发行公司,Zend自己也推出了一个框架,简称为ZF,目前最新的稳定版本还是0.2。觉得php的动作有点慢了,应该在php5推出后,要是能紧跟就推出几个框架系统,那对于php世界应该有非常大的推动!不过,虽然动作慢了一些,但是已经有了很多的php框架发展起来了。粗粗阅读了zf的文档后,发现框架的功能还是蛮丰富的,但是ZF目前还是有相当多的进步空间的,就是说,目前还是有一些缺点的。 一些framework的比较: http://www.mustap.com/phpzone_post_73_top-10-php-mvc-frameworks http://www.phpit.net/article/ten-different-php-frameworks/ http://www.5itag.com/viewtopic.php/177 seagull感觉像是一个大的CMS系统 ZF感觉像是一个库,或者就是pear 最后看了symfony的manual,感觉symfony相当好,不过也有缺陷,就是配置太麻烦了。 在symfony中,用Propel实现了OR映射,支持多种数据库,包括mysql,sqlserver,pgsql,sqlite,oracle。 感觉这套框架和zend framework有很大不同,对我来说,symfony要好于zf。 还支持schema, or map, paging, multitype databases, … Conclusion: 首选symfony,其次cakephp,最后再考虑zf。当然还可以考虑seagull。
共享网登陆错误的解决
我们这边一直存在登陆问题,非常奇怪。 但是在后台可以登陆,在前台汇交元数据时也可以登陆。 但是别的中心都没有问题,问题可能是出在我们这边的结构上。 我们的网站是由2部分组成的: DEBIAN负责oracle数据库和web proxy,WIN 2K3负责tomcat解析。 为什么采用这样奇怪的结构? 共享网的代码在WINDOWS上的TOMCAT解析没有任何问题,但是在DEBIAN上总是有问题。但是他们总中心也是在LINUX上布置的,真是奇怪。我估计是tomcat的policy导致的问题。 仔细浏览了代码,发现能登陆和不能登陆时的区别在于转向地址不同,估计是在servelet中进行了验证? 因此就直接对这部分代码进行了修改,修改后的代码: String _pageURL=null; //当前访问页面的真实的UrL String _replaceURL=_requestURL.replaceAll(“xxxx:8080″,”westdc.geodata.cn”); if (_strQuery!=null){ _strQuery=URLEncoder.encode(_strQuery,”gb2312″); //这个必须编码呀,否则死的很惨 _pageURL=_replaceURL+”?”+_strQuery; }else _pageURL=_replaceURL; 就是做了一个字符串替换的工作。 另外一个问题就是无法汇交元数据,这个问题最后是糊涂的解决了(就是不知道怎么就好了)。
code::blocks可以在ubuntu下直接安装
原来在测试各个linux下的IDE时,一直没有安装上code::blocks,当时还郁闷了一段时间。 今天无意中发现,code::blocks现在有专门for ubuntu的DEB包了: http://forums.codeblocks.org/index.php?board=20.0