2009-02-15

一些事

離上一篇台北花火節隔了半年又10天,今天突然又動筆實在心理覺得有太多事壓抑著,也許寫下來會比較好一些。

有時候在想,自己剩多少勇氣再去追尋夢想;又或者,自己是否還有夢想?培養了廣泛的興趣,到底只是隻無頭蒼蠅又或者是如之前告訴自己的,當不知道該從何而去時動起來就對了?其實追尋夢想並不另人害怕,怕的是到頭來其實只是自己欺騙自己從這個現實逃避到另一個現實的環境罷了。

Bass 停了三個多月的課,自主練習也想當然的停擺,是自己的時間管理差吧

從過年開始到現在也沒拍什麼照片,縱使有拍一些,但是依然沒有整理它的想法,總覺得那堆照片乏善可陳

找房子的事目前也沒進度,一直的拖著也不知道在幹嘛呀!

總之,很久沒有信念堅定的感覺了。

2008-08-05

台北花火節

今年似乎是第一次辦這個活動,在 8/2 星期六晚上 8:30 開始釋放,這次跟老竽仔一起去拍

這次是第二次拍煙火,在老竽仔的指導下加了搖黑卡的技巧;外加遙控器跟 Tokina 12-24 的加持,拍的比較有樣子了

不過一開始整個節奏大亂且又太貪心,造成很多過曝或火花重疊過頭,另外由於我們是在台北橋三重端,所以有些圖可能看起來火花太小,或是忠孝橋那邊的火花很偏(跟原來預設位置有差),所以之後會再整理一份重新裁過的上傳至於其他的都已經上傳囉

另外也有整理在等待時的一些無聊亂拍的"花絮",也歡迎參觀

這次的煙火不知道是我們站太遠還是真的有弱掉,覺得沒有上次國慶在台北大稻埕的壯觀,不過也有可能那次我們是在5號水門進去那邊的河岸所以感覺比較震撼吧,但是這次就是怕爆框所以才跑到台北橋上,不過最佳位置是三重台北橋那邊的大樓樓頂,希望下次找的到有熟識的人可以帶路就好了 XD

P.S. 下次有可能再拍煙火的機會應該是國慶日吧,只是不知道今年會不會移到別處去就是

2008-07-26

遠端升級 FreeBSD 6.3 to 7.0 之驚險萬分

其實我們家老大已經有提供很完整的升級流程,且試過幾台照著做都正常,就公司內部的文件管理系統出了點小問題...

  1. MySQL daemon 沒先停掉會有危險性,因為要幹掉所有的 ports 重裝,但是因為沒先停 daemon 造成 script 一下去後,不明原因 MySQL stop 爛掉
  2. 因為要幹掉所有的 ports 之前會先跑一段 script 把 /var/db/pkg 裡所有的 ports 備份起來,然後再升級完 Base system 後去完整重裝成 7,結果賽手把備份出來的檔案弄掉了,最後還好這台機器有每天備份,才從 dump file 裡挖出 /var/db/pkg 的資訊重做一份 ports 備份檔
  3. 這台機器是有另外獨立線路(不是走公司 gateway),所以前面好不容易救回 ports 備份檔確連不出外網,本來以為是哪個東西搞爛,後來想起是線路問題設定它先走公司 gateway,終於現在恢復正常繼續安裝 ports
  4. 如果必須要裝 MySQL 4.0 會有雷,因為 MySQL 4.0.27 有重大弱點通報,所以如果沒下"export DISABLE_VULNERABILITIES=true"是安裝不了的;所以到了 php5-mysql client 安裝的部份就造成 php5 找不到 mysql 所以就"順手"裝了 mysql5(推論是這個原因),這真是個超級大雷阿~ 囧
原本想說是不是用前一天的 dump (24號) 把系統 restore,後來想到這樣今天(25號) 新增的所有文件就全滅了,那我星期一就準備被砍了,還好那時沒衝動;後來又想說那 restore 到原本的備份 HDD 再救資料,想的非常的複雜,後來還好看到這篇才知道可以只挖特定目錄(resrote -if),所以很快的10幾分鍾內把 /var/db/pkg/ 先挖出來,才弄回 ports 備份檔

總之一整個晚上是驚險萬分加提心吊膽阿,目前看起來正常的在安裝 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
以上的檔案要放在 /usr/ports/distifiles/ 這樣 make 才找的到,升級時也是要更新相對應的版本放到同一目錄,然後就跟通常升級套件的方式一樣:portupgrade diablo-jdk*

另外 Foundation 已經推出 FreeBSD 7 的 jdk1.6 版,不過目前為止 PORTS 裡最新的 diablo-jdk 只有 1.5,另外如果是舊 32bit 的使用者就抓 x86 版,新的 64bit 版就抓 amd64 那版

2008-07-21

36 紀元活動結束

之前有提到過 36 紀元這個拍照活動,可以參考這篇這篇

現在活動結束,且照片也洗出來補上了,我在 Yam 那邊的 Blog 也寫了一篇總結整理,各位可以直接由那邊連結到我這個活動的每一篇 blog,

如果懶的一篇篇看想直接看所有照片的,也請到我的 Picasa

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 兩部份來說

  1. 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
  2. Syslogd Server: (我們以 一台 Lan Server 來當收 log 的 server)
    1. /etc/hosts #這個部份是為了讓我們的 syslog.conf 可以區分用
      10.0.1.1 alteon1.mydomain.com.tw alteon1
      10.0.1.2 alteon2.mydomain.com.tw alteon2
    2. /etc/rc.conf[.local] #rc.conf 設定 syslogd 的啟動參數,若需多個就以空白隔開,語法: ip[/netmask]:port
      syslogd_flags="-a 10.0.1.0/24:514" (註一)
    3. /etc/pf.conf[.local] #pf.conf 加一個 UDP: 514 的 port allow
      udp_private = "{ snmp 514 }" (註二)
    4. syslog.conf #在所有設定的最上面加上以下幾行
      +alteon1 (註三)
      *.* /var/log/alteon1.log
      +alteon2
      *.* /var/log/alteon2.log
      +@
  3. 以上都設定好要重跑 syslogd & pf
    1. /etc/rc.d/syslogd restart
    2. /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
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
參考資料:
  1. 【FreeBSD】用 FreeBSD 建置集中式 Syslog Server
  2. Unix 系統管理手冊-第十一章 Syslog 和記錄檔
  3. Alteon_OS_22.0.2_Command_Reference P.233