發表文章

目前顯示的是 2016的文章

[程式設計解題] 天際線資料群

圖片
簡介 天際線群這個題目,是第52次ITSA全國線上程式設計月賽的一個題目。題目還算簡單,但麻煩的就在「天際線」的定義不容易理解,理解了後,其實程式是蠻容易寫出來的。 那麼就來看看什麼是天際線吧! 一個資料若是被稱為天際線上的話,表示沒有任何資可以「 取代 」它。簡單吧! 屁啦,我完全聽不懂! 這很合理,因為我們沒說明什麼叫「取代」。 要說明取代,用圖示的方式最容易啦。我們以 (31,55) 這個資料點為例。所有落於 (31,55)以及 (0,0) 所形成的區間中的點,都會被 (31,55) 取代。白話來說,所有落於下圖「藍色」區塊中的點,都會被 (31,55)取代。例如 (22,32),(31,22)都被(31,55)取代啦。但因為 (69, 12) 沒有落在圖中藍色的矩形中,所以(69,12) 沒有被(31,55)取代。 注意,注意!有一個例外! (31,55) 不能取代 (31,55)!(自己不能取代自己囉)

被誤解的一萬小時定律

圖片
火紅的一萬小時定律 「一萬小時定律」最初是由麥爾坎.葛拉威爾(Malcolm Gladwell)這位《紐約客》知名作家,於他的暢銷書「 異數:超凡與平凡的界線在哪裡? 」所提出。書中的說法是, 任何人想要在他的領域裏出類拔粹的話,那麼至少要在這個領域中砥礪磨練10000個小時 。 異數,圖片取自Amazon 葛拉威爾於書中舉證歷歷,談到了莫札特並不是天才,他是磨劍十年,才成就了今日的名聲。彼爾.蓋茲寫程式寫到累到趴在鍵盤上睡著了,才奠定了他日後創建微軟的強大實力。這些都不是不禁10000小時寒撤骨,那得梅花撲鼻香的例子。 葛拉威爾可不是信口胡扯的,他的發現是基於基於知名心理學家艾瑞克森(K. Anders Ericsson)的研究。 艾瑞克森的相關研究,在Google學術搜尋數據中,也有數千次的引用 艾瑞克森的研究一發表後,在學術界引發了一場震動。但也一直到了葛拉威爾的「異數」一書後,他想研究成果才在普羅大眾間傳播開來。 但套一句網路上的名言,心理學家艾瑞克森,「他很火,而且就站在葛拉威爾的背後!」

使用Power Point的快捷工具列來提升生產力

圖片
簡介 這篇文章說明如何使用PowerPoint的「快速存取工具列」(以下簡稱快捷列)來加速一些做投影片時常見的工作,以提升生產力。 快捷列是什麼? 我們可以把我們「常用」的功能,放到快捷列上(見下圖綠框處)。如此一來,當要使用這些常用的功能時,我們就不需要在層層選單中找到這些工能,進而提升效能。PowerPoint在預設安裝時,就放了幾個工能到快捷列上,例如「存檔」、「回復」…等。 PowerPoint預設的快捷列(綠色方框處) 底下的文章是延伸自「簡報藝術烘培坊」 彭老師在Hahow的課程 (見下圖)。題外話,彭老師在Hahow的課程內容豐富,教的都是簡報設計上很快就能上手,而且提高生產力的技巧。一門課只要700元,如果經濟上面有餘裕的話,是蠻推薦購買的喲。 此外,彭老師也針對這個主題 寫了一篇blog ,有興趣的讀者可以參閱。相較於blog文章,線上課程有較多的示範,而且解釋得更深入囉。 簡報藝術烘焙坊在 Hahow平台上開設的課程

[Android]使用 Logcat 來幫忙除錯

圖片
Android studio 提供了 Logcat 這個工具,讓我們可以觀察APP的執行過程,幫助我們除錯。在底下的影片中,將說明 logcat 的使用方式,以及如何使用 logcat 來幫我們除錯。

[C++] 使用 transform 函式將字串中的字元都轉成小寫

C++的字串函庫沒有提供將字元轉成大寫,或是小寫的功能,所以只能呼叫 algorithm 函式庫中的 transform 函式來完成。底下是個示範。

[書摘]使用 blog 來行銷自己的方法

