WHAT'S NEW?
Loading...
十年後胖子終於如他 名字(陳偉大)成為很有名氣的外商總經理


胖子(心理OS): 哈哈,作者大人終於結束我苦逼一生,我終於出頭天了.

有一天胖子帶著他兒子報名電腦補習班,無意間看到工程師B興奮的胖子屁顛屁顛跑去跟工程師B顯擺

胖子: 哈囉, 你最近過得好嗎? 你在這裡幹麼?

工程師B面無表情回答: 不算差.. 你呢?

胖子不減熱情高興回答: 最近我在XX公司當總經理每天過得很忙都沒時間帶孩子,只好把孩子交給補習班你的工作呢?

工程師B: 那很好啊!  我是這裡的老闆站在這裡會擋到別人我們去辦公室聊吧!

胖子(心理OS): 他不是去念美國XX大學的博士嗎? 怎麼會在這裡

辦公室內跟他兒子一樣大的小孩在桌子前寫著功課而一旁還有五歲多小女孩獨自玩著

工程師B: 抱歉我跟我妻子正在經營補習班但擔心交給別人因此我把我的小孩帶來這裡就近照顧

白目的胖子又提問: 沒關係你不是想當大學教授怎麼變成補習班老師

工程師B淡定回答: 因為台北沒有老師缺我老婆又不想離家太遠, 所以邊開補習班邊注意大學有沒有缺


胖子邊腦補邊用同情眼神看著工程師B (心理OS): (^.^)Y Ya!! 我終於贏了強勁的對手,果然人帥就是不一樣! 你千萬不要感到難過啊!


胖子腦補正開心時電話響了上面顯示老闆....

老闆: 胖子今天我們的大客戶打電話要求我們重新聽擬計畫 而且他們明天親自來聽你現在趕快來準備

胖子: 是, 老闆我立刻趕過去

然而當胖子準備告辭時 坐在桌子前的小男孩跟工程師B討論功課而小女孩撒嬌要爸爸抱

這是多麼溫馨的一幕

胖子低頭看向兒子 兒子正用羨慕眼神看著他們!!

由於胖子工作繁忙兒子與他幾乎沒有這樣的互動他是多麼失敗的父親阿!

無奈的胖子摸摸兒子的頭說:這間補習班是爸爸認識的人開的! 你要在這裡乖乖的喔!

胖子把兒子交給工程師B後, 他邊下樓梯無數在心裡重覆說著:『這是我自己決定人生, 我並不後悔!!!!

因此胖子面帶微笑走向他美好的康莊大道...

小劇場:

作者: 終於結束了....
胖子抗議說: 幹嘛 把我結局寫的那麼感傷, 砍掉~~~~

作者; 工程師B你經常被胖子利用, 你不討厭他嗎?
工程師B: 不會, 我反而很感謝他的存在
作者: = =" 為什麼?
工程師B: 因為有他的存在, 我在小公司才能那麼輕鬆, 而且準時上下班. 
舉例來說, 當時老闆給我們同一個專案, 叫我們各自提計畫向他報告.
其實,  我當時對那計畫完全沒興趣, 因此老闆對我很不滿意,
然而胖子的上進心讓老闆注意力都放在他身上, 
而我不但不會被老闆逼接計畫, 而且可以在下班時間自修增進我的能力.
其實多虧他我才能去實現自己夢想, 真的應該感謝他.

作者:..........雖然很高興工程師B說了那麼多話, 原來心機最重是你
胖子:........................你贏了

作者有話要說:

積欠多年的胖子工程師的結局....
人生的成功與否是由自己決定,而不是他人
這結局是想告訴讀者不要後悔自己的決定胖子的確在事業上有一定成功,然而卻犧牲了家庭生活,他們兩個人誰成功就交由讀者判斷了


翻譯More C++ Idioms, 請大家多多指教

目標對象

  • 程度:C++ 進階
  • 背景知識
    • C++ 
    • 物件導向
    • 設計模式

 翻譯原則

進度條



當你使用boost動態連結函式庫時,編譯時會出現以下的錯誤代碼嗎?
error C1189: #error :  "Mixing a dll boost library with a static runtime is a really bad idea..."

