顯示具有 ♥♥♥ 標籤的文章。 顯示所有文章
顯示具有 ♥♥♥ 標籤的文章。 顯示所有文章

2026年4月17日 星期五

Google Gemini API 學習索引

過去兩年來串接大語言模型 API 我最常用的是 OpenAI, 這必須要先綁信用卡購買隨用即付額度才能使用; 而 Google Gemini 則不需要, 免費仔目前 gemini-2.5-flash 享有的請求限制為 10 次/分, 25 萬 token/分, 250 次/日, 對於新手非常慷慨. 最近打算對 Gemini API 做較全面的測試, 先把過去的測試文章整理程如下索引以利查考 :


~ 進行中 ~

2026年1月30日 星期五

Gemini CLI 學習筆記索引

我在 2025 年底趁 58 折的聖誕節特惠價購買了 Google AI Pro, 最主要誘因是在使用 Gemini CLI 時可以選擇 Pro 版, 這樣用它來生成程式碼應該會更好. 自元旦四天台北宜蘭之旅回來後便全心投入 Vibe Coding 的測試學習, 我已被明賢表弟成功洗腦 (他極力敦促我使用 Claude Code), 雖然放棄親自手刻程式碼有損工程師尊嚴, 但那並不重要, 人生苦短, 快速完成專案實現創意才是程式員存在的目的, Vibe Coding 是大勢所趨無法阻擋. 

以下是測試文章的索引 :



~ 進行中 ~

在探索 Gemini CLI 時會使用 uv 管理工具, 用法參考 :


關於 SDD 與 OpenSpec 參考 :


2025年10月15日 星期三

Linux 主機 Crontab 整理

之前在測試 Python 爬蟲時寫了一些程式, 分別部署在三台 Linux 主機上 (兩台 Pi 3, 一台 Pi 3A+, 以及一台 Mapleboard), 時間一久都不清楚到底哪隻爬蟲放在哪, 要維護或改版還得一台一台去檢視 crontab 很花時間, 今天抽空將它們整理如下 :

1. 鄉下老家的 Pi 3 : 

pi@raspberrypi:~ $ sudo crontab -e  
0 * * * * sudo /usr/local/bin/checkwifi.sh
0 * * * * /usr/bin/python3 /home/pi/reportip5.py

pi@raspberrypi:~ $ crontab -e  
*/6 * * * * curl -s https://serverless-fdof.onrender.com/function/hello > /dev/$


2. 高雄家的 Pi 3 : 

pi@raspberrypi:~ $ crontab -e    
0 16 * * 1-5 /usr/bin/python3 /home/pi/twstock_dashboard_update.py
*/31 9-13 * * 1-5 /usr/bin/python3 /home/pi/yahoo_twstock_monitor_table_2.py
0 8,18 * * * /usr/bin/python3 /home/pi/btc_eth_prices_line_notify.py
1 12,17 * * * /usr/bin/python3 /home/pi/technews_3.py
0 9 * * * /usr/bin/python3 /home/pi/books.com.tw_66_telegram.py
0 * * * * /usr/bin/python3 /home/pi/ksml_personal_11_deploy.py faxxxxxx yyyyyy
4 * * * * /usr/bin/python3 /home/pi/ksml_personal_11_deploy.py xxxx118 yyyyyy
8 * * * * /usr/bin/python3 /home/pi/ksml_personal_11_deploy.py xxxx119 yyyyyy
12 * * * * /usr/bin/python3 /home/pi/ksml_personal_11_deploy.py xxxx120 yyyyyy
16 * * * * /usr/bin/python3 /home/pi/ksml_personal_11_deploy.py xxxx1792 yyyy
20 * * * * /usr/bin/python3 /home/pi/ksml_personal_11_deploy.py xxxxxxx587 yyy110
0 13,18 * * * /usr/bin/python3 /home/pi/ksml_personal_11_deploy.py
0 6,16 * * * /usr/bin/python3 /home/pi/nkust_lib_9.py
*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1
*/6 * * * * curl -s https://serverless-fdof.onrender.com/function/hello > /dev/$


3. 高雄家的 Pi 3 A+ : (已改為 Trixie Lite OS)

