發表文章

目前顯示的是 10月, 2019的文章

Android Studio 你不能不會的Debug 除錯技巧

圖片
Debug斷點跟蹤除錯是軟體開發過程中分析代碼、解決BUG的一個重要手段,不同IDE下的Debug工具的使用有所不同,但提供的除錯功能一定是應有盡有。很多程式設計師的Debug能力都停留在基本的單步執行、斷點跳躍上,殊不知還有很多鮮為人知但非常方便的除錯技巧。本文就以Android Studio工具為例,展示一些一般人不知道的Debug除錯技巧,掌握這些,你也算是Debug除錯大師了。 基本使用 Debug App有兩種途徑,第一種是直接點擊下圖運行按鈕右側的小蟲狀圖標,運行並除錯當前Project,這個我想大家都知道。 第二種就是調試當前已經處於運行狀態下的App,這也是我們用的更多的一種除錯手段,即Attach debugger to Android process。點擊運行按鈕右側第三個按鈕,彈出Choose Process窗口,選擇對應的程序,點擊OK按鈕即可進入除錯模式,此時,我們便可以在需要的地方直接下斷點除錯代碼了: 接下來就是常見的調試方法了,在Debug窗口頂部工具欄有一排操作按鈕,比如Step Over(單步執行)、Step Into(進入方法)等,如圖所示: 打斷點和取消斷點最直接的方式就是單擊目標代碼行的行號右側空白處,然後在Debug窗口左側有個斷點瀏覽按鈕View Breakpoints,位於停止按鈕下方第一個,可以瀏覽Project中的所有斷點,同時可以添加刪除斷點: 條件斷點 有時候,我們的斷點打在了循環體裡面,但是我們只想看某一特定循環次數下的運行情況,難道要使用Run to Cursor功能不停地跳至下一次斷點直至滿足我們的要求嗎? 如果你知道條件斷點的話,一定會悔不當初。條件斷點可以滿足開發人員自己輸入條件,比如fori循環中輸入i == 5即可讓程序直接運行至第六次循環,for each循環中針對list某一元素下的斷點調試。只需要右鍵點擊斷點,在彈出的窗口中輸入Condiction條件,點擊Done按鈕,然後當程序執行到循環體時,會在滿足條件的一次循環中停下來,供我們除錯: 日誌斷點 列印日誌也是跟蹤程序分析問題的一個非常有效的手段,但是如果我們的程序已經運行並且處於除錯模式,此時如果想列印日誌更加直觀的分析代碼,難道還要停

埋藏20年的秘密:真人快打 - 隱藏介面被發現

圖片
《真人快打》是一款90年代經典街機格鬥遊戲,雖然畫質不能和如今的《拳皇》媲美,但在當時卻俘獲了一批格鬥迷玩家。 但你知道嗎?其實這款遊戲中隱藏著一個神秘菜單,近日,這個由創始人Ed J Boon埋下的秘密在長達20年後被某玩家意外發現。 打開這個隱藏菜單輸入方法如下(ps.三代的調出指令都一樣): 玩家一迴避鍵(Player1 Block)以下簡稱P1B,玩家二迴避鍵簡稱P2B。首先鍵入P1B四次,鍵入P2B十次,P1B兩次,P2B一次,P1B兩次,P2B三次最終輸入P1B四次。 據了解,在《真人快打》一代、二代中,可以查看各個遊戲角色的資料、直接修改排名數據、運行測試模式等等;而在《真人快打3》中則可以查看感謝名單、解鎖隱藏角色,並且可以遊玩一個類似《小蜜蜂》的遊戲。

MAME成為街機模擬器霸主的原因(4)

