解决 will_paginate 中文本地化 - [开发]

will_paginateRuby on Rails 里面一个非常好用的分页控件,用它就可以很方便的生成翻页的代码,但是不知道为什么这个插件没有提供直接基于 Ruby on Rails I18N 的翻译设置。

在Google上面搜索也没有找到比较好的解决方法,于是我就看了一下它的源代码,发现有个 @@paginate_options 类变量,于是在 environment.rb 加入:

require 'will_paginate'
# will_paginate custom label
WillPaginate::ViewHelpers.pagination_options[:previous_label] = '« 上一页'
WillPaginate::ViewHelpers.pagination_options[:next_label] = '下一页 »'

重启server,翻译完成,当然,还可以把上一页一下页换成图片的...

 

E-Texteditor 破解方法 - [其它]

其实不是破解,只是把过期时间给重置了,然后就回到了试用期30天

打开注册表,删除这个节点。

HKEY_CURRENT_USER\Software\e\CLSID2

我目前使用的是 E-Texteditor 1.0.35 都可以

Mac OSX 下面安装Ruby的MySQL库 - [开发]

在Mac OSX下面,直接用 gem install mysql 来安装 MySQL/Ruby 支持库会出错。

  1. 解决办法是先下载并安装 MySQL for Mac OS X 10.5 (x86).
  2. 然后在命令行运行:
    sudo env ARCHFLAGS="-arch i386" gem install mysql -- \
    --with-mysql-dir=/usr/local/mysql --with-mysql-lib=/usr/local/mysql/lib \
    --with-mysql-include=/usr/local/mysql/include

PersonLab 0.2 发布 - 我的Rails开源项目 - [开发]

PersonLab 介绍

基于 Ruby on Rails 的个人网站系统(个人实验室),这不仅仅是一个简单的博客。它包括博客,自定义页面,Google Reader 分享引用,迷你博客消息引用等功能,代码插入等功能。

项目特色

  • 饭否消息直接导入,并在首页显示功能;
  • 支持 Google Reader 分享展示功能,通过简单的设置你的 Google Reader ID就可以在 “分享” 页面上显示出你分享的文章列表;
  • 作者简介区自定义HTML代码功能,你可以像例子中哪样里面上加入你的照片、你在其它网站的个人页面连接等等;
  • 访客使用 Google Account,Twitter Account,OpenID 直接登录,并发表评论功能;
  • 使用简介的 Textile 做为自定义页面的内容格式;
  • BlogBus 备份文件导入功能,包括评论Tag等信息;

端午节天台山之行 - [个人日志]

上周星期四,也就是端午节,我和几个好朋友去了一趟天台山。本来之前还没有这个打算的,周四的上午我还在忙着别的事情,后面中午的时候实在是因为大家连续叫了我好几次了,终于决定跟他们去。开始的时候本有打算去虹口的,但哪天天气不怎么样所以就选了天台山。反正这地方大家都没去过。

这次我们一行5人,三女两男 (李莉、刘小兰、梁培根、梁培根女朋友、我)。都是些大学同学,也算是多年的好朋友了。

我们是下午3点半以后才从新南门出发的,从成都到天台山还是有哪么远(两个半小时,车费:¥29)。所以都已经是傍晚了我们才到天台山山下。大家一致认为一定要住到山上才有意思,于是冒险上山找住的地方。

http://farm4.static.flickr.com/3567/3578147858_89a1369b3f.jpg?v=0

上山的时候在景区观光车上面顺便认识了一对的外省情侣,很有意思,于是跟同行,晚饭住的都是在一起的,然后跟他们AA。

运气还算是很不错,最终我们找到一家价格合适,晚饭也是在农家乐吃的,而且还是新开的。房间还不错,又便宜,3件三人间才400块,而且由于我们运气好,我们还是这几个房间的第一批游客。

5月 青城山一日游 - [个人日志]

年初的时候就计划今年一定要到成都周边的景区去玩一下,现在都5月了,这周星期三的时候才突然想起,于是选了个近点的 青城山

果果 也有类似的想法,于是我们两个约好,一起同去。今天早上一早就去了新南门车站,这次准备去 青城山后山 听去过的同事说前台都是道观,看到不是我喜欢的类型,所以直接去后山看风景。

说真的,经过地震以后,整个青城山后山基本上快成废墟了,要不是我和 果果 两人拼死往上爬,估计早就被没路的地方打回了。

