2018年7月31日 星期二

舊家電換節電家電之選購技巧

舊換新划算公式
新家電的價格 – 補助款 <= 舊與新家電每年耗電差距 * 平均每度電費 * 電器平均壽命
※新家電會有許多入選名單,從中選價格越高的越好。

夏天到了,用電量也即將面臨高峰。面對上千多元的電費帳單,一方面抱怨怎麼那麼貴,一方面也在怎麼想著節電。如果家裡有超過十年的老家電,冰箱、冷氣、開飲機、電視、洗衣機等,現在更是時候該好好思考了。

近來JN也想到了節電,開始先調查家裡最耗電的電器。
全年:1.電冰箱。2.開飲機。3.電腦。
前兩名因為是全天運作,所以很容易被注意到,也因為是全天運作,所以節能的效果會更是明顯。

家電會有各自的平均壽命,如冰箱壽命至少要10年以上,熱水壺則是4年以上。在計算完每年能節省多少之後,乘上電器預期壽命,如果能超過省下超過購買時的電費,那就代表現在就換其實相當划算。

像是JN家,家中的舊冰箱已經超過20年,開飲機也已經好幾年了。JN第一個目標就是換掉舊冰箱。舊冰箱除了出廠很久,而且我們家沒有習慣去換過膠條,光是每日冰箱用電,可能就佔4度以上,我猜。看了帳單以後,JN家一天平均用10度電以上,有可能就是舊冰箱佔將近一半的貢獻。

電價是有級距的差別,如果懶得計算平均,計算省電費率時,直接一度電代2.6元計算。不過可以預期是低估,因為夏天時冰箱比較耗電,節能就能剩下更多電費,平均也應該會比2.6元還高。

20年舊冰箱換新冰箱,每天省下3度的話,一年能省下近2850元,十年省下28500元,剛好就能買一台新冰箱。如果未來電費調漲,那就可以預期省下更多錢,所以現在就是個換冰箱的好時候呢!

不過不同家電的耗能會因為一些形式不同而有差異,如容量。換購新節能家電的同時,要記住新家電的容量要大於等於舊家電的容量,這樣子才能確保不會換了反倒不適用。

JN建議可以直接從節能標章的網站看起,除了有產品分類可以快速查到各類節能產品,還有產品比一比可以比較節能效率。最重要的是能從續約間接看出家電出廠時間(出廠越久,價格理論會折舊),續越多代表出廠越久。從這裡開始是最能看得一目了然的。

節能標章網址:http://www.energylabel.org.tw/index.aspx

接下來從產品型號去搜尋價格,預期正常壽命能省下的電費超過售價,就能列入考量,這是最優先的條件。再過濾使用習慣(如:舊家電容量)之後,會有便宜的家電與稍貴的家電,建議選擇較貴的家電,一方面價位高的家電能預期料材好更耐用,或是有更多好用的功能,最重要的,也代表它省下的電更多,如果電費調漲,它帶來的效益就會更多。

近年來智慧家電與節能技術的成熟,10年前更換不划算,5年前更換可能也不划算,然而,現在則是今天不馬上更換才是真的不划算。如果以投資報酬率來看,十年以上老家電換新,能達到10%以上的年報酬率,這比定存或是績優存股還高出許多,換句話說,與其存錢倒還不換新家電來得有利。


2018年7月19日 星期四

Win10下排程執行Python。

Win10下排程執行Python

有時候,人因為有事或是其他因素,無法親自開機並執行程式。JN因為有需求,所以上網學習了要如何定時開機、定時執行程式、定時關機,本文將會分成這三部分教學。


定時開機

能夠持續開機,自然就不會有這問題。但是如果一定要關機的話,定時開機就會被需要。