圖片
上接MAME成為街機模擬器霸主的原因(3),讓我們來仔細探討一下,MAME這位街機模擬器公認的霸主,為什麼能從眾多街機模擬器競爭者中脫穎而出、傲視同儕、掃蕩群雄、一統天下呢?我認為主要有以下幾大原因: 6、技術高超,底力渾厚。 可能是因為開放原始碼的關係,MAME的開發者中雲集了全球精英程式設計師,這些大拿們通力協作,各展長才,把MAME打造成了一個強大的模擬器怪獸。 MAME在很多方面都領先於其他街機模擬器: 在架構方面的領先: MAME的架構可以說是一改再改,而且支持的cpu和音效卡硬體越來越多。就拿模擬器熱門的使用普遍的mc68000 cpu來說,自從MAME 0.28初步支持mc68000 cpu,有關這個cpu的代碼在MAME中幾乎一直在更新,不斷的修復bug,優化代碼。截止到MAME 0.180,代碼還在更新中。具體更新內容,我看不太懂,但是我深為這種精益求精的精神所感動。帶來的效果就是,MAME的mc68000核心代碼是全球最精確的68000 cpu代碼,隨著時間的推移,bug越來越少,已經非常接近於實機效果。 而這個cpu只是MAME支持cpu的冰山一角。你可以想像MAME的技術力是何等渾厚。 在功能方面的領先: 雖然如前述MAME缺乏一些很有人氣的功能,比如宏定義按鍵、3D硬體加速等,但是這只是MAME不願意去做,非不能而實不為也。在其他方面,MAME在功能上要全面凌駕於其他街機模擬器。 舉個例子,MAME中包含了一個強大的debug調試系統,可以為程式設計師測試遊戲和模擬器的運行提供方便。因為這個系統太強大了,功能完備,使用方便,所以幾乎所有的hacker都在用這個調試系統來hack遊戲。 強大的debug調試系統,hacker們對其再熟悉不過了: 再比如MAME的一個小功能:cheat系統,經過無數次改革以後,已經具備一個行之有效的cheat庫,可以提供你能想到的所有類型的cheat作弊碼搜索、製作和運行。其功能的高超,令其他的模擬器拍馬也追不上。 MAME cheat系統支持的一條作弊碼:真侍魂的無限體力作弊碼,這個作弊碼用到了動態地址追蹤技術,在其他模擬器上均無法實現: 又比如MAME還有很多亂七八糟的各種用的上或用不上功能,幾乎都是用命令行來實現的,在它的rea

MAME成為街機模擬器霸主的原因(3)

圖片
4、低調保守,厚積薄發。 MAME作為一個街機模擬器,非常低調而保守,一直以來都是默默做事,從不張揚個性。它不像neoragex或callus,也不像winkawaks或nebula,從不追求讓玩家心滿意足的效果和功能。MAME的宗旨只有一個,那就是儘量百分之百的精確模擬街機遊戲,並讓它們流芳百世。 在此宗旨下,凡是有利於玩家玩遊戲的選項,MAME一般都不支持或支持的很少。比如,按鍵連發功能,是在最近才被支持的,以前MAME都不支持。這是因為街機一般沒有連發鍵功能。 MAME雖然支持了連發功能,但是竟然把它藏在作弊功能中,導致很多玩家都沒有找到 比如,為了精確模擬街機遊戲,MAME不支持很多模擬器採用的HAL 3D加速功能(硬體適配層3D加速功能),也即不使用強大的顯卡硬體加速3D街機遊戲的模擬,而只支持軟體模擬模式。因為雖然軟體模擬非常緩慢,但是精確度較高。所以MAME寧可不使用硬體設備模擬街機遊戲,也要堅持使用軟體模擬。 MAME寧可讓玩家玩遊戲不順暢,也堅決不支持3D硬體加速效果,所以它支持的一些遊戲和Demul、supermodel等模擬器的速度比起來相距甚遠 MAME具有完備的作弊功能,但是在默認設置中,作弊功能是被關閉的,因為街機沒有作弊碼可用。 其他模擬器幾乎都支持的宏定義功能、動態透明效果功能等功能,MAME一個都不支持。 winkawaks的宏定義按鍵功能,是一個極為受到玩家歡迎的功能 凡此種種的現象說明,MAME的處世之道極端保守而低調。作為一個玩家,自然希望能在玩遊戲的時候多多享受到模擬器的便利效果,然而MAME的古板作風給很多玩家留下的不好的印象,他們覺得MAME難以使用、速度緩慢、缺乏功能,殊不知這正是MAME為了精確模擬街機遊戲而堅持的底線。 5、發布較早,先聲奪人。 MAME比很多著名的街機模擬器都要早發布,MAME 0.01出現在1997年2月5日,接著MAME的版本號就連續攀升,支持的遊戲也越來越多,不得不說,對比callus、rage或raine,MAME是有先發優勢的。早期,給MAME貢獻代碼的程式設計師只有老大Nicola Salmoria等數人,然而MAME的規模很快就像滾雪球般擴大,招攬的程式設計師不斷增多

MAME成為街機模擬器霸主的原因(2)

