New iOS app was released – Solitaire Black Jack

This is a casual and easy solitaire poker game app. It was designed for user to simply have fun without any other concerns. No need to pay or to buy anything, just enjoy the game and have fun.

Any comments or suggestions are welcome, appreciate.

這是一個簡單而輕鬆的 21 點的牌類遊戲,設計用來讓一個人的時侯可以打發時間消磨時間,只要玩遊戲就好,不用擔心任何費用或者要買籌碼,就是一個單純的遊戲 app

歡迎在下方留言提供任何建議及想法,謝謝

Posted in iOS development, Solitaire Black Jack | Leave a comment

新 App 上架 – PokerRember撲克牌記憶

App 名稱:PokerRember撲克牌記憶

這是一個益智性質的遊戲 App

不用隨時帶著一副撲克牌也能練習撲克牌的記憶

這是一個方便記憶撲克牌的APP,功能包括對答案以及紀錄,需要自己上網學習撲克牌的記憶法,了解後便可以使用此APP做練習

以下是遊戲畫面,您可以清楚地看到撲克牌的花色(Spade, Heart, Diamond, Club)和數字,並且練習在腦中記憶下來

下方的數字是記錄您花費的時間

在心中記憶完成之後,再依序將記憶的牌填在空格中,如下圖所示

填完後可以點綠色問號按鈕以進行核對答案及評分

只要多加練習,您也可以是記憶高手!!!

Posted in Admob, Android, iOS development, 撲克牌記憶 | Tagged , , , | Leave a comment

iOS AppStore Connect Resolution Center URL

All these years, this is the first time that I didn’t receive notification email from AppStore Connect about app review rejection.

I just found that my email account not working because of out of disk space.

Because there’s no “resolution center” hyperlink in menu, I googled and found that the resolution center url was in this form :

https://appstoreconnect.apple.com/apps/{app id}/appstore/platform/ios/resolutioncenter?m=

Posted in iOS development | Tagged , , , , | Leave a comment

2020 年底 偽出國 加 偽滑雪

2020 年因為全球有 COVID-19 疫情,所有國際旅遊行程都中止。我很幸運可以參加偽出國的行程,比預期中的有趣。於是我就順手推舟,自己再加碼了一場偽滑雪。

第一天 台北-台北

* 桃園機場集合

基本上跟一般出國流程相同,行李安檢、移民署、免稅店,不過不能走 e-Gate 自動通關,以免記錄上變成「真出國」,那就慘了,因為回來就得檢疫 14 天。

這次坐的是 Hello Kitty 友誼機
在登機口合照留念,謝謝老闆招待

* 機上座位

忘了是那種機型,座位是 3-3 的配置

* 機上隨拍

3d 的飛機圖
飛機航線示意圖

第二天 滑雪

* 地點

