Just My Life & My Work

[C] 轉 uint8_t 為 uint16_t

因為串接藍芽裝置,想要從藍芽裝置獲得資訊或是傳送指令到藍芽裝置,需要瞭解其溝通協定,才能順利互通有無。

因為資料長度的關係,需要把資料型別短的組合成長的,如轉 uint8_t 為 uint16_t

原始資料:

uint8_t d1 = 0x01;
uint8_t d2 = 0x07;

轉成:

uint16_t wd = 0x0701;

此時需要瞭解點位元操作,就能寫程式實現。

程式實作:

uint16_t wd = ((uint16_t)d2 << 8) | d1;

原理:

(0x0007 << 8) | 0x01 = 0x0700 | 0x0001 = 0x0701

意思是d1向左位移8位元,再和d2結合。

參考:Combining two uint8_t as uint16_t

 

看這標題應用查詢格式 (Application Query Schemes)不知在表達啥咪,那就用白話文解釋⋯⋯就是我們的App想要跳轉到他人App時,所要遵從的規範。在iOS 9之後Apple更改遊戲規則,必須在info.plist注明我們想要跳轉的格式,不然程式就會報錯:

This app is not allowed to query for scheme

比如我想要跳轉到Google Map App,我會在程式碼中設定開頭:

comgooglemaps://

iOS 9以後就要在info.plist加入:

iOS Application Query Schemes plist.png

果真加入後立馬編譯執行,就能跳轉到Google Map App,而不是到App Store App的Google Map App頁面呢~

參考:[iOS] 使用Google Map導航[iOS] 使用Google Map顯示地點、Google SDK –
Google 地圖 URL 配置canOpenUrl – This app is not allowed to query for scheme instragram iOS9

[圖解] 論文謊言金句

念過研究所的人大多都寫過論文,所以我也不例外寫了論文後口試而畢業。在就學期間我時常在想,若正在研究的東西在日後能派上用場,那麼肯定是非常有價值!但很多時候這樣的想法被導向「為了要順利畢業,所以要怎樣怎樣⋯⋯」,於是乎,絕大部分的論文看不到未來,除了那些箇中翹楚剛好對寫論文非常感興趣,還能引領世界趨勢潮流發展。

這張圖解論文謊言金句,讓我想起之前的文章科學論文中20個謊言金句,寫論文真的是種專業呢!

我還是喜歡隨性發表我所見所聞,平凡工作與生活中處處都有值得學習的事物,自己開心了,身邊的人也跟著愉快囉~

論文謊言金句.jpg

參考:論文謊言金句

台灣郵遞區號 (Taiwan Zipcode)

我第一次開發App(看屋筆記本 (Housebook))的時候,需要讓使用者輸入看屋處的地址,為了簡化使用者輸入的方式,便想以選擇縣市區鎮的方式。

時隔三年半,這次要開發會員個人資料的表單,很聰明地找到Taiwan Zipcode.json,於是讀入程式碼可以很快地找到對應的台灣郵遞區號 (Taiwan Zipcode)

我將該檔案放到Gist:Taiwan Zipcode Address

 

[iOS] 取得Youtube影片的標題

有時候需要透過程式取得Youtube影片的標題,在網路上找了許久卻沒找到直接可用的API,方法是有很多種,比如使用Youtube的SDK,然而就要申請帳號來獲取API Key,明明是很簡單的任務,卻要大費周章來實現,最後我選擇較為簡潔的做法!

透過以下的Url Template,先取得該影片的所有資料,如下列網址帶入Video ID,我們將可取回一大串String。

http://youtube.com/get_video_info?video_id=XXXXXXXXXXX

字串截圖:

iOS 取得Youtube影片的標題.png

我們的目標字串為:

title=%E9%96%BB%E5%A5%95%E6%A0%BC+Janice+Yan+%5B+%E4%B9%9F%E5%8F%AF%E4%BB%A5+%5D+%28%E9%9B%BB%E5%BD%B1%E3%80%8C%E8%BF%BD%E5%A9%9A%E6%97%A5%E8%A8%98%E3%80%8D%E6%8F%92%E6%9B%B2%29+%E7%89%87%E8%8A%B1%E7%89%88Music+Video

我先找「title=」字眼,後面的字串到「&」之前,就是我要的標題。中文字被轉成百分比+字母(stringByRemovingPercentEncoding),所以要轉回去,最後還要取代掉「+」為「 (空白鍵)」。

Objective C可以這樣來剖析(Parse):

