2011年9月15日 星期四

hot to make xlib based window full screen

工作上需要作一個小程式, 將xlib based window 設成full screen. 不過利用了google大神, 居然找不到答案. 所幸去查看了gtk的source, 最後在./gtk+-2.22.0/gdk/x11/gdkwindow-x11.c中的gdk_window_fullscreen()找到. 部分程式碼如下, 即可以達成全螢幕. (其實這要Window Manager支援才行)

 //set to full screen
{
#define _NET_WM_STATE_REMOVE 0 /* remove/unset property */
#define _NET_WM_STATE_ADD 1 /* add/set property */
#define _NET_WM_STATE_TOGGLE 2 /* toggle property */
Atom xatom = None;
char* name = NULL;
XClientMessageEvent xclient;
memset (&xclient, 0, sizeof (xclient));
xclient.type = ClientMessage;
xclient.window = window; // created from XCreateWindow
xclient.message_type = XInternAtom(dpy, "_NET_WM_STATE", 0);
xclient.format = 32;
xclient.data.l[0] = _NET_WM_STATE_ADD;
xclient.data.l[1] = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", 0);
xclient.data.l[2] = 0;
xclient.data.l[3] = 0;
xclient.data.l[4] = 0;
XSendEvent(dpy, DefaultRootWindow(dpy), False,
SubstructureRedirectMask | SubstructureNotifyMask,
(XEvent *)&xclient);
}

2011年9月11日 星期日

孕婦托腹帶

老婆懷孕22週囉! 隨著肚子愈來愈大, 最近常聽到她說腰酸背痛, 走沒多久就要坐著, 小便次數也變多了! 這個中秋連假居然時間多著發慌, 可能是因為老婆哪裡也不想去, 親友也不敢約我去溜搭, 都叫我要多陪老婆 XD. 回到正題, 下午就去了一趟台安醫院對面那排婦幼用品店逛逛, 這算是我們兩個第一次有計畫的去逛婦幼用品, 手上帶著一張網友所謂的待產包等清單, 實際到了店裡玲瑯滿目的, 根本無法對著清單仔細對照!

反正就看看奶瓶有哪些品牌, 品項, 也重點式的看了奶瓶消毒烘乾鍋, 還有老婆需要的托腹帶, 最後還看了吸奶器. 托腹帶主要看了兩個品項: combi 托腹帶, 六甲村托腹帶, 這兩種都是上下都有一條形式的, 這種的比較可以對付腰酸背痛. 老婆試穿後, 覺得都差不多. 最後買了六甲村的, 因為六甲村有兩種size, F跟XL的, 一般人都是穿F的, 而這個F size可以調整的範圍很大, 可以適用懷孕後期肚子變的更大時使用, 如果換成combi的, 就可能要再買一個了.

台安對面的店家從安琪兒開始, 依序是甜蜜家族, 二樓的兒女是寶, 還有一家在巷子裡的. 就我的推薦來說, 單品比較便宜的是兒女是寶, 單品最貴的是巷子裡的那間. 而服務態度的話, 其實都差不多, 都還滿和氣的.

商品價位高至低: 巷子裡>安琪兒>甜蜜家族>兒女是寶
服務態度: 安琪兒=甜蜜家族=兒女是寶>巷子裡
托腹帶若是單買, 首推兒女是寶, 她打69折. 六甲村托腹帶報價約是12xx. 不過我們是在甜蜜家族購買, 額外買一件六甲村產婦胸罩, 也可以打69折, 這樣六甲村托腹帶就只要1242. 其實差不多.

另外有詢問的商品還有消毒鍋跟吸乳器. 消毒鍋只詢問combi跟奇哥微電腦這兩樣, combi消毒鍋問到的價錢, 兒女是寶是1950, 其他店家問的都是1980, 以上都不含贈品. 而奇哥則大約是25xx左右, 奇哥消毒鍋是24小時自動每小時會消毒一次, 我覺得沒有必要, 後來就只注意著combi消毒鍋.

