2013/12/31

工程師的演進...

做了好幾年的軟體工程師
這篇想來談談我對軟體工程師的一些觀點
或許應該說是我對工程師或是技術的一些看法

我認為工程師分成幾個階段
分別是:工程師(真)→設計師(善)→藝術家(美)

  • 工程師 (真)
在這個階段就是把事情做到"對"
比方說希望某個功能我就把它做出來
至於作法與細節就不會很在意
像是房子的話,工程師就是會做到能遮風避雨就滿足了

  • 設計師 (善)
在這個階段就是把事情做到"好"
這是一個對產品的自我要求的階段
除了做到要求的功能之外,更會注重細節的處理
重視使用的感受與方便
從房子的例子來說,設計師就是會包裝整個房子
讓房子住的更舒適、更安全

  • 藝術家 (美)

在這個階段則是把事情做到"極致"
這是賦予這個產品一個更高的使命
除了做好之外,更可以透過這項產品去改變社會或傳承千古
這樣的格局可能不一定在蓋房子了
類似像是博物館、美術館的規模
做出可以讓人為之一亮且改變社會的東西
在電子產業的世界裡,我想iphone是一個藝術品了...


2013/08/25

理財的目標

人為什麼要理財呢?
有人說我這個月的薪水花完下個月又會有薪水進帳
那為什麼要理財呢?
我覺得理財是要讓自己"自由"
當你擁有了財務上的自由之後
你就可以做自己想做的事情了
而不需要一定要將時間綁在工作上、通勤上
可以將最珍貴的星期一到五用來做自己喜歡的事情:旅遊展覽、運動、跟朋友與家人相處
(因為星期一到五很多地方人都很少,相對的服務與旅遊的品質都會比較好)

另外透過理財,我們可以擁有更多的東西
像是之前我在文章所提到的五子登科
每個都需要大筆的金額
沒有透過有計畫的理財與投資
我相信要達成是有一定的難度的

所以我們來一起設定目標來一步步完成夢想(五子登科&自由)吧
我將理財的目標分為三個階段:財務保障、財務安全、財務自由

※ 財務保障
財務保帳就是之前在文章有說到的緊急預備金
基本上就是6個月左右的生活費
保障我們在失去工作的時候可以有生活的費用
或是突然生病,家裡需要錢的時候的急需
也是所有理財的第一個目標
建議大家用活存的方式將這筆錢存下來
跟生活費的帳戶獨立
這樣有需要的時候可以馬上使用
不要用其他的方式來存這筆金額
因為其他的方式變現都需要一點時間
所以建議採用活存的方式
(有很多人都會希望這筆錢能成為第一桶金 [100萬])

※ 財務安全
完成了財務保障之後,下一步要做到的是"財務安全"
財務安全是指"被動收入"足以支持日常的生活費
這是個很困難的目標,基本上都要存到好幾百萬
而且需要很多的理財觀念與做法
但是當完成了這個目標,距離財務自由已經剩下一步了
比方說:我一個月的基本生活費是2萬 (要知道這個數據請先學習記帳)
那一年所需要的被動收入就是24萬
拿股票來說的話,有6%報酬的股利的話
需要400萬左右的資金
所以要達到這條道路真是不容易啊
但是有了第一個階段的財務保障
相信大家對存錢已經不是什麼困難的事情
在這個階段主要學習的是投資
我會建議股票的原因是:手續費低,投資的報酬比較高
而且要找到6%的標的應該不是很難的一件事(重點是每年都會配6%)
像是:中華電、亞泥... (之後在找機會跟大家介紹)
如果覺得金額太大
可以先降低自己的金額或是改設定多個小目標
比方說:先以每個月5000元為第一個目標,這樣就只要100萬的金額就好

※ 財務自由
跟財務安全是一樣的意思
但是要加入旅遊與休閒的預算
讓被動收入可以支持我們所有的生活水平
當到了這個階段
無論是工作或休閒都會擁有真正的自由了 ~

T__T 大家一起逃離這個世界的窠臼,達到真正烏托邦的世界吧 ~


2013/08/18

What? Why? How?

因為我這個行業常常需要學習新的事物
要如何快速且有系統的學習呢?
我慢慢發現要問自己三個問題
  - What ?
  - Why ?
  - How ?
