2016年4月15日 星期五

APPNAME was compiled with optimization - stepping may behave oddly; variables may not be available

Hope this article can help who meets same problem.


Description:

If you use third party static libraries, such as libav, ffmpeg in your app.
If you use cross compiler to build third party libraries.

In my environment, I have these third party library and use command line to build libav.a libwebrtc.a etc.. and put .a file into my xcode LIBRARY_LINK_PATH.

After I update my libraries to Xcode, I got runtime error :

"myapp was compiled with optimization - stepping may behave oddly; variables may not be available"


Solution:
When we use library in xcode, we have to update include files as well. In my case, I change some include file but forgot to update it to app project.

Even you use incorrect header file, xcode don't found it. So it can pass compile and crash until you access the new functions. Then, it shows error.

Please update .a and .h in the same time.


Yang





2016年1月13日 星期三

2016不分區立委選舉政見-分析



國民黨篇

  迎向未來,做為一個負責任的政黨(以前不負責任?),中國國民黨將以「民有、民治、民享」精神(這不是憲法第一條,廢話?),促進臺灣經濟、社會、政治、文化等各層面提昇。中國國民黨不分區立法委員候選人本於「關懷、分享、公義」價值理念,透過「推建設」、「新制度」、「調法規」及「強人力」四大主軸,達成「成長、均富、永續」(何不先拿一點出來當分母?這條若改成,優先捐出 80%黨產回國家,我就選你)目標。為人民實現以下願景:對外開創藍海,對內提升生產力;強化環境治理,形塑優質環境;創富永續共享,社會均衡發展;均優教育品質,厚植青年人才;提升美感素養,促進文創升級(還要搞文創?);強化活路外交,打造堅實國防;增強兩岸互信,維持臺海穩定;促進民主憲政,落實平權社會;實現司法正義,建立廉能政府;落實政府改造,強化行政效能(啊,這要改造行政效能不好的政府 XD)。

  解決民眾困難,許臺灣人民幸福未來,讓國家走向康莊大道,是中國國民黨的使命。中國國民黨不分區立法委員候選人涵蓋弱勢族群、學者專家、資深國會議員、社會賢達等各階層人士,一定能貫徹政黨意志(那各位觀眾,四張立牌!),盡心竭力爭取民眾福祉,發揮國會監督功能,不負全民所託!


他們寫文宣的人,難道是臥底?一直一直主打黨國一致的觀念。沒有人買單呀。
大家好今天來教,P-i-v-o-t



民進黨

