發表文章

從Evernote轉換到OneNote (一) 匯入與Web Clipper(卡關)

圖片
前幾天發生 台灣Evernote App登入預設導向中國版「印象筆記」的問題, 加上今天又傳出中國版的印象筆記正式從Evernote 獨立出來, 這下子不認真找備案也不行了。 不過畢竟付費了好幾年的Evernote 專業版,也使用他拿來當知識庫了好一陣子, 沒辦法找隨時可能會消失的替代品,轉換前還必須仔細檢視各個功能的替代方案。 一般會跟Evernote 的強大功能拿出來比較的,就屬微軟的OneNote了。 所以第一目標就是重新檢視OneNote。 其實在2016 微軟剛要認真推onenote時 就出了一個 匯入程式 , 但這玩意兒大概從2016剛出來的時候就沒改版過...,到現在還在英文預覽版。 而且微軟自己也把onenote2016終結了,改成 Windows 10 版 OneNote (僅標示為 "OneNote")。  所以這匯入程式用起來問題很多,當年沒換過去也是因為它太難用... 舉個例子 Evernote 平常的資料夾結構如下: 最上面 是記事本堆疊(Stack),下一層是記事本,記事本裡面存放筆記。 最外層還有個記事本(notebooks)。 而onenote的結構是 筆記本 、節群組、節、頁面(筆記)、子頁面。 Onenote的好處是一個帳號可以建立多個筆記本跟設定開關, 如果分類精準的話應該可以提升操作上的效能。 使用匯出工具時,會幫evernote的資料建立一個新的記事本 Ex:Evernote (Evernote import on 2018-06-04T17-55-32) 但是 記事本堆疊直接消失不會對應到節群組。 筆記本名稱不會對應到 onenote裡的節的名稱,而是用Pages 1-100 之類的做命名及分組。 筆記直接對應到頁面,名稱保留。 結果會直接變成下圖那樣 雖然原本evernote標籤會被轉換成onenote #Tag的形式,但基本上只會儲存一個tag 而且轉換完以後我發現有標記多個tag的筆記都不見了,明明轉換完成時沒看到錯誤訊息。 匯入時有個選項是使用tag組織記事本,它會把記事依照tag的方式存放...

寫給大忙人看的Java SE 8 讀書心得筆記與習題-第二章 Steam API

