-
免费的正版之路 III
这回咱要说的都是干活用的好东东了,而且同样都是免费使用的:-) 首先是重量级的Aptana WEB IDE,也就是用来写javascript的。随着AJAX应用越来越多,js开发已经不再是copy&paste那么简单了。我其实没用过其它的WEB IDE,所以不好多说了。另外一个好消息,Aptana通过插件的方式把RadRails搬了过来,做ruby on rails也没问题了,而且沾了Aptana的光,Radrails也好用了许多。看图吧: 另一个好东东是用来做HTML的,叫做Nvu(读n-view),也不错,功能也不比Dreamweaver差多少吧? 剩下2个小软件,用于ftp和sftp的WinSCP,以及用于SSH的Putty,就不贴图了,界面简洁,功能够用。
-
做了一个简单的报表软件
报表选项页和项目清单页: 生成报表结果(使用Gruff Graph做的) 呵呵,rails还是很好玩的。这个软件虽然很简单,但是已经能代替很多Excel功能了,而且可以多人协作。继续努力。
-
Zimbra终于出问题了
keys: ubuntu zimbra 451 4.0.0 周末在加班中度过…… 2个月之前,由于ubuntu6不支持intel965(当时fedoracore6也不行),我不得不装了ubuntu7beta,并在其上安装zimbra。一直平安无事,但是上周六ubuntu的文件系统突然报错了,还好,重启之后我用fsck修复了文件系统,并庆幸这不是个硬伤,不过zimbra似乎受到了影响。 80封邮件挤在deferred队列当中,进不去信箱(只是几个人的信箱有此问题),log中全是451 4.0.0。我先备份了zimbra,然后小小升级(4.5.4->4.5.5),症状依旧。然后按照搜索结果的指点,我运行zmfixperms修正文件夹归属问题,也没解决问题。 最后,恰好有个系统账号也在问题之列,我重建了这个账号,结果故障就排除了。于是把所有有问题的账号都重建一次…… 问题就这样解决了,真是失望啊。
-
小试rails当中对多重选择表单的处理
keys: ruby rails multiple checkbox 今天上班给老板写个项目销售管理的小东西,其中涉及到多重选择的处理。目前感觉rails在这方面相对弱,也许因为rails在其它方面太强了吧。总之,对于用rails处理multiple checkbox,还真需要些基础知识。 例子中的任务是为一个项目project指定人员user_file,这显然是一个N对N(HABTM)的关联,按照David的建议,我把关联表project_user_map也作为实体处理了。 介绍一下模型 model: class Project … has_many :project_user_maps end class ProjectUserMap belongs_to :project belongs_to :user_file end class UserFile has_many :project_user_maps end 先说view: <% form_tag :action => ‘edit_member_2’, :id => @project do %> <% for user_file in @all%> <%= check_box_tag( ‘selected_file_ids[]’, user_file.id, @members.include?(user_file))%><%= user_file.name%> <% end %> <br/> <%=…
-
免费的正版之路 II
我的免费软件之路还在继续。这次针对的是编辑文本、看图、做PDF和压缩归档几方面的应用。以下几个软件都是在WindowsXP系统使用的。 编辑文本,windows下面有notepad和wordpad,但是都不怎么好用对吧。我原来喜欢ultraedit,可是这个毕竟是共享软件,过了试用期就要选择卸载、购买或者破解。现在我改用notepad++了,基本符合要求。如果有一天ultraedit成了免费软件,我还会考虑它的:) 看图,同样,windows自带的东东基本没啥用。acdsee不错,不过出乎我意料的是faststone这个免费软件却更加方便好用! 看PDF可以用免费的Adobe acrobat reader,做PDF一样可以免费:primoPDF。这个安装之后系统会多一个叫做primoPDF的打印机,理论上任何文档“打印”到这个打印机上,就成了PDF了。目前有个缺点就是生成PDF的文件名不是根据源的名字来写的,需要手工改。其它方面应该没问题。 压缩归档。WinRAR我一直用,惭愧,一直也没买:) 现在改用ZipGenius了。对于喜欢简约风格的朋友,7-zip更好用些。 以上链接都是软件娘家的网址,不一定是中文的。相信仔细一搜,你就能发现很多中文网址。不过国内网站江湖险恶,要小心。
-
Zimbra之黑名单白名单
不得不说,Zimbra是个卓越的Email解决方案,但是Zimbra肯定也有不足的地方,不能在admin界面设定白名单黑名单(trusted domain/blocked domain)就是缺点之一。于是我陷入了困境:其他分公司和总部发给我们分公司的邮件,甚至是总部老板的邮件,被列入废件……汗啊……于是赶紧行动吧。 Zimbra的社区是晴朗的社区,Zimbra社区的人是热心的人。不到5分钟,对,不到5分钟就有人回复了我解决方案,大家分享一下: 编辑/opt/zimbra/conf/amavisd.conf.in 寻找 { # a hash-type lookup table (associative array) ‘[email protected]’ => -3.0, ‘[email protected]’ => -3.0, ‘[email protected]’ => -3.0, ‘[email protected]’ => -3.0, ‘[email protected]’ => -3.0, ‘[email protected]’ => -3.0, ‘[email protected]’ => -3.0, 段落,然后加上你要信任的域: { # a hash-type lookup table (associative array) ‘zimbra.com’ => -10.0, ‘[email protected]’ => -3.0, ‘[email protected]’ => -3.0, ‘[email protected]’ =>…
-
WordPress改版手记
今天很有成就感,我把内森忽悠的也来玩Wordpress了。比起blogger、sina、sohu等现成的blog套餐,Wordpress就是个性DIY了。这里不谈Wordpress的安装等问题,只说说如何改版。 首先,虽然是DIY,但是我们没必要重新发明轮子,去WordPress官方布景站去搜一个合个性的布景吧。 下载以后,把这个.zip文件解压缩到你的Wordpress布景文件夹,wp-content/themes下面,例如wp-content/themes/mytheme。Linux主机的话要记得chmod一下,使mytheme文件夹可写,这样以后你只需要wp-admin就可以修改布景了。 然后进入wp-admin,点开presentation->themes,如果文件夹没放错地方,那么这里应该出现你刚才上传的新布景了,一般还有预览图片呢。点击新布景,再看看你的WP站,已经旧貌换新颜了。接下来是一些DIY了。 布景DIY其实就是编辑HTML、CSS,有一定PHP基础的你可以做更进一步的定制,显示一些原来模版上没有的东西。具体如何修改HTML、CSS,这个就不是几句话说得清楚了,我这简单说说WP布景各部分的功能: Stylesheet就是CSS了,现在绝大多数风格,例如背景色、前景色、字号、间距等等都在CSS 里做了 sidebar是右侧栏模版,一般显示blog分类、日历、归档等等 main index就是首页的模版 archives:归档页面模版 comments:评论模版 footer:页脚模版,一般是版权信息等等,powered by wordpress! functions.php:这个是布景调用的php函数,轻易不要动 single post:点击一篇文章进入的单页的模版,类似main index,只是少了一层循环 404:页面未找到错误的页面模版 search results:搜索结果页面模版 page template:自定义页面,例如about,的模版,也类似single post header:页首模版,一般是标题、导航所在 好了,最后记得在开始修改之前把原来模版内容先复制到本地,例如notepad里面,以防不测哦。
-
牛刀小试RegEx
RegEx中文叫做正则表达式,虽然不是很新的东西了,我很纳闷我居然是才开始了解它。在数据库中查询keyword一般是写成 select * from tablename where columnname LIKE ‘%keyword%’ 而java我记得不是很清楚了,大概是 if(myString.indexOf(keyword) != -1){ //do things… } 这个只是简单匹配,如果有复杂要求就要写多得多的代码了。例如判断keyword是否是一个数字开头,紧跟1个小写字母,跟随若干数字,最后以”pattern”结尾等等,就不是一行代码能写出来的了。对于上例,RegEx+Ruby的写法就是 if keyword =~ /^\d[a-z]\d+pattern$/ #do things end 上式中,//是RegEx的边界,类似””是字符串的边界一样。接下来^代表匹配的开始;\d代表数字,就是0 – 9;[a-z]就是一个从a到z的小写字母了;+是后缀,表示1个或多个,因此\d+就是1个或多个数字的意思了;最后作为关键字的pattern直接写上即可;$代表匹配的结束。 更灵活的应用就是|符号和()括号了。例如判断文本是否包含x或X,RegEx就可以写 /x|X/ 如果要判断文本是否包含多个连续的x或者X,例如xXX、XxX,RegEx就可以写 /(x|X)+/ 如果要判断文本是否包含XXX、XXXX、XXXXX,RegEx可以写 /X{3,5} / 目前的了解就是这么多了,不过以上这些组合起来应该已经可以应付很多种情况了。继续学习。 UPDATE: Regex tutorial from guru99.com