pi@raspberrypi:~ $ crontab -e   
*/3 * * * * curl -s https://serverless-fdof.onrender.com/function/hello
*/3 * * * * curl -s https://serverless-5e6i.onrender.com/function/hello


4. Mapleboard : 

tony1966@LX2438:~/python$ crontab -e   
#0 5,16 * * * /usr/bin/python3 /home/tony1966/python/ksml_books_8.py
#0 10 * * * /usr/bin/python3 /home/tony1966/python/nkust_lib_6.py

舊版爬蟲已停止. 

最近會進行爬蟲改版 (crontab 動態調整中), 爬蟲盡量部署在樹莓派, 蒐集的資料再統一彙整到 Mapleboard, 由 Mapleboard 推送訊息至 LINE 與 Telegram. 

2025年5月17日 星期六

Streamlit 學習筆記索引

最近在學習 LangChain 時發現 Streamlit 經常被拿來開發 LLM 應用, 所以我想先把 Streamlit 認真地測試完, 茲將測試紀錄索引如下 : 



已完成 (2025-06-16)

參考書籍 : 

2025年3月5日 星期三

OpenAI API 學習筆記索引

為了方便查找, 將 OpenAI API 的測試文章做成如下索引 :



~進行中~

參考書目 :

# OpenAI API 基礎必修課 (蔡文龍, 碁峰 2024) 
# 駕馭 ChatGPT 4 (柯克 陳葵懋, 博碩 2023)

OpenAI 官網範例 :


2025年1月20日 星期一

用 ChatGPT 依照指定格式產生 Blogger 表格

我在 Blogger 喜歡用以前舊版協作平台網頁編輯器所使用的表格來呈現資料, 舊版走入歷史時我有記下其 HTML 原始碼紀錄在下面這篇 :


不過每次都要從那邊複製一張空表格來填很費時間, 最近在寫量化投資測試筆記時嘗試改用 ChatGPT 來幫我做這件有點小累累的苦工感覺效率倍增, 因為連內容都幫我填好了, 我只要核對資料是否正確即可,  AI 真是太省時省力啦! 

以這兩天製作 mplfinance 套件的 plot() 函式有哪些參數的表格為例, 提示詞如下 : 

mplfinance 的 plot() 函式有哪些參數? 請用下列的表格格式呈現, 文字內容都使用半型字體, 英文或數字等與前後的中文字之間要留一個空格, 括弧則僅前後留一個空格即可, 與其內容之間不必留空格, 產生的 HTML 碼格式要排列整齊 :

<table border="1" bordercolor="#888" cellspacing="0" style="background-color: white; border-collapse: collapse; border-color: rgb(136, 136, 136); border-width: 1px; color: #534741; font-family: Arial, Verdana, sans-serif; font-size: 13.3333px; margin: 0px;">
  <tbody>
    <tr>
      <td style="width: 189.011px; padding: 3px;">&nbsp;參數名稱</td>
      <td style="width: 402.011px; padding: 3px;">&nbsp;說明</td>
    </tr>
    <tr>
      <td style="padding: 3px;">&nbsp;</td>
      <td style="padding: 3px;">&nbsp;</td>
    </tr>
  </tbody>
</table>


按 "複製程式碼" 鈕, 到 Blogger 切換至 HTML 模式, 將表格內容貼上, 然後再檢查內容正確性與微調格式即可. 以前花太多時間填表格, 難怪整理筆記的根本龜速, 現在有 ChatGPT 協助宛如吃了大力丸. 上面提示詞就記下來當範本. 


2025-03-03 補充 :

欄位標題可以改用 th 元素變成粗體字 :

請依照下列排列整齊的 HTML 格式呈現 <> 的參數說明 (標點符號請用半形) : 

<table border="1" bordercolor="#888" cellspacing="0" style="background-color: white; border-collapse: collapse; border-color: rgb(136, 136, 136); border-width: 1px; color: #534741; font-family: Arial, Verdana, sans-serif; font-size: 13.3333px; margin: 0px;">
  <tbody>
    <tr>
      <th style="width: 189.011px; padding: 3px;">&nbsp;參數名稱</th>
      <th style="width: 402.011px; padding: 3px;">&nbsp;說明</th>
    </tr>
    <tr>
      <td style="padding: 3px;">&nbsp;</td>
      <td style="padding: 3px;">&nbsp;</td>
    </tr>
  </tbody>
