boost install

C++ 擴充函式庫。

Source http://sourceforge.net/projects/boost/files/boost/1.46.1/


$ ./bootstrap.sh

$ ./bjam "-sTOOLS=gcc" "--includedir=/usr/include" "--libdir=/usr/lib/boost" install
#如果有需要可以另外再 with 幾個 component
#--with-filesystem --with-program_options --with-regex --with-serialization --with-system --with-thread 
$ g++ test.cpp -L/usr/lib/boost


//example
#include <boost/thread/thread.hpp>
#include <iostream>
void helloworld() {
std::cout << "Hello World!" << std::endl;
}
void main() {
boost::thread thrd(&helloworld);
thrd.join();
}

參考資源:

jpgraph 2.2 中文支援

很久以前的一篇文章…庫存一下…

官方網站 http://www.aditus.nu/jpgraph/

使用2.2版 官方連結 http://hem.bredband.net/jpgraph2/jpgraph-2.2.tar.gz

src/jpgraph.php 內

6256行左右有 $txt = $this->langconv->Convert($txt,$this->font_family);

似乎是將簡體中文轉成 utf-8 而我網站內使用的是 utf-8 而且我用的是繁體中文,所以註解掉這行。

63行部份有定義字型的位置,我網站內使用的是Linux 而我又不是伺服器管理者動不到原先字型的目錄,所以將字型之置換於 jpgraph 安裝目錄下所以改成這樣。

if (!defined('TTF_DIR')) {
   if (strstr( PHP_OS, 'WIN') ) {
      $sroot = getenv('SystemRoot');
      if( empty($sroot) ) {
         $t = new ErrMsgText();
         $msg = $t->Get(12,$file,$lineno);
         die($msg);
      }
      else {
         DEFINE('TTF_DIR', $sroot.'/fonts/');  //windows下的位置
      }
   } else {
      DEFINE('TTF_DIR','/home/mlwmlw/www/jpgraph/'); //unix下的位置
   }
}

JPG-CONFIG.INC
此檔控制一部分字型的選擇,內有此行定義繁體中文字型的字體

//JPG-CONFIG.INC
DEFINE('CHINESE_TTF_FONT','simhei.ttf');

可使用 FF_CHINESE aka FF_BIG5 不過這似乎此檔不是關鍵定義字型的部份,在網路上找到的文件選中文程式中設定都是 FF_SIMSUN,FS_BOLE

接著看 jpgraph_ttf.inc.php 注意此文件內的設定字體陣列,發現了 jpGraph 定義字型的關鍵程式,

我們要改的部份240行

//jpgraph_ttf.inc.php
/* Chinese fonts */
FF_SIMSUN => array(FS_NORMAL	=>'simsun.ttc',
FS_BOLD	=>'simhei.ttf',
FS_ITALIC	=>'',
FS_BOLDITALIC	=>'' ),
FF_CHINESE => array(FS_NORMAL	=>CHINESE_TTF_FONT,
FS_BOLD	=>'DFFN_M9.TTC',
FS_ITALIC	=>'',
FS_BOLDITALIC	=>'' ),

字型規則

FF_*** 選擇主要類別,FS 選擇字型,每個FF定義了每個字型的對應屬性,我將 CHINESE 內的 NORMAL 與 BOLD 放置了兩個我需要的字體,
之後程式在 SET_FONT 時就看要那個字體就應對著選擇 FF_CHINESE,[FS_NOMAL OR FS_BOLD]。

這樣在跑應該就能有中文了。

程式碼顏色凸顯 用於 office

原由:

時常有需要做投影片裡面都會放到程式,有很多工具可以做,只是都是單純 html,而貼到 PowerPoint 上就會有一些跑掉,

找到最適合的工具是 highlight ,他支援的很完整,語言、樣式,還有介面完善的GUI與API。GUI部份其實很完整了,但是因為他是用 pre 包覆的,所以貼到 Office 換行跟空白都會有些跑掉。而且輸出到剪貼簿的格式也不是 html,要自己在存成 html 來複製再貼。

他另外也有一個類別給 PHP 跟 Python,內部實做其實只是用 pipe 去發指令收回應。

所以我寫了個小程式整理一下輸出的結果,讓貼到 Office 後格式儘量不要跑掉…。

隨便做的說明:


轉換結果範例:

 1 //Examle
 2 public class Fibonacci {
 3     public static long fib(int n) {
 4         if (n <= 1) return n;
 5         else return fib(n1) + fib(n2);
 6     }
 7 
 8     public static void main(String[] args) {
 9         int N = Integer.parseInt(args[0]);
10         for (int i = 1; i <= N; i++)
11             System.out.println(i + “: “ + fib(i));
12     }
13 }

程式網址:

Syntax highlight for Office

DNS Server

http://4271569.spaces.live.com/blog/cns!F1EA4F91324DA556!756.entry
CentOS v5.3-安裝 bind(DNS) / 新增網域名稱 / 每次開機就啟動 named
**Bind 的相關套件 ( DNS )
 .bind…………………………DNS 主程式
 .bind-chroot………………將 bind 主程式關在家理
 .bind-utils………………….用戶搜詢主機名稱的相關指令
 .system-config-bind
 .caching-nameserver

