發表文章

目前顯示的是 5月, 2019的文章

《大人學選擇:成熟大人的獨立思考術》筆記與心得

圖片
若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 如同此書前言所說:「選擇是一件很難的事!」所以我們需要一些客觀的判斷方法,例如底下節錄書中的十個原則: 那一個選項可以讓未來的機會增加。 不要因為害怕、恐懼、或困難而做出抉擇。 不要在憤怒或不平的時候做出決定。 預想最壞的情況會怎麼樣,並預做準備。 計算成本,尤其是機會成本。 難以決定時,嘗試把狀況推到極端。 還是很難選擇時,逼自己做些小實驗。 無論如何,不要盲從與跟風。 有機會,多學習別人的選擇邏輯。 選錯沒關係,要有軸轉或停損的勇氣。 此書總共有六個章節,從第一章「職涯發展的選擇」到第五章「人生伴侶的選擇」以及第六章「總結」,而本文只會紀錄前兩章的心得與筆記。 職涯發展的選擇 問及這個問題時:「您期待從目前的職場上獲得什麼樣的報酬?」 很多人的第一個答案通常是「$$$」(這非常務實啊!) 但回答此問題之後,請再自問:「N年後,你想靠什麼賺錢?!」 「以錢滾錢嗎?」 ==> 就算這樣,也得想出一個可行的長期策略啊! 「一個理想的職涯選擇,有兩件事很重要:一是槓桿,二是彈性。槓桿讓你每一分的投入,能獲得一分以上的回報,至於彈性,則強調每個選擇都該讓你的路越來越寬廣,而非越來越狹窄 。」最關鍵的也最簡單的一句話就是:「選擇的關鍵,不在你現在年薪多少,而是自問10年之後,你想靠什麼賺錢!」 跳脫職涯困境的五種方法: 迷惘的時候,就做些小實驗。 除非很篤定,否則別念太多書。 實在不喜歡,絕對不要硬撐。 不確定是否喜歡時,請多試一會兒。 人生就像衣服,訂做的才貼身。 上班也好,創業也罷,獨立存活才是關鍵! 工作的本質其實非常單純,就是:「透過幫助他人,換取生活所需,彰顯自我價值。」 此書作者在這一小節裡預估未來職場上會出現幾種趨勢以及建議我們訓練自己成為以下四種角色之一:「投資者」、「企業主」、「自雇者」、「專業明星」。 此章接下來的幾個小節,作者說明自己對底下幾點的看法: 工作上的責任歸屬。 遇到空降而來的新主管,有什麼選擇。 對工作厭倦時,離職外還有什麼選擇。 壯遊是職場卡關時的好選擇嗎? 轉職是為了追尋理想,還是為了逃避? 何時才是正確的轉職時機。 在轉職與創業時,如何獲得父母的支持。 針...

麥昆智能小車試玩 (Meet Maqueen micro:bit Robot Platform)

圖片
若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 感謝 雲造中心 提供筆者這台智能小車。包裝盒如下圖: 內容物如下:   組裝方式可參考 宇宙機器人 的 麥昆小車教學文 。不過因為實在太容易了解,筆者就直接組裝囉,真的很快就組好了,組好的圖如下: 組好後,當然要來玩玩程式部分囉。首先開始MakeCode編輯器: https://makecode.microbit.org/#editor ,並增加Maqueen擴展: https://github.com/jhlucky/maqueen 寫了個簡易避障程式: 測試影片: 麥昆小車不只容易組裝而已,積木程式也好設計。此外,因為馬達的電源是獨立,這樣在燒錄程式時,車子才不會亂跑啊!!! 參考資料: https://wiki.dfrobot.com/micro:Maqueen_for_micro:bit_SKU:ROB0148-E(ROB0148)

用Python開發micro:bit應用程式(Developing micro:bit applications with Python)

圖片
若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 此篇文章將介紹如何用Python程式語言來開發 micro:bit 的應用程式。所需要的材料就是一片 micro:bit 以及底下線上或離線版的開發環境之一。 線上開發環境(Online Python) 使用瀏覽器開啟線上版開發環境( Online Python Editor ): https://python.microbit.org/v/1.1 。開啟來的畫面如下圖: 離線版開發環境(Offline Python) 這裡會使用 Mu Code Editor 來開發 micro:bit 的應用程式。此外讀者也可以考慮使用陳會安老師所開發的 Micro:bit Python編輯器中文離線版 。 Mu Code Editor 的畫面如下: Micro:bit Python編輯器中文離線版 的程式碼編輯畫面如下: Micro:bit Python編輯器中文離線版 的模擬器畫面如下: 筆者就使用兩顆按鈕做個小動畫的練習。 按下按鈕A時,小球往左跑。 按下按鈕B時,小球往又跑。 兩顆按鈕都沒按時,畫面出現愛心。 程式碼在此: https://github.com/pinglunliao/python_microbit/blob/master/SimpleAnimation.py 看一下測試影片囉: 參考資料: https://microbit.org/guide/ python/   https://microbit-micropython. readthedocs.io/en/latest/ index.html https://codewith.mu/en/  