</table>


2024年8月2日 星期五

Python 量化投資筆記索引

最近有感於我常常書買回來後稍微翻一下就束之高閣, 過了很久 (例如數月來才看完 2018 年買的爬蟲書), 所以這幾天把今年 228 買的 "最強 AI 投資分析" 找出來看, 裡面介紹的一些套件之前有玩過, 覺得這書寫得好啊 (不然當初怎會買?), 我的量化投資步調實在走太慢, 必須加速才行, 所以把之前寫的相關筆記找出來複習一遍, 我想下半年的學習計畫就是屏除雜訊, 專心耕耘 Python 量化投資! 

之前的筆記索引如下 :



~進行中~

2025-01-19 補充 : 

今天整理完 ta 筆記添加至索引才發現從 2024-08 開始這半年來也成長了不少呢! 

2025-08-22 補充 :

斷斷續續花了兩周時間終於把繪製 K 線圖的 kbar 套件打包發佈到 PyPI 網站了 :


2023年2月20日 星期一

Mapleboard MP510-50 測試筆記索引

由於想要利用中華電信光世代網路提供的一個固定 IP 來架設網站, 首選主機當然是已熟悉的樹莓派, 但這兩年 Pi 4B 價格狂飆, 我 2021 年幫湘雲老師架站時買 8GB 的 Pi 4B 一塊才 2800 而已, 半年後我自己想買卻已飆到 8000 多, 根本買不下去. 我只好在 2022 年 6 月於 PChome 以 2450 元購買了中鼎微系統開發的 Mapleboard, 硬體規格與 Banana Pi BPI-M5 幾乎雷同, 但它的 Flash 更大 (64GB), 而 4GB DRAM 也還 OK, 與 Pi 4B 相比可說毫不遜色.

我租了好幾年的英國 Hostinger 虛擬主機即將於今年底到期, 由於其客服已經不像以前那麼好, 到期我不打算續租, 所以去年底開始測試這塊 Mapleboard, 希望自架網站來取代它, 畢竟當初租 Hostinger 主要目的是要用來跑 PHP 而已, 自架網站的優點是自己可完全掌控. 最近陸續突破幾個關卡, 最重要的遠端桌面 RealVNC Connect 與 PPPoE 撥接上網都測試 OK, 看來可以進行架站作業了, 茲將測試紀錄做成如下索引, 方便查找 : 



~進行中~

2023-03-09 補充 :

我覺得遠端控制只要安裝 RealVNC Server 即可 (AnyDesk 更好, 可惜它尚未支援 64-bit, 已安裝), TeamViewer 完全不用考慮 (沒付錢幾分鐘內就會突然斷線, 說你被偵測出把免費帳戶拿來商用, 真是讓人傻眼). 

2022年6月20日 星期一

市圖預約待借書目

