2009年3月20日 星期五

Pantene--你也能發光發熱

這是一部泰國短片,描述一個音啞女孩被他的親姊姊欺負,受到眾人歧視的目光,卻依然能夠在音樂的洗禮下自立不強; 在街頭藝人的鼓舞下,他閉上眼睛,用心感受小提琴的旋律(她聽不到,所以無法學習說話),感受到音樂在她體內的流動而找到自己;他的姊姊無法坐視妹妹可以這樣學音樂,還流氓摔壞她的小提琴,把街頭藝人打成重傷。在音樂發表會上,姊姊壓軸的鋼琴演出雖然博得了全場的喝采,不過後來妹妹用生命演奏出的卡農才是真正的感動了全場! 結論: 1.生命就是永不放棄自己追求的目標! 2.泰國女生原來這麼漂亮...

批次修改圖片大小

工作上,需要把很多照片放到網站上去,不過攝影師負責拍到照片,卻不負責幫我們把照片解析度變小,實在是不體貼網站管理員的辛勞@﹍@

所以,本文介紹文字跟圖形介面修改圖片解析度的方法。

1.利用convert指令:

使用gthumb一張一張把圖片解析度降低實在是太辛苦了,我想起了從前在自訂grub splashimage時所使用的convert指令!他是從imagemagick來的,請看看你有沒有安裝:

which convert || sudo aptitude install imagemagick
你可以使用convert來轉換解析度或是改變quality:
convert abc.jpg -resize 800x600 abc_new.jpg
把原本的abc.jpg轉成800x600並另存為abc_new.jpg。你也可以改變畫質:
convert def.jpg -quality 50 def_new.jpg
把原本的def.jpg畫質降到50%並另存為def_new.jpg
convert prs.ps -rotate 90 prs.png
把原本的ps檔順時針旋轉90度後另存成png檔。

不過除非照片的長x寬都是一樣的,否則轉換一個直立的圖檔還轉成800x600就會變得很奇怪;我暫時沒時間把他寫成shell script,因為我找到了圖形可以解決的工具@@

2.利用digiKam批次轉換圖片:

digiKam是KDE的東西,這對我來說是很陌生的;KDE給我的感覺是又巨大又複雜!安裝digiKam也會連konqueror跟其他東西起裝進去,所以大約要下載60多MB的大小;在debian下一樣很容易安裝:

aptitude install digikam
Fig 1.很可愛的企鵝哩!我想他應該是類似f-spot的相片管理程式吧?
Fig 2. digiKam預設會從家目錄下的Pictures去撈資料夾,你的照片要放在Pictures下的資料夾,而不是直接放在Picutres下喔!選擇好照片後,點選batch,你可以選擇recompress或是resize。本文demo的是變更解析度的方法,因此我選resize。
Fig 3. 請在左上角Image Resizing Options: type的地方選擇Non-propotional,並點選Options。
Fig 4. 可以調整欲轉換的解析度。
Fig 5. 開始批次轉換!
Fig 6. 轉換後,圖片檔名多加一段文字當結尾,他也可以選擇複寫原本的檔案不保留,不過不建議就是了,確定後在刪除原檔,多一步比較保險~

Bryan手札-生活記趣裡展示的是直接變更quality的方法,可以跟我變更解析度的方法作比較看看哪一個比較適合當時的狀況;給各位參考,也是給自己的筆記。

2009年3月18日 星期三

IP定址與VLSM簡易筆記