APCS:C與C++的開發工具 Code::Blocks 的使用

圖片
若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 因為現行的APCS檢測環境系統是使用 Code::Blocks 當作C/C++的開發工具,而 Code::Blocks 是有Windows版本的,安裝部分可參考「 [C/C++] Code::Blocks 輕巧的整合式開發環境 」,也可參考由 CHAWTeam 所提供的教學影片。 下載頁面在此 http://www.codeblocks.org/downloads/26 。 若不知道要下載哪個版本時,請下載 codeblocks-17.12mingw-setup.exe 這個版本。 寫程式難免都會遇到要對程式除錯的時候。此時,像 Code::Blocks 這類的整合開發工具(IDE)都 會提供除錯的功能。針對如何使用 Code::Blocks 來除錯,可以參考詳細教學文章「 HOW TO USE THE CODE::BLOCKS DEBUGGER WITH C PROGRAMMING 」。或是底下兩個影片:

Python 程式設計開發環境介紹

圖片
若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 Python語言本身是直譯式的,也就是使用直譯器(interpreter)將Python程式碼轉換成機器碼(Machine Code),轉換過程可以參考這篇文章: Python 的底層架構 。有了Python Interpreter就可以來寫程式了,而Python Interpreter可從官網下載 https://www.python.org/downloads/ 。但這樣子的方式不好除錯,所以就有了整合開發工具的出現,例如 Spyder 、 PyCharm 、 IDLE 、 Jupyter 、 Visual Studio Cod e 等。底下就介紹筆者用過的一些開發環境。 IDLE 這個是從 https://www.python.org/downloads/ 下載後,安裝好就會有的內建軟體。使用方式可參考底下影片。或是這篇教學文章:「 利用IDLE簡易開發環境 」。 Anaconda Anaconda是一套Python Data Science的懶人包平台,包含很多的package,例如 Spyder 、 Jupyter 、 Visual Studio Cod e 都可以從Anaconda安裝並執行。安裝方式可參考「 Anaconda介紹與安裝教學 」或是「 Anaconda安裝 」 Visual Studio Code Visual Studio Code是微軟開發的開源(Open Source)專案,本身是個編輯器,採外掛的方式來支援多種程式語言,Python程式語言也是其中之一。安裝部分可參考「 Python in Visual Studio Code 」或「 Python Journey (2) - VS Code 基本使用技巧 」。也可參考底下影片 線上Python IDE 若不想安裝一堆軟體在自己的電腦上,可考慮線上版的開發環境,此部分可參考 紀老師程式教學網 的「 建構Python的開發環境 」與「 repl.it 雲端開發環境影音簡介 」、 Python 環境 — repl.it 、 寫程式用的雲端 IDE 等文章。

APCS 檢測系統環境導覽