當前兩個問題都回答的出來時
我想我應該已經夠了解這個事物了
但如果連第三個問題都可以回答出來
代表你已經觸類旁通了

接下來跟各位說明
這三點的意義與不同

※ What

第一個我會問自己的問題是"這是什麼"
試著去網路上、書上去了解它
盡量由上到下去了解這個問題
知道整個事情的架構
有了通盤的了解後
再去針對每個項目做了解
這個階段的重點在"學習"
就像一開始看一本新書的時候
要快速的知道這本書的內容
就先將目錄給先看過一遍
就可以清楚的知道這本書的架構了

※ Why

通常在第一個問題結束
大家就會覺得蔗個事情我已經都清楚了
所以很少會再問自己第二個問題了
就是為什麼是這樣?
這個問題就必須由下往上去了解原因
將事情合理化,並且找出問題的核心
這邊就是需要一個進階的思維:思考
透過這樣的理解可以更深入的了解問題
並且便成屬於自己的東西


※ How

最後的一個問題是:該如何用?
這個問題已經不是在新事物的本身了
而是向左右去拓展新的應用與想法
要跟之前的所知道的其他知識互相激盪
用來解決問題、發明新的應用
這邊所著重是人類進步的核心:創意
當能有一個關於這個問題的答案
我想已經是非常難能可貴了

分享給大家 ~

2013/08/11

職業+事業+志業 ...

麥當勞這家跨國的知名企業,請問一下箇位看官
他們是主要是事業是什麼?
我相信大家都會說,食品業啊
但是這家公司的執行長卻說
他們在做房地產
為什麼? 因為麥當勞的店都是加盟店
大部分都是將店"租"給各地方的加盟者收取"租金"

這也是現在很多的"飲料店"的經營方式
母公司提供訓練與原料,加盟業者要自行負擔營運風險
母公司就收取租金,減少管理各分店的費用

所以我們所看到他們在做的事情
並不是最賺錢的
也不一定是他們的本業
從這個例子就可以知道職業與事業的差別
在麥當勞的例子中
職業是做速食漢堡
而事業則是做房地產

引伸到人生中
我相信每個人在這世界上工作
都必定有他的職業
而職業是必須做的工作與任務,為了薪水、為了養家
職業也是別人所看到表面上的你
也是我們學習所帶來的結果
像是我是一個網路管理的程式設計師
這是我的職業

而事業卻不是每個人都有的
事業是隱含在每個人的心中的夢想
透過自己的能力、興趣所創造出的事情
不是被強迫而是自發性的
而我的事業是喜歡理財 & 醫療管理
想做些好用簡單的系統讓大家可以使用
如果有機會能做一輩子持續的改良我的系統

志業則是另一個層次的發願
以無私、傳承與讓世界更佳美好的願景
對我來說我希望能將我的一些知識轉成簡單易懂的方式傳達給大家
因為我在學習的時候發現
要進入一個領域比在某個領域上精進難多了
所以我想將我所學習到的事物分享給大家
讓大家能更快的進入網路的世界中
所以我的志業是好好的寫這個blog

分享了我的世界
想問問各位看官們
什麼是你的職業 + 事業 + 志業呢?

共勉之 ~ 

2013/08/04

存股票...

其實這個主題我想寫的是目前最夯的"定存股"
但是後來想想其實定存是無風險的理財方式
而股票卻是一個充滿風險的地方
所以改為存股票可能會比較適合

在現在的投資環境中
如果有一筆現金,暫時(3~5年)沒有需求
或是想作為長期投資為了小孩的教育基金或退休用的話
我會建議大家去存股 (當然要先將緊急預備金給準備好)
為什麼呢?
跟定存比起來,報酬率會比較高(如果選股得宜的話,當然也是有風險的)
跟基金比較的話,不用收一堆手續費吃掉報酬
跟黃金比起來,有利息也可以賺價差
跟房地產比,本金不需要太多,而且最近房價好像真的有點高了
如果各位想要每年有穩定的5%以上的報酬率的話
我會建議大家採用存股票的方式

還有一點,因為兩稅合一的制度之後
所到的股利是已經繳過營業稅的
如果我們的綜所稅比營業稅低
還可以多拿到一筆退稅的錢呢
所以只要會好好的存股票
真的好處只有多沒有少
(但是今年的2代健保超過5000的股利都要收錢了 Orz ...)

