Pages

2012-03-30

使用Python產生密碼+更新日期字串

現代人穿梭於Internet網站之間,會員帳號/密碼管理成為一個重要課題。很推薦一套免安裝的密碼管理軟體「KeePass Password Safe」,它也有Android手機版本,能共用加密資料庫。某些網站基於安全理由會強制用戶得定期更新密碼,雖然KeePass都有提供密碼產生工具,但人就是懶惰,連開啟密碼產生器都嫌麻煩,最好是按個Hot Key就產生制式密碼串最好。

我個人比較不重要的密碼串,偏好喜歡用「2位英文+8位數字」共10位長的隨機字元,再儲存於KeePass項目備註裏。例如產生以下的字串:

PWD: ec26636617(2012/03/26 02:47:46 updated)
為了使用方便,我在Notepad++裏呼叫Python Script,即可輕易得到這樣的字串產出:
from random import *
import string
import time

#------------------------------------------------------------
# 可使用的字元來源
# string.ascii_letters, string.digits
# string.ascii_uppercase, string.ascii_lowercase
#------------------------------------------------------------
def Rand_Abc2Num8():
abc = ''.join(choice(string.ascii_lowercase) for x in range(2)) # 隨機抽出2個
num = ''.join(choice(string.digits) for x in range(8)) # 隨機抽出8個
dat = time.strftime('%Y/%m/%d %H:%M:%S') # 現在日期
return abc + '' + num + '(' + dat + ' updated)' # 組合字串

editor.replaceSel(Rand_Abc2Num8())
產出字串裏,密碼與日期中間不用空白隔開,是因為方便滑鼠點兩下選取密碼字串。 Python網上範例碼真的蠻多的,結合在Notepad++中呼叫執行,可以產出很多種自訂字串,極為方便。

我並沒有深入研究Python(也不必要),只要把我的需求Keyword作Google搜尋,把簡單可理解的Script範例拿來改,遇到不懂的再查書即可。以下超推薦這本Python入門書,用詞精簡又文風生趣,也兼顧到Python v2.6與v3.1跳版的相容性。


Beginning Python Using Python 2.6 and Python 3.1
Python EBook

2012-03-27

密封式玻璃水瓶Bottle

因為要減重晚上不吃,備有睡前牛奶來止住飢餓,但一直沒有賞心悅目又能去味清洗的玻璃容器。研究了市場上的的玻璃容器產品,規格上大致以日製「HARIO RPL-1400 玻璃冷水壺1400CC」$260 TWD勝出。可惜它的瓶口沒有密封設計,對於有味道的汁液盛裝,並不妥當。

玻璃容器選購策略如下
1. 能放入一般冰箱側門空間(約10-12cm),因為舊式冰箱有設計直立式空槽並不多。
2. 寬瓶口設計,方便刷子清洗,瓶身不要太曲線洗不到的地方。
3. 透明瓶身,如此才能賞心悅目。
4. 瓶身不要過重,容量在1000cc以上。

某一天突然想到,用來放梅酒的台製玻璃圓直瓶,不是很適合嗎?雖然容量才600ml,但售價只要$50 TWD。雖然它重一些質感弱些,但還沒找到理想玻璃容器前,將就一下也是行的。冰鎮後效果不錯,牛奶喝起來覺得特別香甜。

Circular Bottle

2012-03-24

Casio平價慢跑錶

平時有在慢跑健身,很容易忘了圈數,一直以來我靠著換跑道或手上鑰匙換手的方式來輔助記憶,上週朋友提議一起合購慢跑電子錶,徹底解決圈數記憶問題。由於小六有了金屬錶後,就沒再戴過電子錶,加上我的手腕比較細,因此購買策略上就是選擇平價的慢跑專用錶,經過Survey之後,選擇「Casio SDB-100-1A」慢跑錶。
Casio SDB-100-1A 

它雖是女款設計,但黑色款外觀中性,也適合手腕細的男生,更加有輕巧(28g)的優勢。露拍價是$890元,碼錶及圈數的按鈕都在錶面,比一般側面的好按許多(只需單指)。或許這款錶鎖定在女性消費者,因此在操作設計上都很簡單直覺,學習一下就可上手。