新竹小叮噹科學主題樂園裡的滑雪場(http://www.ding-dong.com.tw/skifacility-jp)

開車到小叮噹後,左邊是停車場,右邊是大門入口,不要停車,繼續直走,到「生活大師會館」的停車場停車,並由「生活大師會館」走進去。

在櫃台先買門票(工作人員稱「代券」) 350 元,就可以進入園區,沿著地上的藍色腳印箭頭前往滑雪場。

在滑雪場櫃台繳費(場地費、裝備費,之前的代券可以抵消費)之後,便可進入雪場滑雪

由下往上拍場地,大概幾十公尺的長度
由上往下拍,估計是綠線的等級
早上沒什麼人,比較可以自在地滑
下午人就多了些,還有兩班來上課 ski x 2, sb x 6
下午的情形,用去年的苗場來比喻,就是由「田代」變成「苗場四號雪道」

其他心得

* 雪衣雪褲的必要性

這次我做了個實驗,就是著一般衣物去滑雪(其實是為了省一點租雪衣雪褲的錢),結果一切順利,下次我會再如法泡製。

我想了一下,有兩個原因:

1.是我沒有摔到雪上,所以不會有衣服/手套濕掉的問題。

2.是我滑 ski,上下板子不必用手碰到 binding,比較少碰到雪。

上身是一般外套(裡面只穿內衣,連排汗衣都沒穿),下身是牛仔褲(也沒穿排汗褲)

* App – SNOWW

去年在苗場田代使用這個 App 來做記錄,這次在小叮噹裡也開起來用看看,結果完全無法記錄,可能是在室內的緣故。

* C/P 值高不高?

從台北去新竹滑,來回車程約三個小時。

滑兩個小時,兩小時的場地費及裝備費(雪板和雪鞋)加起來剛好 1000 元。

記了一下,總共滑了 25 趟,所以每趟成本是 40 元。

每趟可以練習 4 次轉向,總共 100 次轉向,所以用轉向來算每次轉向的成本是 10 元。

你問我為什麼不滑個 100 趟?答案很簡單,因為那裡沒有纜車、沒有魔毯、沒有 T-bar,每個人都要自己拿著板子走上去、滑下來、走上去、滑下來。如果你自己去的話,你就可以體會到我 25 趟 2 小時是多還是少了。

Posted in Misc | Leave a comment

java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

Usually we’re familiar with error message, but things became weird when app works in all phone except only one failed.

I saw this error message in an Asus cellphone (Android 5.0.2) on 2020/08/14 when my app tried to connect to an SSL server.

Finally I googled this article and it helped me to solve the problem successfully and immediately.

http://www.codeplayon.com/2020/06/android-java-security-cert-certpathvalidatorexception-trust-anchor-for-certification-path/

Posted in Android, Android development | Tagged , , | Leave a comment

Android Error type 3 : Activity Class {} does not exist

I used Android Studio 3.5.3 to execute(install) an application on a Sony cellphone and it kept displayed Error Type 3 : xxxx.xxx.xxx.MainActivity does not exist.

After Googled a few document, here’s what solved this problem.

Just adb unstall the package name (as example)

$ cd /Users/username/Library/Android/sdk/platform-tools
$ ./adb uninstall com.example.yourapp

Posted in Android, Android development | Tagged , , , , , | Leave a comment

iOS deprecated API – UIWebView

New/update app will reject any app using UIWebView after 2020/Dec.

Here's a simple script to find all UIWebView references in current project.

Just execute this line in the project root directory.

grep -r UIWebView .
Posted in iOS development | Tagged , | Leave a comment

2019 12 滑雪中毒者 遊記 分享

繼 2018 年初參加滑雪中毒者行程之後,這次在 2019 年年底再次報名參加滑雪中毒者的行程。最大的差別在於上次是住苗場王子 ski in/ski out,這次是住山丘旅館(Lodge OKA),不過由於滑雪中毒者在各方面的安排都井然有序,所以我又順利完成了一趟難忘的滑雪之旅。

第一天 成田機場-苗場王子飯店

* 成田機場集合

下飛機(第三航廈)後一樣走連絡道往二航廈走

往二航廈的連絡道

這次可能班機到得比較早,我到集合點的時侯還沒有看到接機人員。稍微等了一下,同團的旅客都到齊了,才看到接機人員(註:接機人員沒有遲到,是我們旅客早到了)。

上次自己比較緊張,這次比較從容。觀察到一個現象:同班機到達的團員,去苗場的少,去輕井澤的多,不知道是什麼原因,是不是輕井澤比較好玩?還是真的打算去逛 outlet?

* 巴士直達苗場王子飯店

下圖是參考地圖,休息吃晚飯的地方就在中間標示「中途休息站」那個地方(緯度 35.842705 經度 139.504196)。跟去年一樣,中間休息站上廁所、吃飯合計三十分鐘。

不同的是,這次我比較熟門熟路,下車第一個直奔餐廳,找到餐券販賣機,先放/投錢,再點按鈕選餐點,按找零鈕找零錢,並取出餐券等櫃台叫號。因為我不懂日語,我就傻傻地跑到出餐的櫃台前等,看著櫃台上一整排的餐券(上面有號碼),和自己手上的餐券號碼,才知道什麼時侯可以取餐。

* 山丘旅館(Lodge OKA)

到王子飯店後全員下車,我則是轉搭已經在那裡等待的小巴,接駁去山丘旅館。

Oka 山丘旅館 Lobby

會跟我一樣選擇山丘旅館的單人雪友,應該都不會要求多高的房間品質,有得睡、不著涼就夠了。

我這次住的房間,裡面有燒煤油的暖氣機(有氣體偵測安全裝置,空氣品質不好時會自動停機,直到開房間窗戶換氣一陣子後才會再啟動)、電視、電話(會通知早晚餐已備妥)、24 小時提供熱水淋浴,對白天都在外面滑雪一整天的人來說,其實已經很足夠了(如果你有在潛水的話,大致上跟潛水房的概念差不多)。

三個大男人,房間有點亂 XD
燒煤油的暖氣機

第二天 全日滑雪

* 早餐

山丘旅館有附早餐,簡單吃吃後便由中毒者的小巴接駁至王子飯店換裝及領取裝備。

只要穿內搭(排汗衣/排汗褲),再穿上外套、長褲、鞋子就好,除了「你打算滑雪時也要帶在身上」的東西(例:手機、相機、午餐錢)外都不用帶,原因如後述。

從山丘旅館看苗場滑雪場。第一天大晴天,雪況「令人鼻酸」

* 換裝

住山丘旅館的團員會提供一個大壓克力收納箱,把換下來的「外套、長褲、鞋子」都放在裡面,等到晚上要回山丘時,人不用換裝,就穿著全套雪衣雪褲雪鞋、拿著雪板、連同收納箱,一起載回山丘旅館。因為那個收納箱會放在王子飯店放一整天,然後跟人一起載回山丘旅館,所以工作人員才會提醒「除滑雪時會帶在身上的東西之外,不需要帶其他東西,衣物」。

之後的早上,就都是穿好裝備(雪衣雪褲雪鞋)拿好雪板,再坐接駁車到王子飯店。

* 上午滑雪

今天雪況不好,挑一張比較能看的相片撐撐場面

* 午餐

這次我沒有請教練,自己滑,幾點想吃午飯就幾點吃。為了省錢,我從 4 館走到 6 館的 food court 吃午餐,穿著雪鞋走,比滑雪還累 XD。

提醒沒去過 6 館 food court 的朋友,如果你要看路標的話,不要找 food court(不明顯),反而應該找「火打之湯」「溫泉符號」(露天溫泉)的指示,因為 food court 就在溫泉入口的外面

我最喜歡 food court 的一點是,有免費的冰水可以喝,冰水機在靠近溫泉入口的那個角落。滑雪時懶得帶/喝水,午餐時就卯起來補水。

王子飯店 6 號館 food court
起司雞肉飯,JPY 1020,小朋友會覺得辣,其實我也覺得辣 XD

* 下午滑雪

由於上午在 Trail No. 5 雷殘,下午還是乖乖降級到 Trail No. 4 練習「障礙賽」(雪少人多,還有上課的團體,雪道相當擁擠)。

* 晚上放裝備

坐下午五點中毒者的接駁車回山丘旅館之後,在一樓入口旁邊有專門放雪具和雪鞋的房間(乾燥室),放好後就回自己的房間休息,也是蠻方便的。

* 晚餐

第一晚的晚餐是海鮮火鍋(第一晚火鍋,之後都是定食,似乎是慣例),白飯和冰開水都是自助吃到飽,幾乎每個人都說吃得很飽。我出國都習慣吃泡麵當宵夜,但這次三個晚上都沒吃泡麵。

晚餐跟雪友聊天,主題幾乎都圍繞在「從苗場搭車去田代/神樂滑雪」。與其說是「聊天」,更像是「傳銷上線在洗腦下線」的感覺。這幾天的雪況簡單比較就是「苗場人多雪少;田代/神樂人少雪多」。原本我只打算在苗場滑雪就算了,可是經過眾雪友的說服,我便決定明天自己去陌生的田代雪場滑雪了。

第三天 全日滑雪

* 早餐

吃山丘日式早餐,然後等中毒者的接駁車來接去王子飯店。今天要去田代滑雪,提早到 8 點就出門。

可能人品好,昨晚下大雪,一起床就看到這幅模樣。

滑雪看天氣,天氣越不好,雪況就越好。


* 從苗場去田代

原本從苗場去田代的方式最常用的就是搭龍纜(Dragondola)(龍纜只有一座,不要和 Gondola 搞混了)。

由於今年雪況不好,龍纜車還沒開始運營,於是大家就改搭「急行」公車,王子4館->王子6館->田代滑雪場->神樂滑雪場,人不用買票,雪具要 JPY 100。

要搭公車的人大都是想搭第一班公車(08:30),於是就提早來排隊。我 8 點從山丘過來王子 6 館,馬不停蹄地趕到 4 館排隊(你問我為什麼要到 4 館排隊?因為 4 館上的人就會塞滿公車,在 6 館等的人根本上不了公車),仍然上不了第一班公車,只能搭第二班 09:30 的公車。

在風雪中排隊等公車的雪友

* 滑雪

在一陣兵荒馬亂,折騰了半天之後,終於到了田代滑雪場位於山腳下的入口,接著就是搭號稱可載 100 人的箱型纜車上山。

從山腳滑雪中心看纜車
纜車內一景

今天雪況大好,坐廂型纜車上山時還在下雪,一片霧茫茫,超有 fu 的。

根本看不見前方的路,好像要去仙境一
到山上了,跟纜車拍一張
準備走左側綠線連絡道下去搭椅型纜車
雪花橫飛,準備坐椅型纜車上雪道起點

椅型纜車自拍
雪道起點全景

雪況大好的副作用是,風大,風大的影響是,坐椅型纜車時會冷,風如果大到一定程度,纜車有可能會停駛,那就不好玩了。

這次在田代,第一次坐到了「有透明罩」的椅型纜車,外面刮風下雪,裡面一點都不冷,真是感恩。

隔著透明罩看著雪是「橫著」飛過去,這張是隔一天大晴天時拍的
第一次坐有透明罩的纜車

* 午餐

在椅式纜車站旁,有完整的服務設施,餐廳、咖啡廳、廁所、無料休息室、甚至還有吸煙專用室。

重點是滑雪,午餐就隨便吃個咖哩雞肉飯,JPY 1,400

真的是蠻隨便的咖哩雞肉飯,JPY 1,400


* 下午滑雪

今天運氣好,在綠線就可以滑到鬆雪,鬆雪的厚度有多厚呢,看下圖就知道。

滑鬆雪的要訣是「速度要快」「轉彎角度要小」,高手就像衝浪一樣咻咻而過揚起陣陣雪浪;我這個菜鳥就只有兩個選擇,一是跟著別人滑過的痕跡順利滑行,一是滑沒人滑過的地方,然後因為滑行速度不夠,就會像卡通影片一樣越滑越「沉」入雪中,結局就是停下來或者摔倒。由於摔到鬆雪裡一點也不痛,我就厚著臉皮硬著頭皮地滑了幾趟鬆雪路徑。

可以在看不到 ski 的情況下滑,還可以把雙腳埋在雪裡,真是很難忘的經歷。

要遊說在苗場滑的雪友去田代滑,一圖勝千言,「妳有看到我的 ski 嗎」

* 從田代回苗場

到山腳滑雪中心門口排隊等回苗場 16:10 的急行公車,如同原先聽說的一樣,早上擠公車過來的人都差不多這時侯要回苗場,於是,又得再排一次隊。

從田代回苗場,搭16:10公車的人們

回到苗場王子之後,再搭中毒者的接駁巴士回山丘旅館。


第四天 全日滑雪

* 早上起床

今天打算再跑一次和昨天一樣的行程去田代,中毒者的接駁車今天也是約8點出發(每天出發時間不固定,要前一晚確認)。

一晚上沒下雪,又是大晴天,起床看到的苗場就變成這幅模樣了。不管雪況如何,還是要去田代滑一天。

* 田代滑雪

天氣不好就認真滑雪;天氣好就拍拍相片,陽光加上反射,拍得超清楚的。

下圖是由餐廳往上(上下山大型廂型纜車站)拍的,雪友對於相片中間的雪道等級有過一番討論,到底是紅線還是黑線,最後我們拿出田代雪道地圖來確認,發現地圖上只有兩條綠線,分別是往右及往左下山的兩條綠線,至於中間,不是黑線也不是紅線,是「沒有線」,因為中間根本不是雪道。

我去了兩天,一次沒放告示牌,一次放了「閉鎖中」的告示牌,不過兩天都有高手直躍而下,管他什麼線,滑得不亦樂乎。

由餐廳往大型纜車站拍的景色


* 田代湖

跟苗場比起來,田代的最大差別就是風景了。

天氣不好
天氣不好,主要是拍雪
田代湖一景
從林間雪道拍田代湖
從上山大型廂型纜車站拍田代湖,下面那座房子就是餐廳休息區

* 晚上還裝備

結束三天的滑雪,晚上五點左右將雪板雪杖於在王子飯店中毒者指定地點,全裝搭中毒者接駁車回山丘旅館,身上的裝備都在山丘旅館歸還即可,蠻方便的。

第五天 苗場到東京機場

我這次報中毒者的行程是加滑一天,所以沒有東京住一晚的行程,上遊覽車之後就是「休息站」->「新宿王子」->「品川王子」->「成田機場二航廈」

09:40 苗場出發,11:50 到休息站(如圖),12:20 開車
大約 13:35 到新宿王子,可在此下車

這次沒人在品川王子下車,新宿之後直接成田機場,大約 15:00 就到了

其他心得

* 樂桃航空選位

2018 年坐的是香草航空(現已停飛,航線由樂桃接收),沒想到座位那麼小,膝蓋幾乎就要頂到前座的椅子(我不高,只有 175 公分),椅背又不好意思往後調太多,就這麼ㄍ 一ㄥ 著去 3 小時,回程 4.5 小時,回想起來真是惡夢一場。這次鐵了心要對自己好一點,就請滑雪中毒者代訂樂桃航空的「巧選座位」,指定位子最大的緊急逃生出口座位(第13排),來回航程共要額外加價 700 多塊台幣,但是我個人是覺得非常值得。

我去的時侯旁邊沒人坐,還可以蹺二郎腿

* 樂桃航空 check-in (成田機場)

第一次在成田機場樂桃航空 check-in,樂桃航空在櫃台前提供了一整排的「check-in 機」,在表定起飛時間(22:20)前兩個小時前(20:20)準時開放旅客自行 check-in。

使用方式是「1.提供訂位代號」(掃瞄訂位代號 QRCode 或者自己用手輸入那 6 個英文字母)及「2.掃瞄護照」即可「3.列印出checkin 單」, 再「4. 拿checkin單到櫃台交給工作人員」,並「5.託運行李」,接著,「6.拿到登機證」,就可以往安檢出發了。

* 沒去的苗場王子夜滑

原本打算在苗場「夜滑」,但中毒者的接駁巴士是 17:00,山丘旅館的晚餐是 18:00,如果要在苗場夜滑(20:30結束)的話,就得「18:00在山丘旅館吃飽後,自己從山丘走過來王子(著全裝帶裝備走,來回大約要半小時)」或者「放棄山丘的附贈晚餐自己花錢吃王子的晚餐,夜滑結束後自己從王子走回山丘(也是著全裝帶裝備走10幾分鐘)」二選一,在田代滑了一天的美麗雪況之後,我毫不猶豫地決定直接回山丘吃晚飯休息了。

* 會不會很冷?

即使我是第二次來滑雪了,還是無法克服這個心理障礙,一直怕「衣服穿不夠多,因為太冷而無法滑雪」。

這次滑三天的經驗我再次驗證:滑雪真的不會冷,不會冷,不會冷。

只要穿滑雪專用內搭(排汗衣褲)加外層雪衣褲,中間不用穿任何衣服。

以上是我的主觀感覺,客觀一點的話我提供兩個判斷依據:一是「在雪地的運動量」如果你有上課或自己滑,就不會冷,如果站在那裡不動、只是拍照,才有可能會冷;二是「天氣」,如果陰天或下雪才有可能會冷,如果是大晴天就一定不會冷。

* 推薦 app – SNOWW

這是個專門為滑雪雪友設計的 app,主要的功能就是「利用 GPS 定位記錄你的滑雪歷程」。

只要在滑雪時開啟 app,並且開啟記錄功能(向右三角形的按鈕,有點像播放按鈕),app 就會記錄每一次滑雪的記錄,實例如下

我第一天苗場卯起來滑 Trail No 4,距離約 400 公尺,一天共滑了 24 趟

既然能記錄每趟的滑雪記錄,自然也有總計的功能,以下是我這次滑三天的總記錄

拿團費和滑行總距離來計算,我滑每公尺的費用大約是新台幣 12 元

這個 app 用數字做統計,好處是可以讓使用者比較精確地評估自己的程度,也可以讓沒有滑雪的人比較能感受到雪友間程度的差異。

滑行總距離:我三天一共滑了 25 公里,沒滑過雪的人對這數字大概沒什麼感覺。我說個數字來做比較:跟我同住的室友一天就滑 23 公里。

最高時速:我最高時速 25 公里,電視裡運動頻道的國際比賽選手最高時速都超過 100 公里,最高時速甚至有 123 公里

Posted in Misc | Leave a comment

2019 上市股票贈與經驗

時間:

2019 年 8 月

地點:

台北市

標的:

上市股票1+4 共 5張

過程:

1.到贈與人原開戶券商申請持股證明(註1)。帶身分證件及原開戶印鑑

2.拿持股證明(註2)至國稅局分區申請繳交「贈與稅」,取得「贈與稅申報證明」(繳畢或免稅),免費申請。帶贈與人/受贈人雙方身分證、印章,當日收盤股價(紙本),填寫「申報贈與稅申請書」時須自己計算贈與股票當天市值總金額;另外須填寫「贈與契約書」。

3.拿「贈與稅申報證明」至贈與人開戶券商申請上市股票贈與,須手續費(註3),帶贈與人的身分證件及開戶印鑑及存摺(註4),填寫「股票贈與申請單」,每檔股票要寫一份,內容包括雙方集保帳號、股票代號、股數等等。

4.申請完成後取回所有身分證件、存摺及印鑑,約一週後股票會進受贈人的戶頭

心得:

1.跟「現金」轉帳相比,「股票」贈與/轉讓的不同之處是要強制申報繳交「贈與稅」,現金的話則是事後申報(或不申報)

2.跟「現金」匯款相比,已經在電子化「集保」這麼多年的「股票」,卻還是要一週的工作天才能「轉戶頭」,效率實在太差。不知道是很少人做這項業務,還是有什麼成本考量。

註1:好像可以直接以「存摺影本」當成持股證明,不過我的證券存摺,早就不知道丟到那裡去了。

註2:在網路上查詢贈與程序都有提到持股證明,結果我到國稅局辦理時,都拿到完稅證明了,承辦人員都沒有向我要求提示持股證明,不確定是否真正必要,後來我還是主動交給她影印一份存檔。(想想也是,要申報贈與稅,應該不會有人申報自己沒有的股票/股數)

註3:我申請贈與的股票有兩檔,行員原本跟我說「手續費每檔收40元」,最後跟我收了 85 元。

註4:存摺似乎是必要的,由於我存摺遺失,所以就當場申請補發存摺,只填了一張單子就申請下來,這點倒是比銀行簡單多多多了。


Posted in Misc | Leave a comment

Android Studio – put project into BitBucket step by step

1.Change project setting

Android Studio -> Preferences -> Version Control

Change 「VCS」value for <Project> from <none> to Git.

2.Create local repository

VCS -> Import into Version Control -> Create Git Repository

Choose the PROJECT root directory , NOT the APP directory.

2.5 Create remote repository in BitBucket

New -> Repository

Repository name : Necessary to fill

Include a README ? : Choose No (choose Yes will cause error later)

Create Repository and you’ll see this

There’s an URL you should copy (https://yourname@bitbucket.org/your-team/your-repository-name.git).

And to use the URL in Step 3.

3.Create remote repository in Android Studio

VCS -> Git -> Remotes

Create a remote Git repository with the URI from BitBucket like the following:

https://yourname@bitbucket.org/your-team/your-repository-name.git

4.Commit to local repository

VCS -> Commit

5.Push to remote repository

VCS -> Git -> Push

6.Get project from remote repository

You are sucessful when you finished STEP 5.

Yet it is better to check out from remote repository to verify that everything necessary was pushed.

VCS -> Checkout from Version Control -> Git

Paste the same URL in step 3,

Select the local project directory (NOT the same directory in previous steps, create a whole new empty directory),

Then wait the project to be downloaded.

7.Run the app sucessfully means everything

Run the app to verify that everything was ok.

Although everything was downloaded successfully, the Android studio rejected to run the app with a prompt message 「please select the SDK version」.

File -> Project Structure -> Modules(app) -> Compile Sdk Verison

Dropdown the list menu , select the newest one SDK version, press OK button on the bottom-right corner.

Congratulations ! You’re ready to go.

Posted in Android, Android development | Comments Off on Android Studio – put project into BitBucket step by step