以下依三個方向(選股、買點、賣點)去做介紹
要如何好好的存股票
之後再跟大家分享一些還不錯的股票

1. 如何選出適合存股的股票 (選股)

※ 避開營運高波動的電子股
因為我們是要存股做長期投資
會建議有穩定的收益來源
但由於電子股的變化較快
可能今年好,明年就虧錢了
所以會建議先避開電子類股

※ 景氣循環股只選龍頭股
像是鋼鐵、水泥、石化、橡膠、航運、營建這些類股
是屬於景氣循環股
會跟著景氣循環會有變化 (普遍來說以3~5年為一個景氣循環)
如果想要投資這樣的股票
會建議選龍頭股,並且選在景氣差的時間入場
較不適合定期定額的方式

※首選民生必需產業
因為我們要長期投、有穩定的收益
我會建議選擇民生必需的產業
因為這個產業是一定要用的,不管景氣的好壞都需要用到
台灣的話會以下面這三大類產業為主

  • 公用事業(電信業、天然氣、有線電視、廢棄物處理)
  • 食品業(休閒食品、豆腐、肉品、沙拉油、飲料、飼料)
  • 保全業
除了選擇產業之外,當然會建議大家在選股的時候
盡量選擇:
    - 龍頭股
    - 老字號的集團
    - 有寡占的地位
這樣相對的公司也會比較穩定

PS : 這邊只是簡單的做介紹
還需要搭配一些選股的方式,像是財務狀況、配息率等等
這些之後再做詳細的介紹

2. 如何選定適當的買點與資金的該如何分配 (買點)

※ 資金配置
在選好股票之後就是刺激的殺進殺出的時間了嗎?
在進場之前會建議先評估一下資金
看看一年有多少的資金可以投入
會建議定期的買進不要一股腦就全投下去
並且保留一點資金做彈性使用 (2~3成)
因為如果全投入到了突發性的股票大崩盤
就沒有錢可以在低點搶購了

例如:有100萬要買中華電信
先規劃80萬投資,20萬做備用
發現價格合理之後就1個月買一張
80萬都投進去了,就等待有新的資金注入
那20萬是要等到大規模的股災時的準備

※ 評估價格
那該是要進場的時候了
投資人最大的問題應該就是我該買在什麼價位呢?
如果各位選擇是一個穩定配息的企業
那方法變得很簡單了
殖利率是近五年平均的5%以上就可以進場了
這樣代表這個價格買入
至少每年都會有5%的報酬(前提是必須都一值穩定的配息)

3. 何時該出脫手邊的持股 (賣點)

※ 價格過高
另外一個投資人最想要的問題是
什麼時間該把它賣掉呢?
基本上我們是要"存股票"的
所以只要公司穩定是不建議賣掉
但是如果各位看官們有想要賣掉求現
會建議大盤漲破8000點 (代表大環境還不錯) 或
殖利率是近五年平均的3%以下(代表股價被炒高了)
就可以出脫了

獲利有狀況
但是如果所投資的公司有發生獲利嚴重下降的狀況
就必須將股票出售,轉換成別的標的
要怎麼知道公司的獲利開始有下降的趨勢呢?
可以從下面幾個面向來看
- 每月營收狀況 (當月營收&年增率、累計營收&年增率)
- 每季獲利狀況 (毛利率、稅前淨利、每股盈餘)
可以透過觀察這些資訊知道公司的營收與獲利的狀況

還有一種就是公司的誠信發生問題
這一定要將股票給拋售,因為誠信是經營公司最重要的要素之一
如果公司的"董監事質借比率過高"
代表公司的持有人有資金的需求
也不是個好現象,要持續的追蹤與注意
如果有問題一定要將持股出清

2013/07/28

C++基本資料型態

在寫程式之前
必須要先知道資料有哪些型態可以儲存
資料型態分為兩大類
 ● 基本資料型態
  - 整數 : short, int, long
- 浮點數(有小數點以下) : float, double
- 字元 : char
- 邏輯值 : bool
 ● 衍伸資料型態
- 與結構相關(結合多個基本的資料型態)
+ array
+ struct, union, enum
+ string
- 與位址相關(跟實際存取記憶有關)
+ 指標
+ 位址

