2012年3月5日 星期一

Blt function in GOP driver

Blt function is one of the three functions defined in UEFI GOP driver spec. And it is the only function that actually perform the draw operations. It has 4 operation modes.

  1. EfiBltVideoFill: Fill the rectangle of (DestinationX,DestinationY) to (DestinationX+Width,DestinationY+Height) wih BltBuffer pixel (0,0), only 1 pixel in BltBuffer is used.
  2. EfiBltVideoToBltBuffer: Read data from Video Buffer to BltBuffer (delta is used here)
  3. EfiBltBufferToVideo: Write data from BltBuffer to Video Buffer
  4. EfiBltVideoToVideo: Copy data from a rectangle in the VideoBuffer to another position in the VideoBuffer (BltBuffer and delta not used) 
One thing need to pay attention: Before doing memory operation, should raise TPL to avoid interrupted by timer event)

2012年2月13日 星期一

LTV > CPA ?

Mr.Jamie 提到的一個觀念 創業最重要的公式 LTV > CPA
提高LTV
降低CPA
LTV (life time value) 代表的是每一個customer 在你的服務期間的總和花費, 如果你提供的是一個有形的產品, 那期間就代表產品的生命週期, value就是產品的價格, 如果提供的是一種服務, 那期間就代表服務的期限, value就是服務的收費


CPA (cost per acquisition) 代表爭取到一個客戶所要的花費, 這不只是產品的生產成本, 還包括廣告行銷投入的成本與客戶回應比率


而在創業期間第一優先的目標就是 LTV > CPA , 達到這條件之後, 每多一個customer得到的profit才是正的, 爭取更多的客戶才有意義

2012年2月10日 星期五

EFI GOP Driver

GOP (Graphic Output Protocol) driver 是 EFI架構下取代傳統VBIOS 黑箱的 EFI Driver, 另外for embedded system bootloader 上的graphic driver叫EPOG(embedded Pre-OS Graphic).

GOP Driver 的共有GUID
#define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID \
  {0x9042a9de,0x23dc,0x4a38, \
  0x96,0xfb,0x7a,0xde,0xd0,0x80,0x51,0x6a}
Protocol 主要包含3個function 及 1個data structure

typedef struct EFI_GRAPHICS_OUTPUT_PROTCOL {
  EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE QueryMode;
  EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE   SetMode;
  EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT        Blt;
  EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE       *Mode;
} EFI_GRAPHICS_OUTPUT_PROTOCOL;


  1. QueryMode: Returns information for an available graphics mode that the graphics device and the set of active video output devices supports.(是詢問graphic controller 和 系統所有接上的顯示器所支援的顯示模式)
  2. SetMode:Set the video device into the specified mode and clears the visible portions of the output display to black. 則是設定顯示裝置一個特定的顯示模式
  3. Blt:Software abstraction to draw on the video device’s frame buffer.則是直接透過寫入framebuffer  畫矩形圖片

取材UEFI spec 2.3 chap. 11.9 


2012年2月9日 星期四

SVN branch and merge

前一陣子在ubuntu server上架了svn server 當做自己一些文件及程式版本控管的工具,不過只會用幾個簡單的功能, check out, import , ls commit 而且都是用shell command line下指令, 剛看到一個blog  記一下網址
svn branch and merge

2012年2月7日 星期二

C 語言 macro 應用

C 語言用了十幾年, 卻很少用到macro 來簡化程式, 先記下連結慢慢復習
C language MACRO in depth

2012年2月6日 星期一

assembly call C function

UEFI BIOS在 SEC進PEI階段會由assembly code 進入C code,
除了設定好stack 外, 就是要注意assembly call C function的方法
會先把參數以反順序的方式push到stack, 然後call PEI的主程式
不過這跟一般的assembly call c function不一樣的是, UEFI BIOS
不會再回到assembly mode, 所以不需要再把esp 調整回來!
一般的assembly call C function要把esp加上參數總共size.
範例如下

global  _main

extern  _printf

section .data

text    db      "291 is the best!", 10, 0
strformat db    "%s", 0

section .code

_main
        push    dword text
        push    dword strformat
        call    _printf
        add     esp, 8
        ret

2012年1月16日 星期一

9 件創業教我的事

轉貼! 要時時提醒自己!
原連結

HitPlay 的創辦人 Joshua Seims 在他的網誌上分享了一篇 9 Things I Learned by Starting a Company,我覺得跟我的經驗非常像,所以今天就從他的 9 個點出發,跟大家聊聊我自己的心得。

1. 恐懼是可以被克服的

