星期三, 8月 02, 2006

直接在瀏覽器上畫流程圖

通常要畫 流程圖 都會用 MS 的 visio
但是如果你只是偶而畫一下,也不想買 visio
可以到 Gliffy 來試試看

目前發現一個缺點,轉出的圖檔中文會變成亂碼

星期四, 7月 27, 2006

iconv

iconv 是個轉碼程式
可以將 BIG5 轉成 GB2312
或是將 BIG5 轉成 UTF-8
等等

指令說明:
iconv -l :可以看看 iconv 支援哪些 encode
iconv -c -f BIG5 -t GB2312 filename:可以 filename 這個檔案由 BIG5轉成GB2312碼

請看這裡
這裡下載libiconv-win32

星期二, 6月 13, 2006

網路對時 (XP)


上次說到 Windows 2000 上網路對時的方法
這次來說一下 XP 下網路對時的方法

滑鼠移到桌面右下角顯示時間處,按左鍵兩下,出現 [日期和時間 內容],選網際網路時間,按下[立即更新]就好了

一些 wiki software

自從上次試裝了 pmwiki後,又找到一些 wiki software,不過還都僅在觀看的階段

DokuWiki
Wikka Wiki
Schtuff

星期四, 6月 08, 2006

安裝 pmwiki

最近想裝個 wiki 來玩玩看,上google 找到了 pmwiki,就決定下載來安裝看看。

首先到 這裡下載 pmwiki-latest.tgz 及 i18n.tgz ,根據 安裝說明 安裝起來。

然後就開始使用了,現在正在研究中
ps:Pmwiki是個不需要資料庫的 wiki 系統,只要有 PHP 就可以裝了
ps:Linux 2.4.25-2mdk + PHP 4.3.4

---------------------------
安裝起來時,其實遇到一個問題,就是會出現 Fatal error: Call to undefined function: utf8_encode() 這個訊息,原來是我的 PHP 少裝了一些模組,造成上述問題。

但是我又不想再安裝模組,於是上網找了一段 utf8 decode的程式碼,加到 pmwiki 程式中,稍微改一下然後就可以 run 了,使用到現在還算正常。
以下為那一段程式碼:

function decode_utf8($str){
# erase null signs in string
$str=eregi_replace("^.{10,13}q\?","",$str);
# paterns
$pat = "/=([0-9A-F]{2})/";
$cha="'.chr(hexdec(";
# to decode with eval and replace
eval("\$str='".
preg_replace($pat,$cha."'$1')).'",$str).
"';");
# return
return $str;
}

星期一, 6月 05, 2006

使用 ppm 安裝 Active Perl 模組

我在 Win32 下安裝了 Active Perl
那要如何安裝各項模組呢?
答案是:使用 ppm

首先,先到DOS命令提示環境下,執行 ppm:
ppm

需要幫助時:
ppm>h

列出ActiveState網站上Perl模組的清單
ppm>search 模組名稱
ps:假如 不輸入 模組名稱 ,會列出全部模組

安裝模組
ppm>install 模組名稱

離開
ppm>q

假如已經知道模組名稱,也可以直接用
ppm install 模組名稱
來安裝模組

[perl]我想要知道 user 是從那裡連到我的網頁的,如何做呢?(續)

使用 perl 來統計上次產生的 referer.txt 檔

#! /usr/bin/perl

sub trim {
my @out = @_;
for (@out) {
s/^\s+//;
s/\s+$//;
}
return wantarray ? @out : $out[0];
}

