發表文章

早起運動2週後

上半年趕了一個專案,加上小產,不知不覺胖了5公斤在身上,坐下來肚子一大圈收不回來Orz,雖然人高看不出來,但是人高怕的就是壯XD。本來一直在想專案結束後要去運動中心上上瑜珈課,但雜事很多一直沒有空去,而且從家裡到運動中心有一段路,也很懶的特地跑去只為了上課。 有一天冒出來一個念頭,就是跟阿公一樣早起去運動,還有麻糬陪著一起去,反正一出門就可以開始了,不用到特定地點集合。就這樣從7/16一直運動到今天(7/30),星期六日跟著小朋友一起運動,其中只有2天白天有重要的事情沒有早起,離傳說中的21天養成一個習慣只剩下7天,一直幫自己洗腦「我是規律運動的人我是規律運動的人我是規律運動的人」,中間常常看馬克媽媽的 部落格 激勵自己,希望自己可以跟馬克媽媽一樣瘦身成功。 這半年來我累積的毛病有:肩頸酸痛、心悸、偏頭痛、疲倦…等,反正就是一些文明病。運動了這麼多天,最大的收獲就是,我的肩頸酸痛好了一大半,之前已經痛到我懷疑人生,睡也睡不好,每個星期要到推拿報到,繳了不少錢給推拿。早睡早起的習慣也自動建立,再來小朋友要上小學了,每天要在家裡吃早餐,不早起也不行。 最重要的是,數字上,體重少了1公斤,體脂率少了1%,這個數字讓人很有成就感,穿起西裝褲腰也沒那麼緊了XD 我覺得我應該可以一直早起運動下去XDDDDD

2019 創業之路

2019年的12月就這樣來了~~~目前手上的案子會一路忙到過年,在開始超忙之前把今年的心得做個記錄。 在2019以前 其實在今年之前,從生小孩之後,5年內已經陸陸續續接了幾個案子。真正決定創業接案當正職是從2018年搬家搬到宜蘭開始。為了小孩的生長環境還有負擔不起的台北房價搬到宜蘭,宜蘭這個地方,工作機會少、勞工薪水低,唯一的優點就是好山好水(好無聊?),如果要找工作,勢必是每天要往返台北通勤(小孩同學的家長就有很多是這樣),那小孩就會很晚下課,安親、課托…,回家就是洗澡睡覺的悲哀人生。 總之,搬到宜蘭後,把小孩上學問題安頓好,把房子該弄的雜事弄好,就到了2019了 2019創業元年 剛開始覺得接案好像不難,外包網看起來超~多案子,但買了外包網的帳號之後才發現,你提案了之後,大部份都是石沉大海,不然就是很低很低的金額, 外包網99%都不是什麼好案子 。後來在農曆過年前接了一個很小金額的案子,真的是萬事起頭難啊,根本就是賠本做。當初設定了一個目標,假設在6月之前,接到的案子沒辦法應付家計的話,老闆就要去找工作。還好,在這個小案子之後,案主覺得做的不錯,後面就陸陸續續有丟一些案子過來。我也接了一些手機、網站開發的案子,勉勉強強還過的去。 這中間因緣際會下,接觸到「蘭青庭」,得知這是一個輔導宜蘭創業青年的地方,但進駐需要 通過新竹科學園區管理局的審核 ,老闆經過了一番準備審核通過(而且我們還是那批審核廠商/團隊裡最高分通過的)。可以進駐是超級開心的事,因為每次去接案,說我們人在宜蘭就會被嫌棄,第一是個人身份,無法開發票;第二,案主都會質疑你的配合態度;第三,覺得你住五結到底是什麼鳥地方。 進駐之後當然享有一些青創的輔導資源,透過蘭青庭,也和宜蘭當地的產、官、學建立起關係, 這也是我們創立的目標之一,提供宜蘭、東部地區優質的資訊軟體整合服務 。 每件事都是累積 從工程師的角度來看,我的第一份工作有幸開發了一個平台,可以讓工程師快速開發功能,從系統架構設計、身份驗證、權限管理、共用物件設計、開發規範制定、文件撰寫,到從把一個技術摸的滾瓜爛熟,這一段路真的對日後幫助很大。不管後面要學什麼新技術都可以快速上手(畢竟換湯不換藥) 每個專案的點點滴滴的累積也很重要,盡量少做為了錢多,但是對本身沒有太多累積的專案。在資訊爆炸的年代,參與研討會可以...

iOS APP 在背景取得使用者位置(Get location at background)