政見:一、推動五大政治改革:實踐世代正義、革新政府效能、啟動國會改革、落實轉型正義、終結政治惡鬥;推動人權保障、憲政及司法改革。 二、落實五大社會安定計畫:建構永續、公平、安全的社福體制,推動安心住宅、食品安全、社區照顧、年金永續及治安維護等計畫。 三、啟動五大創新研發計畫:以創新、就業、分配為核心的經濟發展新模式,推動亞洲矽谷、亞太生技、智慧機械、綠能科技及國防產業等產經策略。
(生技跟綠能慘業,亞洲矽谷是要做=="。這不是創新吧

四、建構永續優質農業:提高農民所得及糧食自給率;獎勵環境友善生產、推動農業保險、降低禽畜疫病風險;強化市場行銷提昇農產品附加價值。

五、加強國土及環境保護:改善國土超限利用、提升水資源利用效率、改善空氣品質;推動非核家園及能源自主;維護環境正義,完善風險治理機制。 六、發展多元教育與文化:推動國民教育均優質化、提升技職教育職場競爭力、鼓勵大學特色發展;落實文化公民權、確保文化多樣性、從社區出發豐富文化內涵。  七、保障族群平等:推動母語教育、平等社福待遇、發展在地產業、促進創業就業;推動原住民族實質自治;提升新移民教育及就業機會。 八、確保勞工與弱勢者權益:維護各職業及非典型勞動者權益、強化職災預防及保護;促進弱勢者居住、教育、就業、照護之保障。 九、推動財政改革與區域治理:控管政府債務成長,以施政優先順序分配資源;鼓勵跨域共同建設,提高治理效能及財政效率。 十、鞏固民主自由現狀,維持兩岸和平穩定及交流公開透明、強化國防與外交能量。

這黨寫了很多保守的文字,並無真的表明要推動那些政策。












2015年12月22日 星期二

Legend Walker 海關鎖/鑰匙不見了怎麼辦?

之前買了一個  Legend Walker  601的行李箱,本週三要出國去玩。

星期六開開心心地收行李,拿出行李箱後。

看著行李箱上的鑰匙孔.........WTF!!!!

鑰匙呢?上次旅行太累,一回來就把行李箱一丟,經過一週才把行李箱收回原位。

BUT完全忘記我的鑰匙放在哪裡,怎麼辦完全沒有印象。

只好回去找購買的"歐印家族"。嘟嘟嘟~雖然是假日,打電話還是有人接的。

接起來是一位小姐。跟他說明情況以後,他馬上幫教我如何處理相關事項。並請我不用擔心他們星期一會處理。

1. 看規定:
http://www.all-en.com.tw/repair.php

2. 下載維修單:
http://www.all-en.com.tw/file/downkeyfile.php

填寫完相關資訊後寄到 lwfans@gmail.com
然後星期一馬上就幫我處理,讓我可以順利出去 T.T

感謝辛苦且有效率的維修部人員,真的很感謝。

也請大家每次用完鑰匙,記得放回去呀....

以下是他們的粉絲團:

https://www.facebook.com/luggagebrand

好店家請多支持。


2015年11月19日 星期四

Windows 和 Mac上的 DNS快取清除


關於 DNS 快取

我們的電腦會把將 DNS 伺服器所定義的已解析 DNS 查詢保留一段時間。但這些快取可能會跟主機不同步。等一段時間電腦會自行更新這些參數。但我們也能手動做這件事。

OS X Yosemite
使用以下「終端機」指令來重置 OS X Yosemite v10.10.4 中的 DNS 快取:
sudo killall -HUP mDNSResponder
使用以下「終端機」指令來重置 OS X Yosemite v10.10 到 v10.10.3 中的 DNS 快取:
sudo discoveryutil mdnsflushcache

OS X Mavericks、Mountain Lion 及 Lion

利用以下「終端機」指令重置 DNS 快取:
sudo killall -HUP mDNSResponder

Windows :

指令重置 DNS 快取:


1. 在開始搜尋欄找 命令提示字元
2. 按右鍵,以系統管理員身份開啟(有盾牌的那個選項)
3. 再跳出來的視窗裡貼上 
ipconfig /flushdns
按下 Enter

此時本機上的 DNS就會清除啦。


2015年10月25日 星期日

軟體人才缺工潮? 正確的使用說明書

天下:軟體缺工問題

軟體工程師雖然是一個勞力密集的工作,但與製造業工廠不同的是:一個軟體工程師可以同時服務很多的工廠。
若是覺得每個位置都要有一個實體的員工在那上演鍵盤四重奏,人才怎麼算都不會夠。
如果我們現在談的是軟體業,就算讓人人都會 Coding也是無用的。人人有功練,幾年後,就會從:
「小時不讀書、長大當記者」到「小時不讀書、長大寫程式」
一篇很廢的新聞看看就忘了
一行程式可能會讓火箭爆炸、導彈亂飛、價格標錯、資料外洩。這裡講的是質比量重要。量的不足不應只拿人來補,1+1 = 2 、 1 + 1 = 0都是正確的答案。質的問題,可以從設計軟體的目標來改變。
此時該如何是好呢?工業革命的時候,發明蒸汽機大型機具。資訊革命的時代,可以發明軟體服務去解決通點。想想看你手邊有的程式碼,如果有天要讓人用,該怎麼去改寫。讓不這麼專精的工程師,也能甘願用你寫的東西,更進一步讚嘆,「X!也太好用了吧」。就像如果有米其林輪胎可用,就不會找三百個人來重新做一個"我的平台"輪胎。
會找人來做,就是市面上沒有產品可用。原來的教育制度、工作環境下,訓練出來的人(如本魯),無法從"技術"看到需求與價值,這是工程師們每天上廁所時可以想想的事。
就我所知,越來越多的人開始看到在資訊革命中,賣"機具"、"廠房"、"系統"的生意。請你看看"/home/user/workspace"中,是不是也有改變世界的螺帽呢?
總之,缺工的問題,除了人力資源部跟教育部在解決,工程師們也必須要扛起的責任。
新的市場已經來了,一起往海上前進,不然潮水一退就很害羞了。

Code wins arguments - 工人智慧 程式演化

"Mark Zuckerberg’s Letter to Investors: ‘The Hacker Way’Code wins arguments."

工作時,我們常常會花時間在討論、或是說辯論、亦或是只為堅持己見而吵架討論。
從以前到現在,我一直都很重視自己所做的東西。越是在乎越容易陷入迷思,越是迷思更討論不清楚。不了解,是許多失敗會議的主因。

"Code wins arguments" 讓我反思。花這麼多的時間虛擬的討論,只要花一點時間,攤開程式碼來順過流程,問題便迎刃而解。能與人"溝通"與"講清楚"的能力,此能力並非普遍與生俱來的,是練習就能學會。在軟體設計裡面,不斷的加強溝通一環我認為非常重要。

下圖是最近滿流行的,在達成同樣功能下,不同的類的程式設計師寫法。在裡頭,我看到在程式內的溝通,是一個軟體未來能高速成長的關鍵因素。

常常看到軟體工程師不夠。明年要開 1000個職缺,大聲疾呼必須要重視資訊人才數目的培養。現在人才真的不夠多,政府請注意等等。

主要的因素在於容易修改、可擴充的程式碼過少,工程師重寫相同功能的次數過多導致。我認為這不是工程師的問題。而是組織內,有沒有把"程式"本身當成資產。

在寫每段程式時,一定有不可分割的部分(Lagacy)、可模組化的部分(Modulized)、可提供外部資料(Application Interface)。說穿了,就是用 Framework的概念,設計軟體。

在追求個人的程式精簡之美的反義就是只有自己看得懂。開發團隊舊人會離開、新人會加入。我認為從最底層的程式起,做架構管理是有其必要的。開發團隊建議迭代(iteration)的制訂團隊內,開發程式的共識、設計方法、注解、Commit log等,這些規定形成一個開發系統不斷成長。強調只做出功能的公司,稱不上軟體公司,只能是 Hackerathon罷了。

軟體開發跟硬體時代最大的不同,就在於此"軟體資產"是可以累計的。一次次的開發,多花一點時間,保存或進步自己的程式,才能築起通往成功之路。

編按:透過文章,把自己的想法整理、讓別人看得懂。果然是需要練習的。


















2015年10月21日 星期三

[Developer] Xcode 7, iOS 9+ default deny insecure http loader

iOS 9.0+

這個問題大概是升級到 XCODE 7 最容易遇到的問題。

主要是為了安全性。在目前的網路時代中,有很多各式各樣的 Man in middle 攻擊能隨意的置換、攔截 HTTP的封包,沒有 HTTPS已經無法保證你的結果。甚至連一些早期的加密方式 SSLv3 (POODLE),攻擊者能有效的擷取傳輸資訊。在 Mobile這種高度依賴 HTTP傳輸的程式,APPLE決定從 IDE著手,希望大家能重視這件事。

當然,程式要先能動再談安全性。若要將這個設定關掉可以參考

https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/

在 Project 的 plist 中增加
NSAppTransportSecurity -> dict
    NSExceptionDomains -> dict  (單一設定 domain)
    NSAllowsArbitraryLoads -> boolean (全開)

以下為設定範例:

<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>mydomain.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
<key>crashlytics.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>