錶的實際規格與Size不在這邊贅述。它主要提供每一圈的Period時間及計數,可以記憶61圈,若輸入步距資訊,最後能得到總距離、時間及每一圈的資訊。現在運動健身很怕過量而引起傷害,所以除了數圈外,我也會設定一定時間鬧鐘提示,時間到立刻走人不留戀。尤其在游泳池,皮膚泡水太久真的不是很好,有了這電子錶,一切都理智多了。

2012-03-22

露天PayLink代付的幾項爭議

PayLink是露天推出的第三方支付服務,賣家提供PayLink服務之後,買家便可以透過PayLink付款,款項將會由PayLink替買賣雙方暫時保管10天,10天之後款項會自動撥款給賣家。透過暫時保管的方式,可以提供買家購物保障,也有助於賣家提升服務品質。

Ruten PayLink

我蠻肯定這樣的代付安全機制,因此類似這樣機制的「Yahoo輕鬆付」出來時,我也申辦了。但因為要對賣家收手續費及有匯款劫標的問題,因此賣家很少使用它,讓身為買家的我沒處用,只好把儲值內的錢贖回。露天這次推出PayLink代付機制,雖然有買家不必事先儲值,賣家不收手續費的優點,但仍有以下的爭議:

對買家而言:
1. 代管的錢發生商品不符爭議,賣家也同意退款了,但那筆錢無法有個方便的機制匯回賣家帳戶! 在大陸支付寶,賣家同意退款,買家在幾分鐘就可回收這筆錢。PayLink酌收匯款款費還合理,畢竟買家評估決策失誤,付點學費是OK的。

2. 買家沒有自己專屬的PayLink帳號及儲值來處理平時支付的動作,對於經常使用此支付的買家,會產生多筆的ATM轉帳費。我覺得最好能有個專屬買家帳戶,常常網購的買家就能方便地儲值及得到匯回款,增加處理時效性。

對賣家而言:
1. PayLink要能提領保管金,賣家須通過書面身份認證(身份證/銀行存摺/滿20歲),但露天預設直接啟用PayLink,讓不知情的買家把錢匯入了賣家PayLink帳戶,使得一些未成年的賣家無法請領該款項,這筆錢就這樣卡住了。客訴時露天卻要賣家直接找PayLink處理,自己卻好像完全沒責任似的,但這問題卻是露天未經賣家同意所造成的困擾啊~

2. 若入帳的帳戶非台新銀行,須付10元轉帳手續費,這是一個多出來的成本,但還能接受。另外,成功入帳後要4個工作天才可提領,且每日限額3萬,曠時太久且金額限額太低了,這實在是大問題。

3. 出貨寄件(2天) + 進帳保管時間(10天) + 提領申請 (4天),賣家共要16天才能領到錢!為了得到良好的履約保障,前2項委曲賣家是OK, 不過最後一項宜加速些。

以上是個人對PayLink推出所看到的爭議點,或許這代付機制會持續改進,本文章保留隨時日後修正的權利。這也希它能活比較久一些,雖然很多代付機制跟大陸「支付寶」比起來是嚴重不足的,但許多問題是因為卡在台灣金管會條例的限制。台灣那麼小網上代收付機制卻無靈活能力,說穿了是假金融安全名義,以獨厚傳統銀行而己,政府真該與時俱進,有所作為才是。

2012-03-18

樂扣Lock&Lock玻璃保鮮盒

不知何時開始,我很愛用保鮮盒,由便宜的雜牌塑膠收納盒,到選擇蓋子專利的樂扣牌(Lock&Lock)。後來出了「玻璃」保鮮盒,它的價格比塑膠貴上2倍,但優點是能放電鍋、微波爐,更重要是盒子好洗,也不會殘留味道(最重要)。某年心一狠就買了Cosco「GlassLock」玻璃保鮮盒18件組,從此就愛上玻璃盒(雖然它挺重的)。