市圖預約待借書目 : (高科大預約待借書目)
  1. TensorFlow與Keras : Python深度學習應用實務 (0069)
  2. AI黃金時期正好學 : TensorFlow 2高手有備而來
  3. 一行指令學Python : 用機器學習掌握人工智慧 (母校有)
  4. Python3.x網頁資料擷取與分析特訓教材
  5. Python網路文字探勘入門到上手
  6. Python技術者們練功! (河堤議購)
  7. 用Excel學Python資料分析 (母校有)
  8. 隱市致富地圖
  9. 超入門實作Python AIoT智能物聯網 : 使用Raspberry Pi 4B(iPOE R0+R1)
  10. 使用Python搜刮網路資料的12堂實習課
  11. AIOT與OpenCV實戰應用 : Python、樹莓派、物聯網與機器視覺
  12. 用Python學AIoT智慧聯網
  13. Python架站特訓班 : django 3最強實戰
  14. AIoT實作好好玩 : 使用micro:bit、MIT App Inventor、語音辨識及影像辨識
  15. Python不廢話 一行程式碼 : 像高手般寫出簡潔有力的Python程式碼
  16. Python機器學習錦囊妙計
  17. 創客.自造者工作坊 : 用AI影像辨識學機器學習 (p5+ml5)
  18. Python機器學習 : 使用Python的scikit-learn和TensorFlow 2 (上) (母校有)
  19. Python機器學習超進化 : AI影像辨識跨界應用實戰
  20. Deep learning. 2 : 用Python進行自然語言處理的基礎理論實作 (母校有)
  21. 從程式員到AI專家 : 寫給程式員的人工智慧與機器學習指南
  22. 寫給程式設計師的深度學習 : 使用fastai和PyTorch
  23. Python跨領域學 : 資料科學基礎養成
  24. 一本精通 Python範例應用大全 : Python詳細語法教學&100+個Python範例
  25. Python大數據特訓班 : 資料自動化收集、整理、清洗、儲存、分析與應用實戰 (第3版)
  26. 一本精通 : OpenCV與AI影像辨識
  27. 量子科技革命 : Q世代的未來 (三民)
  28. Python資料科學實戰教本
  29. OpenAI API基礎必修課 : 使用Python (彌陀)
  30. 自學機器學習 : 上Kaggle接軌世界, 成為資料科學家
  31. Kaggle競賽攻頂秘笈 
  32. 學AI真簡單. I, 初探機器學習 : 從認識AI到Kaggle競賽
  33. AI繪圖夢工廠 2023
  34. AI繪圖夢工廠 2024 
  35. OpenAI API基礎必修課 : 使用Python
  36. 機器學習的高風險應用 : 負責任的人工智慧方法 (有 XGBOOST)
  37. Python大數據特訓班
  38. AI職場 : 智慧浪潮的工作新規則
  39. Python資料科學自學聖經
  40. ChatGPT時代的英文學習術
  41. ChatGPT IG行銷最強魔法師
  42. ChatGPT最強實戰工作術
  43. AI影片製作工具箱 (第二版)
  44. 深度學習技術解密
  45. Keras大神歸位深度學習全面進化
  46. 最新機器學習的教科書
  47. Python量化研究實作 : Deepnote雲端平台應用
  48. 比當沖還快 : 量化交易金融智慧賺好幾倍薪水
  49. AI時代的Python高效學習書
  50. 全面掌握生成式AI與LLM開發實務 (右昌)
  51. Tensorflow接班王者 : Google JAX深度學習又快又強大
  52. AI神助攻!程式設計新境界 : GitHub Copilot開發Python如虎添翼 (梓官)
  53. 股市肥羊 : 從低收入戶到8500萬資產,肥羊派操作術讓我的股票1年再賺2800萬
  54. 超有料!職場第一實用的AI工作術
  55. 世界第一簡單的Python「超」入門
  56. 少年Py的大冒險 : 成為Python AI深度學習達人的第一門課
  57. 用創客玩ChatGPT x Python AI語音大應用
  58. 最強AI投資分析 : 打造自己的股市顧問機器人 股票趨勢分析x年報解讀x選股推薦x風險管理
  59. Python : 股票xETF量化交易實戰105個活用技巧 (中庄)
  60. 美股配息獲利法 : 持續買進3個月就能賺到股利, 213檔高股息清單輕鬆選
  61. Python資料科學自學聖經 : 不只是建模!用實戰帶你預測趨勢、找出問題與發現價值 (總館)
  62. Python自學聖經-從程式素人到開發強者的技術與實戰大全 (第二版) (總館)
  63. 問ChatGPT也不會的Python量化交易聖經 : 從分析到真實交易一本全會 (前鎮/河堤)
  64. AI超神應用術 : Google Gemini x NotebookLM x Nano Banana Pro x Veo x Flow x Gemini Live全解鎖 (旗津)
  65. Python資料分析 (河堤/仁武)
  66. Raspberry Pi 樹莓派 (林園二館, 美濃)
  67. 高手叫我不要教的-H模型 : 兩個指標, 百倍獲利 (第二版, 總館)
  68. LangChain學習手冊 : 使用LangChain與LangGraph建構AI與LLM應用程式 (中庄)
  69. 動手做AI Agent : LLM應用開發實戰力 (大寮)
  70. PyTorch自然語言處理 : 以深度學習建立語言應用程式
  71. PyTorch深度學習攻略 : 核心開發者親授! (KML6909028)
  72. 精通機器學習 : 使用Scikit-Learn, Keras與TensorFlow (2023 第三版, 前鎮)
  73. AI應用程式開發 第二版 : 活用ChatGPT與LLM技術開發實作 (總館)
  74. LangChain開發手冊 (大社)
  75. LangChain學習手冊 : 使用LangChain與LangGraph建構AI與LLM應用程式 (左新)
  76. LangGraph實戰開發AI Agent全攻略 (右昌)
  77. 用LangChain打造生成式AI創新應用 : 從LangGraph到LangSmith (小港)
  78. Python原力爆擊 : OpenAI/Gemini/AWS/Ollama生成式AI應用新手指南 (鳳山二館)
  79. AI影片製作工具箱 : AI繪圖合成 智慧編輯剪片 ChatGPT文案生成全攻略 (總館)
  80. 超有料!職場第一實用的AI工作術 (美濃)
  81. Coding Agent大神 : Google Antigravity最強實戰指南 (總館/右昌)
  82. 玩爆你的龍蝦 : 最強OpenClaw安裝設定應用實機演練 (杉林/左新)
  83. 金融AI : 人工智慧的金融應用 (總館)

