高見龍

iOS app/Ruby/Rails Developer & Instructor, 喜愛非主流的新玩具 :)

春風少年兄

image

這是自己5年前(大概二十五、六歲)的照片,那時的下巴只有一層,脖子的線條也都還看得到,笑起來比現在有自信得多;想不到才過5年,多了幾年歷練,腦袋裡面多了一些些微不足道的腦汁,但肚子上也多了幾公斤的肥肉,我要我的青春回來呀!!

以後我拿這照片給我小孩看,他們應該不會相信這就是他們肥肥的老爸了..

藝術細胞

image

剛過了自己30歲的生日,整理電腦時,發現這個幾年前,用剛買Wacom手繪板亂畫的東西;手繪板越拿在手中,越覺得自己腦袋裡的藝術細胞,已經隨著年紀的增長,以及程式邏輯的訓練,而慢慢的死亡中

Data Loading From Other Domain

最近用Flash做了一個可以在網路廣告素材上面直接投票的東西,但卻發現原來放在廣告網站的swf檔,沒法子直接跨網域的存取資料,翻了一下網路上的資料才發現原來這是為了安全性的考量所設計的,沒法子直接存取,所以例如XML.load(), XML.sendAndLoad(), LoadVars.load(), LoadVars.sendAndLoad(), loadVariables(), loadVariablesNum()等等,都會有這方面的問題。

解決辦法:

在網站根目錄下面放一個定義cross-domain policy的XML檔案(檔名為crossdomain.xml)就行了。檔案內容如下:

<?xml version=”1.0″?>
<cross-domain-policy>
    <allow-access-from domain=”www.eddie.com.tw” />
    <allow-access-from domain=”*.yahoo.com” />
    <allow-access-from domain=”105.216.0.40″ />
</cross-domain-policy>

可以定義完整的Domain名稱,或是某個網域,甚至是指定某個IP也可以。如果不想一個一個設定,或是來源可能有很多個地方,也可以用下面這種做法:

<cross-domain-policy>
    <allow-access-from domain=”*” />
</cross-domain-policy>

其實每個裡面有個optional的屬性secure,底下是它的說明:

Each tag also has the optional secure attribute. The secure attribute defaults to true. You can set the attribute to false if your policy file is on an HTTPS server, and you want to allow SWF files on an HTTP server to load data from the HTTPS server.

Setting the secure attribute to false could compromise the security offered by HTTPS.

If the SWF file you are downloading comes from a HTTPS server, but the SWF file loading it is on an HTTP server, you need to add the secure=”false” attribute to the tag, as shown in the following code:

A policy file that contains no tags has the same effect as not having a policy on a server.

在Flash Player 7 r19之後的版本支援以下指令:

System.security.loadPolicyFile(http://www.eddie.com.tw/abc/123.xml);

如此一來,這個XML檔案就不一定要放在根目錄底下,而且也不一定只能用crossdomain.xml來命名。

參考資料:

  1. Macromedia LiveDOC
  2. Flash ActionScript RIA應用程式開發(Luar著)

中文亂碼問題

前不久把CentOS4裝起來玩看看,但在要啟動某個service的時候發現中文字會出現亂碼,但看了一下locale的資料好像也沒什問題,後來才知道原來是/etc/sysconfig/i18n這個檔案設定的問題(在Fedora Core3上面好像也有類似的問題)。

> service smb restart
?迫 SMB ??:     [ 蝣箏? ]
?迫 NMB ??:     [ 蝣箏? ]
?? SMB ??:     [ 蝣箏? ]
?? NMB ??:     [ 蝣箏? ]

修改/etc/sysconfig/i18n,把UTF改成Big5:

LANG=”zh_TW.Big5″
SUPPORTED=”zh_TW.Big5:zh_TW:zh”

重新啟動samba:

> service smb restart
停止 SMB 服務:     [失敗]
停止 NMB 服務:     [失敗]
啟動 SMB 服務:     [確定]
啟動 NMB 服務:     [確定]

中文字正常出現了 :)

方便的套件更新程式-Yum

之前有提到在linux上,常常會有安裝軟體A之前,需要安裝軟體B的問題,稱之為相依性(dependency),要解決相依性的問題,除了之前提到的APT外,Yum也是個很好用的工具。

以下以CentOS4為例:

使用方法:

Step 1.匯入GPG-KEY:

http://mirror.centos.org/centos/,找到適合版本的GPG-KEY

> rpm –import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-4

Step 2.修改/etc/yum.conf:

/etc/yum.conf這個檔案,可以設定要取用哪些RPM以及Yum伺服器的位置,可以選台比較近的Yum伺服器進行更新。

Step 3.操作

更新套件:

/usr/bin/yum update

如果要搜尋某個套件,可用

/usr/bin/yum search someRPM

如果要安裝某個套件,可用

/usr/bin/yum install someRPM

跟APT一樣,如果安裝A軟體需要B軟體,它會連帶把B軟體下載下來安裝之後,再繼續安裝你要的A軟體。