樂扣牌的玻璃保鮮盒比較晚出現,而且一出來價格嚇死人,是GlassLock牌的2-3倍,雖然它的材質還能進烤箱,但價不親民只能高處不勝寒。眼看玻璃盒市佔率被GlassLock搶光,樂扣牌最近在大賣場以6折價作促銷,身為玻璃盒愛用者的我,當然得買來體驗一番,品味兩者差別在何處。

Lock&Lock 950ml

賣場裏全部以6折價促銷,各種形狀及Size定價不同,我身為重度使用者,很清楚小盒並不實用。況且整體玻璃盒賣價也只是「相對便宜」,尋出求CP值高的,就是以上圖這950ml圓形玻璃盒賣$179最合算,它的原價可是299元呢! (Crazy~)

雖然方型比較好攜帶,其實圓形使用上也不錯,買回家(我偏好同Size成對買)立刻使用,且不說樂扣牌的玻璃材質更勝一籌,摸起來的觸感及盒面開闊度,加上它的專利蓋子配合,硬是比GlassLock高上一級,優劣立判。以目前6折促銷價及該Size來比較,並不會比Cosco GlassLock的18件組(蓋子也算一件)貴。

其他牌子的玻璃盒,玻璃材質通常符合商品宣稱的(畢竟都要高溫實驗過),但蓋子不是顏色、質感太差,就是不好開蓋,得硬扭猛扯的。這道理跟買傘一樣,傘好不好用,在開傘的剎那,你就知道品質了!

2012-03-16

Notepad++插入日期文字

說也好笑,連Windows內建的陽春Notepad筆記本編輯器,都有內建F5插入日期文字,身為有UltraEdit替代品的Notepad++文書編輯器(以下簡稱NPP)竟沒有!! 搜尋了一下,發現使Notepad++用的外掛「Python Script」方式加上Hot Key捷徑,還能做到日期字串的客製化。而且Python還能做到很多功能,一想到這些無限的可能,就原諒了Notepad++沒內建日期字串的缺點了。

1. 在工具Menu上的「Plugins/Plugin Manager/Show Plugin Manager」,安裝「Python Script」(須重啟NPP)。
NPP Plugin Manager

2. 開啟Menu選單「Plugins/Python Script/New Script」,在以下使用者路徑新增一個「InsertDateTime.py」,內容輸入:

import time
editor.replaceSel(time.strftime('%Y/%m/%d %H:%M:%S'))

C:\Users\用戶名XXX\AppData\Roaming\Notepad++\plugins\config\PythonScript\scripts\
它的「User Scripts」有固定的放置位置,你也可以建立在「Machine Scripts」的安裝目錄下,方便管理就成。
Python Script Config
這個「InsertDateTime」的項目就會出現在以下的位置:
Python Script MenuItem
3. 它預設並沒有Shortcut或Hot Key,因此重新NPP後,我們在選單Menu「Settings/Shortcut Mapper」找到該項目,並給予Hot Key (我設成UltraEdit的F7鍵,因為不肯定是否會重回它的懷抱? XD)
Shortcut Mapper
在「Plugin commands」下搜尋「InsertDateTime」項目,並設定熱鍵Hot Key. 要注意該Hot Key可能被註冊走了,例如F7被「Main menu/Search Result Window」項目給設定,必須把它取消才有效果。

4. 重啟NPP,發現Hot Key產生日期字串OK了。Python可以做很多的自動化工作,詳情皆可看Python Script官方網頁說明。

2012-03-12

替Google Blogger加入Facebook留言

Facebook Comments留言功能主要的優勢是挾帶3.5億臉書用戶的普及度,不需另行註冊即可在各種平台留言,帶來很方便的互動效果。然而,Google Blogger網誌設定中的「版面佈置/Blog Posts」區塊並不支援Facebook留言嵌入功能(畢竟是社群應用市場的競爭對手),因此我透過置底的「HTML/Javascript小工具」佈署這樣的功能。

