Using C++
第五版新增一個功能--'Memory Daily',此功能用于背單詞,畢竟作為生詞本的最終目的還是要‘記’生詞,所以增加這樣的一個功能還是需要的。此想法來自今天剛請俺吃飯的‘前’老板,嘿嘿~ LingosHook在這里下載,此版本還修改了如下地方: 1. 提高HTML解析容錯能力,包括支持“破碎”HTML數據,和對<PARAM>標簽的支持,具體參見這里; 2. 修改HotKey抓取‘重復’錯誤,這個問題會發生在使用Hotkey功能抓取數據的情況下,由于消息處理重復,導致數據被抓取兩次; 3. 增加了‘數據同步’的選項,這個后面說明。 這次就做了上面這些改動,主要時間都消耗在‘Memory Daily’功能上了,下面說明一下這個功能是怎么回事。 ‘Memory Daily’記單詞的方式和常使用的背單詞發式不太相同,不是列出‘生詞’,然后選擇其‘意義’的方式,而是采用對生詞‘熟悉度’的檢查來自我判斷是否‘記住’了的方法。‘熟悉度’的概念是從‘不熟悉’到‘熟悉’的一個漸進過程,因此這里建議每天都自我檢查一下,使用一下這個功能,這也是此功能叫做‘Memory Daily’的緣由。如果你是位WOWer,就當‘日常任務’一起做了吧。。。嘿嘿~ 采用此方式的一個原因是由于LingosHook的數據是“隨意”抓取的,而不是主動輸入的。簡單地說,我們經常會對某個單詞無意識使用Lingoes‘Mouse Over’一下,來確認自己的記憶是否正確,而實際上對某些單詞可能會100%認識,比如字母A,或者我們只是想看看,并沒有打算當時就記住其意義,比如Armageddon(我完全想不起什么時間見過并查過這個詞。。。)。但此時LingosHook是不關心目的的,都會抓取此單詞數據。因此使用“熟悉度”方式來“刷新記憶”可能會是一個好的選擇。 如上圖所示,當生詞被顯示時,LingosHook“詢問”對生詞的“熟悉度”感覺,從上到下的意思分別是‘熟悉’,‘知道’,‘迷糊’和‘完全不知道’,也就是對生詞的‘熟悉度’分為四級,即從‘熟悉’到‘不熟悉’。當選定了級別后,右側就會顯示出結果信息,用于參考。如下圖所示: 每次做了選擇時,LingosHook都會做相應的記錄,以建立對單個生詞的‘熟悉度’信息,供分析使用。目前生詞的出現順序不是單純的‘隨機’方式,而是與‘熟悉度’數據相關的。后面可能會改動,因此什么機制,先猜猜了,反正隨著生詞的數量增加,其原理會越來越明了。試試先,有啥問題,再改~ 下面是'Memory Daily'功能的使用說明,如上圖所示, ‘Remove’按鈕:用于刪除當前生詞(比如認為完全記住了,不是生詞了,或者認為完全記不住,放著沒用時,都可以刪除。。。),并顯示下一個; ‘Next’按鈕:用于顯示下一個生詞; ‘Re-Generate’按鈕:用于重新生成生詞記憶列表;(多點幾次這個鈕,就會發現生詞列表順序了。。。) 關于'Memory Daily'的說明就這些,下面是對'Data Synchronization'配置項的說明。 隨著LingosHook內部使用數據的對象越來越多,數據同步沖突問題越來越明顯,主要表現在‘性能’方面。比如當在使用‘Memory Daily’功能時,刪除一個單詞,此時就需要單詞‘Index’列表中和‘Classifications’分類中同時刪除此單詞信息;反之在‘Index’刪除一個單詞或者新增單詞的過程也是類似,關聯的事件越多,所需要‘同步’做的操作就越多,自然LingosHook性能就會有影響。目前看當數據變化時,'Memory Daily'的性能最差,因為其定位單詞的位置的操作消耗較大。 因此依據上面的原因,增加此配置項,用于設置當數據變化時,主要是單詞新增和刪除的操作,是否對其它對象做相應的操作。當前缺省為開啟,因為我實際使用中,150左右的單詞情況下,并沒有出現很嚴重的‘性能’問題。為了更好體驗LingosHook的功能,所以默認開啟的。提供這這個配置只是為從代碼中看到的風險預留處理方案而已。 就這些,敬請使用。
posted on 2010-04-01 23:23 codejie 閱讀(3538) 評論(13) 編輯 收藏 引用 所屬分類: 隨筆而已 、輪子精神 、LingosHook
lingoes的作者真太無聊了,不知他安的是什么心,hook又失效了,在2.7版本上用不了,lingoes可是強行升級的。 回復 更多評論
@2。。表冤枉Lingoes啊,這個HOOK跟Lingoes的作者么點點關系的。。。HOOK失效多數是因為抓取詞典結果錯誤導致的,目前僅支持一個VICON詞典,所以如果沒有這個詞典,就不會抓取到結果。2.7版本沒問題的,我自己也用2.7的。LingosHook還處于開發階段,請多擔待先~ 回復 更多評論
這個功能非常好,正在試用,此功能很像 SuperMemo UX 感謝您開發這個程序!! 回復 更多評論
@opiater當時只是原來的boss跟我說過這樣一個想法,后來才發現就是大名鼎鼎SuperMemo使用的。當然沒法跟SuperMemo比,人家有整套理論基礎的,LingosHook這個就是簡單的頻次統計。源碼是開放的,有興趣可以根據自己需求改改,簡單的。 回復 更多評論
很不錯!要是能加上時間判斷、那個啥艾賓浩斯曲線之類的功能就完美了! 回復 更多評論
@hexawing那理論太高深,搞不懂啊... 回復 更多評論
分數機制不錯!如果有0分更好(近期已經記熟的單詞,但一個月后可能會忘):新單詞查詢一次分數為1,舊單詞最熟悉也只能為1,不易區分;刪除的話,以后想看看LingosHook幫我記住了哪些單詞都不行了(一個月后忘記了也不能及時復習)(delete一般用來刪除誤抓的詞,再熟悉也不刪[你總有忘那一天的{導致我現在1分的單詞太多了}]) 回復 更多評論
分數機制不錯!如果有0分更好(近期記熟且短期內無須再記[不再出現在1分的記憶列表],但一個月后可能會忘的詞):新單詞查詢一次分數為1,舊單詞最熟悉也只能為1,不易區分;刪除的話,以后想看看LingosHook幫我記住了哪些單詞都不行了(一個月后忘記了也不能及時復習)(delete一般用來刪除誤抓的詞,再熟悉也不想刪[你總有忘那一天的{導致我現在1分的單詞太多了}])ps. 記單詞快捷鍵(01234)在小鍵盤處不可用,本來可以單手輕松操作的。 回復 更多評論
@Lqs這個分數機制跟時間還沒有對應關系,就是說,不會因為分數低就會很晚才出現,目前機制是根據分數隨機出現的幾率不同。一直想改這部分,就是想不好一個滿意的方案,所以一直沒動。LAC我就用的是另一套,采用的是跟時間相關的方法。讓我再想想啊。。。另,小鍵盤不能用好還真沒注意到,主要是啊--筆記本沒有小鍵盤。。。我查查代碼去,爭取這個版本就改好。感謝你的使用和建議! 回復 更多評論
cppblog.com回檔問題很嚴重啊。。。 回復 更多評論