圖片
若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 本篇文章是根據 APCS官網 的 檢測系統環境(https://apcs.csie.ntnu.edu.tw/index.php/info/environment/) 來建立環境。建立好後,登入畫面如下: 看起來有提供範例程式,以及相關程式語言的開發環境,而根據官網的說明,會提供底下軟體: 那筆者就來實際測試看看囉。首先略過不是關注的重點:OS和Desktop。 Editors 點選桌面的Leafpad圖示,並開啟 P3.cpp 檔案。 開啟LXTerminal,並執行Vim。 看來 Editor 是沒問題的。 Languages 下圖適用指令的方式列出C、C++、Java、Python語言版本。 這也沒問題。 IDE IDE是軟體開發者常用的工具,用IDE才有機會方便除錯,先試試支援最多程式語言的Eclipse,版本為  https://www.eclipse.org/downloads/packages/release/oxygen/3 。預設是Java語言。 筆者從Create New Project找看看有沒有除了Java以外的C、C++、Python專案。 發現沒有支援Java語言之外的C、C++、Python專案。要如何使用Eclipse 來做Java除錯,可參考這篇: eclipse-執行-debug-除錯模式 。 再來是支援C、C++的 Code::Blocks 。 Code::Blocks 的除錯方式可觀看這部影片。或是 這篇教學文章:CodeBlock除錯 。 最後是Python語言用的IDLE。 而 IDLE的除錯方式可參考這篇:如何使用IDLE進行除錯 。 結言: 要考APCS的人,一定要先知道考場提供了那些軟硬體,以免上考場時,不知道怎麼操作,那就尷尬啦!

將樹莓派當成Wifi路由器(Raspberry Pi Become a Wifi Router)

圖片
若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 本文介紹如何將樹莓派變成一個Wifi路由器。 步驟一:Install the router software sudo apt-get install isc-dhcp-server 上圖是顯示DHCP server啟動失敗,不會影響後續的安裝與設定。 安裝 HostAPD wget https://github.com/jenssegers/RTL8188-hostapd/archive/v1.1.tar.gz tar -zxvf v1.1.tar.gz cd RTL8188-hostapd-1.1/hostapd sudo make sudo make install 步驟二:Configure the ISC-DHCP-Server 執行底下指令來修改 ISC-DHCP Server的設定檔,當然可以使用其他的文字編輯器來操作: sudo nano /etc/dhcp/dhcpd.conf 註解底下兩行: option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org; 取消此行的註解: #authoritative; 將下面的設定值複製到/etc/dhcp/dhcpd.conf 檔案的結尾。 subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.100 192.168.10.200; option broadcast-address 192.168.10.255; option routers 192.168.10.1; default-lease-time 600; max-lease-time 7200; option domain-name "local-network"; option domain-name-servers 8.8.8.8, 8.8.4.4; } 修改/etc/default/isc-dhcp-server sudo nano /etc/defa...

讀書筆記:深入淺出設計模式 (HEAD FIRST DESIGN PATTERNS)

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 此文為筆者在閱讀【 深入淺出設計模式(Head First Design Patterns) 」一書所作的筆記。 設計模式種類: 策略模式(Strategy Pattern) :定義演算法家族,個別封裝起來,讓它們之間可以交互替換,此模式讓演算法的變動,不會影響到使用演算法的程式。 觀察者模式(Observer Pattern) : 出版者 + 訂閱者 = 觀察者模式。『觀察者模式』 定義了物件之間的一對多關係,如此一來,當一個物件改變狀態,其他相依者都會收到通知並自動被更新。 裝飾者模式(Decorator Pattern) : 動態地將責任加諸於物件上。若要擴充功能,裝飾者提供了比繼承更有彈性的選擇。 工廠方法模式(Factory Method Pattern) : 定義了一個建立物件的介面,但由次類別決定要實體化的類別為何者。工廠方法讓類別把實體化的動作,交由次類別進行。 抽象工廠模式(Abstract Factory Pattern) : 提供了一個介面,建立相關或相依物件之家族,而不需要明確指定具象類別。 獨體模式(Singleton Pattern) : 確保一個類別只有一個實體,並給它一個存取的全域點(global point)。 命令模式(Command Pattern) : 將「請求」封裝成物件,以便使用不同的請求、佇列、或者日誌,參數化其他物件。命令模式也支援可復原的作業。 轉接器模式(Adapter Pattern) : 將一個類別的介面,轉換成另一個介面以供客戶使用。轉接器讓原本介面不相容的類別可以合作無間。 表象模式(Facade Pattern) : 提供了一個統一的介面,用來存取次系統中的一群介面。表象定義了一個較高層次的介面,讓次系統更容易使用。 樣板方法模式(Template Method Pattern) : 將一個演算法的骨架定義在一個方法中,而演算法本身會用到的一些方法,則是定義在次類別中。樣板方法讓次類別在不改變演算法架構的情況下,重新定義演算法中的某些步驟。 設計守則:     一、 找出程式中可能需要更動之處,把它們獨立出來,不要和那些不需要更動的程式碼混在一起。把會變動的...

在樹莓派上開發微型的作業系統(MiniOS for Raspberry Pi)

圖片
若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 筆者所使用的作業系統: Lubuntu 18.10 。 環境建立 安裝 Cross Compiler For Raspberry Pi 2: sudo apt install gcc-arm-none-eabi For Raspberry Pi 3: sudo apt install gcc-aarch64-linux-gnu build-essential 安裝模擬器 sudo apt install qemu-system-arm 第一個程式例子「Hello Uart」 需要分別建立底下的檔案: The kernel entry point「boot.S 」 The C code「kernel.c」 Tying the pieces together「linker.ld」 A special file that contains shell commands「Makefile」 底下就以RPI2與RPI3來當作例子吧。 1. Say "Hello" to RPI2 UART 在 https://jsandler18.github.io/ 裡,有針對這四個檔案做說明: boot.S:  https://jsandler18.github.io/explanations/boot_S.html kernel.c:  https://jsandler18.github.io/explanations/kernel_c.html linker.ld:  https://jsandler18.github.io/explanations/linker_ld.html Makefile:  https://github.com/jsandler18/raspi-kernel/blob/9208b9b20134909b107cb344c90f57c2c72c377d/Makefile 若不使用Makefile與make來編譯與執行時,需用底下指令來編譯 arm-none-eabi-gcc -mcpu=cortex-a7 -fpic -ffreestanding -c bo...