圖片
想像一樣這樣的場景:你走進面試的房間,與面試官握手致意。當他看著你的時候,臉上露出了似曾相識的表情說:「嘿,我認識你。我在你的部落格上看過你的照片,我讀過許多你部落格的文章。」 請問你獲得這個工作的機會有多高? 上述段落是由 soft skills 的第 5 章摘要出來的,它點出了寫部落格文的一個主要的好處。 Soft Skills, 圖片取自 Amazon.com Soft skills 這本書在 Amazon 上有 218 人評價,4.8 個星等,是蠻驚人的好評。這本書有簡中版,譯名為「軟技能 代碼之外的生存指南」。許多技術大碗對本書也有很好的評價,例如 李智樺 , 蔡煥麟 …等。 這本書李智樺老師介紹得很好,我就直接引用了: 寫得好得不得了的書,令人相見恨晚。適合在職涯生活努力過活的工程師們仔細閱讀的生涯規劃叢書。它能教你如何像經營企業一般的經營你的工程師生涯。(我放了好一陣子才拿起來閱讀,有點後悔。敬告買到書的人,趕緊好好啃一下,這是一本會改變你生活的書)

[C++]在 cin 後呼叫 getline 所遇到的問題

圖片
在 C++ 中,使用 cin 讀資料後,再用 getline 讀字串,就會遇到 buffer 沒有清空的問題。例如底下的程式碼: 這個例子中,程式先讀一個整數,將之放入 value 變數中。接著讀 value 個字串。所以要是 value 為 2 時,應該就要讀取 2 個字串。但在這個例子中,很奇怪就只會讀 1 個字串。

Android Studio 中使用 translations editor 來幫助完成多國語系檔

圖片
Android 使用了字串資源來簡化程式設計師開發多國語系app的工作。工程師在撰寫 app 時,只要把程式中使用的字串都抽取出來,並放入 strings.xml 字串資源中,之後就可以輕鬆地完成多語系的功能。 使用字串資源的好處是日後要翻譯 app 中的文字時,只要把 strings.xml 丟給專業的翻譯人員翻譯即可,不需要把介面的 layout 檔,或是程式碼公開給不相干的人員。 Android studio 提供了一個 transations editor,來幫助程式設計師快速地產生多語系的字串資源檔。底下是相關說明。

Pycharm 中如何使用cProfile來測試Python程式的效能

圖片
Pycharm 已經內建了 cProfile 的支援。請參考底下的鏈結。 https://www.jetbrains.com/help/pycharm/2016.1/profiler.html cProfile 是一個可以用來分析 Python 程式的工具。它可以幫我們分析程式碼中,每個副程式所占用的時間。如此一來,我們就可以針對程式中的瓶頸改寫程式碼,或甚至使用 Cython 等工具來改寫,達到提升效能的目的。 底下簡單地說明如何使用Pycharm來呼叫 cProfile。

Android Activity 的生命週期

圖片
Android Activity 的生命週期的介紹,就屬Android developer 官方網站的介紹最為完整了。文章請見 這裏 。 下圖是 Activity 生命週期的圖示,這張圖幾乎可以在所有的 Android 相關教材中找到。 在底下的影片中,將說明底下幾個重點: 為什麼生命週期那麼重要?我們為什麼要學習它? 解釋生命週期圖中每個狀態的內容

提升專注力的心理機制

由於現在社會上有越來越多的外在吸引力(包含了臉書,line的訊息…等)會搶奪我們的注意力,造成我們越來越不容易專心。但偏偏專注力是我們做好一件事的關鍵,那麼有什麼法子可以幫我們脫離這樣的狀況呢? 為什麼這樣工作會快、準、好 的作者,在這本書的第3章,提供了一個有趣的工具來幫我們。 在談談這個工具前,先看兩個有趣的空安事件(這是「為」一書中舉的例子): 法航四四七班機,發生事故時,全機完好,沒有任何故障。 澳航三十二號班機,發生事故時,左翼引擎爆炸,左翼損毀,動力損失。 這兩個事件中,有一個全員安全,另一個則是全員罹難,請問那個狀況是快樂的結局,但那個狀況又是一場悲劇呢?

[Android] 開啟新的 Activity

圖片
在這篇文章中,我們示範如何在 Android app 中開啟另一個 activity,以及如何傳資料到另一個 activity 中 話不多說,實際用一個影片來示範如何完成這個功能,相關程式碼請參考底下文章的說明。

