七月 19

這幾天花了一點時間,把網站搬到 SmarterASP.NET 上面了。

搬過去後遇到了一些問題,如下面2點。

繼續閱讀… »





七月 10

一直以來,這個網站的主機,都是架設在家中的VM環境中,也就是說有一台電腦一直開著。

直到那一天我的膝蓋中了一箭,我是說電腦Power掛掉。讓我好好的思考要把主機移出去的事情。

前陣子雖然購入了一台NAS(詳見:Synology DS-413j 入手前與入手後心得),

但是效能並不足以拿來當Server,更不用說拿來跑很吃資源的ASP.Net了。

所以向外發展是一定的了,決定了向外發展,接下來就是選擇了。

在這期間,我試過了微軟的Windows Azure VM 與 SmarterASP.net (Web Hosting)。

以下就我就列出一些我自己想法,供參考。

繼續閱讀… »





四月 21

WordPress 預設是不支援放入 iframe 的

要可以插入 iframe 必需先裝一個外掛,外掛的名字是 Embed Iframe

你可以選擇用上傳壓縮檔或是直接用網頁的方式安裝

外掛安裝好,使用方式為在發表的內容中加入下面這行樣版

[iframe 網址 寬 高]

例如本站的即時匯率就是使用 iframe 來完成的





四月 10

系統環境為,如果有所出入請自行判斷要修改的地方
Linux Debian 5.0
Apache 2
PHP5
Perl

要完成這個目標必先要裝 PHP APC 這個外掛

怎麼安裝呢?當然是使用無人不知,無人不曉 apt

懶人包已經準備好了,請服用

#! /bin/sh
apt-get -y install apache2-threaded-dev php5-dev php-pear perl
pecl install apc
echo "extension = apc.so" > /etc/php5/conf.d/apc.ini
echo "apc.stat=0" >> /etc/php5/conf.d/apc.ini
echo "apc.enabled=1" >> /etc/php5/conf.d/apc.ini
echo ";apc.shm_size=快取大小,單位:MB" >> /etc/php5/conf.d/apc.ini
echo "apc.shm_size=64" >> /etc/php5/conf.d/apc.ini
echo "apc.ttl=300" >> /etc/php5/conf.d/apc.ini
echo "apc.user_ttl=300" >> /etc/php5/conf.d/apc.ini
echo "apc.num_files_hint=1024" >> /etc/php5/conf.d/apc.ini
echo "apc.mmap_file_mask=/var/tmp/apc.XXXXXX" >> /etc/php5/conf.d/apc.ini
echo "apc.include_once_override = 1" >> /etc/php5/conf.d/apc.ini
echo "apc.enable_cli=1" >> /etc/php5/conf.d/apc.ini
cp /usr/share/php/apc.php /var/www
chown www-data /var/www/apc.php
chgrp www-data /var/www/apc.php
chmod 755 /var/www/apc.php
perl -i -pe "s/\'ADMIN_USERNAME\',\'apc\'/\'ADMIN_USERNAME\',\'admin\'/g" /var/www/apc.php
perl -i -pe "s/\'ADMIN_PASSWORD\',\'password\'/\'ADMIN_PASSWORD\',\'admin123\'/g" /var/www/apc.php
/etc/init.d/apache2 restart

首先先以 root 登入系統

請把 code 存成 install_apc.sh

然後給予可執行的權限( chmod 755 install_apc.sh)

執行 ./ install_apc.sh

出現以下畫面時,按下 Enter

47 source files, building
running: phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
1. Use apxs to set compile flags (if using APC with Apache)? : yes

1-1, ‘all’, ‘abort’, or Enter to continue:

懶人包預設會把 APC 的管理頁面,copy 一份到 /var/www 如果有特殊需求請自已搬移

預設的 APC 管理帳號是 admin 密碼是 admin123

如果要修改請編輯 /var/www/apc.php (修改後記得重啟 apache2)

defaults(‘ADMIN_USERNAME’,’你要的帳號’);
defaults(‘ADMIN_PASSWORD’,’你要的密碼’);

經過測試的結果,真的是差非常多,快到一個不行

如果你發現修改了網頁,可是仍然是顯示舊的,這表是網頁仍在快取中

有2個方法可以解決

1.直接重啟apache2

2.進入APC的管理介面,登入帳密後,點選 Clear opcode Cache

參考資料

[FreeBSD] 安裝 PHP APC 加速網頁速度