基本資料的長度&範圍(會根據不同的compiler有所不同)
- short(16bits) : -32768 ~ 32767
- int (32bits) : -2,147,483,648 ~ 2,147,483,647
- long (32bits) : -2,147,483,648 ~ 2,147,483,647
- float (32bits) : 9.9*(10^-41) ~ 3.402*(10^38)
- double (64bits) : 9.9*(10^-320) ~ 3.402*(10^308)
- char (8bits) : A~Z, a~z, 0~9, #,+,$...
- bool (8bits) : 0 或 1
這邊解釋一下float & double的表達方式
(10^-41)是說10的負41次方
那char所能存放的字元是以ASCII碼
可以參考這個連結知道有哪些符號
在整數與浮點數的部份
如果所要存的資料都是正數(大於0)的話
可以在資料型態的前面加上 unsigned這樣可以存的正數資料量就變成雙倍了
unsigned short : 0 ~ 65535

這邊有個簡單的範例來說明
如何知道每個基本的資料型態所佔的記憶体大小
#include <iostream>

using namespace std;

int main() { 
  cout << "Size of int is    " << sizeof(int)  << "byte" << endl;
  cout << "Size of short is  " << sizeof(short) << "byte" << endl;
  cout << "Size of long is   " << sizeof(long) << "byte" << endl;
  cout << "Size of float is  " << sizeof(float) << "byte" << endl;
  cout << "Size of double is " << sizeof(double)<< "byte" << endl;
  cout << "Size of char is   " << sizeof(char)  << "byte" << endl;
  cout << "Size of bool is   " << sizeof(bool)  << "byte" << endl;
 
  system("pause");
  return 0;
}
將檔案存成size.cpp並執行下列的指令
bcc32 size.cpp

執行size.exe會出現下面的結果
Size of int is      4byte
Size of short is    2byte
Size of long is     4byte
Size of float is    4byte
Size of double is   8byte
Size of char is     1byte
Size of bool is     1byte
這邊說明一下程式的內容
這邊有一個新的函式 : sizeof()
這個函式主要是計算所輸入的變數的記憶体大小
所以我們將資料的型態輸入就可以得出記憶體的大小了
要注意一下這邊的單位是byte
1 byte = 8 bits    

2013/07/21

library 實作範例 ...

之前有一篇文章再介紹library
有興趣的朋友可以點上述的連結去了解
這邊用個簡單的範例來說明
首先我們先建立一個test的執行檔
# vim main.c
  #include <stdio.h>
  int main()
  {
    printf("Hello world!!!\n");
    return 0;
  }
# gcc main.c -o test
這時我們會有一個test的執行檔
這個執行檔的大小是4642

接著我們使用file來看看這個執行檔的資訊
# file test
test: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, not stripped
可以從上面的描述得知
 - 這是一個32bit的Linux執行檔 (32-bit LSB executable)
 - 可以在intel 80386的硬體環境下執行 (Intel 80386)
 - 使用動態的library (dynamically linked (uses shared libs))
 - 在linux 2.6.32的作業系統上 (GNU/Linux 2.6.32)
 - 還沒有stripped (可以用 strip的指令去除一些debug的資訊,讓檔案變小[4642 --> 3000])

如果想要看一下這個檔案用到哪些的動態library
而且可以看出這些dynamic library之間的相依性
# ldd test
    linux-gate.so.1 =>  (0x00614000)
    libc.so.6 => /lib/libc.so.6 (0x00697000)
    /lib/ld-linux.so.2 (0x00676000)
可以知道有用到兩個函式庫 :
  - libc.so.6 : 標準C函式庫
  - ld-linux.so.2 : 提供基本的library給其他的library,這個library為static library

那如果我們要用靜態的函式庫要如何做呢?
很簡單,在compile的時候加入-static的參數
# gcc -static main.c -o test_static
這時test_static的檔案大小就會飆升到632124

這是用file去看這個檔案的資訊就會變成statically linked
# file test_static
test_static: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.32, not stripped
這個檔案就無法使用ldd的指令了
因為沒有連結動態的函式庫

2013/07/14

行動裝置開發...

自從Apple出了iPhone與iPad之後
所有的程式人員都發現
要學的語言變多了
以前只有PC的時代只要學習開發微軟的程式就好了
現在開發應用程式給大家用
要熟析C#、Java(Andriod)、Object-C(ios)
真的是太困難的任務了

這邊說明一下目前三種APP的開發方式

  • Native APP