圖片
Collection API本來就很常用,多了Stream 更是讓人不用管實作的完成很多演算工作。 不過實際用起來還是要花非常多時間,用法實在太多了,配上lambda更是眼花撩亂 第二章要點 你可以從集合 陣列 Generator或是iterator中創建Stream 使用filter來選擇元素,使用map來改變元素 要從Stream中獲得結果,請使用reduction操作符,例如count、max、min 、findFirst 或findAny,其中一些方法會獲得一個Optional值 你可以收集(collect) 集合 陣列 字符串或是map中的Stream結果 Collectors 類的groupBy和partitionBy允許你對Stream中的內容分組,並獲取每個組的結果 Java 對 基本型別 int long和double提供了專門的Stream 練習題與自己版本的解答 編寫一個2.1節中for循環的並型版本,獲取處理器的數量,創造出多個獨立的執行緒(線程),每個都只處理列表的一個片段,然後將他們各自的結果彙總起來(我們不希望這些執行緒都更新一個計數器,為什麼?) public class Exercise2_1 { public static void main(String[] args) throws IOException, InterruptedException, ExecutionException { String contents = new String( Files.readAllBytes(Paths.get("src/exercises/alice.txt")), StandardCharsets.UTF_8); // 邏輯直接使用範例程式碼 List words = Arrays.asList(contents.split("[\\P{L}]+")); long count = 0; for (String w : words) { ...

寫給大忙人看的Java SE 8 讀書心得筆記與習題-第一章 lambda 表示式

圖片
此書英文原名是: java se 8 for the really impatient 就算假裝忽略即將要正式發行的java 9,這也是一本2015就出版的簡中翻譯版。 java這幾年已經算是更新慢的主流語言,卻還有一堆東西要補阿....

基隆早餐 乾麵與那些湯類

每次有親朋好友在早上來基隆時, 他們自己總是會選擇去排炭烤三明治或是吃蔥油餅。 不管吃個名氣也好,體驗一下生活也好,反正不難吃。 不過如果是要我自己帶他們去吃早餐就頭痛了, 到底要不要帶去吃那些自己平常不吃的店呢? 也許是自己的生活圈比較狹小, 印象中小時候如果不吃西式早餐店的話, 通常會看到大家有這幾種選擇: 鹹粥配炸物, 乾麵蔥油餅餛飩湯 , 米粉炒、大麵炒配魷魚羹湯或豆干包湯, 米苔目 米粉湯 粿仔湯。 鹹粥這派已經式微,只剩遠東戲院跟孝三路跟廟口的四家店。 至於豆干包就剩魚丸伯跟火車站那邊的店比較知名,口味也比較重。 個人會買安樂菜市場底的豆干包跟魷魚羹。 特色就是豆干包的肉餡不加沙茶比較清淡,魷魚羹就是花枝丸的魷魚版(魚漿加魷魚腳)。 米苔目、米粉湯、粿仔湯,手工作的人越來越少,甚至著名的沙茶粿仔直接變成沙茶乾麵店。 只剩下乾麵、餛飩湯倒是遍地開花: 蔥油餅與大餛飩 以前市區最知名的知味園跟周家雖然吃了很多次, 但是基隆特色烤過煎過乾乾脆脆的蔥油餅個人實在不愛,就愛那乾麵與大餛飩湯。 乾麵會附上幾片肉片,一點榨菜跟蔥花,再加上油跟祕方,就是一碗蔥油餅店的乾麵。 老實說帶人去蔥油餅店而自己不吃蔥油餅的事也不是沒幹過,但是就覺得有點不好意思,而且容易讓人預設那餅不好吃XD。 個人比較常吃同一家人開的東家館或今日蔥油餅,反正不吃蔥油餅就不用管餅的口感差異。 孝三路周邊 乾麵配上小餛飩湯 大概是靠近火車站與客運站的關係,成為一級戰區,連小巷子裡都一堆店家。 每家都會賣乾麵配上小餛飩湯。 基隆的乾麵標準就是廣東(仔)麵,一種相對扁薄的白麵, 就算是因為個人口味換成細麵(小條)也決不會是油麵。 乾麵上桌看起來大多是乾乾淨淨,不會有醬油膏, 再看客人自己要加上特調甜辣醬。 湯頭幾乎都是大骨為底,但是湯頭都算是清爽,一定會灑上芹菜株。 每家餛飩都可以買生的回去,但是沒那個湯頭就少一味。 比較常吃的幾間 遠東戲院教會對面麵店,特色是老板娘記憶力超好, 還有他的調味特別適合蛋黃拌麵,自從禽流感後我只敢加甜辣醬就少去了。 長腳麵店 有店面以後乾淨很多,營業時間很長。 麻醬很有特色,魯油豆腐跟豬腳也不錯 比較矮的老板以前麵煮得很有彈性,麵中間會像煮義大利麵留一點芯增加口感, 但是搬家以後吃了幾次都...

hazelcast EntryUpdatedListener oldValue

用了好一陣子的hazelcast EntryUpdatedListener, 突然發現到偶爾會有取不到oldValue的狀況。 這下子當需要舊值來判斷狀態變動程式碼全部完蛋,只好乖乖的檢查問題在哪裡。 慘案 EX EntryEvent{ entryEventType=UPDATED , member=Member[192.168.31.22]:2901 , name='Device' , key=xxzz, oldValue=null, value=yyyy , mergingValue=null } 一開始檢查的範圍   找到邏輯上是否有會移除資料或是將資料設為NULL的程式碼   結果當然是沒有   看看沒有先觸發其他種類的Listener ,ex:entryAdded  結果還是沒有  檢查是不是因為tryLock導致資料更新過程被省略  試過兩隻主程式一直互相執行trylock更新IMap,  但只會出現 tryLock failed,不會出現oldValue=null的狀況 後來發現問題出在有些程式碼更新map的資料使用效能較好的 void com.hazelcast.core.IMap.set(String key, DeviceStatus value) 根據api doc說明 Warning: This method breaks the contract of EntryListener. When an entry is updated by set(), it fires an EntryEvent with a null oldValue. 實際測試程式碼 用set的方式的確不會取到oldValue ,所以改回get就修(?)好了 ,最後改code的也不是我XD 雖然是從來沒有使用過set方法, 但看code的時候完全沒發現使用的方法不同, 只聚焦在是不是有做過刪除或是set null... 不太了解邏輯為什麼要這樣設計, 但是人家都寫在api doc上了 只好承認用api時很少把全方法跟api doc看完。

與 object argument 的 溝通?

圖片
看來不只專案上溝通有落差,常常對程式的溝通上也常常有落差 本來在想怎麼避免夜晚寫code容易碰上的低級錯誤。 像是當遇上 object argument 要怎麼確認兩邊的型別對等之類的

基隆的小攤販

去年開始發現一些記憶裡的味道慢慢消失, 像是新福牛肉大王、 燒邁大王,郭家水餃都歇業了, 這個時候才發現自己的年紀大了,也已經好幾年沒有建立新的回憶。 回訪記憶中的好滋味 雖然有時候會遇到一些店家口味跟態度改變,相見不如不見。 但是這些與親朋好友一起享受的回憶點消失後, 就很難拼湊出以往生活完整的印象, 也再也沒辦法回想起那些記憶。 有些基隆的小攤販路過就會想買,而且總覺得有一天會默默地消失。 南榮路 花圃 豆漿香腸 通常是晚上遇到的機會比較多,偶爾會下午開業。 常常在周五晚上讓我提前在三坑下車,就是為了走去喝一杯紅茶豆漿, 來消除天氣的悶熱跟上班的疲勞,但在這個減糖保健康的年代是種巨大的誘惑。 歐吉桑負責豆漿、紅茶、烏梅汁,歐巴桑負責烤香腸。看著人們在烤網前等著香腸烤熟,一邊聊天還順手剝幾個大蒜。 即使步調有點緩慢,大家還是耐心等著老闆伸手勺起裝在鐵桶裡的飲料。 是種現在很難找到不會因為排隊而不耐煩的時光,讓心情放鬆了下來。不過如果是使用打開水龍頭的方式裝飲料,大概就會讓我回想到國軍生活了。 不只是經營方式,飲料的口味也很傳統紅茶、比起淡淡的香氣更搶戲的是甜味。 豆漿有著燒焦味、 烏梅汁喝起來酸鹹甜。飲料由於保存方式的緣故,有時喝起來還會帶點碎冰。但我每次去幾乎都喝紅茶加豆漿。另外,攤販斜對面的桂豐食品行的麻荖也不錯。 信五路義二路轉角 騎樓 綠豆湯 楊桃汁 只賣夏季,營業時間從下午開到晚上的樣子。 由歐吉桑一個人負責楊桃汁跟綠豆湯以及打瞌睡, 所以有時候去會不好意思叫醒老人家。 綠豆湯的濃稠度可以說是在喝綠豆沙,小碎冰更是增加了口感。 帶點鹹味的傳統楊桃汁,在夏日很能提振精神。 還有兩種濃縮汁可以買回家使用,聽說其中一種是拿來治感冒的。 另外,攤販旁邊的大腸圈口感很好| 義二路信三路轉角 騎樓 壽司攤 似乎只有平日晚上才會出來擺攤,大概八點左右就賣完了。 歐吉桑負責味增湯,歐巴桑負責包豆皮壽司跟海苔壽司。 豆皮吃起來有淡淡的甜味,米飯的口感也不錯。 小小顆的壽司常常讓人不知不覺地吃完一整盒。 這幾年下來有些老店或攤販漸漸有年輕人回來幫忙做事, 但也有很多店家檯面上沒看到有下一代的回來幫忙, 不知道接下來的基隆會是什麼樣貌。

Find bugs Call to equals() comparing different types

開始用findbugs跟 Code Coverage 以後, 我最忘不了的就是那些愚蠢的bug, 而且他們特別會出現在那些晚上寫的程式碼裡。 每當commit 前沒跑findbugs跟測試 , 通常都會學到新的findbugs 錯誤訊息... 低級到不好意思記錄下來,以下就是其中的一個例子

hazelcast predicate

老實說我對 jpa 的 criteria 跟 specification 查詢方式一直用起來很不順手,理解上也有問題。 使用上一直get來get去就算了,竟然使用字串來做查詢條件。 只要一改屬性名稱,就完全沒辦法用IDE 無痛 REFACTOR。 而且在做關聯性的查詢使用,簡直是不知道自己在做什麼。 最近使用IMDG的解決方案hazelcast。 平常在對MAP做操作時,也免不了要寫一堆predicate

編碼傳輸

老實講問題蠻低等的,但以前也從來沒用心了解過相關問題,有過就好... 問題: 發生瀏覽器端編輯新造字內容,透過server side 下載到終端設備的字元編碼有問題。 因為規範上設備接受的編碼是big5 ,所以做了ex:"wtf:編碼".getBytes(Charset.forName("big5"))的處理 理論上最後一個字應該要解成fa42 卻變成3f,也就是變成?而不是方塊字。

生日

圖片
HAPPY BIRTHDAY!!!  My Friend

汐科定便當記錄 (完)

圖片
在汐科待了兩年,感受最多的就是競爭力。 像是美食街裡幾家認為菜色有競爭力的商家相繼結束營業,攤位超過半年以上租不出去。 部門裡面好幾個有競爭力的同事先後離職,整區空位多到看起來跟旁邊的業務區渾然一體。 有競爭力的外送店家也不喜歡送汐科,外送金額從350一路漲到1000,不爽不要定。 以下是這一年多來於辦公室便當團的心得

Surface 3 使用近一年的心得 (ㄧ)

圖片
當初會買Surface 3是為了改進當時生活上遇到的各種瓶頸, 加上喜歡他的外型而買的。 所以買得時候還蠻果斷的,在使用起來也大致上如同預期的好用。

2016-紅淡山計畫

本次選擇路線 :寶明寺登山口至銘傳國中下山 路線歡樂等級 :加班到9點,隔天也能去爬。 路況 :全程步道或階梯,幾乎沒有泥土路。 路線主線總行程時間 :約一個半小時 各休息(景)點間隔 :10分鐘左右 裝備 :雨具必備

一個沒事做的星期天下午

沒飯吃的星期天下午。 一旦錯過了正餐時間,在台北市以外的地方好像很難有適合的店家能夠吃飯。 又一次的在基隆市區遇到這種狀況,但也還是不想屈服於廟口跟速食店, 於是又到了簡家蚵仔煎、點了咖哩飯、餛飩湯、燙青菜。 雖然店名是蚵仔煎,但是菜單上的菜色看起來更像是一般的陽春麵攤。 除了蚵仔煎,燒賣、咖哩飯、餛飩也是挺熱銷的,有的時候來看到店裡滿桌的客人沒一個有點蚵仔煎的也是挺有趣的,尤其是看到點乾麵配燒賣湯的客人。

預訂了Surface 3 零售版 4g/128g

圖片
本來是要買Lenovo Yoga Tablet 2 10 Windows ,因為那台的外型設計跟握把手感非常好。 買之前也在3c賣場試用了很久。沒想到遇到了一堆問題導致在實體賣場跟網購都沒購買成功, 也就碰上Surface 3發佈了。 Surface 3 的規格以及加上鍵盤後的價格跟的確讓我猶豫了好一段時間,最後還是狠下心預定了。

基隆市區素食

宗教素,無五辛跟蛋。 三大需求 周日有營業 方便外帶 素料少

汐科定便當記錄(一)

圖片
記錄定過"兩次"以上的店家 每次訂購人數:七匹狼上下。 訂購金額:大部分的外送金額底標約400~500左右 資料來源:傳單、訂便當網站、PTT、FACEBOOK 店家位置:全部來自汐止,南港的店家通常不送汐止,不然就是外送金額門檻很高

Evernote web clipper 遇上 ptt 網頁版

圖片
www.ptt.cc 自從改成bbs的黑背景風格以後,上班參考文章就變得很不方便XD。 而且要記錄到evernote上用行動裝置閱讀時, 直接擷取後文章很容易超出螢幕範圍

GARMIN VIVOFIT 使用心得

圖片
使用心得 特色功能 阿宅指數器: 第一條計量為不動一小時,之後每格15分鐘。 一小格大概要50步才能消除,所以全部集滿後要400步才能消除。此計量表不能一次消除一格,只能全部清除。 也就是如果辦公室離廁所的距離不夠長,那條紅線就會跟甘特圖上的進度一樣一路長紅。