定時關機需要兩塊的配合:WIN10的設定、BIOS的設定。(JN的主機板是ASUS Z370

必須要把WIN10的快速啟動給取消掉,BIOS的定時啟動才會正常作動


「WIN10的設定」
1.搜尋「電源與睡眠」,進入設定。
2.從右側的相關設定,進入「其他電源設定」。
3.左側控制台首頁下方,點選「選擇按下電源按鈕時的行為」。
4.把「開啟快速啟動」關掉。若無法變更,則選點上方「變更目前無法使用的設定」再嘗試關掉快速啟動。

「BIOS」
1.進入BIOS,找到高級電池管理。(※其他BIOS幾乎也在電池管理
2.開啟「由RTC喚醒」。
3.設定定時喚醒時間。 
※如果沒有先取消「快速啟動」,直接設定此部分可能會無法正常運行。


定時執行程式

定時執行程式會分成兩部分:系統設定、Python程式碼注意事項。尤其是Python程式碼注意事項,常常一個疏漏,就無法如預期地順利執行,但是因為在編寫程式(JN用Visual Studio)上卻是沒有任何問題的。所以,請務必要仔細再仔細地檢查需要定時執行的程式碼。

「系統設定」
1.搜尋「排程工作」,進入排程工作。
2.點選右側的「建立工作」,在「一般」分頁下的安全性設定,勾選「以最高權限執行」。
3.在「觸發程序」,建立自己想要執行程式的時間。
4.在「動作」,「新增」→「瀏覽」自己想要定時執行的程式(.py),按下確定。

※在其他Blog有看到需要設定引數,但是JN此篇沒有設定,因為設定引數方式,是以「python.exe」去執行。如果沒有設定,就是以「cmd」執行。
#2019-07-07:建議輸入引數,在「程式或指令碼」輸入「python」,在「新增引數」輸入完整位置。若不輸入引數,若有用到requests套件則會挑出。只要輸入引數之後,就能正常運作。

兩者的差別在於偵錯與速度,不過會出錯的地方兩者都是一樣的,所以JN會選擇效能較優的「cmd」也就是直接執行.py檔案而不設定引數的方式。
要注意JN有提到的「出錯的地方」,因為使用定時執行程式的環境下,常常是人不在電腦前面的時候,若是有錯,往往只能看到程式已經停止運作而消失在工作列,便無從得知是哪一部份出了問題,建議使用「logging」模組去紀錄程式的運作情形。

「Python程式碼注意事項」
1.不要使用「from XXX import YYY」,也建議不要使用「import YYY as ZZZ」。
※要特別留意到引入的其他自製套件,它們也不能有「from XXX import YYY」
2.不要使用相對路徑,請使用絕對路徑。(Ex: C:\abc\def\mypy.py      不要mypy.py
3.不要包含中文路徑,請使用英文路徑。(Ex: C:\asd\fgh\mypy.py      不要 C:\我的程式\asd
※建議使用「logging」去紀錄程式運作,因為使用排程工作的程式碼出錯會直接終止程式,不會在出錯的地方停住。所以使用logging,萬一程式碼出錯,還能從log去尋找蛛絲馬跡。


定時關機

定時關機有兩種作法,一種是使用「cmd」打上「shutdown -s -c "-s 關機。 -c 顯示提示字串。 -t 設定逾期秒數" -t 300」,然後會在三百秒後關機。另外一種是在python程式碼,引入「os」模組,打上「os.system('c:\\windows\\SysWoW64\\shutdown -s -c "-s 關機。 -c 顯示提示字串。 -t 設定逾期秒數" -t 300')」

使用cmd的方法,可以搭配排程工作,能更精準的在指定時間關機。直接在「排程工作」「動作」「新增」,把關機指令「shutdown -s  -t 300」貼上到指令或程式碼去,它會提示似乎已包含引數,點選「是」。最後在「觸發程序」設定要執行的時程。

使用python的方法,可以搭配「time」模組去取得當前時間,或是在程式結束之前執行關機指令。


後記

這篇文章是已經閱覽過數篇相關,JN覺得可以寫一篇集大成的,給有需要的人直接的參照。JN加註了一些細節,都是JN在嘗試時有用到的,並不是網路教學都有寫到的,也希望能讓人在嘗試時更快找到哪個環節出了問題。




2018年6月24日 星期日

你的「平均餘命」

到底還能活多久呢?你知道你這年紀的人平均還存到幾歲呢?
使用「平均餘命查詢」來查詢看看自己的「平均餘命」還有多少年吧!
此外,也可以關心身旁的長輩還有多少平均餘命能活。

「愛要即時」

資料出處:中華民國內政部統計處 民國105年 簡易生命表

2018年6月23日 星期六

我的爬蟲進化史

JN只有看網路教學,沒有看任何一本書,所以現在自己所寫爬蟲的架構多半是靠自己發想,不知不覺也越做越有組織架構,想來紀錄今天的地步。

2018年6月19日 星期二

python -- win32gui 特定程式窗口截圖(教學)



有天想說要用python來追蹤某視窗的畫面,並且使用圖像辨識opencv來辨識狀態,如果異狀則播放音效提醒。

上網google,首先找到這一篇:
https://hutdris.blogspot.com/2016/11/pythonopencv.html

該文作者最後仍未完成,因為功能也不是如想像的那般,可行是可行,不過侷限性太大了。作者也自行提出這個問題,想要找到解決方法。

「目前是抓取該程式的畫面相對位置,如果該程式縮到最小或被其他程式蓋過,還是會持續抓取該位置的畫面。 如果希望持續擷取該程式的畫面該怎麼作」


前提就到這裡了,本文將會「提供程式碼」與「編寫邏輯」,不過JN並非專科出身,可能會有講出錯的理解,希望能夠指正JN講錯的地方。

2018年6月13日 星期三

2018.6.13 金融職業道德 -- 快問快答!

最近要考「金融市場常識與職業道德」,直接從官網下載題庫,想說就靠題庫準備了。

為了要有效率學習,JN認為必須加入一點「刺激」的要素,如時間限制,在適當的壓力之下,答題會更容易保持專注,專注也會讓人更容易記憶。

此外,也為了實踐JN自身對「效率學習」的想像。這套快問快答,會讓答錯的題目更容易出現。即使一回錯,二回錯,到了第三回,就算還不知道題目所述,但至少答案也該背起來了吧!

2018年6月2日 星期六

2018.6.2 臺大學號轉系所 (網頁版)

2018.6.2 臺大學號轉系所 (網頁)


如何使用?

1.複製學號:
文字不用整理整齊,亂成一團也沒關係,因為程式會自動找學號

2.貼上到輸入框內
 3.按下送出
4.可以將結果選取並複製到EXCEL或是其他地方


2018年2月26日 星期一

2018.2.26 Pandas.DataFrame之入門九道題目--處理從html讀取的表格


2018.2.26 Pandas.DataFrame之入門九道題目

處理從html讀取的表格


JN想標題很久,想不對甚麼會很貼切,於是勉強這樣下。

關於Python的Pandas教學,從Google搜尋就能找到許多中國的解說。不過每次JN想要做的處理,就要再次尋找相關教學,因為分散在各地,實在很麻煩又不容易學習。而且內容詳盡的教學網站都類似教科書一樣死板呈現,然而想學的地方就只是千段中的一段文字,並不能很有效就挖掘出來。JN僅推薦從「pandas 0.22.0 documentation」去尋找如何做你想要的操作。

這篇文章是以網路爬蟲的會用到「Pandas.DataFrame」的一些處理為編寫依據,也是從實戰中有做的處理。JN相信,只要能完成這九道題目,就能整理大多數從網頁讀取的表格。歡迎分享解題過程在下方留言,而JN有天也會補上自己的寫法(可能吧)。



2018年2月9日 星期五

2018.2.9 Excel物品清單原型,掌握所有物品蹤跡

2018.2.9 Excel物品清單原型,掌握所有物品蹤跡

JN最近幾天突然有感而發,腦海不時浮現一種物品清單。這物品清單要能詳盡列出物品以及其所在位置(收納位置),還有各個收納位置裡面會有甚麼物品。物品跟收納位置是雙向箭頭關係,不論從哪一個開頭,最後都能到另外一端,白話來說,從收納位置可以找到有甚麼物品在裡面,而從物品列表也可以找到是在甚麼收納位置。

這份清單的最大優點:任何人只需要搜尋這份清單,就能夠準確找到物品。(前提是做好清點)

在辦公室人來來去去,未必每一個人都清楚辦公室裡面到底有甚麼東西,以及東西在哪裡。有些時候以為沒有的東西,買了新的,才發現其實藏在小角落。或是新來的人對於想要找A4紙補充印表機,卻不知道A4紙放哪裡。最後就是有空間塞甚麼就塞,沒有做好分類,以至於各種類型的物品混雜在一塊,每次要找特定物品時,各種翻箱倒櫃好像要掀開整個辦公室,實在很傷神費工。

年關將近,這時候也是大掃除的時候。趁這時候完成物品清點並且照著填上物品清單,就能享受控管各種物品的狀況。

這份JN自製的範本,用到了函數MATCH、INDEX以及巨集。平面圖與3D圖使用到「Sweet Home 3D」繪製。

範例Excel(dropbox)※轉載須註明出處

2018年2月4日 星期日

2018.2.4 藝人教育女兒--到底有甚麼問題?JN觀點

2018.2.4 藝人教育女兒--到底有甚麼問題?JN觀點


JN在ptt上看到這篇時,真的蠻心寒的。以前小的時候覺得大人都是對的,但等到長大後才發現其實很多大人有一大堆毛病。小孩子沒有對的榜樣、對的觀念與對的教育,以至於年紀變大後而引發一大堆社會問題,但是真正可悲的是,我們多數人以歧視而不是正視那些人與背後的原因。層出不窮的社會問題,也只是合理地呈現我們怎麼樣的教育。

簡單敘述一下是甚麼樣的文章:藝人體會到父親是威嚴的角色,並指出不能總是順從女兒的意,最後當面把女兒的玩具撕毀。後續回覆在我寫這篇文章時藝人也貼了,所以我也看了。後續回覆交待了此事前因後果,就沒有前一篇文章看起來十分不妥,但其中JN也是認為大有問題。關於該藝人相關此事的新聞,JN也有找到了,如果正如新聞所說的話,該藝人的教育才真的該好好修理。

有人會認為,別人家的家務事不要插手,意思就是不要當一回事。JN沒有能力跟理由去插手別的家務事,但是想給予評論。因為這種教育觀念可不是個案,你我周圍存在著相當多數這樣認為的人。沒有人應該很自然就知道要如何適當地管教小孩,所以做得不好能夠理解,但是千萬別失去學習的能力,學習如何在小孩前做好父母能做的事,父母對小孩沒有無限上綱的權力。

該藝人的FB貼文連結、後續回覆,以及蘋果新聞。
貼文 、 後續回覆 、 相關的蘋果新聞


2018.2.3 Idle遊戲與Excel,找到最小值項目的其他資訊

2018.2.3 Idle遊戲與Excel,找到最小值項目的其他資訊

Idle遊戲是一種讓時間去玩的遊戲。購買生產單位去生產金錢,然後再購買單位,越賺越多,享受投資所帶來的成就(?)。不過單位的價錢會隨著擁有數量越來越貴,產生邊際效應遞減。到底要如何投資才能最快速的累積財富?不僅是玩Idle遊戲的要思考的,也是生活中要思考的。是現實的話就會很複雜,但遊戲就相對簡單多了。JN常常思考怎麼樣才是最好的理財方式,真的沒有甚麼頭緒,於是從Idle遊戲分析起,也許簡單的分析會想到更棒的點子。

分析Idle遊戲很容易,用Excel就能把生產力、價格等各種數據,換算出最關心的數據:生產力單位價格。生產力單位價格,指一個生產力要用多少錢買,所以這個數值越低越好。把錢拿去買生產力單位價格最低的單位,很直觀地就是最划算的投資,但真的是如此嗎?

本次Excel分析時,JN要找出範圍中最小值的項目,發現函數只能找到範圍中的最小值,無法呈現同列的其他項目,此外,弄成表格找最小值需要排列,每次手動既麻煩且項目位置又會跑掉。經過一番嘗試,JN用了三種函數:1.SMALL、2.MATCH、3.INDEX,實現了呈現最小值同一列的項目。看了MSoffice教學第一時間不太明白,於是JN寫了一個以分析Idle遊戲的範例。有個範例應該會好懂許多。

範例EXCEL(dropbox) ※轉載須註明出處

分析結論:如何最快速賺到大錢?先選生產力單位價格最低的,但若有回本時間少於前項之購買秒數,就更優先買。


2018年2月1日 星期四

2018.2.1 標記為濫用,心得紀錄(純感想與流程)

2018.2.1 標記為濫用,心得紀錄(純感想與流程)


這是一件不太容易遇到的事情:「標記為濫用」。在別人家的大本營做不好的事情,又用別人家的搜尋引擎搜尋如何處理,又在別人家的部落格發這篇心得,也算久違之後難得有動力寫篇文章。

前情提要:JN編修了程式,這個程式是個報名系統。之前的報名系統,使用者有提及一個狀況:在尖峰時段,有部分人會遺漏掉回信或缺少資料。這個情況算是很常見的問題,當圖時有大量報名者送出,而大量回覆平行運算寫入,以至於同時讀寫到同一行(正常情況下是新送出的回覆會到新的最後一行),而最後只留下最新的一筆。

要解決這個問題,就要延遲寫入,避開多數回覆同時執行寫入。就JN所知,在有「佇列 queue」或「鎖 lock」兩種方式能處理這問題。然而沒有找到佇列指令,但是有發現鎖指令。於是在程式碼中加了鎖,就能達到非同步讀取。因為只有得到鎖的線程才能讀取,其他沒有鎖的就會等待直到拿到鎖。

然而,為了測試大量回覆送出是否會出現異常,JN一共用了五十筆送出,每個送出都上傳3MB大小的檔案。這次測試之後,就發現報名系統其實就是平行運算的問題。關鍵字就是「回覆缺失、大量短時間內」。之後JN把「鎖」寫進程式內,再以三十筆回覆測試之。
(JN所參考的寫法)

這次的結果,回覆都有被寫入資料表裡而沒有任何缺失,只是收到的順序不一定是照送出的順序。大功告成。就不再需要測試這種大量送出的狀況。

卻也釀成帳號「標記為濫用」。