其实没有最初想像的哪么好,到处都是 残垣断壁 ,一片狼藉。另外,在这里特别鄙视那些乱扔塑料口袋、果削的人,一路上好多地方太脏了,一个凉亭简直等于垃圾堆…另外有个特别牛的厕所,便坑里面都满了(当然这是地震后没人管理的问题)…

再论缓存删除 - 用正则匹配 CacheKey 批量删除缓存 - [开发]

接上次的话题《缓存方式扩展,缓存Tag(命名空间)的实现》,给 cache item打上了tag标签,这个方式是不错,今天再来一个更好的方法。
这个方式是模仿 Ruby on Rails 里面自带的功能,在 Ruby on Rails 里面,我们可以:

# 写入将page1,page2的数据写入缓存
Rails.cache.write('posts/page/1',@page1)
Rails.cache.write('posts/page/2',@page2)
Rails.cache.write('posts/index',@index)
# 用 posts/page/* 来删除 posts/page/1,posts/page/2
Rails.cache.delete('posts/page/*')
# 用 posts/* 来删除 posts/index,posts/page/1,posts/page/2
Rails.cache.delete('posts/*')

从上面的代码中看出这种删除实在是非常的实用,我们可以根据类别层次级为缓存起key的名称,如

  • home/index - 首页的index视图
  • posts/show/1 - 查看文章页面ID为1的文章

然后根据层次级来删除缓存。


这种按 * 号匹配删除一组缓存的方式在实际的应用中需求非常频繁,如《缓存方式扩展,缓存Tag(命名空间)的实现》里面提到的列表缓存清除,你不确定具体有多少页,但这些页面都得清除,哪就得用Tag正则匹配的方式来清除了。

缓存方式扩展,缓存Tag(命名空间)的实现 - [开发]

用过 Ruby on Rails 以后,从里面学到了很多很不错的应用,如《在Asp.net中实现类似Rails的 Flash[:notice] 的功能》,这里我实现缓存标签(也可以叫缓存命名空间)。

我们经常会遇到需要批量删除某一类的缓存,如 posts/p/1,posts/p/2,posts/p/3 这几个 CacheKey 都是属于文章列表的,我们想通过 posts 来删除所有页的缓存,这个就是简单的 Get Set Delete 这类的功能操作的了。

Ruby on Rails 里面,缓存可以用 posts/p/* (正则的方式) 来删除一系列的缓存,我这里没有做那么复杂,只是简单的实现给Caches加标签,分类,在按照分类来删除一些列缓存。

我这里是模仿的 Django 的一个实现,看这个地址 《Setting and deleting cache in Django with tags》,这个的实现方式我整理了一下,做到了 Pulog 里面,代码在这里

看看我在.NET里面的实现

Caches类源代码(code):

/*
* Cache 接口,实现tag功能,key前缀
* Logs,Memcached 在这里没有公开,只是一些具体的实现,你可以根据已经情况实现一下
* Logs.Debug 表示写debug日志
* Memcached 里面的Get,Set,Remove也需要自已实现
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class Caches
{

private static string GenerateKey(string key)
{
return "project_name/" + key;
}

///
/// 取缓存
///
///
///
public static object Get(string key)
{
key = GenerateKey(key);

object obj = Memcached.Get(key);

在Asp.net中实现类似Rails的 Flash[:notice] 的功能 - [开发]

我们在做表单的时候基本上都会用到提示消息.有时候我们希望添加信息完成后,自动跳转到列表页面,再显示"添加成功"的提示信息.

图1:



图2:



但是问题在于 这个提示信息,我们把它放哪儿呢?

可能你会想到下面几种方式:

URL GET参数传递 (看起来不好,中文转成URL后会弄得很长很长); URL POST 过去...

Apache 上面运行 Asp.NET 配置与性能测试 - [开发]

昨天测试了一下在Apache下面部署Asp.NET (3.5)的网站,其实一开始就在想这东西效率应该不会好多少。后面经过多番测试的确是要比IIS慢许多。我是拿公司的项目做的测试,这是一个 Web2.0网站,功能还是算比较多,很多种应用都有,除了一开始修改了一点点 Rewrite 以外,其它的功能完全能用,没发现任何问题。


先说一下我的安装过程:
Apache 的安装我这里就不说了

需要下载 mod_aspdotnet 这个 Apache Module
项目地址:http://sourceforge.net/projects/mod-aspdotnet

安装过程很简单,只要选对Apache的安装目录就好了,并且安装程序会自动发现Apache的安装位置的。

 

博客大巴 提供程序服务器托管支持,GimpStyle theme design by Horacio Bella
版权声明:本站文章使用《署名 3.0 Unported》授权,转载时请注意标明文章原始出处和作者信息及本声明