圖片
簡單整理一下iOS如何在背景持續取得使用者位置,本例在收到新定位後會發送一個local notification給自己 在專案中的設定 Target => Capabilities => Background Modes,Switch to ON 選取Location updates 在plist中加入描敘(這會在提醒使用者同意使用定位時出現) Privacy - Location Always and When In Use Usage Description Privacy - Location Always Usage Description Privacy - Location When In Use Usage Description 實作 1. 在AppDelegate中加入import import CoreLocation import UserNotifications 2. AppDelegate實作CLLocationManagerDelegate class AppDelegate: UIResponder , UIApplicationDelegate , CLLocationManagerDelegate { 3. 加入location manager相關實作 使用locationManager.startMonitoringSignificantLocationChanges(),而非locationManager.startUpdatingLocation。使用方法可參考 官方文件 ,要特別注意的是這個方法取得新定位的觸發時間點在這份 官方文件 裡有說明如下,大意大概是移動距離500公尺以上才會觸發,且觸發間隔大於5分鐘(我的解讀及實際測試是在行進中,大約每5分鐘觸發一次) Note Apps can expect a notification as soon as the device moves 500 meters or more from its previous notification. It should not expect notifications more frequently ...

DispatchGroup操作

最近一個案子有個需求,需要call 2隻API,並且得到2隻API回傳的結果後,才做資料處理及UI顯示。 做法1: 2隻API沒有前後順序 Code: print ( "Group created" ) //產生兩個task let task1 = DispatchQueue (label: "task1" ) let task2 = DispatchQueue (label: "task2" ) //產生DispatchGroup let group = DispatchGroup () group . enter () task1 . async (group: group , qos: . default ) {     print ( "task1 start" )     sleep ( 10 )     print ( "task1 end" )     group . leave () } group . enter () task2 . async (group: group , qos: . default ) {     print ( "task2 start" )     sleep ( 5 )     print ( "task2 end" )     group . leave () } group . notify (queue: . main , execute:{     print ( "All task is done" )     //self.reloadUI() }) Result: Group created task1 start task2 start task2 end task1 end All task is done 可以看到task1執行10秒,task2執行5秒,所以task2先結束了,並沒有按照順序執行 做法2: API有先後順序,加入...

iOS 強制螢幕轉向(force view orientation)

圖片
最近一個專案的需求,在整個專案裡的某一個View要強制轉成橫的,Google了好久,卡了1天才解決這個需求 1. 在Targets裡面要記得設定App支援的螢幕方向,Targets->Deployment Info->Device Orientation 2. 在要被強制轉向的View裡加入以下的code,做法就是進入viewDidLoad的時候把原本的螢幕方向記下來,然後轉成你要的方向,在viewWillDisappear的時候轉回來,override var shouldAutorotate, supportedInterfaceOrientations, preferredInterfaceOrientationForPresentation      //記錄原本的螢幕方向     var oldOrientation: Int = 0          override func viewDidLoad() {         super . viewDidLoad ()                  //記下原本的螢幕方向         oldOrientation = UIDevice . current . orientation . rawValue                  //強制landscapeRight         UIDevice . current . setValue ( UIInterfaceOrientation . landscapeRight . rawValue , forKey: "orientation" )     }        ...

Panasonic NP-TM9-W 洗碗機開箱

圖片
生了兩個小孩之後,家事的量實在是大增,而且小孩的事情也是double,每天忙完把小孩弄睡之後,看到廚房滿坑滿谷的碗,實在常常提不起勁去洗。而我們家洗碗的是我老公,他每天下班回來累的要命,然後還要幫我洗小孩、洗衣服、洗碗,實在是太累了,就動心起念想買洗脫烘洗衣機跟洗碗機,但洗脫烘家裡實在沒地方放,就只好先放棄。 但其實家裡也沒有多餘的地方可以放洗碗機,廚房也才做新的,不可能打掉重來,意外搜尋「洗碗機 窄」之後發現日本Panasonoic有出桌上型小台的洗碗機,而且台灣也有人買回來裝,讓我覺得又燃起一絲希望。 但好像大部份人買的是型號是Panasonic NP-TR9,這比較大台一點,看了這台的尺寸之後,我本來放棄買洗碗機了,因為家裡沒位置放。後來我到Panasonic官網發現,有比較小一點的NP-TM9,只要高度有60cm就可以安裝,仔細丈量之後發現把本來熱水瓶的地方移開就可以放了,馬上跟我老公討論一番就決定找代購購買! Panasonic NP-TM9安裝大小 (來源:  http://panasonic.jp/dish/product/NP-TM9/ ) 下訂之後,馬上就寄來了,是很不錯的代購,還有含後續的保固維修。 開箱了,上面貼了一張安裝注意事項 日系家電質感都很好,有一種此生目前為止最厲害的家電的感覺。麻糬當一下比例尺,這一台有22kg 放上檯面,接上電源、進水、出水管,這部份是我老公施工的,沒拍到照片 剛剛好,熱水瓶移到旁邊也還能放的下砧板切菜 內部,可以把放碗盤的地方整個拉出來放一放再推回去,很方便 我跟我老公很high,把萬用鍋的安康鍋也放進去試試看,看來不用再洗油膩膩的鍋子了 原廠附的洗碗粉(還有一包是LION的洗碗精),說明書上有寫要使用專用洗劑,不可以用普通洗碗精(會產生大量泡沫沖不乾淨)、小蘇打粉 後來我們研究了網路上的安裝方式,供電、出水沒有什麼大問題,進水感覺比較麻煩,有人是接三通在廚房的水龍頭,但洗碗機在洗就不能用水,或是安裝原廠的分岐水栓,但我們家廚房的鵝型水龍頭好像也沒辦法裝。還有一種TOTO出的,有分岐水栓的水龍頭,但一隻不便宜。 最後,我們決定請水電在不銹鋼水槽上打個洞再裝一隻水龍頭,這段由水電師傅處理就不多描述,直接來看安裝後使...