一、IP定址
Class A(1~126)
0xxxxxxx.host.host.host
7network bits的變化,使得此等級應有27=128network
然而TCP/IP協定又保留整個127作為loopback使用,因此整個Class A1~126
此等級的私有ip為整個10.網段,即10.0.0.0~10.255.255.255
Class B(128~191)
10xxxxxx.network.host.host
6+8network bits的變化,使得此等級應有214=16384network
dhcp請求失敗會回傳169.254.X.X的位置。
此等級的私有ip172.16.0.0~172.31.255.255
Class C(192~223)
110xxxxx.network.network.host
5+16network bits的變化,使得此等級應有221=2097152network
此等級的私有ip192.168.0.0~192.168.255.255
Class D(224~239)
1110xxxx.network.network.network
此級網路作為多點傳播(multicast)用,不能作為來源端位置,在routing protocol時常會用到。例如:RIP會用到224.0.0.9OSPF會用到224.0.0.5/6EIGRP會用到224.0.0.10
Class E(240~255)
11110xxx.network.network.network
此級網路作為研究用途,我們無法使用DE等級的網路位置。
二、子網路切割
1.為何要切割子網路?
* 減少網路交通(增加collision domain;或是切割broadcast domain)
* 最佳化網路效能
* 簡化管理
2.熟記2的次方
27
26
25
24
23
22
21
20
128
64
32
16
8
4
2
1
上表用於速記主機數量。假設network向host借了3個bits,host剩下5個bits變化,也就是每32個hosts跳一個網段。
為了更快解決子網路遮罩的計算,更應該速記向host借位元當子網路時的mask值。
nbits
1
2
3
4
5
6
遮罩值
128
192
224
240
248
252
最多就只能借6個。借了七個只剩下全為0跟全為1的位置,都不能當主機可用的ip
熟記上表是我快速心算切割子網路的方法。在網路的領域裡經常使用CIDR(Classless Inter-Domain Routing)來表示子網路遮罩,例如255.0.0.0就是/8255.255.255.224就是/27。可以參考上圖,224就是跟networkhost借了3bits來當子網路,對於一個class C來說,255.255.255.0是大家所熟悉的,表示成/24;借了3bits就變成/27
三、VLSM(變動長度的子網路遮罩)
切割子網路,分配合適的ip數量給各網段是網管人員最基本的能力。分配一個子網路,除了要扣除全為0(network id)跟全為1(broadcast)之外,還必需要很清楚的知道每個網段的範圍。切割子網路可以是最簡單的分法—每個子網路有相同的subnet mask;或是真實的企業應用,變動子網路遮罩(VLSM)的分法。
無論怎麼分,我們都必須問自己幾件事情:
1.客戶端需要幾個網段?
2.各個網段又需要多少ip
知道客戶端的要求後,就可以開始回答幾個問題:
1.要切成幾個子網路?每個子網路的network id為何?
2.每個子網路有多少可用ip
3.可用的ip範圍?
範例1:
假設各網段子網路遮罩都相同,則192.168.10.10/25這個位置,是:
1.共切了幾個網段?
2.落在哪一個network id裡?
3.該網段共有多少可用的ip
4.該網段的廣播位置為何?
/25表示ip的第4bytenetwork借走了1bit,因此有212個網段。
變化位置落在第四個byte,因此兩個network id192.168.10.0192.168.10.128,題目的ip位置落在192.168.10.0上。
可用ip就是主機數目減2(去頭去尾)的結果。27-2ip=126ip可用。
廣播位置就是下一個網段的ip1,即192.168.10.127
範例2:
假設各網段子網路遮罩都相同,則122.168.35.10/19這個位置,是:
1.共切了幾個網段?
2.落在哪一個network id裡?
3.該網段共有多少可用的ip
4.該網段的廣播位置為何?
/19表示跟host借了3bits作子網路,因此會產生23=8個網段。
變化位置落在第三個byte,每個網段的變化值為32,為122.168.0.0, 32.0, 64.0, 96.0, 128.0, 160.0, 192.0, 224.0,落在122.168.32.0網段裡。
可用ip就是232-2=230= 8092,再去頭去尾=8090個。
廣播位置就是122.168.63.255,且該網段第一個可用ip122.168.31.254,最後一個可用的為122.168.63.254
範例3:
假設某公司有三個部門,提供網管人員198.162.10.0/25分配使用。A部門需要有58ipB部門需要16個,C部門需要29ip,三個部門需要隸屬不同網段,請問如何分配?
這個例子就是每個網段有不同的遮罩為了不讓ip使用重複,我們必須先分配ip數量多的,最後才分配少的。
第一個分配58ip,那麼host至少必須有26個變化,因此必須向host再借一個bitMask變為255.255.255.192(/26),每次host id跳了64,因此第一個網段為198.168.10.0/26,下一個網段為198.162.10.64/26
可用ip64-2=62個。
廣播位置:198.162.10.63,該網段可用ip198.162.10.1~62
第二個分配 29ip, 那麼host至少必須有25個變化,因此必須向host再借一個bitMask變為255.255.255.224(/27),每次host id跳了32,因此第一個網段為198.162.10.64/27,下一個網段為198.162.10.96/27
可用ip32-2=30個。
廣播位置:198.162.10.95,該網段可用ip198.162.10.65~94
第三個分配 16ip, 那麼host至少必須有25(千萬別認為是24)變化,因此直接使用下一個網段即可!Mask沒有變化:255.255.255.224(/27),每次host id跳了32,因此第一個網段為198.162.10.96/27,下一個網段為198.162.10.128/27
可用ip32-2=30個。
廣播位置:198.162.10.127,該網段可用ip198.162.10.97~126