就是我們常見到手機上面有一個icon的應用程式。針對不同的作業系統要用不同的語言:C#(Window)、JAVA(Andriod)、Obecjt-C(ios)。因為是針對不同系統所開發的,所以這類的APP順暢度比較好、可以離線存取、可背景執行、硬體存取的功能較好、而且有自己對應的icon;缺點就是同時間要熟悉多個語言或是需要不同的人來撰寫不同的作業系統。
  • Web APP
透過瀏覽器來操作系統,優點是只需要一種語言就搞定了,但是相對的上面所提到的優點都沒有。而且網頁版與手持裝置的頁面是有所不同的,像是頁面的呈現、手持裝置操作的方式等。這編也說明一下jQuery Mobile對手持裝置提供的功能:可以依照畫面的大小調整排版、有支援網頁預先載入的功能、手指滑動的操作、下拉刷新...
  • Hybrid APP
這個方式主要是將Web APP透過PhoneGap或是其他類似的軟體,包裝成一個類似Native的APP。但是一樣會有效能較差與可控制硬體的限制。但是跟Web APP有一樣的好處,就是只需熟悉一種語言就好了。


至於各位看官們要用什麼方式,就要根據APP的應用與現有的資源來進行選擇了。

2013/07/07

網頁開發的進程 ~

最近網頁開發的名詞越來越多了
讓我這個老扣扣的人越來越搞不懂現在的網頁開發技術
這篇文章針對了網頁的開發技術做個簡單的說明
讓大家了解一下網頁開發的歷程

  • ASP (1996)
ASP是一個直譯式的語言,不需要透過編譯器便可以直接在網站伺服器上面執行。用來處理動態的網頁,基本上就是瀏覽器將參數送到伺服器,伺服器再將得到的資料回傳給瀏覽器。寫過ASP的人都知道HTML與ASP 會緊密的聯結在一起,比較無法分開;而且需要個別的處理Database的insert, delete, modify, query。而且比較容易攻擊,要額外撰寫很多code去避免攻擊。

  • ASP.NET (2002)
之後微軟為了改進上述的缺點(還有種種原因),就開發了ASP.NET。在ASP.NET並不需要學新的語言,可以用VB, C#, C++來進行網頁程式的撰寫;並且可以用拖拉元件的方式直接產生網頁的語言,讓原本只會寫window form的人快速的開發Web Form的網頁程式。

  • AJAX (2005)
但是上述的網頁技術在進行互動時,都需要將整個網頁的資料重新傳輸,即便是沒有變更的內容也都會重傳。為了充分的利用網路頻寬與節省時間就產了AJAX的技術,這個技術說穿了就是在傳輸的時候只針對有變化的地方進行傳遞,所以可以節省很多的時間。AJAX的全名是Asynchronous Javascript And XML,非同步代表說可以同時間做很多的事情並且採用Javascript與XML的技術來達成。這種技術可以快速的提升網站的效能,但是會有不容易debug與"回前一頁"的功能有問題。
    • jQuery (2006)
在同一個時期有個天才發明了一個簡易的Javascipt的函式庫,將原本不好寫的Javascript的語法包裝成好寫好用的方式。Write Less Do More是jQuery的目標。支援了AJAX, DOM的操作還有很多簡易的操作,之後還有衍伸到jQuery UI(針對UI所開發的)與jQuery Mobile(針對手持操作所開發的),而且還是免費的。

  • HTML5 (2012)
在伺服器端的戰爭結束之後,因為手持裝置的出現與Apple壯大,發生了令一場瀏覽器端的戰爭。因為在流覽器端要看影片與動畫,都必須要採用Flash這個外掛的軟體。但是這個外掛的軟體卻會造成Apple作業系統的當機,賈伯斯就決定Apple的產品不支持Flash。題外話:微軟自己也有推出Rich Internet Application(RIA就是像Flash的外掛軟體),叫做Sliverlight,後來因為打不過Flash而且Apple不支援就退出了。
在去年底HTML5推出來就是要補足HTML在動畫與影音的不足。它可以跨平台(因為每個瀏覽器都必須支援)、有離線存取資料的能力、支援手持裝置的操作、效能也會比較好(不需要多一層去做轉換)。所以之後的網頁遊戲與動畫都會以HTML5為主了。最大的影音網站Youtube已經有部分的影片是HTML5的格式了。



2013/06/30