記下來方便續借與再次預約. 

# 常用搜尋關鍵字 : 

OpenClaw, Vibe coding, Claude Code, Antigravity, Codex, AI Agent, LangChain, RAG, Ollama, 

2022年5月16日 星期一

簡化的 Blogger 表格範本

自從 Google 協作平台升版之後, 編輯網頁表格就沒這麼方便了, 但在 blogger 整理學習筆記有時用表格來呈現較明瞭, 我只好拿之前的舊表格修改來用, 之前的表格範本參考 : 

最近因為要用到的表格格式較多, 不只是兩欄而已, 所以只好手工先準備好各種型式的表格備用. 經使用 HTML 與編輯模式交互測試, 發現其實只要在表頭設定寬度即可, 這樣要調整欄位寬度時只要調整表頭, 表身就單純用 <td></td> 放內容, 其寬度會隨表頭而變, 其他樣式如垂直對齊等不需要, 簡化後的基本結構如下 :

<table border="1" bordercolor="#888" cellspacing="0" style="background-color: white; border-collapse: collapse; border-color: rgb(136, 136, 136); border-width: 1px; color: #534741; font-family: Arial, Verdana, sans-serif; font-size: 13.3333px; margin: 0px;">
  <tbody>
    <tr>
      <td style="width: 149.011px;">&nbsp;欄位1</td>
      <td style="width: 402.011px;">&nbsp;欄位2</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
  </tbody>
</table>

結果如下 :


 欄位1  欄位2
   
   


欄位 1 寬度放大 40px, 整體寬度放大到與 Blogger 內容版面寬度 (590px) 的表格如下 : 


<table border="1" bordercolor="#888" cellspacing="0" style="background-color: white; border-collapse: collapse; border-color: rgb(136, 136, 136); border-width: 1px; color: #534741; font-family: Arial, Verdana, sans-serif; font-size: 13.3333px; margin: 0px;">
  <tbody>
    <tr>
      <td style="width: 189.011px;">&nbsp;欄位1</td>
      <td style="width: 402.011px;">&nbsp;欄位2</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
  </tbody>
</table>

結果如下 :


 欄位1  欄位2
   
   


將欄位 2 寬度減半的範例如下 :

<table border="1" bordercolor="#888" cellspacing="0" style="background-color: white; border-collapse: collapse; border-color: rgb(136, 136, 136); border-width: 1px; color: #534741; font-family: Arial, Verdana, sans-serif; font-size: 13.3333px; margin: 0px;">
  <tbody>
    <tr>
      <td style="width: 149.011px;">&nbsp;欄位1</td>
      <td style="width: 201.011px;">&nbsp;欄位2</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
  </tbody>
</table>

結果如下 :


 欄位1  欄位2
   
   