圖片
3、良好的項目管理和社區支持。 MAME的項目管理系統,從一開始的由老大NicolaSalmoria獨力經營,到現在由五位開發者大佬團體牽頭合作協同開發,經歷了很多變遷。 MAME一直是一個鬆散的組織,由一些MAME DEV(MAME開發人員)組成一個組織,向MAME提交代碼,並交由老大整理髮布。 MAME的發布系統是極為嚴謹的。最近,MAME官網透漏了一些有關新版本發布的細節: 從MAME 0.179開始,在每個發布版本之前會有三天的凍結期。在每月最後一個星期日,MAME正式發布日來臨之前三天,管理團隊就開始鞏固代碼和準備發布新版本。在凍結期開始之後,只有重要的修復補丁可以被集成入預發布版。新版本的基本功能被在Windows, Linux和Mac等廣泛的作業系統上測試。在凍結期開始之後到發布日,ROM/系統一般便不再更新。只有一個例外情況,就是最近被增加到可以運行狀態的系統,如果有任何錯誤修正,可以被集成入預發布版。凍結期給MAME測試員鞏固目標的時間,使發布造成的問題可以被最小化。 在技術層面上,一旦凍結期開始,MAME管理者就將創建一個從主幹代碼分出來的分支代碼,稱為release0nnn。nnn的具體數值就是將要發布的MAME的版本號。修補代碼將被推送和集成入該分支代碼中,而不是主幹代碼。主幹代碼的開發正常進行。任何不屬於該發布版本的代碼,將被集成入以後將要發布的版本,在發布日當天,最終發布版代碼被標記後,被重新集成入主幹代碼。然後分支代碼被刪除。發布代碼被標記為mame0nnn這樣的表格。從凍結期到發布期之間的這段時間,分支代碼將被公布在MAME位於github網站的軟體倉庫中。在MAME新版本發布後,該分支代碼包括的所有修改版本將被集成回主幹代碼。所以沒有修補信息會丟失,而且關聯到個人開發者的委託也會在MAME新版發布後繼續保持有效。MAME管理者也和MAME測試員合作,在凍結期開始後,增加一個新版到以後被發布的代碼版本。 顯然,這種管理系統是極為嚴謹而有效的。 MAME從誕生之日不久,就擁有了龐大的粉絲團體和良好的社區支持。我記得在我1998年在北京大學南門飛宇網吧以25元/小時的天價上網的時候,MAME的官方粉絲網站:MAMEWorld就已經開始運營了。MAMEWorld網

MAME成為街機模擬器霸主的原因(1)

圖片
讓我們來仔細探討一下,MAME這位街機模擬器公認的霸主,為什麼能從眾多街機模擬器競爭者中脫穎而出、傲視同儕、掃蕩群雄、一統天下呢?我認為主要有以下幾大原因: 1、開放源碼,方便移植。 MAME從一開始就是開放源碼的Free Software,無需多言。因為開源的關係,得道多助,無數優秀的程式設計師相繼加入了MAME計劃。為這個項目寫代碼的人越來越多,得到的代碼供應量肯定會比封閉不開源的模擬器多。舉一個例子:1998年,有幾個程式設計師宣布要編寫一個模擬Data East公司的街機遊戲的模擬器,但是後來這幾個程式設計師將這個項目併入了MAME開發進程。Data East的街機遊戲在後續MAME版本里得到了支持。隨著時間推移,這樣的例子越來越多,使得MAME支持的遊戲像滾雪球般擴大。 又因為免費開放源碼,使得MAME從一個平台向另一個平台移植特別簡單。現在,MAME橫跨Windows、macOS、Linux和BSD平台,可以被運行在從x86-64到ARM到IBM zSeries等各種各樣的CPU上,成為一個真正意義上的巨無霸遊戲模擬器。 2、立意深遠,布局宏偉。 MAME計劃,幾乎從一開始就不是為了讓人玩遊戲而設立的。這是它和其他各大街機模擬器很大的一個不同特點。 1997年8月10日,MAME最初的老大Nicola Salmoria在MAME 0.27b開始,給MAME設定的目標是: 「MAME的主要目的是成為一個被模擬的街機遊戲的參考資料,這是為了教育的目的,而且保存許多歷史上的街機遊戲。當它們運行的硬體停止工作,它們將走入歷史。而MAME將使其避免被歷史遺忘。當然,為了保存遊戲,你必須能實際操作和遊玩這些遊戲;你可以把遊玩街機遊戲看做一個不錯的邊際效果。」 不管這是不是為了規避版權法律才發布的一份冠冕堂皇的聲明,這份聲明是有效力的。多年來,MAME堅守著Nicola Salmoria大神設立的目標,始終為了保存街機遊戲不被遺忘而存在。 今天,MAME體現了我們人類重要的數字傳承,而且這些傳承理所應當被保存留給未來世代。MAME力求精確體現原始系統,允許未經修改的軟體運行在它們被發明的狀態。MAME記錄了超過三萬個系統,可以運行的系統有一萬以上。作為一個通用目的的模擬器,MAME成為了廢舊硬體修理人員的參考資料,和一個