創業的恐懼有兩種,一種是不敢面對、害怕丟臉的恐懼,一種是擔心結果不如預期的恐懼。怕丟臉的恐懼讓你裹足不前,不敢嘗試。開始嘗試了,還有害怕失望的恐懼讓你心情忽高忽低,無法冷靜判斷。這兩個好像每顆心與生俱來都會有的弱點,但創業的經驗告訴我它們其實可以被克服。
要克服不敢的恐懼,很簡單,它就像克服酒量一樣,唯一的方法就是一直喝、不斷的喝,喝到什麼最噁心的嘔吐你都經歷過、什麼最慘痛的失敗你都體驗過,然後有一天,你就會發現自己無敵了。要克服害怕失望的恐懼也很簡單,那就是不要有期望。記得幸運的人嗎?當你放棄了既定的目標,那你不但永遠不會失望,還會因此在路上多撿到許多機會,多好!

2. 天長地久不如真的擁有

當你在當員工時,你就像一隻狗、一個奴才。做不好,通通都是你該死。做得好,通通都是老闆英明。而創業和「Ownership」,就是你的解放,讓你真正擁有你在做的事情、真正決定自己的未來。沒有人說這是一件容易的事情,事實上,當員工的話 6 點就下班了,Server 掛掉是你家的事。當老闆,抱歉,永遠沒有鬆懈的一秒鐘,你連作夢都還在想公司的事。但同時,你也擁有那種握住的感覺,那種過自己的人生,而不是幫別人抬轎的踏實感。

3. 為自己負責

既然沒有了老闆,你就被迫要學會獨立作戰、獨立思考,做自己的決定,並且為自己的選擇負責。一開始會有點不習慣,你會發現自己到處問別人的意見,因為我們從小都沒有學過如何「做自己」。不過一旦你開始抓到了絕竅,就會化身為真正自由的個體,這世界雖千萬人,在也沒辦法擋住你要去哪裡。

4. 沒有 Co-founder 是很孤獨的

當你自己一個人挑戰這個世界,即使是心臟再強、臉皮再厚的創業者,也會有無法承受創傷的一天。你需要一些伙伴,一些跟你擁有相同志向的人,才能在最失落的時候,擁有一個背後的靠山。

5. 通路勝過產品

「把產品做出來,他們就會來」是全世界最大的騙局,至少對於 99.9% 的創業者是這樣的。你最重要的武器,是在把產品做出來前,就先開始著手布建一個有效的通路。產品可以一直換,但通路,才是拿不走的東西。

6. 你成功的秘密,當然不是大家都知道的事情

成功的商業模式絕對不是想出來的,當然更不是分析出來的,否則在你之前,早就有 1,000 個人想到了。當你去看歷史上成功的商業模式,基本上全部都是矇到、Pivot 出來的。如果是這樣,那你除了要有超人的分析,還要有超強的「製造意外」能力。

7. 團隊是超級重要的事情

前面 10 個員工,決定了你公司的文化,所以你必須要花很多、是很多時間在這上面。記住:能力可以學,態度則是你無法改變的。千萬不要用兩次面試,就決定了一切。結婚之前,多約幾次會,甚至同居一陣子,搞清楚了彼此的個性,再私訂終身,也還不遲。

8. 名譽才是你最重要的資產

相信我,創業 13 年來,熱錢來來去去、市場起起伏伏、團隊分分合合我看太多了。到最後,每個人在你心中的地位,就只剩他的品德和人格。你要想清楚,這是一場一輩子的賽局,千萬不要為了短期的利益,犧牲了你一輩子的名譽。如果你行得直、坐得正,那就會吸引來一群一樣欣賞這個風格的夥伴,那,才是永遠拿不走,最最重要的資產。

9. 如果你不覺得好玩,那還是別搞了吧

我看過太多人因為「機會很好」,所以創業,但打從心底,他們並不享受這個過程。可惜創業失敗的機率是遠高過成功的,所以這些人往往不但賠了夫人,還回過頭怨恨自己當初的選擇。人生只有一次,創業不但是在建立一個事業,更是在找到自我價值的實現。
Steve Jobs 說的:
每天早上,我看著鏡子然後問我自己:「如果今天是我人生的最後一天,我會想要做我正要去做的事情嗎?」如果答案連續好幾天都是「No」,那我就知道我必須要改變些什麼。
以上,與大家共勉。
PS. 感謝大家支持昨天的一人一信行動,24 小時內,該篇文章累積了 25,000 人次閱覽,並且有 2,000 人因此連結到總統信箱開始寫信,假設最後的轉換率有 20%,那表示我們總共寄出了約 400 封信給馬先生,大大超過了我希望的 100 封,所以算是一次非常成功的行動,也希望我們能夠很快的收到一些正面的回應。