2018年6月2日 星期六

Nintendo Labo-開啟Joycon近乎無限的可能

一開始是想等台灣版啦
但是在4/25實際發售後,遲遲等不到台灣有正式代理的消息
在看著影片好幾次還是覺得很好玩的狀況下
最終還是直接找日本亞瑪遜訂貨

開箱玩過搖控車、釣魚與機車這三項後
簡單心得是:這應該不算是個Video Game
要說是親子同樂益智開發應用大集合還比較像
或說是個大家都買得起的Joycon應用展示開發包
展現了Joycon近乎無限的可能
讓人不得不佩服任天堂的巧思創意與開發這台Switch所投注的心力
以自己會寫寫簡單的程式來說
這應該夠我玩很久(不過Joycon似乎要買得夠多 XD)


2018年5月23日 星期三

利用網頁控制樹莓派(Raspberry Pi)運作

這算是很多人應用過的項目了
最近重碰Python也想到之前看過用Python的RPI.GPIO用網頁控制
就順便試著實作看看了

其實也很簡單,先把Python程式寫出來,程式碼如下:
#!/usr/bin/python3
"""上面這行不是單純註解,是讓CGI執行用的,不能忘了加"""
import sys
import cgi
import time
form = cgi.FieldStorage()

print("Content-type: text/html\n\n")
print("Hi, Python.
")
print("\n")
print(form["weblink"].value)

就把用chmod把python程式改成可執行
然後丟到CGI相關資料夾,通常是cgi-bin底下
接著就開瀏覽器去執行
結束!很簡單
所以這篇的重點不是說這個 XD

當完成上面的範例後,接著遇到的就是
如果要長時間的執行,那就必須要等待CGI程式跑完,不能關網頁
→那麼想辦法讓程式可以背景執行
→已經執行期間,給不了參數
→讓程式可以讀到網頁給的參數,甚至進行交握
→可以進行交握,可是正在運算時還是無法接受新的命令
→想辦法進行多執行緒化,讓程式可以平行作業
看來都可以解決,問題是…
怎麼做?

2018年5月19日 星期六

使用Python的urllib進行網頁資料的讀取

近來工作終於稍有喘息的空間
再來碰一下python吧,這次要學的,是網頁資料處理的urllib這個函式庫
也就是撰寫所謂的網路爬蟲程式

寫網路爬蟲程式會用到的模組是urllib模組其中的request
最簡單的使用法如下,以中央氣象局的網頁為例
import urllib.request as req
#以網址取得內容
response = req.urlopen("https://www.cwb.gov.tw/")
#顯示出抓取下來的內容
print(response.read())
然後就會看到中央氣象局的網頁原始碼(HTML)顯示在畫面上
這樣就成功了
接下來就是把讀下來的資料拿去HTMLParser分析然後抓出想要的資料了

可是不是每一個網頁都這麼好處理
有不少是希望你用瀏覽器去看,而不是單純抓資料下來
這時就會拒絕存取,顯示urllib.error.HTTPError: HTTP Error 403: Forbidden
該怎麼辦呢?這時候就需要加入Header資料去騙一下告訴伺服器
其實我是瀏覽器啦 XD

作法有兩種,一種直接在request的部分填入所需要的header資訊
import urllib.request as req
#以目標網址建立需求
header_request = req.Request("https://www.cwb.gov.tw/")
#需求加入開頭資訊,資訊名稱是User-Agent,內容是瀏覽器Chrome版本資訊
header_request.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36")
#用建立好的需求取得網址內容
response = req.urlopen(header_request)
#顯示抓取的內容
print(response.read())

另一種是建立handler與opener後,再開網頁
import urllib.request as req
#建立基本的Handler
handler = req.BaseHandler()
#以基本的Handler建立opener
opener = req.build_opener(handler)
#在opener裡面加入Header的資訊
opener.addheaders = [('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36')]
#安裝opener到request裡
req.install_opener(opener)
#開啟目標網址
response = req.urlopen(url)
#顯示抓取的內容
print(response.read())

這樣看來,似乎第2個寫法比較麻煩多了
不過如果程式上需要以同一個header多抓幾個網址的話
那麼第2個寫法就顯得比較簡單,不用每一個網址都要再建一個帶有Header的Request
另外第2個寫法也可以解決需要帳號密碼的網頁
不過要加個密碼管理器
寫法如下:
import urllib.request as req
#建立基本的PasswordManager
pwdmgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()
#加入網址、使用者帳號與密碼
pwdmgr.add_password(None,url ,user ,password)
#使用PasswordManager建立Handler
handler = req.HTTPBasicAuthHandler(pwdmgr)
#以下照舊,用Handler建opener
opener = req.build_opener(handler)
#在opener裡面加入Header的資訊
opener.addheaders = [('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36')]
#安裝opener到request裡
req.install_opener(opener)
#開啟目標網址
response = req.urlopen(url)
#顯示抓取的內容
print(response.read())

基礎大概就這些了,剩下的都是變化形了
就我目前的使用來說,夠用了

2018年1月19日 星期五

第4代Toyota Prius試駕心得


本來打定主意,去年要找個一天來試試這傳說中的省油神車
不過去年實在太忙了,一拖就是一年
終於在最近預約試乘到了
因為之前已經有開過Corolla油電的關係
沒太多驚奇的部分
但還是有幾個令人印象深刻的點


2018年1月18日 星期四

Nintendo Labo

昨天任天堂推出更有創意的Switch玩法
Nintendo Labo

看著這個影片所呈現的創意
即使第一時間就有非常多的疑慮在腦海裡轉
像是紙板不夠耐用,可能只有玩一下下就退燒等等
仍無法去否定,這看起來很好玩
尤是是第一張圖片那個機器人,看了就...喔喔喔,超有趣的,好想玩
4月20日才發售,讓我再累積一些銀彈吧

2017年12月2日 星期六

Nintendo Switch 瑪莉歐奧德賽同捆機入手!


任天堂(Nintendo)!
這名字,對於我們30幾歲這一代的人來說,就是家用電視遊戲機代名詞!
雖然從Sony推出Play Station以來,家用電視遊戲機的銷售霸主就被Sony拿走了
而我也在那時候轉投入PlayStation的玩家,出社會後更買了PS2與PS3這兩台主機。
可是任天堂不斷推出的像Wii、NDS跟3DS之類的產品
還是很吸引著我
多年前也是有購入NDS
只是一直沒買家用主機而已

然而,這次的Switch,可以說是20年來首次購入任天堂的家庭主機產品啊
而其中驅使著我購買的最大動力
就是這同捆機的瑪莉歐奧德賽!
堪稱是3D瑪莉歐集大成之作,從這開始介紹的影片就令人雙手大動
超級想玩的

更不用說實際入手後,幾乎是玩得停不了手地
拚命地,找月亮...
是得,像得了強迫症一樣
就算要過關了也是要找月亮出來
太恐怖了

不過以這台的定位來說,說是台家庭主機好像也不太完全
因為他有掌機模式,可以隨身帶著走
也可以放在桌上,把搖桿拆下來玩的桌上模式


可說是居家旅行,必備主機啊!
這麼棒的東西怎麼可以不買一個呢?
所以我就買了,配合上瑪莉歐奧德賽實在是太棒啦!
當然我也沒有忘了任天堂絕佳的同樂性
順手也買了瑪莉歐賽車8DX版
這樣有客人到家裡來的時候,可以好好廝殺同樂一番。

2017年11月25日 星期六

黏土人系列第一彈,藪貓

買完Figma之後,目光自然就投向了好微笑公司的另一個有名系列
那就是黏土人....
沒有啦,雖然最近敗家不少,但也沒那麼亂來
其實黏土人出很久了,我也一直都有觀看有沒有想要的
可是看了一看那些角色
要說很想要買也沒有
所以出了一堆,但終究還是沒有買

及便是SD鋼彈新吉翁克的MA可以變成為萬用載台好像很有趣
我也沒有買
情報-6月7日販售的「BB戰士 No.392 新吉翁克」萬用素體,在日本爆紅!!
亞克亞女神裝到玻璃罐中,丟到金魚缸裡很有趣
我也沒有買
【心得】水之女神的正確使用方式(X) GSC黏土人630 阿克婭
可是看完動物朋友後,藪貓一出,我就預定了
真的是太神奇了 XD