专注可用系统,分享所得
Lucene通过Spatial包提供了对基于地理位置的全文检索的支持,最典型的应用场景就是:“搜索中关村附近1公里内的火锅店,并按远近排序”。使用Lucene-Spatial添加对地理位置的支持,和之前普通文本搜索主要有两点区别: 1.
在MongoDB的官方文档中关于Java操作的介绍,只给出了很简单的几个例子。这些例子虽然可以满足一定的需求,但是还并不是太完全。下面是我根据网页中的提示写的几个例子。 1.背景。
背景介绍: 由于开发用的Linux服务器在一个相对封闭的环境中,只有通过SSH访问22端口。于是就用putty做了一个SSH forwarding,将本机的27018端口映射到远程的27017端口。
今天做了一个小工具,通过Velocity生成Latext的tex文件,可是当使用Miktex生成PDF时,里面的中文都变成了乱码。而之前在Eclipse直接运行时,并没有发现问题。毫无疑问是文件编码引起的问题。
Ruby和MongoDB在Linux上结合非常自然,开发起来十分方便快捷,而在Windows上却稍微有些麻烦。 ROR默认使用ActiveRecord进行数据库操作,而如果要使用MongoDB代替MySQL或者SQLite,就要禁用ActiveRecord。
rails的确是来的方便,一个rails generate scaffold命令下来就可以生成view、controller和model的所有文件,然后再执行rake db:migrate就可以生成相应的数据库表结构。
最近在Win7上安装了Ruby On Rails的开发环境,准备有时间的时候再熟悉一下,也许在某个时候就可以用到了。在通过rails new test创建了一个项目后,使用命令rails server启动服务器时,出现了sqlite3.dll is missing的错误。
这些天由于几个不同的流量统计工具在统计数据上出现了很大差异,当时就想到了应该分析一下apache的access log,那里的数据应该是最权威的。刚开始为了应急写了一个简单分析工具,统计了一下简单的数据。
这些天一直被SVN的分支间的合并(Merge)折磨的够呛,大家也都反映:在连个分支之间合并太麻烦了,有时候根本不知道上次合并了哪个版本。当时想了一些方法,争取从流程上防止出现错误: 1. 每个人都只合并自己的修改 有时候一个fix会涉及多个人的修改。
问题现象: 原本在运行很好的程序,在发布时突然出现了异常: Mar 13, 2011 9:34:18 AM org.apache.catalina.startup.TldConfig tldScanJar WARNING: Failed to process JAR [jar:jndi:/localhost/myapp/WEB-INF/lib/jta-1.
今天在新的Linux服务器上将项目check out出来以后,重新build,就出现了下面的问题: [ERROR] Failed to execute goal org.apache.
系统中刚集成了一段Lucene的代码,用来实现简单的建立索引和搜索的功能。可是重新部署程序时,都会出现下面的异常: Invocation of init method failed; nested exception is org.
新的项目中使用logback+slf4j替换了原来的log4j+slf4j,并且是作为一个Web Application在tomcat中运行,发现生成的日志文件中所有中文都是乱码。 首先想到的解决方法就是logback中设置生成的日志文件的编码。
今天一个同事需要在项目中使用Hibernate,于是就推荐了他去阅读Hibernate的官方文档。因为这个文档不但有中文,而且还包含了一个比较详细的Tutorial。 可是当一切都配置以后,使用JUnit测试时,出现了问题: org.
今天在创建一个新的Maven项目时,在其中添加了很多依赖。刚开始为了避免错误就每添加一次,保存一下,Eclipse就会下载相应的包。最后为了加快速度就把剩下的包全部添加了,再次保存就出现了Missing artifact错误,就连以前正常的包也出现了这个问题。
在前面的两篇文章中,只记录了分别在Linux和Window上的安装过程: 使用ImageMagick + Jmagick进行图片操作 使用ImageMagick + Jmagick进行图片操作(续) 关于JMagick的应用在网上内容比较少,这次分享一下我的缩放图片和黑白效果的代码...
在开发过程中,有时候会使用到公司内部的一些开发包,显然把这些包放在外部是不合适的。另外,由于项目一直在开发中,这些内部的依赖可能也在不断的更新。可以通过搭建公司内部的Maven服务器,将第三方和内部的依赖统一管理。
(接上篇)在新创建了项目之后,可以看到目录结构: 从图中可以看出,Maven自动将项目源文件和测试用例分别放到了不同的目录下,但是却使用了相同的包名。这样生成可执行的产品时,就比较容易将产品代码和测试代码隔离开;同时测试用例也可以直接引用同一包中被测试的类,既符合了JUnit的规范,也使程序更易读。
由于没有图形化界面的支持,在Linux(CentOS 5.4 x64)上的配置相对Windows XP还是麻烦了一点。 1、下载ImageMagick和JMagick的源文件(http://downloads.jmagick.org/6.4.0/):ImageMagick-6.4.0.-0tar.gz 和 jmagick-6.4.0-src.tar.gz。
几年前曾经使用过这个开源的ImageMagick来进行图片大小转化、提取Exif信息等操作,功能强大,比较实用,当时也花了不少的精力。这两天又要用,这次先把过程记下来。 1. 首先给出这个地址:http://downloads.jmagick.org/6.3.9/,这个里面包含了ImageMagick的安装文件、jmagick.dll和jmagick.jar,最关键的是它们是版本一致的,不会出现一些奇怪的问题。
写在前面 自从参加了4月份的QCon以后,持续集成的念头一直在脑海中浮现。时隔四个月之后,终于有了实践的机会。在此,首先应该感谢头儿们的大力支持。记得参加Scrum的培训时,最开始提到的一个障碍就是来自上层。
这几天一直在折腾Bugzilla,原以为应该挺简单的,却也是一波三折。下面是“被虐”的过程: 一、下载 由于不太习惯Linux的命令行下载方式,就先在本地的下载了当前最新的稳定版本Bugzilla3.6.1 ,然后通过scp上传到服务器上。
在上一篇文章中,完成了Apache和SVN的安装配置,并且实现了简单的用户控制,也就是所有用户都可以访问svn目录下的所有Repository。这种权限控制的方法比较简单,应该可以满足大部分情况下的需求。
又耗费了将近的一天的时间,都是因为这个恼人的SERVER: Error filterStart. 今天要把原来一个运行良好的网站发布到另外一台服务器上,原本应该是很简单的事情,在估计任务时,我只给它了半天时间(其实已经是多的了,只需要安装Tomcat和新建一个数据库即可)。
前一段时间由于服务器管理上的原因,一直把SVN放到我的PC上(7×24跑了好几个月),这几天终于配好了专用的SVN服务器。 服务器的操作系统是64位的CentOS,这里记录一下SVN在CentOS上配置过程,以下操作都是以root权限进行。
这个标题让人高兴,因为毕竟有了进步。 这次的会议仍然还是两个小时,与会人员都是按时参加。由于这次上午还安排了别的事情,所以不得不经常出入会议室,有些打乱了大家的思绪。 会议开始后,Product Owner提议先把前两个Sprint中没有完成的Story拿进来,要在这次的Sprint中完成。
Sprint2的确失败了,很多任务没有完成,而且Product Owner对Demo并不满意。大家经过深刻的反思还是发现了不少问题的: · Scrum Master在发现 Burn Chart出现了会失败的迹象时,没有和组员、 ...
Sprint1虽然有了一个不错的开局,但是Sprint2却失败了,至少从现在的燃尽图上看是这样的,一共16.5个Story Points,可是现在还剩下9.5个。除非有奇迹,不然在下午的Review会议之前,是绝对不可能完成了。
其实现在Sprint2已经开始一段时间了,早该写点关于Daily Scrum的东西了,这里就简单做个总结吧。 第一次Daily Scrum,大家的时间观念仍然不是很强,Product Owner按时到场,而组员S和W还是迟到了,虽然是开会处与他们近在咫尺。
刚刚开了Sprint1的计划会议,原计划是两个小时,一个半小时就结束了,虽然不是在时间上纠结,但是心里还是有些不太放心。唯一安慰自己的就是,毕竟是第一次嘛,还有Sprint也是允许失败的(不准找借口!!) 按时到会,是大家都应该遵守的规则,但是遗憾的是两个主要的Team Member都迟到了。
终于要开始在新项目中实行了Scrum了!!我期盼这一天很久了,可是真正要开始做的时候,却心里又很忐忑。因为,那句话“看起来很美好”总让人放心不下。虽然在前天关于Scum的分享会上,已经说明“Scrum不是银弹,如果我们现在的做法足够敏捷了,Scrum可能并不会带来实质性的改变”,但是我心里深深明白,之前我已经说了很多“Scrum很美好”“我一定要要证明一下”之类的话,大家都在紧紧地盯着我,希望可以带来些不同的“感觉”。
基于安全考虑root账户一般只能本地访问,但是在开发过程中可能需要打开root的远程访问权限。下面是基本的步骤: 1、登录到mysql中,为root进行远程访问的授权,执行下面的命令: mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"; mysql> flush privileges; 第一句中"%"表示任何主机都可以远程登录到该服务器上访问。
“Real-Time Web”应该算一个新的流行词,我不知道应该如何翻译,“实时网络”,虽然已有这样的称呼,好像不太贴切,并且和已有的实时网络概念有些混淆。所以暂时还是保持它原来的样子吧。 一、Real-Time web的定义 在维基百科(Real-time web)上是这样...
这些天试用了一下Maemo5平台的N900,个人感觉Maemo的前途应该是比较光明,至于未来的发展路程,应该就看Nokia的战略如何了。虽然Maemo平台很好,但是对于手机用户来说毕竟比较陌生,所以能应用的软件并不多,而已有的软件也不完善。
如今网站开发越来越提倡用户体验,为用户提供便利的工具也越来越多,而在线的HTML内容编辑器应该算是其中比较“古老”的一个了。功能简单的可以为用户提供文本的样式控制,例如文字的颜色、字体大小等;而功能复杂的甚至可以提供类似Word一样的强大功能。
听说HTML 5.0已经有一段时间了,但是并不知道它到底做了什么改进,这两天就看了下Specification,发现了下面一段话: The markup snippet at the top of this section would be turned into the fol...
在前面《正则表达式中的反向预搜索》 中,在JavaScript中利用RegExp对象实现了正则表达式反向预搜索的字符串替换功能,代码为: //程序目的,去掉图片路径中的域名 var str = ''; var reg1 = /(/
最近迷上了Ubuntu,一口气装了好几台机器,其中包括我心爱的T61。我的T61(AL1)从开始购买,到现在两年多了,一直使用刚开始装的XP。虽然中间很多软件装了卸,卸了装,但是依然还是很稳定,没有辜负我对它的期望。
刚刚高兴了两天,又出现了一件烦恼的事情:Eclipse中的某些按钮对鼠标点击没有反应。 我的Eclipse是在9.04时安装,一共装了三个,主要是两个版本3.5.1和3.4.2。
周五上午处理完成常规工作后,打开Ubuntu的更新管理器,发现已经有9.10可以更新,之前好像也听说9.10在10月22号和Win7同一天发布(事后证明是在29号)。心里有些痒痒,脑袋一热,决定升级了。
2、知识的提升以及视野的开阔 在三天的演讲中,议题丰富,多数内容是来自于一线工程师的实践总结,自然内容也很实用。 敏捷软件工程--吴穹(敏捷实施的Roadmap) 很遗憾没有及时赶上这个讲座,只能席地而坐,但是颇有所得。
CSDN今年已经是第三年举办软件开发2.0技术大会,而我竟然“意外”收到CSDN的邀请,有幸免费参加2009年软件开发2.0技术大会。三天的课程,涵盖了云计算、语言趋势、Mobile开发以及敏捷软件等多个热门话题。
前几天测试一个小程序,其中需要获取表格中某行第一个单元格自定义的属性值,很自然地就用到: tr.firstChild.getAttribute('bill_id'); 这行代码在IE6上可以正确执行,但是在FireFox3.5上却没有结果。
时值深夜,吾辗转反侧,终不能寐。愧疚、迷茫、力量、希望杂陈于心。 自吾参加工作以来,甚愧于吾之女友。吾出身贫寒,幸得父母教导有方及鼎力支持。吾之女友,贤良淑德,聪慧之极。对吾之父母更是孝敬有加,父母甚欢,吾甚喜。
这几天在用正则表达式做一个小程序,需要替换内容中的某些特殊字符串。这些字符串的出现是有规律的,那就是在它左面总会特定的内容出现,右面却没有。于是自然就想到了反向预搜索。 在以前的应用,大多是应用正向预搜索情况。
这些天Windows XP总是莫名的死机,要重启数次还不能进操作系统。想起来,刚刚换过主板,何况上次维修的工程师也没有查出来硬件上有什么毛病。于是就怀疑是不是系统的问题。恰巧也受到上次GTUG Ubuntu Day活动的影响,决定装下Ubuntu试一下,何况还可以和XP共存。
昨天在Google参加了OpenSocial的讲座,通过三位OpenSocial工程师的精彩演讲,我对这个东西有了一些简单的理解。下面就把我所理解的OpenSocial,也算是笔记整理在这里。
二十二、错误处理 1、禁止JS错误(Suppress JS Errors) Q:我是否可以禁止JavaScript错误信息? A:可以。要禁止页面上所有的JavaScript错误信息,你要把下面一段代码放在页面的HEAD部分: 或者如何你有页面引入的.js文件,可以在其中使用相似代码(不使用SCRIPT标签)。
二十一、声音 1、可以播放声音的浏览器(Audio-enabled Browsers) Q:什么可以浏览器可以执行播放声音的脚本? A:如果在声音播放描述的技术可以在Miscrosoft Internet Explorer 4.0及其更新版本中工作,那么同样可以在Netscape Navigator 3.0及其更新版本中工作。
二十、Bookmarklet 1、什么是Bookmarklet?(What's a Bookmarklet?) Q:什么是Bookmarklet? A:Bookmarklet是整个都被包含在超链接URL中的一小段JavaScript程序。