的確,boost自動連結功能(auto-linking)帶給我們便利性,節省專案設置的時間,然而如何正確設定專案就成為很重要課題。以上錯誤代碼C1189意思是『用靜態Runtime混合boost動態連結庫真的昰一個錯誤想法』,也就是說Boost動態連結的專案屬性設置錯誤。

設定Boost動態連結的專案屬性主要有以下的步驟:
  1. 在前置處理器,強制動態連結Boost函式庫
  2. 在Code Generation選擇Runtime Library
  3. 增加Boost標題檔和函式庫的路徑

錯誤代碼C1189就是在第二步Runtime Library設定錯誤,此步驟主要設定在多執行緒模式下如何連結C和C++執行函式庫(C and C++ Runtime Library),依據偵錯和發佈(Debug & Release)和靜態和動態函式庫(Static & Dll函式庫)主要分成以下四種:
  • Multi-threaded (/MT)
  • Multi-threaded Debug (/MTd)
  • Multi-threaded DLL (/MD)
  • Multi-threaded Debug DLL (/MDd)
簡單來說,若字尾帶有-d即偵錯版,沒有小寫d即發佈版。還有,判斷動態連結庫依據是多執行緒(Multi-threaded)後面是否有DLL,即縮寫為(/MD),而靜態連結則是直接為多執行緒縮寫(/MT)。

環境

  • Windows 7 64 bit
  • VS C++ 2015 
    • 方案:ThirdPartyExample
      • 專案名稱:TestBoost_Dynamic
      • 專案配置:Win32 Debug & Release
  • Boost  1.59.0
    • 下載教學:Boost簡介與分割
    • 所使用到動態連結程式庫(dll)
      • Boost.System
      • Boost.DateTime
      • Boost.Regex
  • 依賴庫相對路徑(環境變數)
    • 標頭檔路徑:$(TParty_DIR)\Boost\Include
    • 函式庫路徑:$(TParty_DIR)\Boost\Lib
    • 打包dll檔$(TParty_DIR)\bin

教程

在前置處理器(Preprocessor)新增定義

  1. 首先,在專案屬性頁面選擇C/C++』→『Preprocessor後,在Preprocessor Definitions 』加入以下的定義強制動態連結Boost函式庫
    1. BOOST_ALL_DYN_LINK
    圖一. 更改專案前置處理器

設定Runtime Library

  1. 首先,在專案屬性頁面選擇C/C++』→『Code Generation後,請根據專案組態選擇正確的Runtime Library,如以下所示。
    • 偵錯版(Debug): Multi-threaded Debug DLL (/MDd)
    • 發佈版(Release): Multi-threaded DLL (/MD)
    圖二. 選擇正確Runtime Library

增加Boost函式庫路徑

  1. 首先,在專案屬性頁面選擇C/C++』→『General後,找到Additional Include Directories』加入以下Boost標頭檔路徑
    1. $(TParty_DIR)\Boost\Include
    圖三. 加入Boost的標頭檔路徑

  2. 接下來,在同頁面下,點選Linker』在右頁面找到Additional Library Directories加入以下Boost函式庫路徑
    1. $(TParty_DIR)\Boost\Lib
    圖四. 加入Boost的函式庫路徑


你曾經認為Boost 函式庫過於龐大,而不敢使用嗎?

官方編譯好Boost函式庫解壓縮大約有28GB,因為此龐大函式庫是由不同IDE版本編譯出來。首先,請根據你所設定的環境,取出Lib和Header資料夾,將大小減少到2.2GB。

請問將下圖所有函式庫上傳,讓團隊其他人自行決定如何使用,這是好的專案管理嗎?



答案是非常差!!!

首先,上圖是依據專案編譯屬性所分類的函式庫,詳細請參考以下的命名規則。因此若你將所有函式庫上傳,你無法清楚告知其他人如何在新專案正確地設定編譯屬性去連結函式庫。編譯屬性不同會改變產品發佈原則,部署人員必須花時間重新打包,而且產品發佈也缺少一致性。

舉例來說,圖二某人決定新專案有以下三個設定:

  1. 靜態連結 Boost函式庫
  2. 只使用Boost 裡面的三種函式庫
  3. 動態連結C++標準庫