HelloWorld ... 第一隻C++程式

有寫過程式的人一定知道
所有人寫第一隻程式的名字叫作
Hello World
讓我們來寫第一隻程式吧~

開啟編輯器輸入以下的內容
#include <iostream>

using std::cout;
using std::endl;

int main()
{
    cout << "Hello World, C++" << endl;
    return 0;
}
將檔案存成helloworld.cpp
並在同一個資料夾中執行
# bcc32 helloworld.cpp
接著會多出一個helloworld.exe的執行檔
執行之後就會出現
"Hello World, C++"

#include <iostream> 
有#開頭都是指前處理,是編譯的第一過程,會將標頭檔放入程式中、將某些字串替換掉、或是將程式碼作區隔。在這個範例中是將標頭檔放到程式中。而這邊所用到的iostream是定義之後會用到的功能:cout, endl, <。這個標頭檔是提供標準輸入與輸出的功能。

using std::cout;
using std::endl;
是指說本程式會用到"std這個名稱空間"裡的cout與endl的標準函式。為什麼要這樣定義呢?因為很有可能大家都會定義到相同的函式名稱,所以指定好特定的名稱空間,這樣就不會搞錯了。


int main()
{
  cout << "Hello World, C++" << endl;
  return 0;
}
int是只要傳出的資料型態,int是整數的資料型態。main是所有程式一開始的執行的位置。
cout << "Hello World, C++" 是只說要將"Hello World, C++"傳到標準輸出的地方(通常預設都是螢幕)。<< endl;只說要換行的意思。最後的return 0是指要傳出的結果為0,這邊要傳出的資料型態必須跟一開始所宣告的一樣。


這樣就完成了一個簡單也是最難的一隻程式(所謂的萬事起頭難啊),讓我們繼續下去。

2013/06/23

建立編譯環境 ...

在了解了編譯的過程之後
要如何在自己的電腦安裝編譯器呢?
市面上有很多畫面漂亮的IDE軟體 (整合編譯器與文件編輯器)
像是visual studio 2012, eclipse...
但是我會建議初學者先用簡單的方式來練習

會建議使用者安裝notepad++作為開發的工具
可以到下面網頁下載
http://notepad-plus-plus.org/

在編譯器的部分,我這邊會建議一套簡單的編譯器
Borland C++ Compiler到下面的網頁下載
http://edn.embarcadero.com/article/20633
填入基本的資料就可以下載了
安裝完之後記得到
滑鼠右鍵"我的電腦"->內容->進階->環境變數->系統變數->Path
再選"編輯"->變數值的最後加入";C:\Borland\Bcc5\Bin"
(代表到任何的資料夾都可以打C:\Borland\Bcc5\Bin這裡面的指令)

接著開啟"命令提式字元"輸入bcc32
如果有執行出結果就代表安裝成功了
接著就可以開始第一隻程式了

2013/06/16

編譯的過程...

大家都知道程式設計主要是
將人類懂得語言轉為機器懂得語言
雖然都是由同一個CPU與同一種硬碟
但是在不同的作業系統也是有不同的機器語言

那要如何將人類懂的語言轉為機器語言呢?
我們都是透過編譯器來完成這項任務
基本上我們寫了C++的語言之後
我們會執行編譯器
讓它來將我們寫的C++程式語言轉成機器語言

編譯器會經歷以下的過程來轉成執行檔(機器語言)
1. 前處理 (preprocess)
會將引用到的標頭檔(xxx.h)給載入,並處理前置指令與變數
2. 編譯 (compile)
語法檢查以及最佳化程式碼的動作
並且將檔案的內容轉成2進位的目的檔(xxx.o)
3. 連結 (link)
將別人寫好的靜態函式庫(xxx.a)連結到程式中,最後變成執行檔

編譯器會完成執行檔
但是在執行前還是有一件事要做
- 裝載器 (loader)
就是將動態函式庫(xxx.dll)載入到程式中
最後將程式給執行起來

對靜態函式庫與動態函式庫有興趣的人可以參考這篇文章

2013/06/15

實施急救 ~

這篇是介紹實際上遇到傷患的一些急救的方法

※ CPR:主要是患者沒有呼吸 & 心跳
    如果有"8歲以下、創傷、溺水、中毒",則先救再叫
    1. 叫 : 拍雙肩、呼叫
    2. 叫 : 打119
    3. C : 按壓乳頭中間,100次/分鐘,5cm深度以上,(30壓:2呼)
    4. A : 暢通呼吸道
    5. B : 人工呼吸

