如何更改 Mac 的 Computer Name

Mac 預設的 Computer Name 是User Name 加上機器名稱(例如MacBook-Pro),導致 Computer Name 常常是一大串,開啟 Terminal 時的提示字串也變得落落長。

而且 Mac 不像 Windows 有提供修改 Computer Name 的介面,超後悔買 Mac 的

好在找到利用 Terminal 修改 Computer Name 的指令,Mac 連 Computer Name 都只能下指令修改,會不會太潮了!?

指令如下:
修改 Computer Name
scutil --set LocalHostName "[New Name]"

查詢 Computer Name
scutil --get LocalHostName "[New Name]"

修改之後,不需重啟即自動生效。

分類:

使用 Yahoo 隱藏版 API 查詢股市資料

以往 Google Finance 和 Yahoo Finance 都有提供股市資訊的 API,不過現在都已經停用了。前陣子找到了一個免費的美股API MarkitOnDemand,這個 API 提供的資料算是齊全,不過資料有點問題(我發現某些個股的收盤價不對),看 GitHub 上有人回報的 issue 也都沒解決,應該是已經不維護了。

YQL

Yahoo Finance 官方 API 雖然已經停用,目前仍可透過 YQL 查詢。YQL 是 Yahoo 提供的一個 服務,讓開發者透過類似 SQL 的指令,就能透過 API 查詢資料。Yahoo 提供 YQL Console 的介面,可以線上使用 YQL 查詢資料。

因為 Yahoo Finance API 目前是由社群 datatables.org 維護的,所以進入 YQL Console 之後,要勾選左上方的「Show Community Tables」,才能在左下方的清單找到 yahoo.finance.*。

YQL 語法和 SQL 極為類似,例如下圖,yahoo.finance.quote 是 Table Name,將要查詢的個股代碼以 where 方式作篩選,查詢結果會以 XML 或 JSON 格式輸出。

YQL Console 下方會產生 REST 的 URL 字串,不過直接執行會有錯誤。REST URL 請改用下方的格式
http://query.yahooapis.com/v1/public/yql?format={Format}&env=store://datatables.org/alltableswithkeys&q={YQL}

以下是幾個範例:
查詢個股
http://query.yahooapis.com/v1/public/yql?format=json&env=store://datatables.org/alltableswithkeys&q=select * from yahoo.finance.quote where symbol in ('GOOG','APPL')

註:此非即時股價,有十五分鐘的延遲時間

查詢個股歷史股價
http://query.yahooapis.com/v1/public/yql?format=json&env=store://datatables.org/alltableswithkeys&q=select * from yahoo.finance.historicaldata where symbol = 'GOOG' and startDate = '2016-03-01' and endDate = '2016-03-12'

但 YQL 輸出的 JSON 格式有點醜,在 JSON Parse 上要花點時間。

Yahoo 沒有提供 YQL API 的任何文件,唯一的文件由社群放在 GitHub,但已經多年未更新。 Yahoo 看似已經不再維護  YQL,未來會不會像 Yahoo Pipes 一樣收起來,就不得而知了,Yahoo 目前的經營狀況實在令人擔心啊。

隱藏版 Finance API:iChart

YQL 的 API 雖然沒有文件,但還算堪用。其實我在找資料的過程中,意外發現了一個  Yahoo 隱藏版的 Finance API:Yahoo iChart API。從命名猜測,這個 API 應該是提供歷史資料來畫趨勢圖用的。

範例如下:
http://ichart.finance.yahoo.com/table.csv?g=d&f=2014&e=12&c=2014&b=10&a=7&d=7&s=AAPL

輸出是 CSV 格式
以下文章有列出 iChart 的 Query String 查詢變數
Yahoo Finance (hidden) API

另一個更強大的隱藏版 API,可以查詢每天每小時的歷史股價。
其格式如下:
http://chartapi.finance.yahoo.com/instrument/1.0/{Symbol}/chartdata;type=quote;range={range}/{format}

範例如下:
Google 近一年每天的歷史股價
http://chartapi.finance.yahoo.com/instrument/1.0/GOOG/chartdata;type=quote;range=1y/csv
Google 近一個月每天的歷史股價
http://chartapi.finance.yahoo.com/instrument/1.0/GOOG/chartdata;type=quote;range=1y/csv
Google 最近日期的每小時歷史股價
http://chartapi.finance.yahoo.com/instrument/1.0/GOOG/chartdata;type=quote;range=1d/csv

  • 資料區間(range)改成 5d,可查詢五天內每小時股價,改成 3m,可查詢近三個月內每天的股價。
  • 資料格式(format),有 CSV、JSON、XML三種輸出格式。

最後,以上這些 API,除可查詢美股之外,將股市代碼改為「台股代碼.TW」(例如台積電是2330.TW),就能查詢台股資料,實在是太強大了!







分類:

如何以較低價訂購機票和住宿

從我開始工作後,除了出差,只要是出國,一定選擇自由行,跟旅行團固然比較方便,不必自己訂機票住宿及安排行程,但相對的也少了自由與彈性。一直以來,我都是自己上網搞定出國旅遊的機票和住宿,這樣做,除了能找到更符合自己需求的班機時間,以及住宿地點,通常也能以比市價便宜的價格購得 (個人經驗大約便宜一成左右),省下旅行中占較大預算比例的機票和住宿,還可以將省下的前用在其他諸如門票、交通或餐廳的花費上,也算是不無小補。

