Category: Opensource

  • 小试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

  • 免费的正版之路

    首先,从道德上来讲,破解正版软件是偷,而购买使用盗版软件就是替贼销赃了。是的,正版软件价格不低,不是每个人都能承受的。但是这世界上诱惑你的好东西多的是,难道买不起了就可以偷么?好在我们还有很多免费的选择。 首先,操作系统有很多免费选择:Ubuntu、FedoraCore、Mandriva、OpenSuse。这些都是Linux,老眼光可能认为Linux是高手用的,但是现在的Linux桌面版确实是面向普通用户的,简单的安装,甚至光盘即可运行。中文支持也不再是问题,不需要自己再安装输入法之类的东西了。看资讯、聊天、收发邮件、看视频等等都是小菜一碟了。Mandriva更是有了Vista才有的3D桌面(这个我还没试过,只是看了截图)! 其次,OpenOffice!虽然开源软件往往不如商业软件(MS Office 2007)花哨体面,功能也要差些,但是看在免费的份上,一俊遮百丑吧。OpenOffice支持MS Office word/excel/powerpoint/access的文件格式,可以双向互通。 Mozilla FireFox & ThunderBird!这对兄弟非常了不起,不仅开源免费,而且胜过商业软件(IE & Outlook) 。有人说,IE也是免费啊,嗯,IE7需要正版Windows才能使用。FF的快捷和安全,用过的人都知道。而TB的内置垃圾邮件过滤每天都帮我挡住上百封垃圾邮件。 杀毒软件:Anti-Vir。只有2个缺点:没有中文版、更新时打广告。记住,只有2个缺点。谢谢Mr徐补充, avast确实不错, 也是个人使用免费的, 用email注册一下就可以了, 而且有中文版, 功能也更全面. 绘图软件:Paint.NET,只有3MB的身材,功能却相当全面。 免费的好东西还有很多,我这抛砖引玉了~

  • Zimbra与中文!人人为我,我为人人

    我这实战Zimbra Collaboration Suite(ZCS)差不多已经一个月了,结果很理想,不愧是包揽众多奖项的大作!当然,大作并非就完美,界面的翻译仍旧需要改进。好在我不惧英文,于是自然的开始参与到界面的翻译工作中了。 之前nxzwt已经翻译得很好了,我基于他的工作成果,继续前进了。修改了几个地方: snooze,原来翻译为打盹,字面上不错,但是作为事件提醒对话框上的按钮,我觉得还是翻译为“延后提醒” 比较直观。 free,原来翻译为免费,字面上也是不错,但是在日程表语境中,翻译为“空闲”更好。 dismiss,原来翻译为解雇,我也没找到理想的翻译。毕竟在事件提醒对话框中,我改为“去除”,因为去除提醒比解雇提醒稍好了。抛砖引玉吧。 另外再说具体一下如何将翻译结果应用到ZCS的web client。 首先,ZCSWC是以java为平台的。java可以说是国际化(I18n)的先锋了,但是java支持I18n的方式并不简单。下面是步骤: 下载我做的翻译文件 确认你有JDK,没有的话去java.sun.com弄一个 利用JDK工具native2ascii native2ascii –encoding=gbk ZmMsg_zh_CN.properties.txt ZmMsg_zh_CN.properties 把生成的.properties复制到 /opt/zimbra/tomcat/webapps/zimbra/WEB-INF/classes/msgs 重新启动tomcat服务 这样应该就可以看到中文界面了。 既然已经做了这么多,我希望更多的人能分享我的工作成果,也希望更多的人参与到此项目中来。人人为我,我为人人。

  • 升级!ZCS4.5.4和Ubuntu7.04b

    由于ubuntu6.10 edgy不支持我的intel DG695主板,我只好拿β版的7.04 feisty来试试运气了。还好,一切顺利了,下面开始安装ZCS(zimbra collaboration suite)4.5.4! 由于ZCS尚未官方支持feisty,一帆风顺的安装似乎不可能了。不过feisty比edgy在底层结果上变动不大,只要安装了必要的软件包,让ZCS以为自己身在edgy即可。以下是我在zimbra论坛上得到的回复。Thanks, dijichi2 ! #vim /etc/lsb-release 修改 DISTRIB_RELEASE=7.04 为 DISTRIB_RELEASE=6 这样ZCS就会认为自己在edgy上安装了。成功! 转贴ZCS4.5.4新特点: Mail Identities. The Mail Identities feature allows users to send email from their account using different names and mail settings. Users can select which From address to use for the mail they are sending from ZWC. 多邮件身份,例如个人身份和职员身份 Personal…