1. 閱讀重灌狂人的教學文章「在部落格嵌入 Facebook 留言板,借3.5億個會員讓流量破表!」,取得Facebook Comments的嵌入程式碼。
Facebook Code

2. 在Blogger設定的「版面佈置」下方加入一個HTML/JavaScript小工具。Blog Posts處並無法嵌入語法,我也不想每次post文時都在文章下方把這些嵌入碼置入,畢竟模組嵌入的獨立原則概念必須把持。
Blogger Layout

3. 重點來了,留言的資料是依賴Facebook Plugin Code中的「data-href」來區別,但我們無法以伺服端語言自動產生網址,所以我用Javascript的document.location變數來代替,新增如下代碼:

<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/zh_TW/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
document.write('<div class="fb-comments" data-href="'+document.location+'" data-num-posts="5" data-width="470"></div>');
</script>

4. 測試一切正常,雖然留言位置無法跑到最適當的文章下方,但還能接受。
Facebook Comments

Cobian Backup備份保留次數

Cobian Backup是一套免費的備份軟件,它主要特色是支援Windows陰影備份(使用中的檔案可被複製),常當作Server端的備份機制。我習慣以一個目錄為單位來作備份,為了增加效率,希望它平時只備份異動的檔案就好,第3次再作一次完整的目錄備份即可。
Backup Type

以上是Cobian Backup的設定畫面,步驟1-2會形成以下History記錄的循環順序效果:
Backup History

為了節省備份空間及加速備份檔案複製至其他磁碟機,每次的備份壓成ZIP檔最好,檔名標示出日期/時間。
Backup Archives

為了避免這些備份檔日累月積把磁碟灌爆,最好是只保留三份完整備份ZIP即可,這就是選項「Full copies to keep」的功能實現。當每次執行備份完畢,它會讀取History的資料,抓取倒數第3次的Full備份時間,將它之前的所有檔案(Full+Incremental)全部刪除。在Cobian Backup裏,History並不像純Log文字記錄,它是備份軌跡的重要依據資料。

有了這自動回收的機制,我們就不用怕備份檔耗竭磁碟空間。備份次數設定裏,我很愛「3」這個數字,因為備份距離時間太近太遠都不好,選擇這數字是長久累積的備份經驗也。

2012-03-07

複製Opera的頁籤名稱及網址

當我們要複製一個網頁URL給別人時,最好是能把該Page Title及URL一起複製,這樣能讓別人迅速了解你轉貼的頁面大意。舉凡Maxthon, Firefox, Google Chrome都有Extension支援這樣的"Copy Tab Title and URL”的功能,唯獨老牌的Opera瀏覽器沒有!!

對於Opera的Extension豐富度有點小小失望,因為身為老牌瀏覽器卻缺乏一些主流常見的功能,後續的發展趨勢令人擔心了。不管如何,各自一片天,還是介紹如何實作在Opera頁面中,實現「Copy Tab Title and URL」的功能。

1. 打開Opera安裝目錄下的”/ui/standard_menu.ini”檔案,搜尋”[Document Popup Menu]"字串,在此項目”Item, MI_IDM_POPUP_ADDRESS            = Copy document address” (約720行)下新增以下內容:

Item, "Copy Tab Title and URL"="Go to page, "javascript:(function() {var s=window.getSelection(),t=document.title+'\r\n'+location.href,t=s?t:t;window.prompt('',t);})()" & Delay, 10 & Copy & Cancel"

2. 儲存檔案,並重新開啟Opera。在任一Web Page頁面按滑鼠右鍵,出現:
 WebPage ContextMenu


3. 點選該項目後,會出現一個提示視窗,但隨其就不見。這是因為Javascript無法直接存取local的剪貼簿,所以透過提示視窗複製再令其消失,乃折衷辦法也。所以本來很容易的一項人性功能,官方不做,就是累死百姓了!
Tab Title and URL


我使用OperaPortable版本沒辦法成功,它好像讀取別地方的ini檔案,但我遍尋不找。你可以直接執行”\Portable\OperaPortable\App\Opera\opera.exe”即可。