open(FP,'< /tmp/referer.txt'); while (<FP>) { @aReferer = split(/=>/);
$aR =trim( $aReferer[2]);

$aR =~ s/http\:\/\///i;
@aU = split(/\//,$aR);
$aUrl = @aU[0];
$aSource{$aUrl} += 1;
}

foreach $aa (sort keys %aSource) {
printf "%-30s = %4d\n" , $aa , $aSource{$aa};
}

close(FP);

星期六, 6月 03, 2006

網路對時 (win2000)

在 windows 2000 的環境底下,在不安裝任何網路對時軟體的情況下,要怎麼作網路對時呢??

首先,到 DOS 命令提示環境下
C:\>net time /setsntp:time.stdtime.gov.tw(設定ntp server)
指令執行成功。
C:\>w32tm -once(執行一次對時)
接著會出現一堆執行w32Time的訊息,就完成對時了。

ps:time.stdtime.gov.tw 是中華電信研究所時間與頻率國家標準實驗室 的 Server

星期四, 6月 01, 2006

[PHP]我想要知道 user 是從那裡連到我的網頁的,如何做呢?

使用 PHP 的環境變數 $HTTP_REFERER 或是 $_SERVER['HTTP_REFERER'] 就可以知道是從那一個網頁連接過來的。

<?
  echo $_SERVER['HTTP_REFERER'];
?>

將資料紀錄到檔案中,以便分析
<?
 $now = date("Y-m-d H:i:s",mktime());
 $fp = fopen("/tmp/referer.txt","a");
 if (!empty($HTTP_REFERER)) {
  fwrite($fp,"$now => $HTTP_HOST => $HTTP_REFERER\n");
 }
 fclose($fp);
?>

星期日, 5月 28, 2006

perl 讀取 excel 檔的方法

#! /usr/env perl

use strict;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';

$Win32::OLE::Warn = 3;

my $Excel = Win32::OLE->GetActiveObject('Excel.Application')
|| Win32::OLE->new('Excel.Application', 'Quit');

# 打開 excel 檔
my $Book = $Excel->Workbooks->Open("c:/test/test.xls");

# 選擇 sheet , 1 代表第一個 sheet , 也可以直接給 sheet 的名稱
my $Sheet = $Book->Worksheets(1);

# 顯示 A1 的值
print $Sheet->Range("A1")->{'Value'}."\n";

$Book->Close;

星期五, 5月 26, 2006

UltraVNC SC

大家都知道 VNC 是個遠端遙控的軟體
但是通常都會遇到電腦在 IP分享器底下,而造成無法連線的問題
如果要跟對方描述在 IP 分享器下如何設定 Virtual Server ,那真是大工程了

UltraVNC SC (SingleClick) 就可以處理掉這個問題
原理是
由 Server 端(客戶)來呼叫 Viewer 端(我),那這樣就變成需要在 Viewer 這端設定 Virtual Server 了,當然設定 Virtual Server 對工程師而言是小問題

製作專屬的 VNC SC Server 端執行檔
首先,先到網站上,下載設定檔,然後按照網站上的說明修改設定檔,最後把這些設定檔壓縮成 zip 檔,再到這裡上傳 zip 檔,上傳後接著就可以下載 .exe 檔,這個 .exe 檔就是你專屬的 VNC SC Server 端執行擋了

如何執行
把這個執行檔丟給對方,然後在自己的電腦商開啟 VNC Viewer 端,再請對方執行該執行檔後,點一下連結,這樣就可以連上了

缺點
因為在製作 VNC SC Server端執行檔時,就把 Viewer 端的 IP 寫進去了,如果 Viewer 端是變動 IP,那下次要再用時,可能就要重新製作執行擋了

UltraVNC SC

程式設計的好幫手Notepad++

我習慣使用純文書處理系統來撰寫一些小程式 or HTML
但發現 windows 上附的記事本實在難用,因此找了這個 Notepad++ 來試試看
一試,發現還蠻符合我的需求的

先說一下我喜歡它是因為哪些特色:

1.針對語法做高亮度的顯示
2.支援 RE 搜尋
3.可以自訂某些功能鍵,ex:我習慣刪掉一行是按 [Ctrl]+Y,我就可以這樣設定
4.[Ctrl]+D 可以複製目前這一行
5.[Ctrl]+[Shift]+上下鍵,可以直接將目前行上下移動


但是還是有些我不喜歡的地方:

1.當游標移到某些中文字,那個中文字就會出現亂碼
2.自訂程式語言對話框,使用上覺的不太友善


ps:我使用的是 v3.5版

Notepad++

星期二, 5月 23, 2006

[perl]檢查字串是否皆為英數字所組成

檢查該字串是否為第一字為英數字且其餘字為英數字及一些符號所組成

$aStr = "abc*-123";

if ($aStr =~ /^[a-zA-Z0-9][a-zA-Z0-9\~\@\#\$\%\^\&\*\+\-\.\_]*$/) {
 print "yes"; }
else {
 print "no";
}

星期一, 5月 22, 2006

google alerts

google alerts 中文為 google 快訊
http://www.google.com/alerts

這個功能讓你可以建立你想要知道的訊息,你想要追蹤的東西

然後 google 會把發現的資料,mail 到你的 Gmail 中

星期日, 5月 21, 2006

另一個共享書籤網站 HEMiDEMi

del.icio.us 很類似,可以將 bookmarks 紀錄在這個網站上,也可以跟其他人一起分享 bookmarks

中文介面,內容也都是以正體中文為主

HEMiDEMi

星期五, 5月 19, 2006

http://del.icio.us

http://del.icio.us這也是一個網路上的 紀錄bookmarks 的網站
跟 google bookmarks 是一樣的東西,但是我覺得比 google bookmarks 好用。
跟 google bookmarks 一樣是用 tag 來歸類。
它還有一些 special 的功能,就是可以看到有哪些人跟你 bookmark 同一個網頁。
也可以直接將別人的 bookmarks 存到自己的 bookmarks。

星期四, 5月 18, 2006

AJAX 技術

AJAX 全名是 Asynchronous JavaScript and XML(非同步JavaScript和XML)


傳統網頁設計, user在網頁中輸入資料後,必須按下[送出],才將資料傳回 server 端處理,server 再將處理後的資料傳回。


AJAX 就不需按下[送出]鈕,隨時可以將資料往 server 傳送,並馬上將處理後的資料傳回
ex:google local (以前稱為 google maps)就使用 AJAX 技術,讓 user 可以隨時再地圖上拖拉,且即時秀出正確的地圖資料


相關資料:
維基百科-AJAX

google bookmarks

google bookmarks 顧名思義就是讓 user 存放 bookmarks 的地方
我將我常用的 bookmarks 建立在 google bookmarks 上
以後就算沒有帶著自己的 nb,只要可以上網,隨處都可以查看我的 bookmarks

google bookmarks

星期二, 5月 16, 2006

臨時想要處理圖片,卻發現沒有縮圖工具

臨時想要處理圖片,卻發現沒有縮圖工具

請到 http://pixoh.com/ 這個網站
可以上傳要處理的圖片,直接在網站上放大縮小旋轉圖片,然後再Download 回來