PHP APC on Ubuntu 8.04 Hardy





三月 20

RouterOS 看來應該是會一直玩下去了。越玩越順手

先補上在 WordPress 中可以讓 RouterOS 語法高亮的 SyntaxHighlighter-Plus 樣版

使用的方法可以參考之前的文章幫SyntaxHighlighter-Plus加上新的語言樣版

程式碼另存為shBrushRouterOS.js

SyntaxHighlighter.brushes.RouterOS = function()
{

    var keywords =  'global local do else for from to step in foreach ' +
                    'if put while environment nothing set';

    var commands =  'add comment disable enable export get move remove unset ' +
                    'delay edit blink monitor beep find led len  ' +
                    'list log pick resolve time print toid totime tonum';

        this.regexList = [
                { regex: /#.*$/gm, css: 'comments' },
                { regex: SyntaxHighlighter.regexLib.doubleQuotedString,                 css: 'string' },                // double quoted strings
                { regex: new RegExp(this.getKeywords(keywords), 'gm'),                  css: 'keyword' },               // keywords
                { regex: new RegExp(this.getKeywords(commands), 'gm'),                  css: 'functions' }              // commands
                ];
}

SyntaxHighlighter.brushes.RouterOS.prototype    = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.RouterOS.aliases      = ['ros'];

記得要在/wp-content/plugins/syntaxhighlighter-plus/syntaxhighlighter.php
大約在在112行的位置加入樣版的名子

‘RouterOS’=> array(‘ros’),





三月 17

WordPress 的 SyntaxHighlighter-Plus 外掛預設支援下列的語言

* Bash — `bash`, `sh`
* C++ — `cpp`, `c`, `c++`
* C# — `c#`, `c-sharp`, `csharp`
* CSS — `css`
* Delphi — `delphi`, `pascal`
* Diff — `diff`, `patch`
* Groovy — `groovy`
* Java — `java`
* JavaScript — `js`, `jscript`, `javascript`
* PHP — `php`
* Plain text — `plain`, `text`
* Python — `py`, `python`
* Ruby — `rb`, `ruby`, `rails`, `ror`
* SQL — `sql`
* VB — `vb`, `vbnet`, `vb.net`
* XML/HTML — `xml`, `html`, `xhtml`, `xslt`

如果今天想要加入一個新的語言該怎麼怎做呢?

只要2個步驟就可以完成了

1.把適用於SyntaxHighlighter-Plus的語言樣版(JavaScript)放到
/wp-content/plugins/syntaxhighlighter-plus/syntaxhighlighter/scripts

2.編輯/wp-content/plugins/syntaxhighlighter-plus/syntaxhighlighter.php
大約在在112行的位置加入樣版的名子

$this->aliases = apply_filters( ‘agsyntaxhighlighter_aliases’, array(
‘Bash’ => array(‘bash’, ‘sh’, ‘shell’),
‘Cpp’ => array(‘cpp’, ‘c’, ‘c++’),

例如要加入一個批次檔(bat)的樣版,把下面這行加入

‘Batch’ => array(‘batch’,’dos’,’bat’),

加入後變成

$this->aliases = apply_filters( ‘agsyntaxhighlighter_aliases’, array(
‘Bash’ => array(‘bash’, ‘sh’, ‘shell’),
‘Batch’ => array(‘batch’,’dos’,’bat’),
‘Cpp’ => array(‘cpp’, ‘c’, ‘c++’),

下面我們用例子來看看。

如果要加入Dos批次檔與Perl的語法樣版

首先,先把下面2個JavaScrip放到

/wp-content/plugins/syntaxhighlighter-plus/syntaxhighlighter/scripts

程式碼另存為shBrushBatch.js

/*shBrushBatch.js*/

SyntaxHighlighter.brushes.Batch = function()
{

var keywords =  'do else for in call choice goto shift pause errorlevel ' +
'if not exist lfnfor start setlocal endlocal echo set';

var commands =  'append attrib cd chdir chkdsk choice cls copy del erase deltree ' +
'dir exit fc comp fdisk find format fsutil help join ' +
'label loadfix md mkdir mem memmaker more move msd pcpark ' +
'print rd rmdir ren scandisk share sort subst sys ' +
'time date tree truename type undelete ver xcopy';

this.regexList = [
{ regex: SyntaxHighlighter.regexLib.singleLinePerlComments,             css: 'comments' },              // one line comments
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,                 css: 'string' },                // double quoted strings
{ regex: new RegExp(this.getKeywords(keywords), 'gm'),                  css: 'keyword' },               // keywords
{ regex: new RegExp(this.getKeywords(commands), 'gm'),                  css: 'functions' }              // commands
];
}

SyntaxHighlighter.brushes.Batch.prototype       = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Batch.aliases         = ['dos', 'batch', 'bat'];

程式碼另存為shBrushPerl.js

</span></span>

程式碼另存為shBrushPerl.js

1

/*shBrushPerl.js*/

SyntaxHighlighter.brushes.Perl = function()
{
var funcs = 'abs accept alarm atan2 bind binmode bless caller chdir chmod chomp chop chown chr chroot close closedir connect cos crypt dbmclose dbmopen defined delete dump each endgrent endhostent endnetent endprotoent endpwent endservent eof exec exists exp fcntl fileno flock fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getppid getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt glob gmtime grep hex import index int ioctl join keys kill lc lcfirst length link listen localtime lock log lstat m map mkdir msgctl msgget msgrcv msgsnd no oct open opendir ord pack pipe pop pos print printf prototype push q qq quotemeta qw qx rand read readdir readline readlink readpipe recv ref rename reset reverse rewinddir rindex rmdir scalar seek seekdir semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unlink unpack unshift untie utime values vec waitpid wantarray warn write qr';

var keywords =  's select goto die do package redo require return continue for foreach last next wait while use if else elsif eval exit unless switch case';

var constants   = 'my our local';

this.regexList = [
{ regex: SyntaxHighlighter.regexLib.singleLineCComments,        css: 'comments' },                      // one line comments
{ regex: SyntaxHighlighter.regexLib.multiLineCComments,         css: 'comments' },                      // multiline comments
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,         css: 'string' },                        // double quoted strings
{ regex: SyntaxHighlighter.regexLib.singleQuotedString,         css: 'string' },                        // single quoted strings
{ regex: /\$\w+/g,                                                                                      css: 'variable' },                      // variables
{ regex: new RegExp(this.getKeywords(funcs), 'gmi'),            css: 'functions' },                     // common functions
{ regex: new RegExp(this.getKeywords(constants), 'gmi'),        css: 'constants' },                     // constants
{ regex: new RegExp(this.getKeywords(keywords), 'gm'),          css: 'keyword' }                        // keyword
];

this.forHtmlScript(SyntaxHighlighter.regexLib.phpScriptTags);
};
SyntaxHighlighter.brushes.Perl.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Perl.aliases  = ['perl','pl'];

最後在 /wp-content/plugins/syntaxhighlighter-plus/syntaxhighlighter.php 加入

‘Batch’ => array(‘batch’,’dos’,’bat’),
‘Perl’ => array(‘perl’, ‘pl’),

大功告成

參考資料:
shBrushBatch for Google SyntaxHighlighter
Perl Syntax Highlighter





三月 07

加入的方式很簡單就只是插入一張圖片而已

只要把這行html碼放到你的Blog中就行了

<!--本行為註解-->
<!--台灣即時衛星雲圖-->
<a href="http://www.cwb.gov.tw/V6/observe/satellite/Data/s3p/s3p.jpg">
<img src="http://www.cwb.gov.tw/V6/observe/satellite/Data/s3p/s3p.jpg"
alt="即時衛星雲圖" title="即時衛星雲圖" border="0" align="center" width="190" />

上面這張圖片是"台灣"的

如果你要的是"東亞"的請用這段程式碼

<!--本行為註解-->
<!--東亞即時衛星雲圖-->
<a href="http://www.cwb.gov.tw/V6/observe/satellite/Data/s1p/s1p.jpg">
<img src="http://www.cwb.gov.tw/V6/observe/satellite/Data/s1p/s1p.jpg"
alt="即時衛星雲圖" title="即時衛星雲圖" border="0" align="center" width="190" />

如果你要的是"全球"的請用這段程式碼

<!--本行為註解-->
<!--全球即時衛星雲圖-->
<a href="http://www.cwb.gov.tw/V6/observe/satellite/Data/s0p/s0p.jpg">
<img src="http://www.cwb.gov.tw/V6/observe/satellite/Data/s0p/s0p.jpg"
alt="即時衛星雲圖" title="即時衛星雲圖" border="0" align="center" width="190" />

參考資料來源:欄位加入多功能中央氣象局衛星雲圖動畫