Informix 取得目前時間 (Oracle Dual Table,Sysdate)

Informix 並無Dual表,但可以使用systables 配合tabid=1達到同樣效果 另外也可以用CURRENT達到跟Oracle Sysdate 的效果 SELECT CURRENT FROM systables WHERE tabid=1;

推薦一款ios和安卓都適用的街機模擬器

圖片
今天小編閒來無事刷頭條,突然想玩馬里奧了。just do it!經朋友推薦發現一款模擬器非常好用!現在推薦給大家(真的沒收錢,笑而不語!) 噹噹當!小雞模擬器! 具體安裝方法大家自行百度吧,iphone不用越獄也可以哦! iphone安裝後的圖標 進入程序後的主介面,裡面好多遊戲,等不及了,馬上下載個馬里奧試一試。(激動ing~~) 。 程序主介面 下載完成,啟動吧! 遊戲還可以存檔,看來以後玩RPG類的不用擔心時間不夠了。存檔慢慢玩,適合我這種沒有大量時間的上班族。嘿嘿! 這個模擬器給我的最大驚喜是竟然還有PSP主機遊戲,可憐小編當年的PSP買來還沒有2個月就丟了,我大學幾個月生活費,攢著容易麼! 先哭一會兒.... 分類菜單,支持的主機還算全面 今天就到這裡啦!小編要開始當年未完成的狩獵!崩龍我來了。

論街機遊戲----懲罰者無敵BUG的二三事

圖片
聲明:本文章乃鳥巢原創,轉載請註明作者,謝謝! 如今,時過境遷,滄海桑田。當年90年代在街機廳中叱吒風雲的高手們,如今只怕早已成為孩兒他爸或者孩兒他媽了吧。我們的腦海中不在迴蕩著當年那些過關秘籍,或者出招手感。因為在我們的生活中充實著更多的是繁雜的各種「貸款」,婚姻或者工作。我們早已找不回來自童年的那些樂趣。來自生活的各種壓力讓我們幾乎喘不過氣來。 現在,就讓時光倒流,讓我們重新回到那個未被徹底遺忘的年代。那個讓我們熱血沸騰的年輕時代。 「懲罰者」相信對於很多80後或90後的朋友們並不陌生。這款是源至美國漫畫並由著名遊戲廠商「capcom」在1993發行的遊戲。該遊戲的手感相當出色,很好的表現出了原作那種暴力熱血的感覺,玩上去非常爽快。在那個清版過關遊戲已經泛濫的年代,它可謂是獨領風騷,在街機廳中占有了一席之地。 對於此遊戲劇情等細節本篇文章就不多加描述,我們今天所要討論的是這款遊戲真正在街機體中紅火的源頭,那個幾乎所有深刻體驗過的玩家們的話題--「無敵BUG」。 其實,稍微資深玩家都知道,凡是這一類型的遊戲最初上手的難度就在於流程中除開boss外,就是不斷從各個角落出現的雜兵;有的雜兵很弱,有的雜兵卻很強。玩家們需要不停的利用系統給予主角的能力來一個一個或一次性一群的消滅這些僅僅是動畫背後卻又隱藏著複雜程序代碼的敵人。稍微不注意或者有閃失,便會扣掉一大條HP或者直接一命嗚呼。玩家們為了達到一幣通關,可謂是絞盡腦汁,不停的磨練。兜里的錢就這樣慢慢的放進了可惡的機廳老闆的腰包中。我們鬱悶了,老闆笑了。但是,遊戲這個東西畢竟是人類發明的,它再怎麼讓人虐心,也跑不出「高手」的五指山,而這個所謂「高手」並不僅僅指的是玩遊戲技術的高手,還有一個是我們既熟悉又陌生背後的工作者「黑客」。這裡鳥巢囉嗦地說幾句題外話,你們可曾知道,為什麼當年在全國範圍內會有這麼多街機廳?沒錯,在那個年代經營街機廳確實很賺錢。但是國產街機遊戲可謂是寥寥無幾,我們所玩的大部分遊戲其實都是來自與國外。其中日本占大多數。我國一般普通家庭要想購買一套街機主板是非常困難的。首先沒有供貨渠道,再來就是其價格在當時可以算是天價。一套正版的遊戲基板少則都是上萬,更不要說開一個擁有數台街機的遊戲廳了。但是,這是個世界任何事物都是相對的,有了我們的「