VIM 將文字存到 Windows 的剪貼簿中

在 vim 中,y, x 及 d 指令都會把拷貝,刪除,剪下的資料丟到一個名為 unnamed 的 register 中。這個 unnamed register 的代號為 "" (兩個雙引號)。 Unnamed register 並不和系統剪貼簿共用,所以如果想把剪下來的資料放到另一個應用程式中,那就需要請 vim 把資料放到特定的 rigister 中。

談談拖延症(掩面)

圖片
「到處閒晃並不會讓你突然登上聖母峰的頂端」----勵志大師「吉格・金克拉」 這篇寫作的時間,和拖延這兩個字互相輝映。在我心理開始想寫這篇,一直到動手寫完,整整拖了兩個星期。所以這篇應該算是一個有拖延症患者尋找治瘉方案的過程吧! 在談下去前,說一個有趣的逸事,在「 好日子革新手冊 」這本書中,作者描述了諾類爾獎經濟學家喬治.阿克洛夫的例子。阿克洛夫答應要寄衣服給美國的朋友(他本人在印度),結果居然拖了8個月才完成這件事。要知道能得諾貝爾獎的人,那自律性,專注力鐵定是一等一的,沒想到這位學者還是跟我們凡夫俗子一般,也是有拖拖拉拉的時候。 看來我拖個兩個星期,也還好嘛!?

推薦:羅輯思維184:怎樣成為一個高手

圖片
「羅輯思維」是大陸的一個純網路的知識性脫口秀,這個脫口秀擁有上億次鬼神般的觀看次數,以及數百萬名的訂戶,有人預估這個節目要是可以變現的話,約值一億美金。 台灣也有好多人是這個節目的粉絲,例如蔡依橙 ( 為什麼你該關注《羅輯思維》? ),清大 黃貞祥教授 , 大學生玩簡報 的主持人Wade…等。台灣的非官方群組為「 羅輯思維 討論區 (非官」方 ) 目前也約有1萬多位成員的加入了。 說這麼多,羅輯思維倒底有什麼好的? 它是一個知識性的脫口秀節目,所以內容就是賣知識囉,羅輯思維的守備範圍蠻廣的,歷史趣聞、商業經營、科普知識都有。主持人羅振宇(自稱羅胖)以他強大的說書能力,將這些知識以很流暢、有趣、且易懂的方式傳達給聽眾。 黃貞祥教授給這個節目一個很中肯的評語:「羅輯思維是有求知慾人的毒品」,我個人不能同意得再多了。 這段節目的標題是「怎樣成為一個高手」。很吸引目光。在點開來看之前,應該會有很多人想,這應該是羅胖想分享他的成功祕訣給大家,所以這集裏面應該會充滿了許多神奇的絕招吧。 很可惜沒有! 推薦給大家的目的是,這集裏面講到了成為一個學習者很重要的幾個心態及技巧。

使用實踐意圖(implementation intenetion)來幫助你掃除養成習慣路上的石頭

在聖誕節前,有位美國教授做了一個實驗。他召集了一群學生,把他們分成了兩群,跟他們說,聖誕節後要交一份報告,這份報告可加分! 想當然耳,可以加分,對同學而言,一定是一種激勵了! 但,事情不是我們這種笨蛋想的那麼簡單,那位教授說:「報告要在12/26號交,才能算分!」 這就很鬼畜啦…。 對比到台灣,那就等於要你大年初一交作業一樣,這會不會太混蛋了。 果不期然,兩群中的某一群學生,只有約30%的學生交了報告,拿到了加分。 但另外一群,卻有70%以上的學生交了報告!這倒底發什了什麼事?

Android Debugger 初階使用

圖片
在這個文章中,用影片來說明 Android Studio Debugger 的使用方式。

用WOOP來幫助你養成習慣

圖片
這是習慣養成系列的第三篇文章,我們來談談目標設定。 另外兩篇文章,請見: 八個小步驟,幫你養成好習慣 利用 Chains.cc 來激勵自己養成習慣 為什麼要談目標設定?因為在養成習慣的第一步,就是決定一個可以激勵你自己的目標。因為若目標能激勵自己,那麼就比較有機會能鼓動自己去達成目標。 那麼如何訂出這樣的目標呢?

如何在文章中加入美化的引用文字 (quote)