下面是三欄表格範例 1 : 

<table border="1" bordercolor="#888" cellspacing="0" style="background-color: white; border-collapse: collapse; border-color: rgb(136, 136, 136); border-width: 1px; color: #534741; font-family: Arial, Verdana, sans-serif; font-size: 13.3333px; margin: 0px;">
  <tbody>
    <tr>
      <td style="width: 149.011px;">&nbsp;欄位1</td>
      <td style="width: 201.011px;">&nbsp;欄位2</td>
      <td style="width: 201.011px;">&nbsp;欄位2</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
  </tbody>
</table>


 欄位1  欄位2  欄位2
     
     


下面是三欄表格範例 2 : 

<table border="1" bordercolor="#888" cellspacing="0" style="background-color: white; border-collapse: collapse; border-color: rgb(136, 136, 136); border-width: 1px; color: #534741; font-family: Arial, Verdana, sans-serif; font-size: 13.3333px; margin: 0px;">
  <tbody>
    <tr>
      <td style="width: 189.011px;">&nbsp;欄位1</td>
      <td style="width: 201.011px;">&nbsp;欄位2</td>
      <td style="width: 201.011px;">&nbsp;欄位2</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
  </tbody>
</table>

結果如下 :


 欄位1  欄位2  欄位2
     
     


總之, 整個表格寬度不要超過 590px 即可, 欄位數目與各欄寬度可自由調校. 

2021年7月17日 星期六

樹莓派架站 (十一) : 設定固定 IP 的方法

上週將 Pi 4 交給湘雲老師帶回學校, 用網路線連接到研究室網路 RJ45 插槽後開機, 我在遠端用 VNC Cloud 卻怎麼也無法與 Pi 4 連線. 經與圖資的劉老師請教, 原來學校的網路環境是有特別規劃的, 聯網主機必須指定 IP, gatway, mask, 以及 DNS server 等網址設定才可以連到學校網路, 我對網路底層一知半解, 以為像家裡一樣直接接上網路線就能讓 Pi 4 上 Internet, 實在太天真了. 

我之前在學習樹莓派時也做過固定 IP 的設定測試, 作法有兩種,例如下面這篇是透過 /etc/network/interface 這個檔案設定固定的無線網路 IP, 但在新版 Raspbian 已不管用了 :


下面這篇是新的做法, 是透過 /etc/dhcpcd.conf 這個檔來設定無線網路之固定 IP : 


所以之前都是在設定無線網路, 那固定網路該怎麼做呢? 我查詢了一些網路上的作法, 發現只要將 wlan0 改成 eth0 應該就可以, 參考 : 





綜合上面的資料, 可知設定固網 IP 基本上有兩種做法 : 


1. 使用 /etc/network/interfaces.d/eth0 檔 :

也可以直接使用 /etc/network/interface, 但這個檔案的預設內容為 :

source-directory /etc/network/interfaces.d

亦即此網路介面檔預設會從 /etc/network/interfaces.d 這目錄匯入底下的設定檔, 所以就沒有必要直接將網路設定資訊寫在這裡, 而是寫在此目錄下的檔案中, 例如固網就用 eth0 這檔名, 用 nano 編輯如下內容, 然後存成 eth0 檔案 :

auto eth0
iface eth0 inet static
        address 192.168.2.193
        netmask 255.255.255.0
        gateway 192.168.2.1
        dns-nameservers 168.95.1.1 8.8.8.8

此處 address 就是我要的固定 IP=192.168.2.193, 網路遮罩 netmask=255.255.255.0 表示最後一個 byte 為主機位址, 預設閘道 gateway=192.168.2.1 為我家基地台的 IP, 而 dns-server 所列兩個網址是 Google 的 DNS 伺服器網址. 網路遮罩可以在樹莓派聯網情況下用 ifconfig 查得; 而預設閘道則可用 route -ne 指令查得, 參考 :


pi@raspberrypi:~ $ route -ne
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.2.1     0.0.0.0         UG        0 0          0 eth0
192.168.2.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0




也可以用 Windows 的 ipconfig 指令查詢 : 




將上面的 /etc/network/interfaces.d/eth0 存檔後檢視內容如下 :

