I was born in Taiwan. 1st job was working in China (Shen Zhen city). 2nd job was working in Singapore. 3rd job was working in Japan (Hyogo's Himeji and Mie's Yokkaichi). Next stop? Don't know yet, but I will keep walking. 出生在台灣,在中國工作過,後來又去了新加坡,然後又在日本的兵庫縣姬路、三重縣四日市做半導體工程師。 下一站是哪裡?我不知道,但我仍然要持續不斷的往前走! 有空的話看看月亮吧,他是一顆常常被忙錄的都市人所遺忘的星球。
Translate
2018年7月4日 星期三
2018年6月29日 星期五
我第二隻 App - 運彩數據分析
各位好,我第二支 App 上架了,是關於運彩的,裡面還有報牌。
不過現在最熱門的足球還沒做,我們怕做完足球就踢完了。
但基本的 MLB 和 NBA 都有。
地方的工程師需要五星好評,謝謝大家
不過現在最熱門的足球還沒做,我們怕做完足球就踢完了。
但基本的 MLB 和 NBA 都有。
地方的工程師需要五星好評,謝謝大家
2018年5月19日 星期六
WWDC 2018 網路預測大整理
每年的 WWDC 對開發者而言,都像是個強檔電影一樣,在那個日期前,有許多的猜測都會出籠。今年的 WWDC 會在 6 月 4 日開始,持續到 6
月 8 日,為期五天,地點會在 San Jose 的 McEnery
會議中心。不過,在倒數的前幾個禮拜,我們可以先來看看現在在網路上的預測有哪些。
我在 Medium 上寫了一篇文章,收錄了其他人寫的預測文
請點擊這裡!!!
我在 Medium 上寫了一篇文章,收錄了其他人寫的預測文
請點擊這裡!!!
2018年1月27日 星期六
歌曲知識王 - V2.1.0 更新
我們的版本更新到 V2.1.0 囉。
這一次的更新,是為了下一個功能所做的前期準備。
下一次的版本,我們會增加每週的分數排行榜。
如果有下載過的朋友,請至 App Store 上更新到最新版。
或是你對這個有一些特別的想法,也可以到臉書粉絲團裡面留言。
↓下載連結
https://goo.gl/jQ9S65
↓臉書粉絲團
https://www.facebook.com/SongQuizApp/
這一次的更新,是為了下一個功能所做的前期準備。
下一次的版本,我們會增加每週的分數排行榜。
如果有下載過的朋友,請至 App Store 上更新到最新版。
或是你對這個有一些特別的想法,也可以到臉書粉絲團裡面留言。
↓下載連結
https://goo.gl/jQ9S65
↓臉書粉絲團
https://www.facebook.com/SongQuizApp/
2017年10月28日 星期六
歌曲知識王更新到 V1.1.9 了
App Store 連結:
https://itunes.apple.com/tw/app/id1273605195
V1.1.9 更新內容:
針對 iPhoneX 做 UI 的優化
同時,結算頁還可以重聽一次題目
這是遊戲的 Demo 影片,
現在有的題庫分別是 華語歌曲、台語歌曲、粵語歌曲、以及世界排名歌曲。
預計未來會增加各種特色曲目的題庫。
有興趣的人可以下載來看看唷。
中文版粉絲團:
https://www.facebook.com/%E6%AD%8C%E6%9B%B2%E7%9F%A5%E8%AD%98%E7%8E%8B-1778810945751055/
英文版粉絲團:
https://www.facebook.com/KingOfSongQuiz/
2017年9月23日 星期六
一個 typo ,讓整個 database 混亂了
分享一個開發時候沒注意到的小事,最後導致了 database 裡面資料混亂的事。
https://goo.gl/G3MSjg
連結是「歌曲知識王」,一個自製的 iOS App 遊戲。
當初在設定做使用者的資料結構時,在某一項 key 值中多打了一個 e。
可是另一頁的同樣資料,他 key 值卻沒有打錯。
https://goo.gl/G3MSjg
連結是「歌曲知識王」,一個自製的 iOS App 遊戲。
當初在設定做使用者的資料結構時,在某一項 key 值中多打了一個 e。
可是另一頁的同樣資料,他 key 值卻沒有打錯。
2017年9月15日 星期五
iOS 遊戲 App - 猜歌之王 King of Song Quiz
這是一個猜歌的 App
App Store 連結:
https://itunes.apple.com/tw/app/id1273605195
螢幕截圖:
現在是 v1.1.6
有在看這個版的朋友,麻煩廣一下
玩法很簡單,選擇題庫後,倒數三秒開始猜歌
每一首歌都有30秒內的試聽曲
在愈短時間內猜出,得分愈高
中文版粉絲團:
https://www.facebook.com/%E6%AD%8C%E6%9B%B2%E7%9F%A5%E8%AD%98%E7%8E%8B-1778810945751055/
英文版粉絲團:
https://www.facebook.com/KingOfSongQuiz/
App Store 連結:
https://itunes.apple.com/tw/app/id1273605195
螢幕截圖:
他是個猜歌遊戲
現在是 v1.1.6
有在看這個版的朋友,麻煩廣一下
玩法很簡單,選擇題庫後,倒數三秒開始猜歌
每一首歌都有30秒內的試聽曲
在愈短時間內猜出,得分愈高
現在有的題庫分別是 華語歌曲、台語歌曲、粵語歌曲、以及世界排名歌曲。
預計未來會增加各種特色曲目的題庫。
有興趣的人可以下載來看看唷。
中文版粉絲團:
https://www.facebook.com/%E6%AD%8C%E6%9B%B2%E7%9F%A5%E8%AD%98%E7%8E%8B-1778810945751055/
英文版粉絲團:
https://www.facebook.com/KingOfSongQuiz/
2017年5月8日 星期一
Swift & xcode 學習歷程 part6 - nil 和 optional
1> Swift 的語言裡面,有大量的驚嘆號。要了解驚嘆號,就要先知道 nil。nil 就是什麼都沒有,即使這個變數是 int,或是 double,他也可以是nil。nil 自己一個型別,獨立的一個。
2> 再看 Optional, 而為了向下相容 objective-c。所以他設定了 Optional。在早期的 obj-c裡面,在一個 function 執行,而他在執行的時候,如果需要回傳某個結果。假設是 int,如果這個程式是算的出來的,他就會回傳結果,但是有時候你會遇到算不出來的時候。此時會回傳 nil,不是回傳其他任何 type。
3> 但 swift 的語言架構,和 obj-c 是不一樣了,所以為了向下相容,所以他創造了一個 data type,叫做 Optional。使用的方式,就是加上問號。這就是相當於一個包裝,把某個變數包在裡面。讓他能出現 nil。
4> 所以當變數在做互相運算的時候,他一定要解開,因為 nil 的運算是有可能讓你的 app 炸掉。而解開的方法,有兩種
4.a> Optional binding, if let {}
或是
4.b> !
舉例來說:
Optional Chaining
UILabel?.text = “123”
這個 UI 是會先被檢查是不是 nil。如果是 nil ,這一行跳過,則不執行。如果己經不是 nil,就會執行。
if let 寫太多,事實上很差,如果你裡面有四個變數,那你就會出現四個 if let,會變成波動拳程式碼。
所以 swift 2.0 有加一個功能。
if let plustNText = plustNfield.text, let n = sth , let m = sth {
//這樣一次就可以解開四個變數
}
5> MVC 一種軟體開發的設計模式 Model, View, Controller.
Model:
軟體中的資料。通訊錄中的聯絡人“Line 的對話紀錄、遊戲裡面的排行榜分數。在我們的計數器裡面,他的變數名是 counter.
View
直接面對使用者
Controller.
負責控制Model和View之間的溝通,管理運算,可以想像成大腦
View Controller
通常控制一整個 App頁面,他是 App頁面的「大腦」
通常會有非常非常多行的code。
真的有必要的時候可以把部分的東西切分出來到獨立的 controller
----溝通方式-----
6> Outlet
Controller 藉由 outlet 來對 view 物件進行動作,所以 outlet 會設定為 controller 的屬性。
Target-action
當 view 物件發生特定事件 (event) 的時候會啟動。
7> 特別注意
AutoLayout & UIStckView
同步與非同步處理> 同步: 馬上程式會跑。 非同步: 按下去後,要等。
MKDirections
8> Auto Layout 一原點是在左上角
(0,0) (w,0)
(0,h) (w,h)
h和w 都是正值
9> Missing constraints > 沒有定義完成會出現的 errMsg
Misplaced views > 運算完的 view 和 實際大小可能不同。
10> 在 iOS9 新增了 UIStackView
在元件欄裡面
事實上還有一個 Vertical Stack View,可以裡面再塞基他的 label 或 slider 或 view。然後,他可以用 Fill 的方式,或是 equally distribution,你還可以用 spacing 去調整。這是一個很快做 layout 的方法。
2017年4月12日 星期三
Swift & xcode 學習歷程 part5 - 各種線上資源
Swift & xcode 學習歷程 part5 - 各種線上資源
1> 如果沒有靈感的話,可以去 coacoacontrols.com 去找,他連圖案都有,而且有附上GitHub連結。如果看到喜歡的,就去 GitHub 上,直接參考別人的程式碼怎麼寫。
2> 另一個教學網站, raywnderlich.com/
這個也可以,他有各種教學,也有各種 UI/UX 排版,動畫,特效。
3> xcode 原生支援 GitHub, svn. 在Xcode一打開的選項裡面,就可以找版控的。
4> 有各種模板,最簡單的當然就是 single view。
4-a> Master-Detail application. 這種 app,就像 mail,點左邊,右邊出現內文或細項。
4-b> Page-Based app: 就像 iphone 的主畫面。有多頁
4-c> Tabbed app: 就像 fb 那一樣,最下面會有一排 「 tab」 他有各種不同的畫面
4-d> Message App: 針對 iMessage.
2017年4月6日 星期四
Swift & Xcode 學習歷程 - Part 4 做出計算機的 model
Swift & Xcode 學習歷程 - Part 4 做出計算機的 model
1> 新建一個新的 swift 檔案,這個檔案就是 model。因為 lec 1 的內容,是把 sqrt 寫在 controller 裡面,pi 也寫在 controller 裡面。如果依照 MVC 的原則,運算符號的功能應該要切開比較好。
2> 新建的swift檔,並不需要 UIKit,只要 import Foundation,因為這個檔是 UI in dependent。
3> 在這個運算 model 裡面,是不用 class 的,這裡用 struct。
4> struct 並不是 ref type。 但 class 是 ref type。另一重點, struct 不用 initialize,這個是自動處理的。
2017年4月5日 星期三
Swift & Xcode 學習歷程 - Part 3 MVC
Swift & Xcode 學習歷程 - Part 3 MVC
講師建議所有的 iOS 都要使用 MVC 架構,即所謂的 Model, View, Controller。之所以分這些陣營,就是希望 app 在內部傳遞各種訊號的時候,團隊的各開發者仍然可以清楚他們之間的溝通管道。
1> Controller 可以直接送訊息給 model,沒有任何限制。 Controller 送訊息給 view 也沒有任何限制。
2> Model 和 view 之間是不能互相送訊息的。這類的訊息傳遞是不行直接發生的。
3> View 如果要送訊息給 Controller,如果是一個 UIBotton,可以想成是有一個 target 在 controller 裡, view 的動作就是直接射到那個 target。 而 ScrollView 則是一種「同步」的概念,裡面的資料則是用 delegate 的方式,讓 view 的資訊和 controller 同步。
4> view 是不擁有任何資料的,他只能 show 資料,這些資料都不寫在 view 的 class 裡面。舉例來說,如果你的 iPod 裡面有一千首歌曲,你要做個 list,而存放一份資料在 library 裡面,又一份放在 view 的 class 裡面,你就會有兩份資料。這不儘儘是效率的問題,而是這樣的設計概念是不好的。
5> 而 view 拿取資料的方式,則是用 data source 的方式,回去要求 controller 給資料。他也不一定一次要拿1000首歌曲的資料,也可以一次只要求10 首歌曲,如果使用者要後面的歌曲,則是之後再request 一次歌曲資料。
6> model 是 UI independent 的,所以他並不直接傳遞訊息給 controller。他用的是「廣播」的方式,而 controller 則是接收到訊號後,才會知道 model 有被更動過。
7> 這三個陣營是壁累分明的,因為這一套溝通系統一混亂 ,裡面所有的class 的溝通會全部亂成一團,這會讓其他成員相當難維護 code。
2017年4月4日 星期二
Swift & Xcode 學習歷程 - Part 2 先做一個 single view app
Swift & Xcode 學習歷程 - Part 2 先做一個 single view app
在台大資訊系統訓練班開始之前,看到資策會有開一個 ios app 的介紹課程,心寫來潮就報名了。講課的老師是一個常常出 iOS書的老師,現在常常接家教。
以下是節錄上課的內容。
1> app 的 icon,可以放兩張圖,大小要放到 60 pt。
2> 做一個 single view app,可以單純用 view 來拉。而圖層的概念可以和 powerpoint 的圖層是相同的邏輯。
3> 左方的檔案列表中,可以看到圖層上下關係,也可以在這邊調整圖層。
4> 這一堂課,只有3小時,所以我們唯一能完成的 app ,就是完全不寫 code 在裡面的 app。
5> 不寫code app 是真的做得到的,而據講師所說,他為了教學試範,還真的嘗試上架這樣的 app,而且還真的上架成功。
6> 一個頁面,就是一個 viewController 去控制,如果你想要多加下一個畫面,就是加一個 viewController.
7> 在 viewController 裡面,有一個 init 的選項,這個選項,決定了當使用者點進你的 app,一開始到底秀了什麼東西給使用者。當你所有的 viewController都沒有 init,那使用者點進去 app,就會是一片黑暗。
8> 一個任何 code 都不用寫的 app,最簡單就是介紹 xx 的app,而要讓使用者按下後能切換頁面。一開始先用 imageViewer 把圖案塞進去,然後再放一個隱形的 Button 在圖案上面。然後再用神奇的拉線 Segue 把這一頁連接到下一頁,這樣,你就能不寫任何一行 code ,就做出 app。
9> 另一種內建的換頁方式,就叫做 Navigator bar。最基本的款示就是 iOS 的 Setting 設定。他的想法就是一頁進來後,會蓋在上面那一頁,然後按「返回」,上面那一頁就會拿掉,回到前一頁。
2017年4月2日 星期日
Swift & Xcode 學習歷程 - Part 0 前言
Swift & Xcode 學習歷程 - Part 0
好久沒用 blog 了,接下來,會有一系列的文章,去紀錄自己學習 Swift 和Xcode 的歷程。而這一系列的文章,只是單純的紀錄自己的學習狀況,並不會有教學。如果是想切磋 Swift 的朋友,歡迎來信。
我自己使用的教材,是 Stanford 的 CS193,這一堂課的教授,使用的英文並不難,非常好理解。
而所謂的 part 並不是一天一天的紀錄,在一開始的時候,雖然想把每天學習的狀況都記下來,但後來發現,這樣的開發紀錄方式,並不適合用在「程式語言」上面。所以,我決定把學習的紀錄,用一個一個不同的階段,當我自己往前進了一些,然後完成了一個小的 project,我就會紀錄下來,自己會了什麼。
希望在半年後,或是一年後,我可以很有自信的說,我會了 Swift。
寫於 2017.04.02
Lin, Marvin
2016年9月23日 星期五
Python - 一個膠水語言
在經過這麼多種的語言之後
我選擇了 python
經歷過 java、 php、 還有 objective-c 之後
我很確定的是我喜歡 python,勝過其他種的語言
現在蘋果的 swift 還沒整個定型,即使過了明年
我覺得還是會大輻度改動
這邊就先不說 swift了
那為什麼是python呢?
或許就和他的設計理念和後來被其他人補上的各種模組有關吧
所以現在的python 變成一種 「膠水語言」,因為各方人士的貢獻,所以大部分的用途都有人寫模組。
想要撈股票,有google、yahoo 的模組可以用
想寫 gui 也有,要輸出 圖表也有,要寫網頁後端也有三種以上可以選。
我想這個就是「膠水語言」的媚力吧
你想要做出個什麼東西,基本上都有現成的模組。
如果沒有現成的? 那就自己刻一個吧
希望有一天,我可以不用再當伸手牌,能夠做出一些模組讓別人使用。
至於為什麼選擇python3呢?
和 python2 比,真的是缺東缺西,而且教學文也常常不能用,因為版本對不上。
但我在python3 的 cookbook 上看到一話話
「若你把眼光放到未來,你會發現 python3 提供了許多隱而不現的價值,比你想像的還要豐富」
但反過來說,python3 真的很不方便,因為很多模組都沒有。
嗯…
如果你看見什麼都沒有的天空,你會說什麼呢?
a> 這裡什麼都沒有耶!
還是
b> 這裡一點限制都沒有耶!
2016年7月26日 星期二
【自己的壞習慣】能在一個迴圈裡面解決,就不要用兩個-Python
【自己的壞習慣】能在一個迴圈裡面解決,就不要用兩個-Python
在我剛開始學著怎麼寫程式的時候,沒辦法一個步驟就把我想要的動作寫出來。
所以,一個迴圈沒辦法把我的想法做出的時候,該怎麼辦?
這時候,可以借鏡某個政治人物說的話
「一個便當不夠,你有試過吃兩個嗎?」
對!
就是用比較多的步驟組合,組合出我想要的東西。
一個迴圈我做不出來,那就先處理一步驟,然後我再用另一個迴圈去跑剩下的步驟,有時候二個做不出來,我還會再加上第三、四個。
用膝蓋想,我也知道這樣的效能會很差。
2016年6月19日 星期日
Python 用 cmd 執行和 IDE 來執行的效率差別
Python 用 cmd 執行和 IDE 來執行的效率差別
最近嘗試著用亂數的程式,來產生不同的英文詞組,然後來測一些項目。
小小的發現,如果你有開 IDE 來跑這個程式,大約是每200秒,會生出50萬組單字。
可是如果用 cmd 的指令,直接 python
runit.py ,他的速度會提升近兩倍。只要90秒就可以生出50萬組詞。
如果要跑這種長時間,又不確定什麼時候會結束的程式。請務必用cmd 來跑,你的人生會有比較多的時間。
就像這個程式,已經執行了151335秒,產生了1277000000組詞,可是他還沒結束。
2016年4月1日 星期五
[Python] 分糖果
這一題我想了比較久,一直在想用什麼方式來做比較好。
題目: 十個小孩圍成一圈分糖果。 老師給第一個小孩10顆,第2個2顆,第3個8顆,第4個22顆,
第5個16顆, 第6個4顆,第7個10顆,第8個6顆,第9個14顆第10個20顆。
然後,所有的小孩同時將手中的糖分一半給右邊的小孩,糖果數為奇數的人可以向老師要一顆。 問 經過幾次後大家手上的糖果數一樣多? 每人各有多少個糖果。
題目: 十個小孩圍成一圈分糖果。 老師給第一個小孩10顆,第2個2顆,第3個8顆,第4個22顆,
第5個16顆, 第6個4顆,第7個10顆,第8個6顆,第9個14顆第10個20顆。
然後,所有的小孩同時將手中的糖分一半給右邊的小孩,糖果數為奇數的人可以向老師要一顆。 問 經過幾次後大家手上的糖果數一樣多? 每人各有多少個糖果。
[Python] 賽場計分- 去掉最大最小,再求平均
這是把輸入的list內,最大最小去掉,再把list的平均求出來
用python並沒有那麼難,先排序後,再把最大最小去掉。
一切都可以用內建的函數搞定。
judge_score = []
times = 0
while times != 10:
score = input("Plz ente " + str(times+1) + " judge's score: " )
score = float(score)
times = times + 1
judge_score.append(score)
judge_score.sort
judge_score = judge_score[1:-1]
average = float(sum(judge_score))/int(len(judge_score))
print(average)
[Python] 肇事車輛-找車牌
有一車禍發生在某個城市的十字路口
目擊者 a b c 三人
a 說,該車牌前兩個號碼一樣
b 說,該車牌後兩個號碼一樣
c 說,該車牌是某個數的平方
問,該車牌有幾種可能?
訂閱:
文章 (Atom)