然而,產品發佈原則是跨平台和獨立運行的應用程式,並且不會受更新IDE所影響,請問以上的設定是對的嗎?

錯,因為動態連結C++標準函式庫代表客戶開發機必須安裝Visual C++ 可轉散發套件(Visual C++ Redistributable Packages )』,所以產品發佈時必須將VS2015 的 Visual C++ 可轉散發套件和應用程式一起打包安裝檔。此套件會隨著IDE更新有所改變也就是說,每次開發者更換IDE,部署人員就必須重新打包無形中增加專案時間成本。所以,篩選函式庫不但能讓其他人清楚如何正確使用,而且也減少第三方函式庫大小。


圖二. 已分割Boost函式庫
另一方面,Boost目前是函式庫,某些函式庫並不適合在產品開發上,而且Boost有些功能專案已實作,若不篩選Boost函式庫將導致一種功能有兩份程式碼。舉例來說,專案已經實作產生UUID的API,但是沒有文件說明產生UUID,你分派新人任務產生UUID時,你認為他會怎麼做?

若參考StackOverflow答案,新人就直接使用boost::uuids::random_generator,不但增加引用Boost標頭文件,而且增加產品編譯時間。還有,當你必須更改產生UUID機制,你
必須修正兩個地方,使程式碼缺少一致性。

因此,建議篩選Boost函式庫評估是否違反產品發佈原則,並且整理出Boost函式庫開發規範,如以下步驟所示:
  1. 列出你專案會使用到Boost函式庫
  2. 決定你要使用Boost函式庫類型,請參考以下的命名規則
    • 靜態編譯和動態編譯
    • 若靜態編譯,如何與C++標準函式庫(i.e. stl)互通
  3. 將整理好boost函式庫,分類並移動到第三方函式庫目錄
以下將教你從龐大函式庫取出專案所需要Boost靜態和動態連結,為了教學方便將動態連結和靜態連結分成兩個資料夾解釋。

環境

  • Windows 7 64 bit
  • VS C++ 2015
    • 方案:ThirdPartyExample
      • 專案名稱:TestBoost
      • 專案配置:Win32 Debug & Release
  • Boost  1.59.0
    • 已編譯好windows模組(Prebuilt windows binaries):
    •  預計使用到的函式庫
      • Boost.System
      • Boost.DateTime
      • Boost.Regex
  • 第三方函式庫位置:E:\ThirdParty
    • 靜態連結:$(TParty_DIR)\Boost\sLib
    • 動態連結:$(TParty_DIR)\Boost\Lib

命名規則

下圖列出所有Boost錯誤處理函式庫(boost::system)你能分辨這些函式庫之間的差異嗎? 並且請你先找出哪些是動態連結?



一般而言,微軟VS編譯器(Compiler)能夠自動連結(auto-linking)函式庫,而Boost預設是開啟這功能。換句話說,當你使用boost::system錯誤處理函式庫,你不但不必找出正確的函式庫,而且也不用增加函式庫名稱到其他相依性(additional dependencies)編譯器會根據專案屬性和Include函式庫選擇正確的函式庫名稱並且連結若要關閉此功能,請在前置處理器定義(Preprocessor Definitions)增加定義BOOST_TEST_NO_LIB