/**
Theme: fetch Title of Video from Youtube
IDE: Xcode 7
Language: C++
Date: 105/05/06
Author: HappyMan
Blog: https://cg2010studio.wordpress.com/
*/
    NSString *title = [[[[[[string componentsSeparatedByString:@"title="] lastObject] componentsSeparatedByString:@"&amp;amp;"] firstObject] stringByRemovingPercentEncoding] stringByReplacingOccurrencesOfString:@"+" withString:@" "];

我找的Video ID是PZGwZwGQTlk,經過上述程式碼剖析、解碼、取代,就得到追婚日記的插曲標題:閻奕格 Janice Yan [ 也可以 ] (電影「追婚日記」插曲) 片花版Music Video。

iOS 取得Youtube影片的標題2.png

 

這裡要注意的是,並不是所有影片資料字串都會有title=喔!若有title=會出現在不一樣的位置,我找到的這個例子剛好是在最前面!

.

參考:Get title from YouTube videos

雙溪鐵道接力馬拉松後兩週,我們超慢跑團參加阿甘嘉年華路跑,前年在我還沒正式加入超慢跑團時,他們已經參加過一次而覺得主辦單位做得不錯,今日4/30我來參與後覺得真是棒,因為我的半馬紀錄破紀錄囉XD~而且還是邊跑邊拍照錄影呢!

阿甘盃路跑嘉年華00006

繼續閱讀文章 »

[圖解] 成為做遊戲軟體的人

還記得小時候喜歡玩電視遊樂器,接觸到電腦後慢慢開始想要朝著「成為做遊戲軟體的人」之路邁進,直到高中實際學習寫程式後,讓我更有機會實現這個目標!

直到上研究所,我選擇電腦圖學實驗室,無非是想寫遊戲做動畫,前者投履歷面試無結果,後者企業實習瞭解其真面目,然而在研二時接觸了「創業」,激發出我對職涯長遠想像。

於是就對寫遊戲一屑不顧?當然沒有囉~反而我想要讓遊戲與生活結合,有點感覺到人生就是場遊戲,就像玩遊戲那樣我們要玩得開心。實在不想要像現在多數遊戲潮起潮落,跟現實生活沒有正面積極的連結,一旦過了無法盈利的時候就慘遭下架,一年玩遊戲的心血全都消失殆盡,還記得我國中沈迷暗黑破壞神二,因高中課業繁忙而沒有在90天登入,就再也無法打開它><~

現在會想要做就靠自己一個人之力就能完成一個遊戲app,比如2048爆紅就讓我對寫遊戲改觀,過去的我認為寫遊戲至少有三個角色:企劃、美術、程式,而我可能只會寫程式,還需透過與他人溝通才能完成一個遊戲軟體,如此費工曠時我實在沒什麼耐性XD~

剛看到一張圖解聽說你想做遊戲,以後聽到有人想做遊戲,就把這張圖傳給他看,大概就知道自己會是怎樣的角色囉~

聽說你想做遊戲 You wanna make videogames.jpg

最後提一下研究室學弟阿立語重心長的建議,他已經毅然決然退出遊戲界,先前在某大遊戲廠商工作,看到台灣時局真的不適合發展遊戲,頂多就引進國外知名網路遊戲,才有比較大可能的獲利,因此研發部門從此消失⋯⋯

想要瞭解現在有哪些上市櫃公司,可以參考我曾經寫的文章線上遊戲公司營收

參考:原圖

[iOS] 搜尋控制器客制按鈕

先前有提過搜尋控制器 (Search Controller),現在想要讓搜尋控制器客制按鈕,預設只有一個取消按鈕,那我們怎麼讓它變成兩個按鈕呢?

iOS 搜尋控制器客制按鈕

繼續閱讀文章 »

前一陣子介紹圖解APP訊息推播流程,是關於iOS和Android兩大平台從發送到接收的整個過程,現在我們想要實作處理推送通知 (Process Push Notification),iOS SDK已經包好方法只要註冊成功後,就能透過某個method來繼續接下來的處理。可以先參考圖解蘋果推播通知服務 (Apple Push Notification Service)

Apple Push Notification Service00002

繼續閱讀文章 »

我人生第一次馬拉松就在雙溪鐵道接力馬拉松完成!不過我不是跑42.2公里,而是只有跑10.6公里,因為這是個接力賽嘛~聽熱情的主持人說明,這次的接力馬拉松是個創舉,我們參賽者真的也能感受到,除了大家同心協力完成一場比賽,還有拿到的獎牌可代表團結合作的精神,更加深我們125超慢跑團的感情~

繼續閱讀文章 »

標籤雲