今年似乎是第一次辦這個活動,在 8/2 星期六晚上 8:30 開始釋放,這次跟老竽仔一起去拍
這次是第二次拍煙火,在老竽仔的指導下加了搖黑卡的技巧;外加遙控器跟 Tokina 12-24 的加持,拍的比較有樣子了
不過一開始整個節奏大亂且又太貪心,造成很多過曝或火花重疊過頭,另外由於我們是在台北橋三重端,所以有些圖可能看起來火花太小,或是忠孝橋那邊的火花很偏(跟原來預設位置有差),所以之後會再整理一份重新裁過的上傳至於其他的都已經上傳囉
另外也有整理在等待時的一些無聊亂拍的"花絮",也歡迎參觀
這次的煙火不知道是我們站太遠還是真的有弱掉,覺得沒有上次國慶在台北大稻埕的壯觀,不過也有可能那次我們是在5號水門進去那邊的河岸所以感覺比較震撼吧,但是這次就是怕爆框所以才跑到台北橋上,不過最佳位置是三重台北橋那邊的大樓樓頂,希望下次找的到有熟識的人可以帶路就好了 XD
P.S. 下次有可能再拍煙火的機會應該是國慶日吧,只是不知道今年會不會移到別處去就是
2008-08-05
台北花火節
2008-07-26
遠端升級 FreeBSD 6.3 to 7.0 之驚險萬分
其實我們家老大已經有提供很完整的升級流程,且試過幾台照著做都正常,就公司內部的文件管理系統出了點小問題...
- MySQL daemon 沒先停掉會有危險性,因為要幹掉所有的 ports 重裝,但是因為沒先停 daemon 造成 script 一下去後,不明原因 MySQL stop 爛掉
- 因為要幹掉所有的 ports 之前會先跑一段 script 把 /var/db/pkg 裡所有的 ports 備份起來,然後再升級完 Base system 後去完整重裝成 7,結果賽手把備份出來的檔案弄掉了,最後還好這台機器有每天備份,才從 dump file 裡挖出 /var/db/pkg 的資訊重做一份 ports 備份檔
- 這台機器是有另外獨立線路(不是走公司 gateway),所以前面好不容易救回 ports 備份檔確連不出外網,本來以為是哪個東西搞爛,後來想起是線路問題設定它先走公司 gateway,終於現在恢復正常繼續安裝 ports
- 如果必須要裝 MySQL 4.0 會有雷,因為 MySQL 4.0.27 有重大弱點通報,所以如果沒下"export DISABLE_VULNERABILITIES=true"是安裝不了的;所以到了 php5-mysql client 安裝的部份就造成 php5 找不到 mysql 所以就"順手"裝了 mysql5(推論是這個原因),這真是個超級大雷阿~ 囧
總之一整個晚上是驚險萬分加提心吊膽阿,目前看起來正常的在安裝 ports 中了;應該可以順利趕在星期一上班前升級完成。
這個故事告訴我們:
- 出包不要急,想好對策再出手;
- 就算有文件可以參考,也要仔細瞭解每一步驟再幹嘛(就是重覆做了備份 ports 那步造成 ports 備份檔遺失)
- 深夜問題多,早點睡最好!!
2008-07-24
FreeBSD 安裝 diablo-jdk from PORTS
再更早些時候,要在 FreeBSD 上裝 JDK 根本上是個痛苦的事,因為 Sun 要求檔案必須要到他們網站下載,而且要下載還得要註冊,非常的不便。
救世主 FreeBSD Foundation 提供了編好的 binary 檔,只要上去抓下來直接 pkg_install 就搞定,不過這種安裝對於之後要做系統升級還是有點不方便就是。
當然現在我們可以透過 PORTS 直接安裝 diablo-jdk,不過還是有點小地方要注意一下
- 若不想系統被硬上一堆 X 套件,
cd /usr/ports/java/diablo-jdk15/
vim Makefile
USE_XORG+= xi xp xt xtst #Mark 掉這行 - 如果在 diablo-jdk 的 option 有選擇 tzupdate,要自行到 Sun 網站下載最新版,這個網站要註測(暗!!)
- 要連上 FreeBSD Foundation 抓相對應的 diablo-jdk-caffee
另外 Foundation 已經推出 FreeBSD 7 的 jdk1.6 版,不過目前為止 PORTS 裡最新的 diablo-jdk 只有 1.5,另外如果是舊 32bit 的使用者就抓 x86 版,新的 64bit 版就抓 amd64 那版
2008-07-21
FireFox Plug-in Adblock plus 的
今天一早發現我的 FireFox 在處理"特定"網站時 CSS 跟 JavaScript 整個都出不來,剛好該網站是公司自己開發的,所以一時以為是程式改爛了,但是改用 IE 看又正常,所以再請同事用 FF 開發現別人都正常,只有自己的不正常,所以可以定義為個案。
FireFox 有很多很好用的套件來 Debug,我先後用的 FireBug 跟 Web Developer,後來發現一個很怪的現象,就是 Web Developer 無法解析出該網站的 CSS,也就是使用它的"編輯CSS功能",這很奇怪,表示 CSS 根本沒被載入,然後我再用它來觀看"處理後的原始碼",發現另一個驚人的狀況:"<link style="display: none;" href="http://xxx.xxx.com.tw/xxx.css" rel="stylesheet" type="text/css">",同樣的在 JavaScript 的部份也會出現 style="display:none;" 的問題,標紅字的部份是原本原始碼裡不存在的 code,這也代表該網站 Load 完後的 CSS & JavaScript 完全不會被 Browser 處理(難怪我的頁面鳥掉了)
一開始以為是 Web Developer 的問題,試了各種設定甚至是停用元件也都解決不了,後來查到這個網站有講到 Adblock 的好用即有可能誤判,我才想到有沒有可能是 Adblock 搞鬼
於是將頁面切到有問題的網站,點開 Adblock 的控制窗,果然發現一個"/ad"的過濾條件,這下一切就真相大白了,/ad 開頭的範圍太廣了,瞬間當然 ad 開頭的相關 css 跟 js 的 require url 全部中招,本來是想把這個 filter 拿掉,後來還是直接將自己的 domain 加進 Adblock 白名單就好。
這個故事告訴我們,Plug-in 好用歸好用,一個不小心中招 debug 起來還真是困境阿 @@
如何在 web.config 裡讀入另一個外部設
有大概 study 過 .NET 的人應該都知道在 .NET 上會有一支叫 web.config 的檔案,這支以 XML 的方式描述,裡面定義了 .NET 程式執行階段的一些變數宣告還有環境設定,這部份簡單來說就像我們在寫 PHP 時會定義一支像是 config.php 同樣的用意(只是 web.config 更複雜點)
而前陣子需要在 .NET 環境裡食作一個在 PHP 的機制,透過 cron 另外組出一支 php 的 DB 設定檔,然後在 config.php 最開頭 require,以便讓 config.php 裡的 define 值可以用那支動態組成的 php(註一)
實作:
首先我們要產生一支類似的外部設定檔樣板,其樣式如下
<?xml version="1.0" encoding="utf-8"?>
<appSettings>(註二)
<add key="MY_KEY" value="MY_VALUR" />
</appSettings>
之後在原本的 web.config 裡做以下調整
<appSettings> -> <appSettings file="db_config.config">
之後在原本的 web.config 裡做以下調整
這樣就可以在程式裡使用到該外部設定檔裡的值,而且也可以再以 .NET 寫一支類似的程式產生設定檔並 compiler 成 .exe,再以 windows server 的排程功能將它排程
註一:
web.config 的 <appsettings> 這個 tag 裡定義的事,簡單來說就是我們會在 config.php 裡幹的事是一樣的
參考資料:請看這裡
2008-07-02
Bass 課目前狀態
最近的兩堂課都開始上樂理,我是拿邱培榮著的摸透電貝士去請教
目前講解了幾個主要大方向,像是大小調、和弦公式、順階和弦等基礎樂理,另外就是幾個公式要背一背,再根據 Key 套進公式取得整組和弦的音階做變化等等
這次再加上以琴用琴弦跟琴格間的關係來推演,就清楚多了;如果以之前學古典看五線譜來說,要去推這個也是可以,只是因為都看絕對音,也就不會太在意這些;最後摸透和弦後再根據曲風的 pattern,就可以推演出自己的 Bass line 做音階變化
不過呢,目前還在打基礎功夫的階段,連爬琴格都還爬不穩就是 XD
2008-06-18
Alteon 2424 將 Syslog 送到 FreeBSD Syslogd Server HowTo
Alteon 本身有支援 syslog 輸出到外部 syslogd server 的方式(UDP:514),其 syslog 一些設定(訊息等級之類都雷同 Unix-like OS)
整個設定裡最麻煩的在於要讓 syslogd server 把 Alteon 跟 loacl 的訊息區分出來不要混淆,所以會造成一些麻煩事
設定我們就分 Alteon & syslogd server 兩部份來說
- Alteon: (參考 Alteon_OS_22.0.2_Command_Reference Page.233)
- /cfg/sys/syslog
host 10.0.1.62 #我們走 LAN 送 DATA 就好
sever 6
facil 6
log all ena
apply - Syslogd Server: (我們以 一台 Lan Server 來當收 log 的 server)
- /etc/hosts #這個部份是為了讓我們的 syslog.conf 可以區分用
10.0.1.1 alteon1.mydomain.com.tw alteon1
10.0.1.2 alteon2.mydomain.com.tw alteon2 - /etc/rc.conf[.local] #rc.conf 設定 syslogd 的啟動參數,若需多個就以空白隔開,語法: ip[/netmask]:port
syslogd_flags="-a 10.0.1.0/24:514" (註一)
- /etc/pf.conf[.local] #pf.conf 加一個 UDP: 514 的 port allow
udp_private = "{ snmp 514 }" (註二)
- syslog.conf #在所有設定的最上面加上以下幾行
+alteon1 (註三)
*.* /var/log/alteon1.log
+alteon2
*.* /var/log/alteon2.log
+@ - 以上都設定好要重跑 syslogd & pf
- /etc/rc.d/syslogd restart
- /etc/rc.d/pf restart
- 註一:FreeBSD 上 syslogd 預設開機就會啟動,然而預設開機是有加 -s (會讓這台 Server 不能當做 Syslogd server),所以我們要加個 syslogd_flags 讓 syslogd 啟動時換掉啟動參數;若是要 allow 多網段或 IP,在網段或 IP 之間用空白隔開即可,至於 "IP/netmask" 的表示法就不多說;成功啟動後用 ps 去看會看到 syslogd 長的像這個樣子 "/usr/sbin/syslogd -a 10.0.1.0/24:514"
- 註二:我們在 pf 部份只 allow 了 snmp,而 syslog 是走 UDP 514,所以要開放,有些人沒用 pf 是用 ipfw,也是相對應做一下設定開放 UDP 514
- syslog.conf 的精華在這,
- 我們在 /etc/hosts 指定好 server alias 就是為了這部份要用,最一開始有說到 Alteon 丟出來的訊息等級都跟 unix-like OS 雷同,所以不分類的話一定會混雜在一起,要分類的話就得有個明顯的"標的"可以被 syslog.conf 使用
- 在 man page 裡有提到,
- +[hostname] 指的是由這個 host 過來的訊息利用以下 block 的方式記錄
- +@ 指的是 localhost 的訊息利用以下 block 的方式記錄
- -[hostname] 跟 +[hostname] 反向,也就是除了 [hostname] 以外的都用以下 block 的方式記錄
- 剩下的可以參考 man syslog.conf
- 以下列出收 Log 的 Server 的 syslog.conf 給大家參考
- # $FreeBSD: src/etc/syslog.conf,v 1.28 2005/03/12 12:31:16 glebius Exp $
#
# Spaces ARE valid field separators in this file. However,
# other *nix-like systems still insist on using tabs as field
# separators. If you are sharing this file between systems, you
# may want to use only tabs as field separators here.
# Consult the syslog.conf(5) manpage.
+alteon1
*.* /var/log/alteon1.log
+alteon2
*.* /var/log/alteon2.log
+@ #這裡要讓以下原本的設定都是跟之前一樣,所以指定為以下 block 都是記 localhost
*.err;kern.warning;auth.notice;mail.crit /dev/console
*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
security.* /var/log/security
auth.info;authpriv.info /var/log/auth.log
mail.info /var/log/maillog
lpr.info /var/log/lpd-errs
ftp.info /var/log/xferlog
cron.* /var/log/cron
*.=debug /var/log/debug.log
*.emerg *
# uncomment this to log all writes to /dev/console to /var/log/console.log
console.info /var/log/console.log
# uncomment this to enable logging of all log messages to /var/log/all.log
# touch /var/log/all.log and chmod it to mode 600 before it will work
#*.* /var/log/all.log
# uncomment this to enable logging to a remote loghost named loghost
#*.* @loghost
# uncomment these if you're running inn
# news.crit /var/log/news/news.crit
# news.err /var/log/news/news.err
# news.notice /var/log/news/news.notice
!startslip
*.* /var/log/slip.log
!ppp
*.* /var/log/ppp.log
- 【FreeBSD】用 FreeBSD 建置集中式 Syslog Server
- Unix 系統管理手冊-第十一章 Syslog 和記錄檔
- Alteon_OS_22.0.2_Command_Reference P.233
2008-06-14
Google Developer Day 2008
早上剛去 Google Developer Day,趁著記憶尤新大概註記一下
我參加的部份是 App Engine & Android 兩個部份,底下大概描述一下今天的重點
- App Enginel:
- 簡單來說,就是 Google 發展了一個 App Engine 的開放平台,
- 使用者可以透過它們提供的 SDK 將本機開發好的 Phyton (未來也會支援別的程式語言)Upload 到 App Engine,
- 可以透過 Google 註冊自己的 domain(或用自己現有的 Domain,也就是讓 Google Host 使用者的 Web Application;
- 使用者當然可以透過 Google 提供的管理介面檢視自己的程式吃了多少 resource (Like cpu/ram/data store...) & PV(PageView),
- 管理介面提供類似 Apache style 的 log 供使用者檢視,
- 提供版本管理可線上做版本更換或 rollback 等
- 提供 Database Model,但是其實後端是以 Object-Oriented 方式實作(其實也就是 Hash,Google 稱之為 Big Table)
- Database Model 支援 SQL command,但是由於是 Hash 方式操作,所以建議改以各種技巧實作 Hash Key,直接存取以求最高效能
- 在以下條件之下可以免費使用;資料儲存量 500M / 2G Band width per day / 500M PV per month,要使用更大量就要付錢了
- 願意的話,其實個人用戶甚至一般公司行號直接在上面建置自己的網站都不是問題,只是說目前只支援 Phyton
- Android:
- 主要講解這個平台的架構(architecture)
- 現場有 Demo 一些參加 Android 程式設計比賽的實作結果( On Emulator)
- 整個架構中以 Linux 為其 Core,Libraries & Application 皆以 Java 實作(包括要自己開發的功能皆是)
- 目前已釋出 SDK for Programmer 開發
- 其核心角色是 Google 為其編寫的 Dalvik VM,透過它將 Java 轉成專用 byte code(.jre to .dex)增加其效能,預定於產品上市後其 VM 也將 Open source
- 今天現場沒有實機展示,根據瞭解預計今年年底會推出產品
今天的報名人數據了解大概是 2000 多人,不過應該有蠻多人沒到的,現場提供了無限制的餅干點心跟可樂、咖啡、紅茶、果汁等,隨時餓了渴了饞了都可以去嗑,中午還一人發了一個不錯的便當哩,另外不免俗的會後有提供 T-shirt,不過我本來以為是工作人員那件白底Google字樣的,結果是這次 Developer Day 主題灰底跟四個主角的 icon (App Engine / Gears / Android / Maps )
總之...還蠻 High的,下次有機會可以再報名呀 XDDDD
2008-06-11
寫程式掃HDD檔案的一點小技巧
最近要處理一個程式,簡單來說就是要去新的 RAID 裡把檔案一個個翻出來跟舊的 RAID 比對看檔案大小跟日期修改等資訊(轉檔出問題要重轉)
原本還想說用 PHP opendir 去開一個 resource 來一層層掃,後來經高人(我們家老大)指點突然想通了
unix find 指令是個好幫手
因為我要掃整個 RAID,而且這是個好幾十G的資料量,一層層掃是跟自己過不去,於是我先做了下列的事;
- 切換到要掃的資料夾那層
- 下指令 #find . > ~/file_list.idx
所以要靈活運用 UNIX 指令來幹噁心的事呀 XDDDD
MySQL 權限問題的雷
MySQL 的權限判斷我想大家應該都有概念, 稍微提一下:
- 判斷 mysql.user(也是控制 ID/PW, 另外一些系統操作權限也在這理, 還有相關權限設定後就可以控制整個 mysql 的所有DB...)
- 判斷 mysql.db, 這裡可以控制哪個 host -> db -> user(判斷順序) 可以有哪些權限
- 判斷 mysql.host, 大多搭配 2. 使(我目前沒用到)
- 判斷 mysql.table_priv, 再細一步劃分哪個 host -> user -> table 可以做什麼操作
- mysql.column_priv, (我目前沒用到)
- MySQL 權限判斷的順序
- 排序比對應先判斷最特定值,最後判斷不特定值(但是我測試出來結果似乎不是這樣)
但是我很不解的地方在於,Document 說會先根據最"實體", 再根據最不實體, 所以理論上像是 192.168.1.1 應該比 192.168.1.0/255.255.255.0 實體, 但事實上似乎不是
我先節錄一些參考資料(MySQL doc)給大家看看:
db和host表在伺服器啟動時被讀取和排序(同時它讀user表)。db表在Host、Db和User範圍字段上排序,並且host表在Host和Db 範圍字段上排序。對於user表,排序首先放置最特定的值然後最後最不特定的值,並且當伺服器尋找匹配入條目時,它使用它找到的第一個匹配。
user 、db 及 host 資料表在伺服器啟動時就會被讀入及排序
User資料表依Host、User 排序
db 資料表依 Host、Db及 User 排序
host 資料表會依 Host 及 Db 排序
db和host表授予數據庫特定的權限。在這 些表中的範圍列的值可以採用以下方式:
- 通配符字符「%」並「_」可 用於兩個表的Host和Db列。它們與用LIKE操作符執行的模式匹配 操作具有相同的含義。如果授權時你想使用某個字符,必須使用反斜現引用。例如,要想在數據庫名中包括下劃線(『_』), 在GRANT語句中用『\_』來指定。
- 在db表的'%'Host值意味著「任 何主機」,在db表中空Host值意味著「對進一步的信息諮詢host表」 (本節後面將描述的一個過程)。
- 在host表的'%'或空Host值 意味著「任何主機」。
- 在兩個表中的'%'或空Db值意味著 「任何數據庫」。
- 在兩個表中的空User值 匹配匿名用戶。
db和host表在服務器啟動時被讀取並排序(同 時它讀user表)。db表在Host、Db和User範 圍列上排序,並且host表在Host和Db範圍列上排序。對於user表, 首先根據最具體的值最後根據最不具體的值排序,並且當服務器尋找匹配條目時,它使用它找到的第一匹配。
參考網站如下:(中文)
http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html#request-access
http://www.sy3es.tnc.edu.tw/teaching/php_mysql/mysql.htm
底下可能有點混亂,是我測試的例子:
假設原本的 mysql.db 內容如下(cvs type):
"192.168.1.100";"my_db";"my_account";"Y";"Y";"Y";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"192.168.2.100";"my_db";"my_account";"Y";"Y";"Y";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"192.168.1.0/255.255.255.0";"my_db";"my_account";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"192.168.2.0/255.255.255.0";"my_db";"my_account";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"192.168.3.0/255.255.255.0";"my_db";"my_account";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"192.168.4.0/255.255.255.0";"my_db";"my_account";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
前面兩個 IP 是 指定 Server 的 IP, 後面是我們針對我們各個 ISP 的網段(也就是自家機器都至少開給 SELECT table 的權限)
當我新增兩筆資料在 mysql.db 後, 它的資料排序會像底下的樣子
"168.95.1.100";"my_db";"my_account";"Y";"Y";"Y";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"168.95.2.100";"my_db";"my_account";"Y";"Y";"Y";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"168.95.3.100";"my_db";"my_account";"Y";"Y";"Y";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"168.95.1.0/255.255.255.0";"my_db";"my_account";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"168.95.2.0/255.255.255.0";"my_db";"my_account";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"168.95.3.0/255.255.255.0";"my_db";"my_account";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"168.95.4.0/255.255.255.0";"my_db";"my_account";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"168.95.4.100";"my_db";"myaccount";"Y";"Y";"Y";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
一切看起來都正確, 然後下指令更新 DB: Flush PRIVILEGES
問題來了, 在 168.95.4.100 上就會出現
mysql> UPDATE your_table SET seq='10' WHERE id=6;
ERROR 1142 (42000): UPDATE command denied to user 'my_account'@'168.95.4.100' for table 'your_table'
這個問題我嘗試了一整天,懷疑該不會是真的有順序問題, 然後請小白幫我看,小白研究一下將168.95.1.100直接 update 成 168.95.4.100那筆, 然後再新增一筆168.95.1.100的權限資料,
結果 168.95.4.100就可以 update, 但是後來再加的168.95.1.100變成 不能 update table 了!!
後來用同樣的手法再把 168.95.1.100 改回去, 讓它恢復正常, 於是確定了的確會有順序判比對上的問題, 接著就以手動加一筆改一筆的方式讓 mysql.db 變成底下的排序
"168.95.1.100";"my_db";"my_account";"Y";"Y";"Y";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"168.95.2.100";"my_db";"my_account";"Y";"Y";"Y";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"168.95.3.100";"my_db";"my_account";"Y";"Y";"Y";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"168.95.4.100";"my_db";"myaccount";"Y";"Y";"Y";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"168.95.1.0/255.255.255.0";"my_db";"my_account";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"168.95.2.0/255.255.255.0";"my_db";"my_account";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"168.95.3.0/255.255.255.0";"my_db";"my_account";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
"168.95.4.0/255.255.255.0";"my_db";"my_account";"Y";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N";"N"
目前兩邊都可以正常 update,
這個排序目前沒摸透的就是它的邏輯,似乎是 insert 時就決定好的(通常會在最後面,但是也有發現不會到最後面的, 像168.95.3.100那筆就會跑到前面,168.95.4.100就一直在最後,不管砍掉重現幾次都一樣)
在 FreeBSD 掛載 WINDOWS 網路磁碟機
最近剛好工作上有這個需求,所以稍微的研究一下
在 FreeBSD 上掛載 Windows 的網路磁碟機跟一般 NFS 最大的差異在於需加上"網芳名稱(NetBIOS Name)",也就是所謂的"電腦名稱",指令用法參考如下:
- 不需帳號、密碼:
- #mount_smbfs -I [ip_address] -N '//[sharehost]/[source_dir]' /[mount_point] #-I 為指定 Host IP,-N 為指定不需密碼驗證
- 需帳號、密碼:
- #mount_smbfs -I [ip_address] '//username][@[sharehost]/[source_dir]' /[mount_point] #執行後會請您輸入密碼
- 修改掛載後目錄的權限:
- #mount_smbfs -f 664 -d 755 '//[username]@[sharehost]/[source_dir]' /[mount_point] #-f 為指定檔案權限,-d 為指定目錄權限
- //ROOT@REG/my_raid 6347602544 5476972928 870629616 86% /raid3/share
目前根據查到的參考資料對中文命名的資料夾會有問題,另外我遇到的另一個問是"電腦名稱"太長(像是剛灌好 WindowsXP 後預設給的那串落落長的)也會有問題,所以相對的用中文做電腦名稱應該也是會出問題的。
以上參考資料來源請點這裡
2008-05-29
2008-05-27
mantis 在 file upload 部份的設定
mantis 這套 bug tracking 應該蠻多人在用,就不多做介紹了
這個設定主要是針對上傳檔案容量大小控制的部份說說明,
總共有三個地方要改(my.cnf是特殊狀況)
- mantis 自身設定檔
- 有兩個, 一個叫 config_defaults_inc.php, 這是所有的基本設定, 另一個叫config_inc.php, 這個可以 ovrride 掉前一個, 所以我們改這個就好
- $g_allow_file_upload = ON;
$g_max_file_size = 20000000; #20M, 不過我 php.ini 有鎖要搭配著看) - 另外由於預設 $g_file_upload_method = DATABASE; 所以檔案都會塞進DB 裡mantis.mantis_bug_file_table, 當然也可以設定為 DISK 磁碟機上(或一台 ftp server)
- php.ini
- 不用多說, 看底下
- max_execution_time = 300
upload_max_filesize = 12M
post_max_size= 12M
memory_limit= 128M
- my.cnf
- 因為我們是設定寫 DB, 才會需要動到 my.cnf
- max_allowed_packet = 32M #就是它了
http://yourmantishost/admin/system_utils.php
其他更詳細的請自己參考文件吧
PHP 在 32bit & 64bit 平台的差異
這個問題是在做一個系統轉換機器時發現的(從 i386 -> amd64)
主要是 Integer 在 32bit & 64bit 環境下位數表現的問題,我是在 dechex() 這個 function 踩到地雷 跟,不過其實應該只會在超過 65536 的整數才會出事(32bit unsigned),以下是 PHP 官方站相關參考
http://tw2.php.net/manual/en/function.dechex.phpTo force the correct usage of 32-bit unsigned integer in some functions, just add '+0' just before processing them.
for example
echo(dechex("2724838310"));
will print '7FFFFFFF'
but it should print 'A269BBA6'
When adding '+0' php will handle the 32bit unsigned integer
correctly
echo(dechex("2724838310"+0));
will print 'A269BBA6'
2008-05-21
2008-05-20
澎湖行
去澎湖是母親節那週的事,不過由於一回來又一堆雜事要處理,加上又弄傷腳踝跑回南部給親家公"處理",所以一整個拖稿至今,包括照片也是昨天才整理完備
這次的行程因為是以長輩為主,所以水上活動幾乎是零;原本第二天有安排自由行程可以去玩水,無奈風浪太大也沒辦法下水,去到海邊不能玩水,只能用空虛兩個字來形容阿~(囧)
本次澎湖行有幾個還蠻有意思的行程:
- 第一天晚上搭小漁船跟著"鳥嶼"當地漁民出海抓魚,不過由於上次寒害造成魚都死光,所以只抓了一堆河豚(註一),另外也有撈海膽,不過由於寒害的關係,政府有下令要等6/1才能開始撈,所以是抓起來看看又放回海裡
- 二崁老街,就我家阿娘及導遊解釋,目前這裡已經有"刻意"針對觀光需求整修,弄的比以前乾淨整齊,我個人很喜歡那個風格跟味道,而且不同於一般老街滿路攤商,特別的有氣氛
- 天后宮,這也是跟二崁老街一樣大家都會去的點,我覺得特別的在於他的解說義工,不是只純粹在那邊混,而是真的對天后宮的歷史跟澎湖的歷史有深入了解,也很值得推薦
- 花火節,我們的第二天行程剛好是花火節的第一天,我也就順便練習拍煙火,雖然拍的不是很理想,還是歡迎參觀
之後有機會應該會考慮人少的方式過去,然後可以比較自由的到處行動,更進一步了解其他不一樣的澎湖
註一:關於河豚有毒這件事稍稍解釋一下
- 河豚種共有20幾種品種,依毒性可分為三大類
- 完全無毒
- 生殖器 & 內臟有毒
- 整隻由裡毒到外
- 澎湖吃的到的那種屬於 1.完全無毒,這種河豚在當地叫"刺規"(台語),這型的被攻擊時會整隻鼓成一個刺球狀,還蠻可愛的;魚肉可以煮麵線或炸酥,內臟也可食用,魚皮的部份可以燙熟拔掉刺針,然後冰凍後再水發當冷盤;在澎湖的海產店幾乎都吃的到
- 日本那種要執照才能殺的河豚是第2.生殖器 & 內臟有毒,代表就是虎河豚囉
- 有興趣的到澎湖當地可以更進一步瞭解
2008-05-14
FreeBSD 修改使用者資訊
通常是不會去幹這種事,當然有時候還是會有需要就是,在 FreeBSD 上就使用 pw 指令來處理囉
Syntax:
- sudo pw usermod [account to modify] -g wheel
另外也有 userdel useradd groupmod groupdel lock unlock 等等
2008-05-05
野柳拍照
這次的拍照蠻瘋狂,5/3星期六一早 3:30跟老竽仔從台北出發往金山萬里方向殺(by 歐兜賣),基本上延路就是一遍漆黑,唯一不同的就是以往沒有夜跑經驗就是
這天的日出很早,我們大約4:40幾分左右到達原野柳海洋公園那邊的7-11嗑個早餐,沒想到嗑到一半天就突然白了(囧),完全不等人的太陽蹦了出來,趕緊殺到岸邊架上腳架開始練習抽黑卡;這次由於我的車輪胎有狀況沒辦法出車,所以只帶了一支 Gitoz 跟很爛的小腳架,所以拍起來非常不順手,也由於第一次挑戰日出,整個搖(抽)黑卡的過程完全是個廢
隨後再殺到平溪一個路邊的"水邊"練習拍生態,接著殺到十分也是做生態練習,這次在抓眼睛上的成功率高了很多,只是沒有 Macro 的狀態下,實在拍起來很不過隱
原本預計下午3:30還要殺淡水拍日落再練一次黑卡,只是實在是太累了,一整個呈現昏迷狀態就作罷了
P.S. 這次在拍攝時還看到我最怕的"Snake"在水裡游(囧)...
P.S. 圖片請參見