分類:

Material Design Color Palette

多數開發者並非美工專業,因此開發過程中最傷腦筋的莫過於介面配色的協調,在 Google 推出 Material Design Style 之後,也佛心來的在官網放上配色建議與色碼,開發者將自己喜愛色系的配色加入 APP 中。

Google Material Design Color Palette


這個網站上也提供 Illustrator 和 Photoshop 的 palette 檔可以下載。

另一個好用的工具是配色產生器 Material Palette,任選兩種顏色,網站就會產生預覽畫面,以及相關色碼可供複製。


也可以下載多種格式的色碼檔案,Android 請下載 XML 檔。



分類: ,

在 GitHub 使用 A 記錄網域名稱的方法

之前曾經介紹過「如何在 GitHub 建立靜態網站」,如果有自己的網域名稱 CNAME(例如blog.domain.com),只要在根目錄下建立一個 CNAME 檔案,檔案內容就是你的 domain name,然後把這筆 CNAME 加入 DNS 的設定(各家網域名稱提供者都有提供介面可以維護)。就能在 GitHub 使用自己的網域名稱。

而 A 記錄的設定則比較繁瑣(所謂 A 紀錄是指 domain.com 格式的網域名稱,即 A Record,或稱「二級網域」),要在 GitHub 上使用 A 記錄網域名稱,其網頁只要放在 master branch,不用放到 gh-page 分支。

以下是 GitHub 的設定 [參考]
  1. 首先 repo name 要命名為 <username>.github.io
  2. 網頁 commit 到 repo 的 master 分支
  3. 根目錄建立 CNAME 檔案,檔案內容是 domain name(例如 domain.com)
接著設定 DNS
1. 將 192.30.252.153 和 192.30.252.154 設定至 A 記錄


2. CNAME 設定 www 指向 <username>.github.io


DNS 設定之後,等待約莫 1 至 48 小時,讓全球的 DNS 同步更新後,即可看到結果。

也可以在命令列模式下使用 dig 指令測試
dig domain.com +nostats +nocomments +nocmd

當其回應如下,表示設定成功。

當 GitHub 的 A記錄網域名稱設定之後,其 GitHub Page 會自動得到一個 domain.com/RepoName 的連結。例如,我的網域名稱是 abc.com,而我有一個叫做 def 的 GitHub Page repo,那麼這個 GitHub Page 的對外連結除了可以用原本的 username.github.io/def 以及自訂的 CNAME 網域(例如 def.abc.com)之外,也可使用 abc.com/def 這個連結。

參考資料



分類:

在 Heroku 執行 Python 的批次程式

之前的文章曾分享,使用 Heroku Scheduler 在雲端平台執行批次程式。不過 Heroku Scheduler 的排程比較沒有彈性。如果你的程式是 Python,則可以利用 APScheduler 套件,在 Heroku 上以 Custom Clock Processes 的方式執行批次程式。這種作法,只需將程式佈署到 Heroku 上,不用 Heroku Scheduler Add-on 的輔助,利用 APScheduler 來達到更有彈性的程式排程。

在 Heroku Dev Center 的一篇文章 Scheduled Jobs with Custom Clock Processes in Python with APScheduler,有 APScheduler 的範例程式,以及簡單的佈署教學。

將 Python 程式佈署到 Heroku 之前,要準備三個檔案:
  • Python 程式
  • requirements.txt:列出Python 使用的套件,這個檔案能讓 Heroku 在佈署後,使用 pip 自動安裝這些套件
  • Profile:這個檔案定義了這個APP的程式語言,以及是前台(web)或後台(clock)的程式
以下是 Profile 的內容。
clock: python [Python file name]

程式佈署的方法,可參照我之前的文章。成功之後,Dashboard 會多一個新的 clock Dynos。從 Dynos 右邊的按鈕就可以啟用程式。


也可以使用命令列方式啟用程式
heroku ps:scale clock=1
要看程式是否正常執行,只能用命令列方式去看 Log。這裡顯示的 Log 包括系統紀錄,以及開發者自行在程式中 print 的紀錄。
heroku logs --app [APP Name]

這個作法,不論 Python 程式如何執行,排程如何定義,由於是使用 Free Dynos,都不用錢,你要三分鐘執行一次也行。


分類: , ,

Readmoo 電子書網站

過去習慣用來紀錄書籍的網站 aNobii 似乎越來越難用了,不但龜速,中文有亂碼,新增中文書籍還要審核好久。所以趁著過年期間,索性就把資料轉到 Readmoo 網站。

Readmoo 本身是販售電子書的網站,這個網站同時也提供類似 aNobii 的個人書櫃服務,稱為 Readmoo 分享書。除了讓讀者管理自己閱讀的書籍之外,還可以分享個人的書單,算是頗為社群化的網站。

這是我在 Readmoo 的網址:https://share.readmoo.com/mooer/prvhovufn/bookshelf/ccjeng/total
裡頭有我看過的書籍,以及分享的書單(持續整理中),歡迎分享交流!


分類:

Copyright © Andy Cheng

Distributed By My Blogger Themes | Blogger Theme By NewBloggerThemes Up ↑