2009年3月17日 星期二

學習網頁程式設計--learning web design

我想接觸資訊領域,還真的是什麼都要會一點;有時候,會一點點還不夠,必須要有能力做出一點東西才行。以我自己慘痛的經驗是,系統管理的東西會,但僅限於linux;解決網路問題有,但是缺乏實做經驗;寫簡單的程式也ok,不過限於java跟bash shell script;web design會一點,而且僅限於html+php;資料庫也會一點點,不過也只會搭配php/jsp作很簡單的事情...這就是最悲慘的情況,什麼都會一點點,其實跟什麼都不會差別不大。 所以囉,因為工作上的需要,我需要增加自己html的能力,而且要會使用javascript;我這把年紀真的沒時間再買書來看了,買了最後就變成溫室效應的推手,變成一堆充滿知識的垃圾磚!好險我發現有一個非常棒的教學網站,他可以從頭到尾的教學,內容從html的tag, frame, layout, CSS等等都教學得巨細靡遺!他就是w3schools.com! 有興趣的朋友可以一起到這個網站學習!我也會努力學習!

2009年3月11日 星期三

Linux下的心智圖軟體

有時候,我們要把自己的想法邏輯且條理的展示出來,這時需要一個能夠描繪出自己思想的軟體,稱為心智地圖(mindmap)。在windows底下有很多很棒的軟體可以達成,甚至透過繪製流程圖的軟體也能達成;在linux底下筆者簡單介紹三個免費的心智圖軟體給各位參考。