pi@raspberrypi:~ $ cat /etc/network/interfaces.d/eth0    
auto eth0
iface eth0 inet static
        address 192.168.2.193
        netmask 255.255.255.0
        gateway 192.168.2.1
        dns-nameservers 168.95.1.1 8.8.8.8

然後下 sudo reboot 重開機, 果然順利取得固定 IP :




2. 使用 /etc/dhcpcd.conf 檔 :

為了確定這種方式可行, 不受上面第一種方法干擾, 所以先將上面的 /etc/network/interfaces.d/eth0 這個檔備份到 pi 目錄下保存然後刪除 : 

pi@raspberrypi:~ $ sudo mv /etc/network/interfaces.d/eth0 eth0     
pi@raspberrypi:~ $ cat /etc/network/interfaces.d/eth0    
cat: /etc/network/interfaces.d/eth0: 沒有此一檔案或目錄

確定檔案已刪除後, 將系統預設的 /etc/dhcpcd.conf 複製到根目錄下保存 : 

pi@raspberrypi:~ $ sudo cp /etc/dhcpcd.conf Downloads/dhcpcd.conf

然後編輯一個 dhcpcd.conf 檔, 內容如下 : 

interface eth0 
static ip_address=192.168.2.193/24 
static routers=192.168.2.1 
static domain_name_servers=168.95.1.1 8.8.8.8

pi@raspberrypi:~ $ nano dhcpcd.conf    

然後將其複製到 /etc 下覆蓋同名檔案 : 

pi@raspberrypi:~ $ sudo mv dhcpcd.conf /etc/dhcpcd.conf     
pi@raspberrypi:~ $ cat /etc/dhcpcd.conf    
interface eth0 
static ip_address=192.168.2.193/255.255.255.0 
static routers=192.168.2.1 
static domain_name_servers=168.95.1.1 8.8.8.8

確定內容無誤後重開機 : 

pi@raspberrypi:~ $ sudo reboot    

結果亦可成功取得指定之固定 IP 並連上 Internet : 