Boost函式庫的命名規則分成以下六種[1],如下圖所示:


  1. 前綴(prefix)『lib』在Windows 平台,函式庫有前綴(prefix)『lib』代表是靜態連結,若沒有則是動態連結,並且lib和dll是成對。
  2. 函式庫名稱所有Boost函式庫名稱會以『boost_開頭,例如:boost_system。
  3. 編譯器工具(Toolset) 使用哪個工具和版本編譯此函式庫
    • vc120:VS2013
    • vc140:VS2015
  4. 多執行緒『-mt』若函式庫包含此名稱,代表函式庫支援多執行緒功能。若要開啟這功能記得更改你的專案屬性,請參考此網址[2]。
  5. 二進位介面(ABI)決定函式庫與其他函式庫(i.e. STL、Python)的互通性,還有函式庫是否為偵錯(debug)版本。
    • 『s』: 靜態連結C++標準函式庫和編譯執行函式庫(C++ standard library and compiler runtime support libraries)
    • 『g』:使用C++標準和執行函式庫偵錯版
    • 『d:目前Boost函式庫為偵錯版。
    • 『y: 使用特殊的Python偵錯版。
    • 『p:使用STLPort標準函式庫,而不是編譯器預設的標準函式庫。
  6. 版本號函式庫Boost的版本號,例如:這次下載版本1.59.0,所以被標記為1_59

    教程

    1. 首先,在第三方函式庫的資料夾裡面新增資料夾『Boost後,並在裡面新增『Include』和『Lib』子資料夾。

    2. 圖二. 在第三方函式庫新增Boost


    3. 接下來,請將下載Boost函式庫解壓縮後資料夾boost然後複製到第三方函式庫boost的資料夾Include
    4.  
      圖三. 複製原始碼到Incude底下


    5. 然後,由於本篇下載預編譯好Boost的Windows函式庫請依據你的編譯器工具選擇資料夾,這裡在VS2015建立32位元應用程式所以選擇資料夾lib32-msvc-14.0。然後,當你要連結環境提到的三個Boost函式庫,請決定要用以下哪個方法連結Boost函式庫:
      • 靜態連結,請參考步驟4。
      • 動態連結請參考步驟5和6

      圖四. 已編譯好Boost目錄


    6. 若選擇靜態連結,函式庫必須含有前綴lib,因此挑選你要使用lib檔複製到第三方函式庫boost資料夾sLib底下,包含偵錯版本,如下圖所示

    7. 圖五. 抓取靜態連結的Boost函式庫

    8. 若選擇動態連結,函式庫沒有前綴lib,並且lib和dll是ㄧ對挑選你要使用lib檔複製到第三方函式庫boost資料夾Lib底下,包含偵錯版本,如下圖所示
    9.  
      圖六. 抓取動態連結的Boost函式庫

    10. 最後,為了能成功執行的應用程式,請將對應的dll檔複製到第三方函式庫的bin資料夾。至於如何配置VS2015專案檔,請參考[VS依賴庫管理]Boost動態連結
    11.  
      圖七. 應用程式所需要的dll檔


    圖一. 太陽花(source: wikipedia)

    你曾經困擾如何與負面情緒朋友溝通嗎?還有,你好心給他一些建議,他都一一反駁你,使彼此產生衝突,甚至他還關掉與你溝通大門。請你先思考當朋友跟你抱怨時,他真的需要你的建議嗎? 其實,大部分抱怨的人心中已有答案,他們並不需要你的建議,而是傾聽與理解。舉例來說,當你朋友對你說以下的話,
    唉~ 主管叫不動其它人,結果他一直分配新工作給我! 結果又不加薪,真過份!
    你會做以下那一種回應?

    1. 辛苦你了!上次我下班前也被主管叫進去,害我晚半小時下班,真是鬼公司
    2. 吃得苦中苦,方為人上人』你就當做主管給你磨練機會,像XXX年輕很辛苦,現在不是在有名的外商工作嗎?
    3. 你是不是為主管不重視你而感到生氣?
    4. 不要再抱怨!你是不是不喜歡工作阿

    首先,答案1做法是先簡單安慰當事人,然後你開始長篇大論過去的經歷或朋友的例子,這樣做法不但轉移當事人的話題,而且讓彼此之前立場顛倒,甚至當事人需要安慰你!換句話說,你把人家的話題搶走,這可能會讓他感到自己痛苦被忽略,甚至被標上自以為是的標籤,你的任務是傾聽他的抱怨,而不是只顧着要展現自己,這樣只會增加彼此之間的距離。因此,傾聽時,請記得今天主角是谁,並且持續當事人的話題

    接下來,若我給當事人美好未來藍圖或建議,這樣做法應該沒問題吧?錯!!! 你很有可能被當事人打槍,一方面未來是難以預測,在不了解當事人能力或產業走向下,亂評論別人的未來,讓人感到很不負責任。另一方面,你真的理解當事人工作狀況嗎?每個人所遇到的情形都不一樣,解決方案也有所不同,不要擅自把別人經歷套用在他身上,或許他的心中早有答案,所以你只要傾聽,不要給任何建議。


    其次,最佳答案是3,為什麼? 請你重新看一遍當事人的抱怨,透露他很在意薪水和工作分配不公,因此它依此基礎去回應當事人可能感受或想法,不但讓他感受到你的重視,並且鼓勵他抒發他的情緒。若你無法看出他的感受,妳可以選擇性重複當事人的話語關鍵字,鼓勵他繼續談話,例如:其他人在幹嗎?所以,正確地回應是以當事人的談話內容為基礎去拓展話題。

    最後,答案4是最糟的做法,你不但否定當事人的價值,而且對他人行為亂下評語。你這樣只是散發你的優越感,自以為是了解他人感受,對當事人一點幫助都沒有。正確地傾聽主要有以下幾點:
    1. 帶著同情心有耐心地理解他人的感受。
    2. 將所有的注意力放在他身上,尤其不要邊滑手機邊聽。
    3. 用疑問語氣反映當事人的情緒、含意和經驗。
    4. 在當事人未要求前,不要給任何建議
    這裡,我只簡單描述傾聽技巧中的Reflecting Skill,它經常被臨床心理師所使用,因此你可以在Google搜尋Reflecting Skill,即可找到更詳細資訊。

    Reference:

    1. SkillsYouNeed, Reflecting
    2. http://www.skillsyouneed.com/ips/reflecting.html

    最近,Chrome在版本42將正式發佈新的書籤管理員,它使介面更為美觀和流行,然而卻犧牲可用性,如圖一所示。作者Venkat eswarlu針對圖一的書籤管理員列出以下的缺點[1]:

    1. 新版本載入書籤管理員的速度變慢
    2. 新版本無法依字母來排列
    3. 開啟Chrome任務管理員,它仍然繼續在背景執行(圖二)
    4. 加入新書籤到特定資料夾是困難
    圖一. 新Chrome書籤管理員
    對我而言,最困擾是第五點加入書籤的問題,尤其將書籤分很多層的時候,你無法一步驟選擇所要的資料夾,而是不夠直觀的操作也增添困難性。另一方面,新書籤管理員為內建的擴充功能,然而它有時所需要記憶體並不低,因此我也懷疑此功能會讓Chrome越變越慢


    圖二 . 仍然在背景執行的書籤管理員


    因此,我將教你如何變回舊版書籤管理員,然而Chrome隨時會把這功能完全淘汰掉,因此此答案只能暫時有效。


    環境

    • Windows 7 64 bit
    • Google Chrome
      • 開發版
      • 版本 44.0.2398.0 dev-m (64-bit)

    教程

    1. 首先,請在Chrome的地址欄輸入以下的文字,進入Google實驗性功能介面。
    2. 圖三. 開啟Chrome的實驗功能


    3. 接下來,尋找標籤『啟用強化書籤』後,請在下拉式選單選擇停用』。
    4.  
      圖四. 關閉書籤功能


    5. 接著,請點選『立即重新啟動』使設定生效。
    6.  
      圖四.重新啟動Chrome


    7. 最後,重新啟動後,再次按下『書籤星星按鈕』即可使用舊版書籤管理。

    8. 圖五.舊版書籤功能

    Reference:

    1. , Chrome 42: How to get old Bookmarking Interface and Manager back?
    2. http://techdows.com/2015/04/chrome-42-how-to-get-old-bookmarking-interface-and-manager-back.html
    有一天,我旁邊坐著一個美國同事,我無法忘記他對台灣提出一系列的疑問,例如:
    『為何台灣人比美國人還瘋狂去Costco?』
    『為何台灣人會那麼喜歡外國人球員?』
    『台灣人為何喜歡外國文化勝過自己國家呢?』
    那時候我無法回答他的問題,或許我骨子裏也認為外國月亮比較圓,我無法有自信反駁他。然而,我想起學姊在我留學前說過的一句話:『妳不要把事情想得太美好,你真的了解要去的國家嗎?』這些話讓我開始反思一味想脫離被稱作鬼島的台灣,去美國工作就能解決問題嗎?我真的了解美國目前的狀況嗎?,美國夢仍然存在美國嗎?
    HBO紀錄片美國寒冬將推翻你對美國美好的幻想,讓你看到真實中的美國,並且開始對美國夢感到存疑

    圖一. 美國寒冬宣傳海報(來源:American Winter-Home )

    首先,中產階級貧窮化只會發生在台灣,美國就不會有這個問題嗎?此紀錄片就揭露美國情況也在惡化中。中產階級是一群受過良好教育的人,他們有人人稱羨的好工作,打從心底相信只要努力工作,即使被資遣也能快速找到工作,他們無法相信有一天會繳不起日常生活費用,甚至讓自己的孩子吃不飽。在紀錄片,約翰(John)本來年收入五萬五千美元,大約一百五十萬台幣,他在大約五十歲時被資遣,然而他不但房子面臨被拍賣的局面,而且也無法滿足孩子娛樂需求(看電影),印象最深的是他含淚的說:
    『這並不容易!我是50歲的成人,但我需要打電話求父親幫我付電費!』
    約翰不但擔心自己所遭遇的狀況,他更害怕孩子的未來。約翰並不是片中唯一的中產階級例子,目前,美國大約有4千八百萬的人活在貧窮線以下,占總人口大約15%,然而這只是美國官方數字,這真的能真實呈現美國貧窮人口?在美國波特蘭,專家說目前中產階級是接近貧窮的危險族群。


    圖二. 貼心的美國小兄弟(來源:American Winter-Preview)

    美國夢倡導不論窮人或中產階級努力工作就有回報,不必擔心日常生活,孩子能不能吃飽,甚至給孩子一個美好未來。然而,上圖孩子父母Ben&Paula說:
    『我們只想著錢,如何餵飽孩子們,忘記夢,我們如何度過明天,明天就是夢,晚餐也是一個夢!』
    而左邊8歲貼心美國小男孩海洋(Ocean)說:
    『我聽到有時爸媽略過晚餐,因為他們需要餵我們,有時我聽到這句話,我哭了!因為讓我覺得是自己的錯,他們必須花錢餵飽我們,他們浪費錢在我們身上!』


    而另一個單親美國媽媽,即使找到工作,她也不去想美國夢,因為她無法維持家人的生計。目前,美國有超過四分之一的私營部門的員工一小時低於10美金,年薪低於一個四人家庭的貧窮線標準。在大部分美國城市,有兩個孩子家庭的父母至少一小時要21美金,才能滿足他們的基本需求。殘酷的是,這些家庭都不敢幻想美國夢,他們都眼泛淚光只希望度過明天,並且擔心孩子的未來。

    為何這些中產階級會遇到這些情況?他們竟然為繳不起電費、水費、租金和昂貴的醫藥費所苦,有研究顯示美國人存款只能維持三個月,甚至中年失業還要為房貸所苦。舉例來說:約翰一年最多存下十五萬台幣,十年存款只能讓他維持一年,然而這只是理想狀況,約翰沒有任何娛樂花費嗎?的確,美國薪水比台灣高,請別忘記他們的生活費並不便宜,他們存不什麼錢,因此我們更應該感謝身邊便宜專業的服務,讓我們即使薪水倒退能繼續維持良好生活品質,並且有閒錢投資在小孩身上。例如:讓上班族吃到便宜美味的便當,政府所提供便宜電費水費,便宜又專業的醫療服務和台灣高等教育。要不然為何有許多移民國外的台灣人喜歡回來看醫生?這些服務就是台灣珍貴資產,對比國外醫生也犧牲優渥福利,錢並不是被這些為我們服務的人賺走,而是黑心的商人們。

    另一方面,我們也應該偉大無私的台灣父母們,不但砸大錢培育在孩子的教育上,而且長大後仍然繼續幫助孩子,例如住在家裡,照顧孫子和借(給)錢買房。我無法忘記片中美國年輕媽媽Pam說:
    『我沒有想到有一天會搬回家裡,這對我來說真的很困難,極度沮喪,我不想告訴任何人,我感到非常羞愧!....這件事深深傷我的心,我感到很丟臉!』
    她甚至哭著對丈夫說:
     『再次跟媽媽生活!我已經26歲,我竟然再次跟媽媽生活!』
    這讓我深深反省我這個年齡正在做什麼?為了存錢,我選擇住在家裡,理所當然享受父母擁有的資源,我深深感到自己的錯誤。事實上,成年後就應該獨立生活,尤其啃老族們,父母並沒有責任幫助我們,我們應該由衷感謝父母所給予。片中美國孩子都會因父母付出感到內疚,何況我們從父母得到那麼多東西?的確,父母享受過台灣成功果實,然而當你對為領到那麼低的薪水想對身邊的人發脾氣時,請先思考他們有沒有給予任何幫助?請不要視為成年後的幫助是理所當然,不做任何努力繼續靠父母養,這樣不但抹煞父母在困難時的幫助,而且辜負父母的辛苦養育。父母的無私和奉獻就是台灣另一個珍貴資產。

    最後,希望這篇文章能讓讀者知道台灣並不比美國差,台灣也擁有美國所沒有的珍貴資產,別只記得美國夢,而是記得台灣經濟奇蹟,那時被世界稱為亞洲四小龍,別被政客和壞媒體忘記台灣的美好。貶低台灣推崇美國是無法真正解決問題核心,無論在哪個國家都有需要面對的問題,我們應該勇敢面對問題並努力找到解決問題,珍惜親友所給予的資源,試著愛這塊土地,不要期待遙不可及的東西,這樣我們才能真正的成長。

    Reference:

    1. American Winter, Joe & Harry Gantz
    2. http://www.americanwinterfilm.com/

    你曾經忘記掉過手機嗎? 甚至忘了在哪裡掉?


    以前,當自己手機不見時,不論是不是小偷拿走的,我們都很難找回自己的手機一方面,自己忘記手機在哪裡丟失,即使有好心人拿到警察局或客服中心,你要花很久時間找回你的時間另一方面,傳統手機缺乏防盜機制(i.e.密碼鎖),使小偷不需要花費時間處理,它就能賣給二手手機行然而,智慧手機將推翻你的既定印象,它不但增加找回手機的機率,尤其是Android的手機,而且增加安全性防止他人偷取資料

    Google在你的帳號提供裝置管理功能,當你在有GPS的Android裝置登入,你就可以定位你的裝置,然而GPS只能顯示大概位置,因此當你到裝置附近不要驚慌Google也提供操控手機的功能,你只要按下撥打』即可讓裝置發出鈴響,然後再根據聲音找出你的手機
    若你將手機調成震動,它還會發出聲音嗎? 答案: 可以
    此外,老人家經常發生忘記東西放在哪裡,甚至將手機放到眼睛看不到的地方,例如冰箱。然而,你只要有此裝置所登入的帳號,即使你住很遠,你也能遠距離利用此功能幫助他們找到手機。

    圖一. Google 手機定位系統


    以下將教你利用Android裝置管理員定位您的手機,並且利用撥打功能即使你將此裝置調成震動它也能發出鈴聲


    環境

    • 個人電腦
      •  Google帳戶管理
      •  Android裝置管理員
    • 想定位的裝置 i.e.手機
      • 必須登入Google帳號
      • 免安裝APP
      • 具有GPS的功能

    教程

    1. 首先,請在Google的首頁左上方,點選『你的帳號圖片』顯示帳號資訊後,選擇『帳戶』進入設定界面。

    2. 圖二. Google帳號界面


    3. 接下來,在帳戶設定界面尋找標籤『近期活動』後,請點選裝置』查詢有哪些裝置登入的紀錄。
    4.  
      圖三. Google帳戶設定界面


    5. 接著,在裝置列表點擊你所遺失的手機跳出此裝置資訊後,請點選『使用 Android 裝置管理員找出您的 Android 裝置』。
    6.  
      圖四.登入此帳號所有裝置


    7. 再接著,在Android裝置管理員界面,你將看到『正與您的裝置連線...』的訊息,代表它正在定位此裝置,請耐心等候。

    8. 圖五.Google嘗試連線你的裝置


    9. 然後,Google定位完成後,不但在紅色方框位置顯示此裝置的大略位置文字描述,而且也即時更新到Google地圖。若你接近你的裝置位置,你仍然找不到的話,你可以按下撥打

      1. 圖六.定位成功的訊息


    10. 最後,它會彈出下圖的對話框告知此裝置將發出聲音5秒,按下『鈴響』即可開始。

    11. 圖七.讓手機發出鈴聲

    上一章,我利用複製搜尋引擊的快照內容,重新刊登我的文章,但是新文章卻無法使用原本網址,如下圖一所示。然而,搜尋引擊是根據你的網址去統計流量,網址就像在網路上身分證具有唯一性。另一方面,網址更換也會影響到Google+留言,當你決定為你的部落格換網域時,Google會出現以下的警告訊息告知你的留言會消失。換句話說,若要保留你的流量和Google+留言,你必須使用原本的網址。


    警告:您已啟用 Google+ 留言功能,變更網誌網址會對現有的留言造成負面影響
    圖一. 被救回的文章


    以下將教你如何利用postID找回刪除文章後再重新發佈。然而,若你有出現錯誤訊息『bX-cejt47』,你就需要利用其他工具救回原本網址,但也不一定有效。


    環境

    • Google 部落格 (Blogger)
      • 網域:XXXX.blogspot.tw
    • Chrome
    • Blogger管理頁面

    教程

    1. 首先,請依據上一章到你被刪除網頁的快取畫面,按下滑鼠右鍵後,選擇『檢視網頁原始碼』。


      圖一. 檢視快取網頁的原始碼

    1. 接下來,在原始碼頁面按下『Ctrl+F』呼叫搜尋功能,然後在對話框輸入『postID』後,在橘色標註的位置即可找到唯一的ID,這裡為4239077584546560024』。
    2.  
      圖二. 搜尋被刪除的文章

    3. 接著,請編輯任一篇文章的編輯後,在omnibox找到postID,請將它取代為找到的postID這裡將把8889869403022029595』替代為『4239077584546560024』。
    4.  
      圖三.開起快照的頁面


    5. 最後,在文章的編輯模式,你可以看到被刪除的文章,然後選擇『發佈』救回原本文章。

    6. 圖四.救回的文章

    Reference:

    1. Easy Methods To Recover Deleted Blogger Blog Post 
    2. http://www.how-to-comp.com/2014/03/Recover-Deleted-Blog-Post-Page.html

    你曾經不小心刪除你的部落格文章嗎?



    如上圖,我曾經整理部落格文章標籤時,不小心刪除剛發表的文章,然而,它沒有提供任何介面讓你簡單救回文章。換句話說,Blogger沒有Gmail的回收桶功能,救回只能依賴外部工具,因此文章救回比起信件來複雜許多。幸運的是,當你發表你的文章時,Google搜尋引擊會定期快照你的頁面,因此當你修正內容時,快照過不久也會更新。換句話說,快照能幫你拿回刪除前的文章,但滿高機率救不回修改前的。

    以下將教你如何使用Google搜尋引擊找到文章內容,複製後在重新發佈。然而,若你文章有特殊格式,直接複製內容會造成編輯不容易,在下一章將描述如何保留原本格式。


    環境

    • Google 部落格 (Blogger)
      • 網域:XXXX.blogspot.tw
    • Chrome
    • Google搜尋引擊

    教程

    1. 首先,請在Chrome的OmniboxGoogle搜尋引擊輸入Site:再加上你的網域,如以下所示,按下搜尋』。
      1. site:設定的部落格英文名稱.blogspot.tw
      圖一. 搜尋你的網誌


    2. 接下來,Google會列出網誌所有列表,然而當你網誌文章數過多時,你要花過多時間找此文章,因此若你記得被刪除的文章,請在『Site:』前面輸入文章名字後,按下『搜尋鍵』就可以找到它。
    3.  
      圖二. 搜尋被刪除的文章


    4. 接著,如下圖三在被刪除文章下面點擊『朝下按鈕』開起選單後,請點選『頁庫存檔』開啟快照頁面。
    5.  
      圖三.開起快照的頁面


    6. 最後,你能看到被刪除的文章內容,此時你直接複製文章內容再重新發佈文章。

    7. 圖四.救回的文章


    Reference:

    1. Easy Methods To Recover Deleted Blogger Blog Post 
    2. http://www.how-to-comp.com/2014/03/Recover-Deleted-Blog-Post-Page.html