※ 窒息:
     用哈姆立克法

※ 創傷
    - 眼睛受傷:雙眼覆蓋
    - 鼻腔受傷:坐姿、前傾、5~6分鐘按壓、30分鐘以上流血不止送醫院
    - 口腔受傷:用紗布止血,若牙齒掉了,放到口腔送醫植牙
    - 耳朵受傷:傾向受傷側,不能壓耳洞
    - 胸部受傷:用手掌密封,成半坐臥,有東西插入不要拔出
    - 腹部受傷:讓傷口變小,用袋子將腸子包住
    - 截肢:用生理食鹽水包住,或放入冰水中
    - 壓傷:移除重物, 頭放低、腿抬高
    - 炸傷:呈坐臥姿
    - 腦震盪:不會有後遺症,1~2天會好,嘔吐
    - 腦挫傷:熊貓眼、耳後黑 → 顱內出血
    - 脊椎損傷 -> 別動

※ 止血 (500cc以下OK,1000cc以上有問題)
    敷料不可為衛生紙,可以用紗布、毛巾、棉質衣服、衛生棉。遠到近包紮
    - 直接加壓止血法 + 抬高傷口 + 冷敷止血
    - 止血點 (動脈壁會受損):用4指+姆指,旋轉
    - 止血帶:寬5公分,近心端,要隨時觀察

※ 休克 (有效循環血量銳減)
    血液變少(出血、非出血)、心臟無力(心肌梗塞、心律不整、心臟衰竭)、血管擴張
    1. 代償期:頭昏、心悸、四肢冰冷
    2. 進行期:反應變慢、膚色暗
    3. 不可逆轉期:神致喪失
    - 暢通呼吸道、控制出血、平躺+坐、固定骨折、保暖、禁食


※ 腦中風 (缺血(血栓)、出血(動脈硬化))
    安撫、躺+墊高頭部、禁食、送醫
    F : 臉不對稱
    A : 手臂無法高舉
    S : 口齒不清
    T : 馬上就醫

※ 癲癇:腦神經不正常放電
    - 小發作(6 ~ 14歲):重複的動作
    - 大發作
        1. 先兆期
        2. 強直期(停止呼吸10秒)
        3. 陣攣期(抽動1~3分鐘)
        4. 恢復期(10~30分鐘恢復))

※ 中毒
    - 飲食:多喝水、左側臥
    - 吸入:搬移現場、安全距離
    - 接觸:沖水

※ 中暑:體溫超過41度C,20 ~ 70%死亡率

※ 熱衰竭:體溫正常

急救概論...

前一陣子有上了急救的課程
這邊將筆記的內容分享給大家

※ 急救的目的:維持生命、防止惡化、促使健康
    關於這點我們應該都是以第一點為主
    而且都是用在自己最重要的人

※ 最重要的部位 (腦幹、心臟、肺臟)
    其中心臟與肺臟可以用CPR來救援

※ 黃金的救援時間:4~6分鐘
    如果這時沒有給予大腦適度的氧氣
    之後大腦就會腦死了
    聽當時的講師說
    台灣救護車抵達事故地點的時間平均4分鐘
    學急救就是要在這四分鐘裡發揮最大的功效

※ 先打119
    這是所以上課的講師說一定要先做的事情
    為了自保 & 讓更多人來協助的最重要的事情
    如果有家用電話請用家用電話打
    因為119那邊可以直接定位到地點

※ 急救的步驟
    1. 觀察現場 (20秒)
    2. 初步評估  (呼吸、心跳、意識)
        A. 氣道要通 & 頸椎有沒有斷 (如果斷了就...)
        B. 是否能呼吸
        C. 出血 (看膚色與體溫)
        D. 能不能行動
    3. 實施救援
    4. 二度評估(有了呼吸)

※ 急救後的姿勢
    - 半坐臥 (胸部以上有傷口)
    - 復甦 (沒有外傷)
    - 平躺抬高下肢 (下半身有傷口)

2013/05/31

IPv6系列文

經過了大約一年半的時間
我才慢慢的把IPv6的文章給補齊
以下分門別類介紹一下我的文章