吸乳器的話, 有發現幾乎每家的有美樂與philips avent, 美樂的swing 漢堡大約是4500~4800, 雙邊洗乳器則是25xx, 單邊的太吵了, 不考慮. avent的智慧型兩用單邊吸乳器就要4xxx, 當下也沒特別詢問了.

其實台安旁還有一家位於二樓的吸奶達人, 裡頭的商品有限, 折扣看起來還好, 比較特別的是有出租吸乳器服務.

今天逛了一下午, 雖然很累, 不過看著老婆穿著托腹帶很高興的樣子, 心情也就輕鬆了起來:D
之後還要看孩童汽車座椅呢~~ +U

2011年3月17日 星期四

位能儲存電能的可能性

今天與同事討論到日本核能災害, 並進一步討論到核能的成本已經快比太陽能高了. 我有個想法, 目前電池科技還在研究如何找到有效率的電池來儲存電能, 就太陽能來說, 白天產生的剩餘電能, 可以儲存在電池裡頭, 或者加熱家用熱水儲存槽, 方便夜間使用. 除了太陽能, 其他發電方式都有將剩餘電力儲存的需求. 比如日月潭水庫, 發電廠夜間利用剩餘電能將水抽到上方的日月潭, 然後白天用電高峰時期, 將上方的水引下發電.

使用位能來儲存電能似乎是個好方法. 不過利用水庫需要地形配合, 也有破壞生態之虞. 我想到一個方法, 可以有效率而且省空間的方式利用位能儲存電能:

假設:
1. 在地面挖掘長寬各1公尺, 深達3公里的管道, 在底部與地面分別設置類似自動倉儲系統的儲存室, 可以自動儲放土立方塊.
2. 利用廢棄物或者挖掘出來的土方, 造成儲存位能的土立方塊, 大小能夠放入管道中即可, 大小約1立方公尺, 重量約2公噸.
3. 儲存電能的方式: 利用剩餘電能將土立方塊從管道底部拉上地面並存放好, 此舉將電能轉成位能存放.
4. 釋放電能的方式: 將地面上的土立方塊掛上纜線, 放入管道, 讓它下降並帶動發電機組, 產生電能.

我們可以用以下的數學闡述:

假設
管道深度為3km
土立方塊質量為2000kg
重力位能公式為 Ep(h)=mgh
g=9.8m/s²
m=2000kg
h=3000m
將一塊土立方塊從管道底部等速到地面所需位能為
Ep(h)=2000kg * 9.8m/s² * 3000m = 58800000J = 58800 KWs = 16.33 KWh
台電核一廠一號機組發電能力為 650 MW

倘若台電核一廠一號機組剩餘電能為5%, 那一天下來可以將剩餘電能轉換成運送多少土立方塊於地面呢?
剩餘電能為650MW * 5% = 32500KW
一天剩餘電能為 32500KW * 24h = 780000KWh(度電)
假設電能轉換位能效率為70%, 此含起重機組熱消耗與倉儲系統用電.
一天能夠運送的土立方塊有 780000KWh* 70% / 16.33KWh ~= 33435 土立方塊
以儲存室面積為10000平方公尺, 利用率為50%, 約有5000平方公尺可以儲放, 儲放高度為7公尺

33435個土立方塊又能產生多少電能呢?
每塊釋放的位能一樣是16.33KW
假設位能轉換電能的效率為70%, 含起重機組熱消耗與倉儲系統用電.
以一天的時間來降下這些土立方塊, 產生的電能為
33435 * 16.33KWh * 70% = 382195 KWh (度電)

此一儲存位能的方式轉換效率為: 輸出電能/輸入電能 = 382195KWh/780000KWh ~= 49%
這種儲存剩餘電能的方式, 我覺得很環保.

以上的說明只是一個概念的闡述.