**安裝 bind,似 DNS 名稱解悉
**bind 的設定檔在 /var/named/chroot
# yum -y install bind bind-chroot bind-utlis system-config-bind caching-nameserver <-- 安裝套件。install 時不需再問全為 (y)es # cd /var/named/chroot/etc <-- 切換至 etc 目錄下 # cp named.caching-nameserver.conf named.conf <-- 覆製 named.caching-nameserver.conf,另存成 named.conf # ll <-- 觀察 named.conf 檔案權限, 此時應為 root root # chown root:named named.conf <-- 變更 named.conf 檔案權限 # ll <-- 觀察 named.conf 檔案權限, 此時應變稱為 root named # service named restart <-- 修改後需重新啟動,讓設定值生效。會先關畢,然後再啟動 # vi /var/named/chroot/etc/named.conf <-- 修改 named.conf 將 listen-on port 53 { 127.0.0.1; }; 修改成 listen-on port 53 { any; }; <-- 將127.0.0.1 改為 any,表示監聽所有 53 port 介面 將 allow-query { localhost; }; 修改成 allow-query { any; }; <-- 將 localhost 改為 any,表示允許外部來此台 dns 查詢 # service named restart <-- 修改後需重新啟動,讓設定值生效。會先關畢,然後再啟動 **新增 網域名稱 ◎假設網域名稱 ne160.kirnel.com  .新增加網域名稱 hello.ne160.kirnel.com  .新增加網域名稱 kitty.ne160.kirnel.com       ne160.kirnel.com ( 140.137.217.160 )           /       \          /         \         hello        kitty      ne160.kirnel.com  ne160.kirnel.com      140.137.217.160  140.137.217.160          |        | ┌-------- ┼- Apache -┼-------┐ | /opt/hello <┘        └> /opt/kitty | └-------------------------┘ # vi /var/named/chroot/etc/named.conf <-- 修改 etc 目錄下的 named.conf 檔 將 match-client { localhost; }; 修改成 match-client { any; }; 將 match-destinations { localhost; }; 修改成 match-destinations { any; }; # vi /var/named/chroot/etc/named.rfc1912.zones <-- 修改 named.rfc1912.zones 檔案 增加以下: zone "ne160.kirnel.com" IN { type master; file "ne160.zone"; allow-update { none; }; }; # cd /var/named/chroot/var/named # ll <-- 觀察是否有 ne160.zone # cp localhost.zone ne160.zone <-- 覆製 localhost.zone,另存成 ne160.zone # ll <-- 觀察 ne160.zone 檔案權限,此時應為 root root # chown root:named ne160.zone <-- 變更 ne160.zone 檔案權限 # ll <-- 觀察 ne160.zone 檔案權限,此時應變稱為 root named # vi /var/named/chroot/var/named/ne160.zone <-- 修改 ne160.zone,新增加 hello 及 kitty 網域 增加以下: hello  IN A  140.137.217.160 kitty  IN A  140.137.217.160 # service named restart <-- 修改完後,重新啟動 named。會先關畢,然後再啟動 **測試 # vi /etc/resolv.conf <-- 設定 DNS 增加以下: nameserver 168.95.1.1 # dig hello.ne160.kirnel.com @localhost <-- 使用本端機的 DNS,來查 hello.ne160.kirnel.com # dig hello.ne160.kirnel.com @168.95.1.1 <-- 使用中華電信的 DNS,來查 hello.ne160.kirnel.com # dig kitty.ne160.kirnel.com @localhost <-- 使用本端機的 DNS,來查 kitty.ne160.kirnel.com # dig kitty.ne160.kirnel.com @168.95.1.1 <-- 使用中華電信的 DNS,來查 kitty.ne160.kirnel.com **測試在 Windows 下使用 ping 指令  .ping hello.ne160.kirnel.com  .ping kitty.ne160.kirnel.com **建立 hello 及 kitty 網站目錄 # cd /opt <-- 切換至 /opt 目錄下,觀查有無 hello 及 kitty 目錄 # mkdir /opt/hello <-- 在 /opt 目錄下建立 hello 網站目錄 # mkdir /opt/kitty <-- 在 /opt 目錄下建立 kitty 的網站目錄 **建立網站內容文字 # echo "This is hello web." > /opt/hello/index.html <-- 在 hello 目錄下建立 index.html 檔案 # echo "This is kitty web." > /opt/kitty/index.html <-- 在 kitty 目錄下建立 index.html 檔案 **建立虛擬網站 # service httpd restart <-- 重新啟動。會先關畢,然後再啟動 # cd /etc/httpd/conf <-- 切換至 conf 目錄下 # vi httpd.conf 增加以下: NameVirtualHost 140.137.217.160:80
ServerAdmin [email protected]
DocumentRoot /opt/hello
ServerName hello.ne160.kirnel.com
ErrorLog /var/log/hello-error_log
CustomLog /var/log/hello-access_log common


ServerAdmin [email protected]
DocumentRoot /opt/kitty
ServerName kitty.ne160.kirnel.com
ErrorLog /var/log/kitty-error_log
CustomLog /var/log/kitty-access_log common

# service httpd restart <-- 修改後,重新啟動。會先關畢,然後再啟動 **測試網站是否正確建立完成  .在 Windows 下開啟瀏覽器,在網址列內輸入 http://hello.ne160.kirnel.com  .在 Windows 下開啟瀏覽器,在網址列內輸入 http://kitty.ne160.kirnel.com **設定每次開機就啟動 named # chkconfig named on <-- 設定每次開機就啟動 named 功能 http://plus-now.com/?p=31

http://plus-now.com/?p=36

參考上述設定…