貝貝喝的奶量有點太超過(喝 150cc 還想再喝), 所以來查查 喝奶量 的規則是怎麼樣, 到底 寶寶 喝奶量 多少才夠?
下述摘錄自: 寶寶喝多少母奶量才夠飽?
以哺餵母乳所研究出來的醫學數據報告
- 從出生開始~到滿月:baby的喝奶量是90~120cc之間,但有些寶寶可高達150cc。
- 第2個月開始~:每週會增加10~20cc的奶量。
- 滿2個月的時候:喝奶量的平均值是130~160cc之間。
- 滿第3個月的時候:平均值就是170~200cc。
- 在四到六個月大以前,寶寶需要多少奶量並沒有標準答案,因為每個嬰兒所需的奶量不盡相同。初生嬰兒都有天生的攝食及成長的本能,媽媽們只要迎合寶寶的生理需求,餓了就餵,不吃就停餵。若有需要,也有簡單公式可供餵食配方奶的媽媽做參考,但僅供參考。
成長評估是否有吃飽
尿濕測試
- 如果寶寶只有吃母奶並且一天小便至少6次, 就表示奶量是足夠的.
體重測試
- 一般出生嬰兒的平均體重,約為3公斤,
- 第一個月,平均增加體重1公斤
- 第二個月,平均增加體重0.9公斤
- 第三個月,平均增加體重0.8公斤
- 第四個月,平均增加體重0.7公斤(約為出生時體重的二倍)
- 第五個月,平均增加體重0.6公斤
- 第六個月以後平均每個月增加0.4~0.5公斤
- 到一周歲時約為10公斤(約為出生時體重的三倍)
下述摘錄自: 嬰兒鼻腔窄喝奶狂哭 呼吸不順可奪命
嬰兒進食及體重指標
- 1個月大嬰兒的平均喝奶量(c.c.), 不低於體重(公斤)乘以10
- 1個月大嬰兒體重應較出生時增加700~800克
- 出生第2、3個月的體重,每月應增加約1公斤
- 4個月大嬰兒體重應為出生時的1.5倍
- 註: 若嬰兒吸2~3口或喝10~20c.c.奶就出現哭鬧、推開奶瓶現象, 或體重低於上述指標, 應帶往就醫
Gmail 寄出任何信, 都會自動將這些信箱加入 Contacts(通訊錄) 裡面, 平常是沒什麼狀況, 但是真要整理起來, 會發現有不少重覆的連絡人在裡面.
看到此篇文章介紹: Google通訊錄新增合併重複資料功能
原來 Gmail 現在可以把重覆的資料合併起來, 真是感激~
原來 昇陽(Sun, Jonathan Schwartz) 之前面對那麼多苦難, 被 Steve Jobs 和 Bill Gates 圍攻, 還能全身而退, Sun 真是夠硬的.
註: 描述過去 "蘋果的Steve Jobs" 和 "微軟的Bill Gates" 曾威脅要告他(Sun)侵犯專利, 但未能成功的內幕.
下述摘錄自: 前昇陽CEO部落格大爆業界內幕
他說,就在2003年發佈昇陽的Linux桌上型電腦Project Looking Glass之後沒多久,Steve就打電話告訴他說,昇陽的繪圖介面侵犯了蘋果的智慧財產權(IP)。如果昇陽打算讓此一技術商品化,「我會控告你!」
不過,Schwartz提醒Steve,昇陽對於MacOS中用到與Unix相關的專利技術亦感到關切時,「Steve就沉默不語了!」
Schwartz說到,在真實的商業世界中,恫赫和威脅見怪不怪。因此與Steve的那次談話經驗,剛好能幫助他處理之後與Bill Gates間的一次會議。
他說Bill Gates和Steve Ballmer兩人曾一起到矽谷的昇陽辦公室找他。Bill開門見山的說:微軟擁有辦公室軟體市場,同時我們的專利亦涵蓋所有的OpenOffice。
Schwartz諷刺的說,Bill的表達較為婉轉,他不像Steve Jobs的直接威脅,而是提出另一種不同的解決方案。Bill建議說,微軟可以提供專利授權給昇陽。這意味著,微軟希望能夠從每一套OpenOffice 的下載中,取得相應的權利金。但同樣地,Schwartz也回應說,微軟的.Net開發平台其實也採用了Java技術。「結果,這場會議很快就結束了。」
現在看起來, Google 也是左打 Apple, 右打 Microsoft, 不知道下場會如何, 過幾年再看看. :)
by c9s (cornelius.howl@gmail.com) at March 16, 2010 03:30 PM
好久沒串 SOAP, 最近有個 API 使用 SOAP, 重新拿出來複習~ 此篇都是以 Client 為主.
<?php
include('soap/nusoap.php'); // 即可
?>
主要是 $param (參數, 注意裡面的型態, 須要與 API 的型態一致, 不然有可能會出錯.), $serverpath (Server 位置), $client->call() (API 名稱), 就可以取得 API 的結果.
範例
<?php
$param = array(
'id' => 1,
'user_id' => (string)$user_id,
'name' => 'jon',
);
$serverpath = 'http://soap.example.com/user/userinfo';
$client = new nusoap_client($serverpath);
$err = $client->getError();
if ($err)
return false;
$result = $client->call('showUserInfo', $param);
print_r($result);
?>
SOAP 經常使用在 SSO (Single Sign-On 單一登入), 登入完後的 cookie 要如何紀錄, 並於下個 API call 時帶入?
範例
<?php
// Login
$url = 'https://soap.example.com/v3/Services/UserLogin.asmx';
$client = new nusoap_client($url);
$err = $client->getError();
if ($err)
return false;
$param = array(
'user' => 'jon',
'password' => 'test',
);
$soapaction = 'http://soap.example.com/user/Login';
$result = $client->call('Login', $param, '', $soapaction);
print_r($result); // 此段已經可以登入完成, 看看是否有取得資料
// Debug
//echo "request:\n" . $client->request . "\n"; // 發出的 SOAP request XML 長什麼樣子
//echo "response:\n" . $client->response . "\n"; // 接收到的 XML 長什麼樣子
// Get User Info (登入完成, 取得 cookie 後, 再接著去要使用者相關資料)
$cookie = $client->getCookies(); // 上面登入完成, 取得 Cookie 值
$url = 'https://soap.example.com/v3/Services/UserInfo.asmx?wsdl';
$client = new nusoap_client($url); // create new soap client
$client->setCookie($cookie[0]['name'], $cookie[0]['value']); // 指定 Cookie 值
$soapaction = 'http://soap.example.com/user/GetUserData';
$result = $client->call('GetUserInfo', '', '', $soapaction);
print_r($result); // 即取得登入後, call GetUserInfo 的資料
?>
NuSOAP Debug howto
<?php// call($operation, $params = array(), $namespace = 'http://tempuri.org', $soapAction = '', $headers = false, $rpcParams = null, $style = 'rpc', $use = 'encoded')
$client = new nusoap_client($url);
$result = $client->call('Login', $param, '', $soapaction);
echo "request:\n" . $client->request . "\n"; // 發出的 SOAP request XML 長什麼樣子
echo "response:\n" . $client->response . "\n"; // 接收到的 XML 長什麼樣子
?>
使用 NuSOAP 若回傳的中文是 ???? 或 亂碼, 主要是 NuSOAP XML Parser 的問題(註: XML 中文都是正常顯示)
此時要注意的是有三個地方 NuSOAP Library 內的參數值
主要是 NuSOAP 認為 xml_encoding 是 utf-8 時, 會自動啟用 decode_utf8 的動作, 反而造成原本正常狀況, 經過 decode 反而變亂碼, 所以解法如下:
範例
<?php
$client = new nusoap_client($url);
$client->decodeUTF8(false);
$result = $client->call('GetUserInfo');
print_r($result);
?>
上週末下班前,在桌上發現一個包裹,原來是渡海而來的兩隻 A1!這兩隻 A1 是 Broncho 的產品,詳細規格可以參考 Broncho 的網頁。
大伙興奮的開箱啦!
包裝和 Hero 的很像。3.2 寸 LCD, 480×320 的解析度,200 萬畫素的相機鏡頭,CPU 是 Marvell 300 (624 MHz),記憶體是 256 + 128 MB,支援 WIFI, Bluetooth, FM, GPS。不是使用標準的 USB 接口,但同一個接口可以接 USB、耳機、變壓器。觸控螢幕使用起來的感覺像是電容式的,反應非常靈敏,輕輕的觸摸就有反應。
系統是 Android Cupcake,內建軟體有不少 Google App,最另人驚訝旳是上面有 Android Market 可以用,試著從 Market 上面下載了一些小遊戲下來玩,完全沒有問題,真是太牛了!另外一點就是有內建手寫輸入,速度不快但是準確度不錯。除此之外還有谷歌拼音可以用。
測試的途中無線網路與 GPS 不是很穩,除此之外以一隻中低價位的手機來說表現的相當不錯。
CSS3 要產生圓角、陰影.. 等等, 在每個瀏覽器需要寫不同的程式碼, 有沒有辦法寫完一行, 就自動把其它瀏覽器所需要的相關程式碼都產生出來呢?
因此, 就有此網站的出現: CSS3 Please! The Cross-Browser CSS3 Rule Generator
於頁面上選擇圓角(box_round)、陰影(box_shadow) 等等的程式碼區塊, 直接修改後面數值, 修改完成後, 其它瀏覽器相關的數值、參數的也都跟著自動產生出來, 再複製、貼上即可.
Google 有非常多的服務, 它為旗下的服務做了一份 SEO 的報告, 共 49 頁.
Google 產品服務的 SEO 報告, 相關介紹可見:
Postfix 是 Linux 上, 很常使用的 Mail Server 軟體 / 套件, 主要的設定檔是 /etc/postfix/main.cf (於 Ubuntu / Debian Linux).
那 Postfix 的 main.cf 有哪些參數可以設?
在 Ubuntu / Debian Linux 常常會有各種不同版本的軟體, 但是是做同樣的事(或類似的事).
最常見的 vi、java、gcc 等等, 這些都有各種不同的版本, 另外 scim / gcin 等輸入法, 是需要指定權重.
有這麼多軟體, 每次設定都要用 update-alternatives 然後去找相對應的軟體名稱, 有沒有全部安裝完後, 統一一次設定好即可的方法?
於是偷懶的方法就出現了: update-alternatives --all
(詳見: man 8 update-alternatives
)
不過上述全部跑完, 要花點時間設定, 若想要看看全部有哪些, 可以使用: yes '' | update-alternatives --force --all
讓他全部再跑一次設定即可~ :P
於 Ubuntu Linux 中, 使用 MPlayer 來看影片, 但是自從升級到 9.10 後, 影片播放時就常常會卡住不動, 然後快轉後再往回轉之類的讓他繼續播放.
gmplayer 執行後, 都會出現下述訊息.
mplayer: could not connect to socket
mplayer: No such file or directory
然後影片常常會播到一半就卡住不動, 快轉後又可以開始播放.
ao_driver = "alsa"
改成
ao_driver = "pulse"
ao = alsa,
改成
ao = pulse,
這樣子再重新播放就不會有卡住不動的問題囉~
在 /etc/wpa_supplicant/wpa_supplicant.conf 加入 network 設定
network={
ssid="Example"
psk="password"
id_str="office"
}
network={
key_mgmt=NONE
}
然後在 /etc/network/interfaces 加加 mapping
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface office inet dhcp
之後開機就會自動 connect 到合適的 AP 了
最近在舉行冬季奧運, 冬季奧運得到的獎牌, 成本是多少?
下述摘錄自此文: 奧運金牌值多少錢?
這輩子沒機會拿到的話, 可以考慮打一面犒賞自己? XD
2010-03-06 把貝貝從彰化接回台北住, 另外是要對貝貝的頭毛做手腳, 所以來做做紀錄.
註: 出生到現在等等, 之前的紀錄後續再慢慢補上.
首先, 貝貝先來跟大家打招呼~