1.MinDemo (官方網站:http://www.mindomo.com/) 這是一個web based的使用方式,透過flash的互動,使用者可以線上使用。註冊後的使用者可以免費使用數個心智圖(詳細數目不清楚),如果想要有無限制的使用次數則需要付費。

2.Xebece (官方網站:http://xebece.sourceforge.net/index) 這是一個純java寫成的軟體,繪製過程動感十足;使用者比需要安裝jre才能夠順利啟動。你可以在SourceForge下載得到。由於是java的關係,你根本不需要安裝就可以直接使用;將下載下來的壓縮檔解開:

tar zxvf xebece-1.0.3.tar.gz
cd xebece-1.0/dist
java -jar xebece.jar
就可以啟動Xebece。假設你忘記安裝java怎麼辦呢?也來裝一下吧!
aptitude install sun-java6-jre -y
Xebece所繪製出來的心智圖。

不過,筆者認為xebece的缺點是雖然拖拉每個節點的位置很容易,可以他也無法固定節點位置,每次畫完之後改變焦點就會跑回原本預設的拓樸,加上有沒有中文環境,我想我是不太會考慮選擇他的。字型也無法改變顏色,有許多不方便的地方,待各位看官自己去體驗。不過好處是如果您懂得java的話,您可以嘗試自己修改他的原始碼,有附在tarball裡面喔!

3.FreeMind(官方網站:http://freemind.sourceforge.net/wiki/index.php/Main_Page) Freemind是最popular的心智圖軟體了,你可以直接在debian sid裡面安裝他:

aptitude install freemind
Freemind也是要靠jre才能啟動的喔!啟動後,我們先把他換成中文環境吧!
在environment裡設定語言為中文,重新開啟他就會是中文環境。

繪製出來的網站地圖。

假設各位看官已經自己嚐試過使用freemind或是xebece,你很可能會懷疑為什麼你輸入中文卻無法顯示中文字。請各位再作一個小步驟!假設你是安裝sun-jav-6-jre的話:

mkdir /usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback
cd /usr/lib/jvm/java-6-sun/jre/lib/fonts/
cp 某一個你喜歡的中文字型.ttf fallback
再開啟freemind或是xebece就可以打出中文字了!其實在linux底下的中文版的netbeans也是會有中文顯示不出來的問題,也可以透過這個小方法解決!

整體而言,freemind真的是比較便利且自訂性高的小程式!
你還可以透過下面的flash教學來學習freemind:
http://163.20.160.21/xoops22/t167/FreeMind/list.htm

網友雪兒熱心得提供了另一套心智圖軟體:XMind;我測試的結果還真的很不賴呢!
4.Xmind (官方網站:http://www.xmind.net/ ) 真開心Xmind官方網站上不但提供了deb檔,還提供了win32、i386、x86_64、MacOS等各種不同平台的版本喔!真難得只提供deb沒有rpm,讓我這debian user心理稍微平衡一點!

Fig 1.千辛萬苦做出來的一張圖。為何說千辛萬苦呢?因為我必須每新增一個節點就儲存一次,畫這張圖並不複雜,但這過程Xmind約自重開了20多次吧!!所以要作一張很重要或很複雜的圖,用Xmind卻對能讓你體驗尿失禁的快感~

Fig 2.優點是,他真的能提供遠比freemind更多的表現形式。上圖為"魚骨頭"的形式。
Fig 3.這是一個整體而言向下伸展的邏輯圖,類似我們看檔案系統階層的表現方式;每個子節點也可以靈活變化出自己的表現方式,是非常方便的一個軟體;他的圖示也豐富多了!

你必須要註冊一個XMind id,之後你便可以下載各種平台的版本,並且跟大家分享你的創作(假如你願意的話)。XMind非常漂亮、且有非常棒的themes可以供使用者使用;不過他實在是太不穩定了,經常我畫圖畫到一半就自動消失,剛剛的心血全無,經常要把我自己搞到神經兮兮每做完一個node就要趕緊存檔;參考Meme -- 教學與反省這兩篇文章:
http://edumeme.blogspot.com/2008/11/xmind-freemind.html
http://edumeme.blogspot.com/2008/11/xmind.html
在win32平台上似乎是會整個當掉,可見情況比整個消失好不到哪裡去!我想如果Xmind不要如此的不穩定,他確實是一套非常優秀且易用的心智圖軟體;他的不穩定性使一般使用者完全不會去考慮使用他,我想除非有人願意提供心力修改他的原始碼,否則近期內用xmind的人應該不多囉!

XMind的影片教學

小結論:目前為止,以穩度跟使用介面而言,freemind仍然是我的第一首選!不過如果電腦效能較好或是非常重要的心智圖,我還是會使用XMind!

在linux上安裝HP雷射印表機

今天在辦公室想要安裝HP 2600N的彩色印表機driver在我愛的debian上,我想用土法煉鋼:

http://localhost:631
無論怎麼新增,就是沒有2600系列的型號;安裝了system-config-printer之後,還是沒辦法順利的安裝這個型號,更悲慘的是沒有ppd可以用!2600N這行的網路印表機是使用bonjour協定,client端上可能要裝zeroconf這類的套件來支援這個協定;我不想增加工時來做這些事情,linux的使用者對於這些硬體廠商的忍讓已經夠多了!在linux上安裝hp 2600N的印表機,你可以到openprinting.org裡找到foo2hp,不過其他型號的印表機該怎麼辦呢?

我決定相信一間有自己的unix系統的廠商,應該會對於linux友善一點!

很開心我的期望是真的!

這是一個在linux下安裝所有HP印表機的解決方案,使用者可以到HP Linux imaging and Printing的網頁下載一個通用的安裝程式。這個頁面所下載的.run檔有時是錯誤的,請下載hplip-3.9.8.run,這個才是正確的連結(約19M)。頁面裡有非常詳細,完全的step-bt-step教學,他可以自動偵測你的linux發行版本,自動偵測相依性問題並且視作業系統的不同,自動的使用apt-get或是yum來安裝所需的套件。當然使用到apt-get或是yum, zypper這類的指令是需要root身份的,這個script很貼心的會向你要求輸入root密碼來繼續安裝。

安裝的過程簡直是下一步下一步就解決,之後會出現HP device manager:

親切的印表機管理介面
可以自動尋找所有在線上的HP印表機。

Debian下如果你遇到"cups-image"這個相異性未解決的問題,不用緊張;請安裝:

aptitude install libcupsimage2-dev
然後載重新執行一次run檔,就可以順利安裝了唷!

我不知道gentoo、knoppix等linux distributions是不是一樣可以無痛安裝,但是至少大部份你所使用的linux(Debian/Ubuntu/Fedora/RH/CentOS/SuSE)的使用都是成功的。反觀epson的印表機,在linux上安裝起來不是那麼友善;現在工作環境裡的linux系統越來越多,能夠率先支援linux的廠商就越能讓使用者感到友善,我想這就是商機!

萬一你的不是HP系列的印表機,但是想在lnux安裝驅動程式開如何作呢?首先請安裝一個便利的印表機管理程式:

aptitude install system-config-printer
以系統管理員身份開啟他後,新增一個印表機,會自動去搜尋現有的印表機,無論是連接至本機的、分享出來的或是網路印表機;萬一他還是沒有的話,請找找光碟片裡面是否有ppd檔。如果有ppd檔,我們就可以透過手動的方式把他安裝起來:
沒有找到正確的型號跟ip對應,我們只好自己指定ip。 請輸入ldp://url_of_printer/auto
選擇自己提供ppd檔來啟用這個印表機。
我想這樣應該可以解決大部分分享印表機的問題。如果你想要作列印伺服器,可以搭配samba一起使用喔!

2009年3月9日 星期一

NXserver遠端桌面

大概是我的技術太拙劣外加沒耐心,我真的覺得vnc不是很適合我,無論如何設定調整,遠端桌面永遠都是空的,只留下一個終端機給我用,連退出或中斷連線的選項都沒有...後來搜尋了許多文章,我認為nxserver確實是我所用過安裝最容易、設定最簡單的遠端桌面軟體。除了有win32、linux版本,甚至還有solaris sparc的版本!也跟RealVNC一樣,有給一些free的版本,本文簡單展示一下使用的screenshot!

首先到NoMachine的官方網站下載合適的版本。假設你的linux只要作client就好,那麼請下載nxclient就可以了;假設你的linux需要當server,那麼你就需要下載nxclient, nxnode以及nxserver這三者來安裝。

原則上你不需要什麼設定,他會使用系統的帳號密碼作為帳號密碼;他並沒有多開什麼port,因為他是走ssh的,因此非常安全,就跟你使用ssh是一樣的。安裝好就等於設定好了,別懷疑,他真的很安全也很簡單。假設你在本機跟遠端都裝好了之後,你可以從Applications->Internet裡面找到他,選擇NX client for Linux:

Fig 1.第一次使用時會啟動NX connection Wizard。
Fig 2.自訂一個名稱(Session name)以及主機名稱(Host)。host裡可以輸入FQDN,當然也可以是登記在/etc/hosts裡的主機,或是ip。另外可以依你的網路環境來調整桌面的色彩以提高速度。
Fig 3.選擇遠端的桌面環境。
Fig 4.我討厭桌面一堆捷徑@@,所以把桌面捷徑給取消了!
Fig 5.這個就是調整此session進階設定的方塊,假設你有其他需求可以調整。
Fig 6.session設定好之後,就準備輸入密碼吧!
Fig 7.開始連線!
Fig 8.遠端桌面!這真是很棒喔!而且遠端桌面會隨著你改變視窗大小而改變大小!沒話說,真的超酷的!到目前為只對我而言,唯一的缺點就是...沒有輸入法!!!

還好網路上有許多高手願意率先嘗試。筆者參考了阿呆大大的blog新NX 使用心得之後,解決了輸入法的問題(不過僅限於scim)。
首先新增一個檔案:

vi /etc/NX/bin/gnome.sh
#!/bin/bash

export XMODIFIERS="@im=SCIM"
export GTK_IM_MODULE "xim"
exec scim &
/usr/bin/dbus-launch --exit-with-session gnome-session
請務必記得要把GNOME.sh增加x屬性,否則連線時會顯示找不到Gnome環境!

接著修改/usr/NX/etc/node.cfg,找到CommandStartGnome,(大約是最底下的地方)

#CommandStartGnome="/usr/bin/dbus-launch --exit-with-session gnome-session"
CommandStartGnome="/usr/NX/bin/GNOME.sh"

修改後你下次登入遠端主機後,就會出現scim輸入法了。不過我最喜歡的oxim輸入法一直還是無法啟動!如果您有嘗試成功的話,麻煩不吝告訴筆者!但是即使出現了scim的小圖示,我還是無法使用中文輸入法,我也還不知道原因;不過輸入法對我而言不是很重要的事,我就先暫時不管了。

之前我需要買一個KVM才能方便我完全管理兩台主機,現在,我連KVM都可以丟掉了!

參考文章:
阿呆的blog
http://www.nomachine.com/configuration.php