Kaminari 的 AJAX 翻页实现

Kaminari 是 rails 上一个很有名的分页管理扩展,使用极其简单。最近刚在项目中使用了它的 AJAX 分页的功能,记录一下实现的过程。

基本的安装和配置就不啰嗦了,按照官方的教程来进行就是啦,具体记录一下 AJAX 翻页实现的部分,以一个订单列表的页面作例子。

监控磁盘读写状况

有时候,我们经常会碰到这样的情形:没有运行任何程序,磁盘却不断执行读写动作,硬盘指示灯常亮,各种操作迟缓甚至鼠标都不能动了。碰到这种状况往往会感到束手无策,并且就纳闷了:究竟是什么程序在读写我的磁盘呢?

这个时候,就到iotop登场的时候了!

计算一个数组里各元素出现的次数(ruby)

一个包含了多个元素的数组,如何计算出这个数组里各个元素出现的次数呢?比如说:
给出: a = ['cat','dog','fish','fish']
得到的最终结果: a2 = {'cat' => 1, 'dog' => 1, 'fish' => 2}

通过ActiveRecord访问数据表的列信息

ActiveRecord提供了很多方法来访问某个模型数据表的列信息

columns
返回一个列对象的数组

columns_hash
类似columns方法,不过返回一个以列名为key,列对象为value的hash数组

column_names
返回模型数据表列名的数组

屏蔽SSH的暴力穷举破解

最近经常碰到服务器被那些蛋疼得没治的人进行SSH暴力穷举破解,实在是让人讨厌。只好想办法来阻止了。主要有两种方法:

1、 使用SSH本身的配置文件来阻止,在/etc/ssh/sshd_conf文件里加入:

LoginGraceTime 2m
MaxAuthTries 6

这个意思大概就是在2分钟内只可以进行6次登录的尝试。

2、 还有就是使用denyhosts这个软件。它可以分析SSH的日志文件,如果登录认证连续错了指定的次数,就把该IP列入到deny hosts里面。

Drupal字符截取函数views_trim_text

Drupal的Views模块有一个很好用的字符截取函数views_trim_text,它的用法如下:

views_trim_text($alter, $value)

参数:
$alter

  • max_length: 字符串最大长度,超出部分将被截取
  • word_boundary: 以单词(Word)为边界来截取
  • ellipsis: 以单词(Word)为边界来截取,结尾以‘...’结束
  • html: 确保html标签的完整性

mysql log-bin 日志文件

前段时间有人向我反映说我的VPS无法上传文件了,我登录上去一查,原来是VPS的磁盘空间已经差不多满了,FTP在可用空间少于10%的时候就拒绝上传文件了。当时因为工作忙,没有时间细查,只是把一些临时文件清理了让他不要再往网站上添加资料就放到一边了。今天记起这件事,怎么也想不明白平时的网页文件,应该占用不了这么多的空间的啊,到底是谁把我的空间吃掉了呢?