圖片
只要在網頁的範本中加入你要的CSS即可。 範例如下: 這是一個範例 CSS 取自 這裏 .

利用 Chains.cc 來激勵自己養成習慣

圖片
許多自助型的書籍都會跟讀者說,想要堅持不懈地完成一些事時,適當地給自己一些「 獎勵 」,是一個不錯的選擇。例如努力讀書30分鐘後,自己可以小小放縱一下,上網20分鐘。運動完30分鐘後,可以喝一杯運動飲料。獎勵可以讓自己有所期待,從而激勵自己持續下去。 以前我總覺得獎勵這種事,好像都是要有形的比較好,例如買杯飲料喝啦,去吃平常不常會去吃的餐廳啦之類。後來我覺得,其實「無形」的獎勵,反而效果比較好。例如每次完成一個習慣的動作(例如每天讀一本書20分鐘),就稱讚一下自己「做得很好」!一來這種無形的自我激勵不用花錢,二來也是種自我肯定,三來不會有「自我放縱許可證」的問題。所以我覺得比一些有形的獎勵來得好。 自我放縱許可證 這裏離題一下「自我放縱許可證」是什麼。例如前述「努力讀書30分鐘後,可以上網20分鐘」,其實就可能引起「自我放縱許可證」效應。常常我打算上網20分鐘時,最後會發現居然在網路上胡混了40分鐘以上的時間,這比我自己用功讀書的時間還要長了!而運動完可以喝運動飲料也是,常常喝了後才發現飲料的熱量超過了自己所消耗的熱量,反而無法達成運動的目的。「 對自己感到滿意時,你反而更有可能信任自己的衝動,而這代表允許自己使壞 」,這就叫「自我放縱許可證」。詳細的細節,可以參考凱莉.麥高尼格所寫的「 輕鬆駕馭意志力 」一書。 回到主題,這次要介紹的 Chains.cc app,就是一種無形的激勵方式,幫助我們養成好習慣。

[Python] 如何在迴圈中刪除list中的元素

在許多程式語言中,在迴圈中刪除串列(或陣列)中的元素,是一件蠻tricky的事。主要的原因是使用迴圈走訪串列時,你需要知道串列的大小,才能完成整個走訪的動作。但刪除元素會改變串列的大小,這會造成走訪的過程出錯。 在底下的程式碼中,迴圈會刪除串列中的偶數。但這樣的作法是錯的,因為元素刪除後,會造成 range(len( lst )): 這段判斷出錯,所以引發 index out of range 的問題。 lst = [1,2,4,8,13,16,19,22] for i in range(len(lst)): if lst[i] % 2 == 0: del lst[i] 那要怎麼辦呢?

八個小步驟,幫你養成好習慣

圖片
傑瑞.賽恩菲爾德(Jerry Seinfeld)是美國有名的情境喜劇「歡樂單身派對」(下圖)的主角兼主要編劇。「歡」劇在1998年5月播出最後一集時,收視率高達41.3%,為有史以來的第三高(台灣很紅的「六人行」是第4高)。這個數字代表了最後一集播出時,全美幾乎有一半的收視人口都守在電視前,就為了看這集的落幕。 傑瑞.賽恩菲爾德給年輕喜劇演員的忠告就是:「要養成每天寫笑話的習慣」。拿個月曆,以及一支紅筆。如果那天有寫下笑話,就在月曆上那天畫個大叉叉。時間一久,你會發現紅色的叉叉會連成一個長長的鏈條(chian)。這時最重要的是,別讓鏈條斷掉(請參考: do not break the chian )! 許多成功者都有固定且堅持執行的好習慣 方法聽起來簡單吧,就是 養成習慣囉 。很多成功的人士都有相同的習慣: 村上春樹每天五點起床,然後就寫作4到5小時…每天!  販賣故事的高手史蒂芬.金也是每天維持寫作的習慣。  (請參考: 【果子離群索書】創作者的紀律與怪癖 ) 其實不只這些成功者,我們也會想養成習慣。依據不正式的統計,每年的一月一號是大家最愛決定要養成新習慣的日子。 "我要每天背單字" "我要每天運動"  "要每天練習寫程式" 但成效如何呢? 我想大部分的人都成功得少,失敗得多(一般來說,每年的2月1號通常是新年新希望破滅的那個日子)。 為什麼失敗比較多呢? 因為我們是習慣的動物。