● 要做IPv6的初學者會先建議看以下兩篇
  - IPv6 :  對IPv6做個簡單介紹
  - IPv6...ICMP : 一些IPv6實作的表格與行為,有需要再深入了解

● 若是想針對Linux上面如何操作
  ----- 基礎篇 -----
  - 設定IPv6 : 教您如何將IPv6的網路建置起來
  - Stateless auto configuration : 如何建置IPv6的router
  - Stateful auto configuration : 如何建議IPv6的DHCP server
  ----- 服務篇 -----
  - Telnet : 如何啟用IPv6 telnet server
  - Web :  如何連接WWW
  - SNMP :  如何建置與使用SNMP server
  - NTP : 如何建置ntp server
  - TFTP : 如何建置tftp server
  - Email :  如何建置mail server

● 如果您對IPv6 ready logo有興趣,可以參考下面的文章
  - Core測試流程 : 整體的測試流程
  - Core符合性測試 : 如何手動操作測試
  - Core符合性測試 (除錯) : 如果發現問題該如何解決
  - Core符合性測試 (自動) : 如何改為自動測試
  - Core互連性測試 : 到了中華電信研究所要測試的項目
  - 金牌與銀牌的差別 : Phase-1與Phase-2的差異

還有興趣的人可以參考我之前分享的投影片


【Linux】IPv6 Mail Server

這邊使用的Mail Server是Postfix

● Server
# yum install postfix
# yum remove sendmail
# vim /etc/postfix/main.cf
 myhostname = guider.com
 myorigin = $myhostname
 inet_interfaces = all
 inet_protocaols = all
# /etc/init.d/postfix start
# netstat -tlunp |grep :25

● Client
# vim /etc/hosts
 3ffe:1:2::1 ipv6.server
# vim /tmp/test
 testing ipv6
 EOF
# mailx -S verbose -S from=eki-1322 -S smtp=ipv6.server –s mailtest test@test.com < /tmp/test

要知道有沒有收到呢?
可以在server裡面輸入以下的指令,來看有沒有收到信件
# postqueue –p 


【Linux】IPv6 TFTP Server

這篇說明了簡易架設TFTP server的作法

● Server
# yum install tftp-server
# vim /etc/xinet.d/tftp
 disable = no
 flag = IPv6
# /sbin/chkconfig tftp on
# /sbin/chkconfig xinetd on
# /sbin/service xinetd start


● Client
# tftp 3ffe:1:2::1

【Linux】IPv6 NTP Server

要如何建置IPv6的NTP server
而且不需要對外去做更新時間的動作呢?

● Server
# yum install ntp
# vim /etc/ntp.conf
 restrict -6 default kod nomodify notrap nopeer noquery
 restrict -6 ::1
 restrict -6 fe80::0 mask 64 nomodify
 restrict -6 3ffe:1:2::0 mask 64
 server 127.127.1.0
 fudge 127.127.1.0 stratum 8
# /etc/init.d/ntpd start
# chkconfig ntpd on
# netstat –tlunp |grep ntp

● Client
# date 12121212
# date
# ntpdate 3ffe:1:2::1
# date

2013/03/07

【Linux】IPv6 SNMP Server

這邊要介紹如何安裝IPv6的SNMP agent在server上
以及要如何利用SNMP去query的資訊


● Server
# yum install net-snmp net-snmp-utils

● Client
# snmpget -v 1 -c public udp6:[3ffe:1:2::1]:161 1.3.6.1.2.1.1.3.0
# snmpwalk -v 1 -c public udp6:[3ffe:1:2::1]:161 1.3.6.1.2.1.1

第一個指令會拿回到開機到現在的時間
第二個指令則會掃出全部MIB的資訊 (會需要一點時間)

2013/03/05

如何在瀏覽器看IPv6的網頁

簡單做個Note

如果要看IPv6的網頁請照下列的格式輸入
● HTTP
http://[3ffe:1:2::2]

● HTTPs
https://[3ffe:1:2::2]

2013/03/03

【Linux】IPv6 Telnet Server

要如何將一般的telnet server變成IPv6的telnet server呢?
其實很簡單,只要安裝好telnet server的軟體就可以了

● Server
# yum install telnet-server
# chkconfig telnet on

● PC
# telnet 3ffe:1:2::1

如果無法連線,請記得確認ip6tables防火牆的狀態或是關閉它。