Becomin' Charles

算法 | LNMP | Flutter | Mac

Becomin' Charles

Apache的虚拟主机是一种允许在同一台机器上,运行超过一个网站的解决方案。虚拟主机有两种,一种叫基于IP的(IP-based),另一种叫基于名字的(name-based)。虚拟主机的存在,对用户来说是透明的。

阅读全文 »

WP的插件在开发完成后,会在用户的服务器上运行,而用户的服务器环境基本上可以用千奇百怪来形容。开发过程中,在本地运行得好好的插件的,一旦安装到用户的服务器上,也有可能变得无法运行。

所以,作为WP插件的开发者,最好不要对插件最终的运行环境做任何假设。而且,最好能够在插件被启用的时候,进行必要的检查,给用户以提示,对于自己没法兼容的问题,应该明确指出,避免用户遭遇不必要的麻烦。

在我个人的WP插件开发过程中,我主要遇到的问题,基本上都是PHP相关的问题。

阅读全文 »

插件的后台管理页面的主要功能是协助用户设定插件运行时参数,一般都需要用户进行交互,这就少不了需要客户端脚本的参与(主要是js脚本,当然还有配套的css样式表)。

WP的后台本身就已经加载了许多的脚本,包括各类类库和基础功能的脚本。过多的脚本文件引入,会增加HTTP请求,增加流量,拖慢速度。好在,WP的后台已经采取了相当多的措施,来管理后台加载的脚本。首先是用wp-dependency管理依赖关系,用load-scripts来压缩、并加载脚本,使得各种类库被合并到同一个文件中进行加载,节省了HTTP请求数量和流量。

阅读全文 »

man是 Linux 下最最常用的命令之一,用来显示某个命令的手册。

一般在命令行下,manpages 通过粗体和下划线来标记关键信息,有多种方法来使man命令显示彩色的 manpages。

man是调用less来显示 manpages 的,可以更换这个程序,使用most来显示,这是一个方法。但是长期以来使用less,已经习惯,most又有一套操作方法,后来我又发现了一种方案,非常简单,只要通过在.bashrc中设定环境变量,就可以高亮彩显 manpages,非常方便。

设定方法如下,在.bashrc 末尾添加如下几行:

1
2
3
4
5
6
7
export LESS_TERMCAP_mb=$'\E[01;31m'
export LESS_TERMCAP_md=$'\E[01;31m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;44;33m'
export LESS_TERMCAP_ue=$'\E[0m'
export LESS_TERMCAP_us=$'\E[01;32m'

如此,即可以为 manpages 添加红绿两色,虽然不多,但是远好过了单调的黑白页面。

从 Word97 开始就用上 MS Word 了,直到 Word2007,一晃眼也用了 10 多年了,可惜嘛,依旧是那个烂水平。排版个学位论文啥的,就是我水平的极限了。Word 是一款强悍的编辑排版软件,可惜,我实在钻研精神有限,实在惭愧。现在又到一年学位论文时啊,想着今后漫长的日子里,要憋好几十页的文章,一种孤独寂寥的感觉就涌上心头,实在是不甘心,这就又想起来,有一款排版效果堪比 Word,搞不好还略有小胜的软件,我还完全没有涉足过,这就是 LaTex 了。学习新东西给人的那种新鲜喜悦,可以好好中和一下憋论文的悲苦,于是我踏上了 LaTeX 之旅。

LaTex 一般指的就是 LaTeX 2e,是一个在 TeX 基础之上编写的宏包。关于 TeX 的起源,还有一段佳话,我就不赘述了。乍一接触 LaTeX,无论是由于任何原因,也免不了要把这个软件和 Word 相比较,我同样不能免俗。要说二者的差异,最大的地方还是理念上的差异了,关于这种差异,我同样不想赘述。我只谈体验。LaTeX 无论是学习,还是编写文档,初上手给人的感觉就两个字,痛苦。

阅读全文 »

我在 CSDN 上分享了很多东西,一直想把那个列表也在博客上罗列一个,一直就没有付诸于行动,昨天一发狠,终于弄了。

等于昨天几个小时,今天几个小时,搞出了一个小插件。就是右侧的一个小挂件。点上去就会链到 CSDN 的下载页面。

算是我把一年前的债还了。真开心。

插件里面没什么技术含量,就是小小调用了一下 Google Feed API。

做这个插件,也引发了我一个思考。

能否在页面的 head 部分,就知道这个页面会装载哪些 Widget 呢?昨天折腾了半天,也没有解决这个问题。

解决的好处是显而易见的,现在的 Widget,大多数都需要js来辅助了。但是很多高端的主题有数个 sidebar,每页不同,如果 Widget 开发者,为了符合 Web 标准,把 js 放在 head 部分,就不得不无差别地在所有页面插入代码了。那样的话,添加一个 Widget 就会带来浪费的流量,页面速度也会被不断拖慢。

当然有个替代方案是把代码放到页面的 footer 部分,不过,个人以为,只要脚本出现在了Html body里面,那么直接嵌入到 Widget 中和 hook 到 footer 上,其实没什么本质区别,都破坏了行为和数据分离的原则。

这也是无奈之举了。谁叫 WP 设计成了 sidebar.php 执行前,无法知道页面会载入哪个 sidebar 这种结构呢?

当然,不排除还有更好方法的可能,如果知道的网友还望不吝告知。

初次安装vim编辑器时,我们必须要配置~/·vimrc文件才能让vim变得更加好用。最少最少,你要配置下面一些内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
" 不再与老旧的Vi兼容
set nocompatible

" 开启filetype支持
filetype on
filetype plugin on
filetype indent on

" 语法高亮
syntax on

" 这个选项为什么不是默认的?
set hidden

" 执行宏的时候不要更新显示set lazyredraw

" 至少让你知道当前是在什么状态下
set showmode

" 启用增强的命令行自动补全。必须再编译时开启 +wildmenu 选项
set wildmenu

" 更容易的编辑此文件,即vimrc文件。用ev命令表示edit vimrc。
nmap <silent> ,ev :e $MYVIMRC<cr>

" 并且令配置立刻生效,用sv命令表示source .vimrc
nmap <silent> ,sv :so $MYVIMRC<cr>

==========

上面一些选项还有很多我不懂的,以后研究明白了再添加解释。此文就作为我学习使用vim编辑器的起点吧~~

在网上搜出了很多给Hibernate配置连接池的文章,不过基本上都是同一篇文章,介绍了3种连接池的配置方法,我先试验了c3p0,感觉不出有什么快的,只是觉得在并发测试中,减少了出错的概率。那篇帖子最底下,说道社区普遍认为c3p0不够优秀,大家更倾向使用proxool,于是乎,我决定也试试,当然,我自己完全是没任何经验的,纯粹是为了试试。

去proxool下载了最新版本,0.9.1(我用的Hibernate是3.2.5版本,实际上0.9.1配置好后,跑步起来,最后还是用了0.8.3,后面会说的),按照网上普遍能搜到的帖子里的那个方法配置。

阅读全文 »

使用E63,又有一段日子了,这款手机依旧在不断地带给我惊喜,不能说这是最好的手机,但是,这绝对是性价比最高的手机之一了。 在点评狂网站上,E63的评分(9.3),稳稳地领先于其孪生兄弟E71(8.6)。

我前几天,写过一篇关于E63的文章,主要初上手E63时的一些感受,包括对手机外观和功能的简单评价。在这一篇中,我将介绍我最近几天来安装各类E63软件的一点经验。

阅读全文 »