每天10分鐘,輕鬆提高深度思考的能力

轉載文章 每天10分鐘,輕鬆提高深度思考的能力 2017-03-16 由 筆耕不輟弘丹 發表于 資訊 1. 大哲學家羅素有這樣一句名言,「很多人寧願死也不願思考」。 美團網CEO王興曾說過這樣一句話:「多數人為了逃避真正的思考願意做任何事」。與羅素的話有異曲同工之妙。」 觀察我們周圍,確實發現能夠深度思考的人少之又少。大多數人人云亦云,隨波逐流,或者聽信於權威。 一個熱點事件出來之後,有些人常常會覺得迷惑和茫然,閱讀A的文章,覺得他的觀點很有道理,閱讀B的觀點也覺得很有道理。可問題是,A和B的觀點竟然是相反的,而他們自己完全不知道該如何來判斷和獨立思考? 一定程度上,一個人的思考質量決定了其生活質量。 2. 職場中,核心競爭力是什麼?毫無疑問深入思考的能力是核心競爭力之一。但大多數人逃避思考。工作時,就像是一個榆木腦袋,老闆吩咐做什麼,自己只管執行,甚至連老闆吩咐的事情都做不好。如果一個人有深入思考的能力,制定解決方案,徹底執行的能力,那麼他在職場的肯定能夠脫穎而出。 不動腦,人就不會成長。而我們在學校里幾乎沒有進行過什麼思考訓練,或者是高效率歸納思路的訓練。除了寫作文外,就沒有針對「深入思考」的教育了。可惜,寫作文是很多人最頭疼的事情,因而連帶思考也成為一件費力的事情。 那有沒有什麼方法可以輕鬆提高深度思考的能力? 最近在閱讀赤羽雄二的《零秒思考》,書中作者提到的方法倒是值得嘗試的,而且非常簡單。這個方法說出來,想必很多人會不屑一顧,會認為這麼簡單的方法也值得寫一本書?但不知道有多少人能夠作者的耐力,寫幾萬張筆記。 赤羽雄二的方法:用1分鐘在A4紙上寫下你的想法。將浮現在腦海中的想法一個一個寫下來。不能花時間慢慢寫,這張A4紙要在1分鐘之內快速寫完。 具體做法:將一張A4紙橫放在面前,每張紙寫一個主題,1頁寫4至6行,每行20至30字,寫每張紙所用的時間要控制在1分鐘以內,每天寫10頁。其實也就是每天花10分鐘的時間。 這個方法的工具非常簡單,就是A4紙和筆。隨時隨地都可以進行。 作者將這種方法命名為「做筆記」,但這個「做筆記」與我們平常認為的那種摘抄時的做筆記不同,是針對一個主題,寫出自己的看法。我認為類似於「自由書寫」。 這個方法這麼簡單,有效嗎?個人覺得還是挺有效的。這個方法我倒是用了挺

Informix SQLString 取部份字串 SubString 函式

--Col欄位值 = 'ABCDEF' SELECT Col[1,2] as A, Col[3,5] as B FROM TAB1; ---------------------------------------------------------- 結果: A='AB' B='CDE'

Informix SQL NVL函數 判斷是否為NULL,並指定一個值來取代NULL傳回

NVL函數: 語法: NVL(T1,T2) 判斷引數1是否為NULL值,如果是將它轉為引數2指定的值。 例如: SELECT Col FROM TAB1 WHERE  nvl(Col,'0') != '0';

WoW Cooking Guide - Approach a Local Trainer to Learn the Recipes

Restoring: There are large tables with detailed tasty meals. Cooking is a profession which will allow the players to combine various ingredients such as fish or meat into delicious food and drink items which can be consumed to restore health and mana, as well as to grant combat buffs. This skill is often paired with Fishing since levelling the latter often provides the materials needed for Cooking. To cook, you will need to either find yourself a fire - and have the required ingredients, of course. Tools required: Many innkeepers and cooking trainers have a cooking fire, a brazier, or some other tool needed for cooking around them. If you are out in the wilderness, however, you can always create your own Cooking Fire - a skill you learn when you learn Cooking. Regardless of the location though, your food will be delicious and fully capable of providing one of the Well Fed buffs, its strength depends on the level of the food you have eaten. Cooking will be split up into six speci