發表文章

最方便的程式教室 GitHub Classroom 動手玩

圖片
GitHub Classroom 推出已經有一段時間,好像沒看到網路上有人介紹他的使用方法。剛好最近有機會可以嘗試看看,就寫個紀錄分享一下 GitHub Classroom 的一些特色功能。開始使用 GitHub Classroom首先當然是直接到 GitHub Classroom 開間教室啊,網址如下:
https://classroom.github.com過程十分簡單,稍微講一下就好:開教室的人必須要將教室連結到一個 GitHub Organization(下稱組織)既然是要連到組織,那想當然每個學生都要加到組織中教室可以設定多個 Administrators(下稱管理員),前提是他們必須要有組織的Owner身份可以把每個學生的 GitHub 帳號對應到自定義的 roster (下稱名單),就不用背帳號名了!!(超棒 🎉🎉)學生名單是可以隨時變動的設定學生名單GitHub 提供了很方便識別學生帳號的方法,就是類似暱稱的方式將你的名單跟學生們的帳號綁定起來。
第一格:要你填入你想用什麼方式識別 GitHub 帳號,你可以選擇任意的暱稱來識別 GitHub 帳號,官方舉例是用姓名、email 或學號等。填這格的目的,是讓其他 管理員 在手動增加新學生的時候,輸入框旁會提示應該填寫什麼樣的內容,以便讓整份名單格式保持一致。因為我的授課對象比較接近社團性質,我在這裡是使用「班級 座號 姓名」混合識別。第二格:則是填寫每個學生的資料。如果你剛剛選擇使用姓名識別,就是將學生姓名一人一行表列出來。你也可以直接上傳 CSV 檔,學校老師看到這功能應該蠻高興的。由於名單是可以隨時變動的,所以操作過程有誤隨時都可以砍掉重來。新增好後會像這樣,目前只有名單但還沒跟 GitHub 帳號連接。這部分要等到學生交作業的時候才能連接。
建立作業接著我們就來建立第一份作業。選擇作業類型作業分成個人作業和分組作業,這裡以個人作業為例。
設定作業內容選擇「Create an individual assignment」後,介面就跟一般建立 repo 類似。在這裡你可以指定:作業名稱repo 的前綴詞(給學生在自己帳號建立 repo 用)設定學生 repo 為 public 或 private是否給予學生自己 repo 的 Admin 權限指定 repo 的預設 code 內容(可選)作業繳交期限(…

[筆記] 用 Graph API 檢查 Instant Articles 錯誤

文件竟然什麼都沒寫@@抓取所有 IA 文章這個文件有,可以參考 List All Articles。https://graph.facebook.com/{page-id}/instant_articles 抓取所有 IA 文章,並包含狀態這是我從 Graph API Explorer 挖出來的。重點是 most_recent_import_status 這個 field 竟然沒有在文件中出現…https://graph.facebook.com/{page-id}/instant_articles?fields=most_recent_import_status 其他實用的 fieldlimitpublish_status

[筆記] MariaDB 全新安裝遇到 ERROR 1698 (28000) 錯誤怎麼辦

這幾天終於申請 VPS 來玩啦(撒花~~)
參考了毫無理由使用 MySQL:MariaDB、MySQL 創始者 Michael Widenius 的訪談,果斷決定藉這個全新安裝的機會,把 MySQL 換掉,投入我大 MariaDB 。在 DigitalOcean 提供的 Ubuntu 上,安裝應該很簡單$ sudo apt install mariadb-server $ mysql_secure_installation 結果問我資料庫的 root 密碼,理論上還沒設定 root 密碼過,應該是直接按 Enter 就好。
結果噴錯了…ERROR 1698 (28000): Access denied for user 'root'@'localhost'網路上很多資料和解法,但沒道理啊!!我全新的機器吶!!
結果看完悟出來一個道理:沒有權限r所以最簡單的解法如下:$ sudo mysql_secure_installation 解決了 😂😂😂

[筆記] 使用 Python 抓取 Google Maps API 地標資料(上)

圖片
起因是工作上的需求需要抓取 Google Maps 上的地標,就順便記錄一下過程。但我其實沒有真正寫過 Python,所以如果有任何意見或建議都歡迎 鞭我 跟我分享。特別提一下 Google Maps 不像其他 Google 服務有把 API 一起包在 Google API Client Library 裡面,而是自己獨立的 Google Maps API,我覺得是蠻奇怪的(如果有人知道為什麼請跟我說)。好在 Google Maps 也是有提供 Apache 2.0 授權的 Client,包含多種語言,都放在 GitHub 上:Java Client for Google Maps ServicesPython Client for Google Maps ServicesGo Client for Google Maps ServicesNode.js Client for Google Maps Services這次為了 時程 快速上手,我就選 Python client 來試試看。其實我真的很想藉這個機會碰碰 Go 的說⋯⋯
以上的 client 都包含了下列服務的 API,看起來應該是蠻方便的:Google Maps Directions APIGoogle Maps Distance Matrix APIGoogle Maps Elevation APIGoogle Maps Geocoding APIGoogle Places APIGoogle Maps Roads APIGoogle Maps Time Zone API更多 client 的簡介和特性,可以到這裡晃晃:Google 地圖 Web 服務的用戶端程式庫這次我們就鎖定 Google Places API 來 示範 紀錄啦。其實官方文件寫的還算清楚,只是分佈在很多地方。
好 der,那就來抓抓看吧~環境說明Python Client for Google Maps Services 要求 Python 2.7 或以上的執行環境。我們這次採用 Python 3.6.2,並且以 pyenv 做版本管理。使用 Pipenv 管理專案套件,同時也會自動建立 virtualenv 虛擬環境。使用 dotenv 儲存敏感資訊,後面會再說明使用的情境。申請 Google Maps API key所有…

小克 2017 不能沒有、2018 一定繼續用的必裝 app 下載私藏推薦 (Android/iOS)

圖片
一直以來我都是 app 安裝狂熱者,
依據 App Usage 幫我的統計,我在手機上裝了 270 左右個 app 😂😂,
其中不乏許多既熱門又實用的 app。但安裝的程式可不是跟風或找熱門 app 而已,我對我用的程式要求可是很高:UI 介面要在水準以上,完全不能接受醜介面UX 使用者體驗要很好,順手、動畫符合邏輯、不卡頓最好進度/資料能夠同步到雲端,避免資料遺失,並省去備份的麻煩安全考量,盡量不用中國製的 app免費、功能全面者優先最近我的手機送去換電池,拿出了塵封已久的 HTC One (M7) 當作暫時的主力機。
也藉這個機會試試看完全歸零的手機,
我會裝什麼我認為必備 app,度過我的數位生活呢?這一篇,就是我的 2017 離不開,
2018 一定繼續使用的私人珍藏、必裝、必備、必下載、不裝不行的私藏 app 列表。20171230 更新:新增 Google 注音、客服省錢通、BigGo、Hurry大家都說好用必備類這一部分就是大家都不意外會裝的程式了,就不多說,還是整理在這裡。FacebookInstagramMessengerLINEGoogle ChromeGoogle 地圖YouTube你可能知道的基本款工具類Google 相簿 (iOS, Android)
Google 相簿預設已經是內建在我的 HTC 10 裡面,但是無論你是 iOS 還是 Android 都十分推薦你安裝。
除了基本款的自動備份相簿外,
Google 強大的人臉辨識以及物品、場景辨識,讓你可以用關鍵字搜尋到你想找的照片。
關鍵字可以像是:狗、籃球場、澎湖、小克、畢業照
還會自動幫你修圖,或是生成有趣的影片。有連拍照片的話也會有可愛的 GIF 動圖給你下載。Whoscall (iOS, Android)
這個基本上有手機功能的都是必裝軟體好嗎!
拜託趕快裝起來,不要再接奇怪的推銷電話了Whoscall SMS (Android)
這個比較少人知道,基本上就是 Whoscall 出的簡訊收發程式。
現在人基本上朋友都不傳簡訊了,面對整排的陌生電話,用 Whoscall SMS 收簡訊可以讓你一目瞭然到底是哪些「聯絡人」傳訊息給你。Google 注音輸入法 (iOS 特殊教學, Android)
最好的注音輸入法,除了界面最好看,字彙會自動跟線上關鍵字整合,並且語音輸入準確度…

如何不寫程式取得 Facebook 粉絲專頁永久 Access Token?

圖片
我們需要透過 Facebook 提供的圖形 API(Graph API)來取得每個粉絲專頁的權杖(token)。
以下是 Facebook 文件中對於 Graph API 的描述:圖形 API 是在 Facebook 社交關係圖存取和輸出資料的主要方法。這是低層級 HTTP 型 API,可用來查詢資料、發佈新動態、上傳相片、以及各種應用程式可能要進行的工作。本指南旨在說明如何透過圖形 API 完成上述所有工作。步驟 1:前往 Graph API Explorer進入 Facebook for Developers(http://developers.facebook.com)後,選擇「工具及支援」,找到「圖形 API 測試工具(Graph API Explorer)」。步驟 2:選取 Facebook App接著在應用程式(Applications)下拉選單中,選擇用於取得 Access Token 的 app。這裡以我先前創的,名為「小克’s 部落格」的 app 為例。尚未建立 app 的話可以到 https://developers.facebook.com/apps/ 先建一個,這裡不再贅述。
步驟 3:取得 User Access Token接下來這一步很重要,我們要勾選要給予什麼權限給 App。先點選「取得權杖(Get Token)」中的「取得用戶存取權杖(Get User Access Token)」。
此時會跳出一個「選擇權限(Select Permissions)」視窗,選擇你想要授權的權限。這裡以我想要用 API 張貼文章到粉絲專頁為例,我需要的權限為「publish_pages」和「manage_pages」。選好後點選下方的「取得存取權杖(Get Access Token)」
接著就會跳出 Facebook app 常見的授權視窗,此視窗先授權帳號的基本公開資料。
授權後會再跳出進階的授權選項,請依需求授權(如:僅授權部分粉絲專頁)。
步驟 4:延長/換取長期 Token授權後,會拿到一組短期的用戶存取權杖(short-lived user access token)。點擊 Access Token 欄位中的 ⓘ 可以看到這個 token 的相關資訊,目前這組 token 是有到期時間的。這時選擇下方的「以存取權杖工具開啟(Open in Access…

[筆記] 複製 Git repo 要怎麼做?

更新:抱歉本篇犯蠢 XDDgit clone 指令是可以直接指定目錄名的$ git clone 來源 目錄名 下面的內容就留個犯蠢的紀錄,也當做複習 git reset 好了 😂
感謝 Rover12421 網友因為臨時有要多開站台的需求,需要同一個 repo 複製成多個目錄。
git clone 指令預設的目錄名稱就是跟原始 repo 一樣,無法達到我們的需求。
於是就試試看直接複製 .git 目錄吧。步驟一:複製 .git假設我們是要把 /mnt/www 中的 web-a 複製到 web-b$ cd /mnt/www $ sudomkdir -p ./web-b/.git $ cp -r ./web-a/.git ./web-b 步驟二:重置 Git 狀態接著我們要使用 git reset 功能來重置到 Git 的初始狀態,
千萬不要亂 push 啊$ git status # 可以查看當前狀態,目前它認為你把所有檔案刪了 $ git reset --hard HEAD $ git status # 再看一次當前狀態,目前是回到最新的 commit 狀態步驟三:抓檔沒錯,就是可以開始 pull 了$ git pull # 可以開始抓檔了完成啦!接下來就是等同你全新 clone 一個 repo 下來啦,
該做什麼就做吧!
例如:Laravel 專案從 GitHub clone 下來後要做什麼?