要在 Outlook 設定 POP3 / IMAP 去接收 Gmail 信件, 要如何做?
by cfsghost@gmail.com (Fred Chien(錢逢祥)) at March 04, 2010 09:05 PM
一直以來設定 DNS 都是在 GoDaddy 或 EveryDNS 等等的地方設, 這次設定 Gandi 一直沒有出現成功的訊息, 感覺怪怪的, 在此紀錄 Gandi 設定 DNS 時, 需注意的事項.
Google Apps 整個設定完成的結果, 大致如下:
家中有開伙 或 租的房子有開伙, 就要拜地基主.
拜 地基主 要準備哪些東西? 要如何拜? 在哪邊拜? 流程順序如何?
拜神明、祖先,可以吃, 它算是陰神,可以吃.
像拜冤親債主的,不要吃.
apt-cross -a armel -S sid -i libgtk2.0-0
apt-cross -a armel -S sid -i libgtk2.0-dev
export PKG_CONFIG_PATH=/usr/arm-linux-gnueabi/lib/pkgconfig
apt-cross -a armel -S sid -u
by cfsghost@gmail.com (Fred Chien(錢逢祥)) at March 02, 2010 08:24 PM
Debian linux 做 apt-get dist-upgrade, 升級到 sysv-rc 時, 出現下述訊息:
Unable to migrate to dependency-based boot system
Tests have determined that problems in the boot system exist which prevent migration to dependency-based
boot sequencing:
package exim4-base removed but not purged, package mysql-server-5.0 removed but not purged
If the reported problem is a local modification, it needs to be fixed manually. If it's a bug in the package, it should be reported to the BTS and fixed in the package.
See http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot for more information about how to fix the problems preventing migration.
To reattempt the migration process after the problems have been fixed, run "dpkg-reconfigure sysv-rc".
問題出在 沒有把 exim4-base、mysql-server-5.0 移除乾淨. (移除乾淨要用 apt-get remove --purge exim4-base mysql-server-5.0)
/etc/init.d/exim4 5cc0235f0daea6b711879c2aa6d017f7
/etc/logrotate.d/exim4-base cd9fc4ad67f13176c098fab4bbcd32b5
/etc/logrotate.d/exim4-paniclog 27d670010e80246c4a1dd89419589009
/etc/cron.daily/exim4-base 7c4bb303fbaba1d038e5dfe60dcb656d
/etc/init.d/mysql-ndb-mgm becae0693dae627e6960249ae17bae19
/etc/init.d/mysql-ndb 25ad87aee00cf24aea5daf7ad4ed899f
/etc/init.d/mysql 246ab7d69e00af14f03d12c54465b59c
/etc/logrotate.d/mysql-server 64e209fe34f73fbf10c9479bf30947c4
/etc/mysql/debian-start 4272e4d740c8ae651ac35bbf4d2ed6dc
/etc/logcheck/ignore.d.workstation/mysql-server-5_0 20ccf274886d8f2897a10d9288579410
/etc/logcheck/ignore.d.server/mysql-server-5_0 20ccf274886d8f2897a10d9288579410
/etc/logcheck/ignore.d.paranoid/mysql-server-5_0 e8dbe35695437354553e61fd65b702ba
mysql-common, mysql-server-5.1: /etc/mysql
Debian Linux 使用 testing 的話, 若於上星期有做過 dist-upgrade 的話, 就會發現 PHP 已經被升級到 5.3.1-5, 而且出現一堆警告訊息.
我遇到的有下面這三種錯誤訊息:
strtotime() 出現的這個警告是要我們先指定正確的時區(Timezone), 再來使用這個 function.
ex:
<?php
date_default_timezone_set('Asia/Taipei');
echo strtotime('2010-03-01');
?>
vim /etc/php5/apache2/php.ini # 於 php.ini 的 date.timezone
;date.timezone =
改成
date.timezone = "Asia/Taipei"
vim /etc/php5/conf.d/date_timezone.ini # 於此檔案加下述
date.timezone = "Asia/Taipei"
發現下述這幾個都不見了 (php5-imagick, php5-mhash, php-apc)
cat /etc/php5/cli/conf.d/imagick.ini # 第一行有個註解 "#"
by cfsghost@gmail.com (Fred Chien(錢逢祥)) at February 28, 2010 10:52 PM
cd ~/bin
wget http://xrl.us/cpanm
chmod +x cpanmcpanm Module
cpanm MIYAGAWA/Plack-1.0000.tar.gz
cpanm ~/mydists/MyCompany-Framework-1.0.tar.gz
cpanm http://example.com/MyModule-0.1.tar.gz
cpanm http://github.com/miyagawa/Tatsumaki/tarball/master
cpanm --interactive Task::Kenshoby c9s (cornelius.howl@gmail.com) at February 27, 2010 11:22 PM
Web Frameworks 從 1999 年到現在的演進圖, 在 Github 上面有持續的更新. :)
±2℃ / 正負2度C / +-2度C 先整理起來, 忙完再來看.
下述簡介摘錄: 陳文茜的《±2℃》紀錄片
- 由孫大偉、陳文茜監製的紀錄片《±2℃》,是第一部記錄台灣氣候變遷的紀錄片。
- 台灣必須面對的真相是,台灣人口密度過高、土地侵蝕率高等,恐怕是氣候變遷下「全世界的第一批難民」。
- 紀錄片取名《±2℃》,源自日前哥本哈根會議的結論,即是未來人類如果要生存,就必須將氣溫控制在攝氏兩度以內。
- 《±2℃》行動聯盟根據聯合國跨政府氣候小組(IPCC)的報告以及中央研究院的研究結果,分析出不是很樂觀的資訊:當馬爾地夫成為世界上第一批沉沒的島嶼時,東石港、林邊、東港、麥寮也將成水鄉澤國。海平面如果繼續上升,蘭陽平原、台北盆地和高雄市也將淹沒。
Vim 在安裝套件(Package)、外掛(Plugin) 等等的時後, 總是要到 Vim 官方網站去搜尋, 然後看清楚說明, 要擺到哪去等等, 才下載安裝.
Vimana 解決了這些安裝的困擾, 感謝 c9s. Orz..
下述 Vimana 簡介 摘錄自: Vim Script Manager - Vimana (安裝步驟 等等都在此頁有 中文 的詳細說明.)
一般來說,Vim Script 的安裝都是到 vim.org 上,搜尋 Script,然後參考該項目的安裝細節來手動安裝。但是每個 Script 的發行、打包的方式又不一樣,所以大部分 Script 的安裝都還是得手動進行。 有的是直接將檔案複製到 Vim 的 Runtime 目錄裡頭即可,有的是得先解壓縮,然後使用 cp 或是 rsync 命令依序照目錄結構複製到 Vim 的 Runtime 目錄裡。Vim 雖然也提供了 Vimball 格式的打包檔,但是也不夠普及。
然而 Perl 有 cpan 命令、Ruby 有 gem 命令、Debian 有 apt-get 命令,Vim 卻因為發行方式不統一而一直沒有一個可用、堪用的工具來做這樣的事情。為了解決這個問題,我的想法是,針對每一個發行的 Script (該 Script 有可能用是 tarball 包裝也可能只是純文字檔案) 來做安裝策略的偵測,於是 Vimana 就誕生了。
在張貼文章時, 想要插入表情符號, 所以來為 phpBB 安裝 Smilies (表情符號).
大量寄信 很容易就會被當 spam 來處理, 此 IP 就永遠被列為 spam 的 IP, 這篇文章列出要大量寄信需要注意的事項.
詳見: 如何正確發送(大量) Email 信件 - ihower
by cfsghost@gmail.com (Fred Chien(錢逢祥)) at February 20, 2010 10:26 PM
by noreply@blogger.com (Jouston Huang) at February 20, 2010 08:02 AM
小朋友剛出生, 要寄照片回去給家人看, 才知道好市多有線上沖印的服務.
帶隨身碟去好市多洗照片, 需要等 1hr, 用線上沖印服務, 就可以在家裡把要沖印的傳過去, 到現場就可直接領取囉~ :)
註: 優點是到場就可以直接取, 缺點是並不是 1hr 就可以立刻拿到, 需要等來信通知. 約2~3天的工作天.
除了照片外, 還有月曆和賀卡的項目, 考慮要不要做些小朋友的月曆或賀卡來保存~ :P
註: 下述價位是 2010/02/20 的價位, 最新價位請再自行看官方網站~
$ echo `ssh-agent` > .agent$ source .agent $ ssh-add path/to/key1$ sudo apt-get install keychain$ sudo port install keychain$ keychain path/to/key1$ source ~/.keychain/....blahby c9s (cornelius.howl@gmail.com) at February 18, 2010 03:25 PM
我最常用的是 netstat -tln, 發現這篇文章把查看不尋常連線的方式都寫出來了. (適用於 Ubuntu、Debian Linux、FreeBSD.等)
註: 此文抓出來的 IP, 可再搭配 nslookup、traceroute 等反查追蹤看看.
下述轉載自: netstat 檢查不尋常連線
以下是一些實用的 netstat 語法,可以檢查主機的連線數量:
- netstat -na
顯示主機上所有已建立的連線。- netstat -an | grep :80 | sort
顯示所有 port 80 的連線,並把結果排序。- netstat -n -p|grep SYN_REC | wc -l
列出主機上有多少個 SYNC_REC,一般上這個數字應該相當低。- netstat -n -p | grep SYN_REC | sort -u
同樣是列出 SYNC_REC,但不只列出數字,而是將每個 SYNC_REC 的連線列出。- netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'
列出發送 SYNC_REC 的所有 ip 地址。- netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
計算每一個 ip 在主機上建立的連線數量。- netstat -anp |grep 'tcp\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
列出從 TCP 或 UDP 連線到主機的 ip 的數量。- netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
列出每個 ip 建立的 ESTABLISHED 連線數量。- netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
列出每個 ip 建立的 port 80 連線數量。
$ unzip scribefire.jar然後修改 locale/zh-TW/overlay.dtd 裡面的內容
<!ENTITY performancing.editor.bar.strong.tt "強烈標示 <Strong>">改成
<!ENTITY performancing.editor.bar.em.tt "特別強調 <em>">
<!ENTITY performancing.editor.bar.strong.tt "強烈標示 <Strong>">然後更新壓縮檔 scribefire.jar
<!ENTITY performancing.editor.bar.em.tt "特別強調 <em>">
$ zip -r scribefire.jar content locale skin再重新啟動 firefox 就可以了~
by FourDollars (fourdollars@gmail.com) at February 17, 2010 04:06 PM
$ cat > .local/share/applications/hichannel.desktop <<ENDLINE然後就會在應用程式選單裡面看到
[Desktop Entry]
Name=hiChannel 網路廣播
Exec=alltray google-chrome --app=http://fd.idv.tw/radio/player.html
Icon=google-chrome
Type=Application
Categories=GTK;Application;AudioVideo;Audio;Player;
ENDLINE
$ cat > .local/share/applications/msn.desktop <<ENDLINE不過相信目前應該沒有人會想要使用 MSN Messenger 網頁版
[Desktop Entry]
Name=MSN Messenger 網頁版
Exec=alltray google-chrome --app=http://webmsn.msn.com.tw/wlml/index.htm?uri=webmsn.msn.com.tw
Icon=google-chrome
Type=Application
Categories=Network;InstantMessaging;
ENDLINE
by FourDollars (fourdollars@gmail.com) at February 17, 2010 03:30 PM
by cfsghost@gmail.com (Fred Chien(錢逢祥)) at February 13, 2010 11:39 PM
在書架上找書, 每次看到 羊肉爐不是故意的, 總會想要翻個幾頁, 雖然看過很多次了, 但是每次看都還是笑到翻掉.
決定還是把網路上的全文找出來, 心情不好時, 隨時可以找出來看.
全文可見:(轉)羊肉爐不是故意的 - 備份
struct _mouse_event {
int button1;
int button2;
int button3;
...
};enum {
MOUSE_LEFT_BUTTON = (1 << 0),
MOUSE_MIDDLE_BUTTON = (1 << 1),
MOUSE_RIGHT_BUTTON = (1 << 2)
};
struct _mouse_event {
int button;
...
};struct _mouse_event mouse;
mouse.button |= MOUSE_LEFT_BUTTON;
mouse.button |= MOUSE_LEFT_BUTTON | MOUSE_RIGHT_BUTTON;
mouse.button &= ~(MOUSE_MIDDLE_BUTTON);
mouse.button &= ~(MOUSE_MIDDLE_BUTTON | MOUSE_RIGHT_BUTTON);
by cfsghost@gmail.com (Fred Chien(錢逢祥)) at February 12, 2010 02:11 PM
各種 JavaScript Framework(MooTools, JQuery, Prototype, YUI, Dojo) 對 DOM 的操作來比較執行速度, 於各種不同瀏覽器, 執行的結果也會不同.
網頁可見: SlickSpeed Selectors Test
註: 此篇用的 Framework 版本都已經是舊版, 不過可於 slickspeed - css selectors test suite for javascript frameworks
來改成新版測試. (Source code)
原來報戶口是要找各縣市的戶政 (搜尋 "報戶口 + 新生兒", 政府的網頁都是 404, 直接到到台北縣市 的 市政府網站去找, 搜尋結果都不是我要的.)
戶藉設在汐止, 就是到 汐止市戶政事務所 登記.
下述資料取自: 汐止市戶政事務所 - 出生登記
下述取自: 汐止市戶政事務所 - 服務時間及電話
常常會有人問, 某些套件、軟體, 可以承受多大的量? 極限在哪裡? 可以容納多少使用者? 怎麼設定才可以承受更大的量? 等等.
這個答案很難回答, 因為都是看如何使用, 有些每秒 QPS 可以破萬, 也有每秒 QPS 只有 10 就爆炸了.
全部都是在程式如何寫, 系統、軟體如何去設定、操作的問題.
雖然如此, 還是很想知道極限在哪邊?
答案也很簡單: 軟體的速度再快, 最後極限還是在硬體. (例: 不管 Apache、nginx 再怎麼調整, 最後極限會是網卡的頻寬.)
當你的網卡頻寬都吃滿後, 就算 CPU 很閒、Ram 很空、IO 也很閒, 一樣沒辦法把資料送出去.
不過, 如果是遇到這種狀況, 可以考慮多買一些便宜的機器, 來解決這些問題. :)
要在 phpBB 加入 Google Analytics code 的步驟:
<script..... Google Analytics code ..</script>
放最下面除了頁面比較快外, 主要是 Analytics code 有時後會把頁面卡住, 雖然可以設 async 避免(Google Analytics goes async), 不過, 盡量不想去改 Google 本身提供的語法.
大同電鍋 相信是家家必備的良品, 之前買沒有用心看說明書, 前幾天去買 大同不銹鋼蒸籠 才發現有時間表可以參考.
註: 蒸籠蠻好用的, 原本的要努力疊起來的食物, 蒸籠直接可以平擺, 擺滿滿的一起蒸, 輕鬆多了~
說明書很容易弄丟, 所以把說明書的食譜目錄打起來放. (註: 幾杯 => 量杯的水量)
健康的飲食是少油炸多蒸煮
CNNIC 似乎很嚴重, 最近正忙到不可開消, 還好有不少長輩清楚的將原由、嚴重性做清楚的說明~
下述摘錄自: Untrustable CNNIC SSL CA
CNNIC 就跟 TWNIC 一樣,是國家級的網路管理中心,主要負責如 domain registration 業務。雖然 CNNIC 號稱是非營利組織,但實際上對於豎立 GFW 之中國政府的各項要求,沒有能力拒絕。事實上,CNNIC 也幹過,發佈內含流氓軟件功能,且使用者無法刪除的中文上網官方版軟體這種事。
由於 CNNIC SSL CA 被納入 Root CA,依據 SSL CA 的階層式信任的架構,CNNIC 隨時可以發佈假的 CA,進行 SSL MITM (Man-In-The-Middle) 攻擊。這個意思是說,當你從境外連結中國境內的網站,透過 SSL 登入該網站系統時,即使瀏覽器顯示此 SSL 安全連線安全無虞,但實際上因為假的 CA 之故,很有可能連到的實際上是個釣魚網站 (DNS hijacking 是中國 GFW 常用的技倆)。因此,你的帳號密碼,就會被竊取;而如果這密碼是平常常用的密碼,那你所有平常用的資訊服務,盡皆淪陷。
另一種更可能的情境是,在中國境內連 Gmail 時,由於 CNNIC 的假 CA 與 DNS hijacking 之故,連到的是假的 Gmail 登入頁,你很可能毫無所覺,使自己的 Gmail 帳號密碼拱手予人。
mozilla/Entrust.net_Secure_Server_CA.crt
改成 (前面加 "!" 號)
!mozilla/Entrust.net_Secure_Server_CA.crt
Google Open Source 的專案到底有哪些? 總列表在哪?
大約從 J2SE 1.4/1.6 開始,Sun 所釋出的 Java runtime 開始支援 IPv6 連線功能。一般的 Linux 的套件系統 也開始支援 IPv6,許多系統預設是同時開啟 IPv4/IPv6 或稱為 Dual Stack 網路功能。
基本上,鼓勵各種軟體開始移植到 IPv6 網路上是一件好事。Java runtime 若在 dual-stack 的機器上,預設走 IPv6 位址,因為 IPv6 位址可同時走 IPv4/IPv6 網路。不過問題在於,若一般的 GNU/Linux Debian, Ubuntu 系統,預設會啟動 IPv6 介面,無論你所在網路是否有 IPv6 路由。
於是,你若在 Linux 上使用一些 Java 寫成的網路軟體,如 JDownloader 等,很有可能發生軟體運作後,卻什麽地方都連不上的症狀。解決辦法一是關閉 IPv6 網路功能,一則是利用 JRE 的參數,改為預設使用 IPv4 網路。
首先,你若想確認是否開啟了 IPv6 網路,可於終端機下使用此指令判斷
$ ip addr|grep inet6
若出現了 inet6 之位址,即為開啟了 IPv6 網路。
你若想快速的關閉 IPv6 功能,可以利用 root 執行 ip 指令,直接刪除 inet6 位址
/sbin/ip addr del <ipv6address>/<prefixlength> dev ethX
在舊版核心,IPv6 功能是以模組方式存在,妳可以透過更改 modprobe (module-init-tools) 的設定,讓系統不載入對應驅動程式。關閉的方式很簡單,請修改 /etc/modprobe.d/ 之設定,如以 root 執行以下指令
# cat > /etc/modprobe.d/00local.conf <<EOF alias net-pf-10 off alias ipv6 off EOF
更改之後,重新開機即可關閉 IPv6 功能。
在新版的 Debian/Ubuntu 中使用 2.6 核心,因為內建 IPv6 驅動程式, 你得利用開機參數 (cmdline) 關閉之。作法是修改 /etc/default/grub 檔案,更改 GRUB_CMDLINE_LINUX_DEFAULT 一行,加入 ipv6.disable=1,如
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet"
修改完畢後,請用 root 執行 update-grub 後,重新開機。
另外一項作法是更改 JRE 參數,你若知道啟動該軟體的 shell script 位於何處,可新增一參數如下
$ java -Djava.net.preferIPv4Stack=true Main
這樣就可以要求 JVM 預設使用 IPv4 stack.
這是一篇 Tips.
修訂紀錄 (20100207): 補充利用 iproute 關閉 ipv6 方法,說明新舊版核心處理方式。
PHP 免費的線上電子書, 這本應該不算是入門, 比較偏中上程度適合閱讀, 裡面也有提到如何寫 PHP extensions 的 Hello world 版.
線上文件: Practical PHP Programming
by noreply@blogger.com (Jouston Huang) at February 01, 2010 02:52 PM
時常,你得將手上的軟體原始碼壓起來釋出給第三方使用、測試。特別是你希望提供 daily basics/ revision basics 讓使用者取得最新版軟體的時候。
由於最近都已經只用 git,依據我自己的習慣,希望能夠在檔名中使用簡碼版次,以便未來能夠追蹤出該版次的問題。稍微問了一下友人與查了一下文件,取得 abbreviated commit hash 的作法如下
git log --pretty=format:"%h" -1
若你想將整份程式碼壓縮起來,可以使用
git archive --format zip -o filename.zip HEAD
倘若想加上日期作為檔名,請使用
git archive --format zip -o $(git log --pretty=format:"%h" -1).zip HEAD
若常常使用這個指令,有兩種作法,一是設定為 git alias. 另一則是利用 git 的 commands (verbs) 命名機制,在你的執行路徑 下,寫入一檔案名稱如 git-zip。並將上述指令加入檔案中,未來就可以使用 git zip 來產生最新版壓縮檔。
作法如
$ cat > ~/bin/git-zip
#!/bin/sh
git archive --format zip -o $(git log --pretty=format:"%h" -1).zip HEAD
$ chmod u+x ~/bin/git-zip
$ cd git-repository
$ git zip
另外,為了容易辨識版次,你也可以利用 gitattributes 在程式碼中加入 ident ($Id$) 作為標示。操作可參考 Lloyd Huang 所寫之 Howto.
這是一篇 Tip.
by c9s (cornelius.howl@gmail.com) at February 01, 2010 10:13 AM