设计模式:简单工厂模式

这个系列是《大话设计模式》的读后感,将书中的设计模式用golang实现。 第一个设计模式是简单工厂模式,主要用到的知识点是类的多态。 多态表示不同的类可以执行相同的方法,但要通过它们自己的实现代码来执行。……

计算密集型 vs. IO密集型

计算密集型任务 计算密集型任务主要消耗CPU资源,需要进行大量的计算,如计算圆周率或对视频进行高清的解码等,全靠CPU的运算能力。 这种任务虽然可以利用多任务去完成,但是任务越多,花在任务切换上的时间就会……

去除CKFinder版权信息以及启用文件移动功能

最近在做毕业设计,使用到了CkEditor和CkFinder来做富文本编辑框以及文件管理。 因为CkFinder只能下载使用Demo版本,会有一些版权信息。 我不是用做商业目的,仅仅为了学习,所以想把版权信息去掉。 看了几篇博客,都是教你把alert框加上display:none,我考虑到这样并不好,因为如果有其他正常的信息也不能显示了,所以花了些时间改了下ckfinder.js,既去掉了版权信息,又不会影响其他信息的提示。

下文提供了两种方法,建议使用第二种。

如果你是用于商业目的,请到官网购买使用的License使用。

……

Shiro清除更新缓存的用户权限

Apache Shiro用于权限管理十分方便,但存在一个问题,就是当用户的权限发生变化的时候,就需要用户重新登录,重新缓存用户的权限信息。
现在想要在改变用户的权限的时候,清理用户的权限。
在写的过程中查找了一些资料,但是并没有成功实现权限的清理,所以我进行了一些修改,并实现了Helper类。

……

Grep, Sed, Awk 日常使用

grep

概述

在给出文件列表或标准输入后, grep会对匹配一个或多个正则表达式的文本进行搜索, 并输出匹配(或者不匹配)的行或文本.

使用格式

grep [options] PATTERN [FILE...]

常用选项

  • -i 忽略字符大小写
  • -v 显示未被模式匹配到的行或串
  • -o 只显示匹配到的串而不是整行
  • -n 显示匹配的行及行号
  • -E 使用扩展的正则表达式
  • -A n 显示出匹配到的行和后n行
  • -B n 显示出匹配到的行和前n行
  • -C n 显示出匹配到的行和前后各n行

扩展的正则表达式

扩展正则表达式与基础正则表达式的唯一区别在于: () {} ? + 这几个字符.

基础正则表达式中, () {} ? + 表示特殊含义,使用时需要将他们转义

而扩展正则表达式中, () {} ? + 不表示特殊含义, 你需要将他们转义.

转义符号, 都是一样的: 反斜线 \ .

所谓特殊含义, 就是正则表达式中的含义. 非特殊含义, 就是这个符号本身.

……

Vim 初级入门

前言

没有接触过Vim的同学, 一定会觉得平时使用的IDE很好用, 但是当你开始使用Vim, 并且渐渐熟悉, 我觉得你会爱上这一款编辑器. 千万不要因为一开始Vim有太多命令需要记忆而放弃它.

这篇博客是翻译自《Learn Vim Progressively》, 并在我觉得有必要添加说明的地方添加了自己的说明. 我认为是最适合入门Vim的教程, 没有之一.


正文开始

你想以最快的方式自学Vim吗? 在人类最优秀的编辑器面前, 你必须至少先学会如何幸存下来, 然后再去一点点整合使用它的技巧.

Vim the Six Billion Dollar editor

Better, Stronger, Faster

当你学会使用Vim, 它将成为你最后一个编辑器. 虽然学习它的过程很不容易, 但是最后它会难以置信的好用.

……

NSPredicate(谓词) 的使用

谓词(NSPredicate)提供在Cocoa中指定查询的普通解决方案。NSPredicate类用于定义逻辑条件以限制或筛选获取结果。 NSPredicate 的基本使用 定义: NSPredicate *predict = [NSPredicate predicateWithFormat: @"SELF CONTAINS[cd] %@", SOMESTRING]; 常用方法: 关键字 效果 比较运算符……