pi@raspberrypi:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.193  netmask 255.255.255.0  broadcast 192.168.2.255
        inet6 fe00::ba27:ebff:fe60:2e70  prefixlen 64  scopeid 0x20<link>
        ether b8:07:e0:63:20:7b  txqueuelen 1000  (Ethernet)
        RX packets 678  bytes 88315 (86.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 595  bytes 288638 (281.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


2021-07-18 補充 :

檢查鄉下的 Pi 3 網路設定, 採用的是第二種方法 (/etc/dhcpcd.conf), 內容如下 :

pi@raspberrypi:~ $ cat /etc/dhcpcd.conf     
interface wlan0 
static ip_address=192.168.2.192 
static routers=192.168.2.2 
static domain_name_servers=192.168.2.2

而無線網路上網設定檔則是放在 /etc/wpa_supplicant/wpa_supplicant.conf 中, 內容為 : 

pi@raspberrypi:~ $ cat /etc/wpa_supplicant/wpa_supplicant.conf    
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=TW

network={
ssid="TonyNote8"
psk="a123456"
key_mgmt=WPA-PSK
}

network={
ssid="EDIMAX-tony"
psk="a123456"
key_mgmt=WPA-PSK
}

network={
ssid="EDIMAX-meinung"
psk="a123456"
key_mgmt=WPA-PSK
}
 
總結來說, 新的 Raspbian 映像檔燒錄好後先不要拔除讀卡機, 先準備一個空白的 ssh 檔案與含有如下內容的 wpa_supplicant.conf 檔 (ssid 與 psk 要改成自己的基地台帳密), 複製到燒錄好映象檔的 boot 碟下 : 

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev 
update_config=1
country=TW

network={
    ssid="TonyNote8"
    psk="a123456"
    }

注意, 這個放在 root 碟下的 wpa_supplicant.conf 在開機後會被複製到 /etc/wpa_supplicant/wpa_supplicant.conf 這個檔. 

這樣在開機後樹莓派就會自動連上指定的基地台, 因為 Raspbian 預設已開啟 ssh 功能, 因此就可以用 Putty 連線樹莓派 (預設帳號 pi, 密碼 raspberry) 進行無頭存取, 即樹莓派開機前不需接螢幕與鍵鼠組, 直接用 PC 遠端存取, 用 ifconfig 取得樹莓派區網 IP 後, 就可以用 VNC viewer (local) 從 PC 連線樹莓派進行遠端桌面存取. 進入遠端桌面後首先開啟瀏覽器登入 VNC cloud 帳號, 並為這台樹莓派取一個容易辨識的名稱, 這樣以後就可以用 VNC viewer (cloud) 從外網遠端存取樹莓派了. 

如果要讓樹莓派取得固定 IP, 就可以用本篇的兩個方法設定, 例如用 dhcpcd.conf 設定的話, 可以編輯 /etc/dhcpcd.conf 加入如下內容 :

interface eth0 
static ip_address=192.168.2.193/255.255.255.0 
static routers=192.168.2.2 
static domain_name_servers=168.95.1.1 8.8.8.8

interface wlan0 
static ip_address=192.168.2.193/255.255.255.0 
static routers=192.168.2.2 
static domain_name_servers=168.95.1.1 8.8.8.8

這樣樹莓派不論是用有線還是無線方式上網都能獲得指定之固定 IP 了, 方便區網存取或做伺服器時用 (避免系統重啟後 IP 跑掉). 

以上補充說明總結樹莓派從燒錄映像檔到無頭存取的網路設定, 以及透過 VNC Cloud 進行外網遠端存取的過程, 作為以後裝機的參考. 

2021年6月30日 星期三

機器學習閱讀札記

最近在漫讀一些手邊的機器學習書籍, 隨手將重點記之如下, 方便以後整理筆記時查找 : 
  • 最典型的無參數 (non parametric) 機器學習模型是 K 近鄰 (K-nearest neeighbors, KNN) 模型, 雖然表面上 KNN 有一個參數 K, 但它仍然是無參數模型, 因為此 K 參數並不是從資料中學習而得, 而是資料科學家所選擇的一個適當之經驗值, 所以這種參數被稱為超參數 (hyperparameter). --Introduction to Artificial Neural Network p17.  
  • 可以用超參數 (hyperparameter) 來控制訓練時的正則化程度, 超參數是一種學習演算法參數, 不是模型的參數, 所以不會被學習演算法本身所影響, 它必須在訓練前設定, 且訓練期間保持不變. 調整超參數是建立機器學習系統的重要程序. -- 精通機器學習 p28.
  • 機器學習專案成功的關鍵之一在於找出一組良好的特徵來訓練, 此程序稱為特徵工程 (feature engineering), 其步驟有三 : 
    (1). 特徵選擇 (2). 特徵提取 (3). 收集新資料以建立新特徵. 
    -- 精通機器學習 p26.
  • 資料科學家通常要花很多時間來整理訓練用的資料, 但這是非常值得的, 如果訓練用的資料充滿錯誤, 雜訊, 與離群值, 系統將難以找到資料底層的模式. 
自學 AI 雖然要花很多時間摸索, 但經過多次走彎路印象也會較深刻, 期間也需要停頓下來打底欠欠缺的預備知識, 無形中所學的知識體系也會越來越龐大而需要統整. 


~~ 進行中 ~~~

2020年5月15日 星期五

學習筆記總索引

這是為了方便找到各筆記索引頁用的, 目前已有的筆記整理如下 :

# PHP 學習筆記索引
# Python 學習筆記索引
# Node.js 學習筆記索引
# R 語言學習筆記索引
# 樹莓派 Raspberry Pi 文章列表
# Arduino 學習筆記索引
# MicroPython on ESP8266 學習筆記索引
# MicroPython on ESP32 學習筆記索引
# jQuery EasyUI 系列文章索引
# EasyUI 學習筆記索引
# jQuery 學習筆記索引
# jQuery UI 學習筆記索引
# HTML5 學習筆記索引
# Bootstrap 4 學習筆記索引
# Git 學習筆記索引
# AWS 學習筆記索引
# Vue 學習筆記索引
# NLP 學習筆記索引


~ 進行中 ~