我的實驗室

常來我部落格打發時間的會發現今天我的導航列多了一個欄目—-實驗室 經常會看到一些大佬的部落格裡有個實驗室的導航,所以我也弄了一個用於學(裝)習(逼)。 這裡頭會放上我自己折騰的一些玩意。 我的動漫之路 (已廢棄) 用於記錄這些年看過的動漫和感想 2017年10月11日: 決定廢棄該頁面,已許久未更新了,主要原因還是懶,又是文字又是圖片的,真的好麻煩,時不時圖片地址還會失效。抽空再弄個簡單的算了。 簡約部落格系統 (已完成) 上個月嘀咕著重新寫個部落格,簡單點,不需要什麼複雜的功能,然後就誕生了這個名為簡約部落格的部落格系統。 這個月然後一點都沒寫了。看下個月有沒有時間寫(其實是懶) 模仿emlog 6.0 的前台後台寫的模子。我準備弄兩套看起來很清爽的前台模板,大概的樣子已經想好了,就差實現了-。- 後台的管理帳號密碼都為root

2017年8月22日 · 1 min · MoeJue

什麼是遞迴?

圖片來源於網絡 一開始你肯定覺得讀這句話好繞口,好費力。 其實你用遞迴來讀就很簡單了: 遞迴要有一個終點(小鯉魚) 當遞迴尚未達到終點的時候,函數會反覆呼叫自己。 顯然,輸出「我的小鯉魚」這句話是遞迴終止條件。 那麼寫成程式碼就是: #include <stdio.h> void Recursion(int depth){ printf(“抱着”); if (!depth) printf(“我的小鲤鱼”); else Recursion(–depth); printf(“的我”); } int main(){ printf(“吓得我抱起了\n”); Recursion(2); putchar(’\n’); } 目前我找到的對遞迴最恰當的比喻,就是查字典。我們使用的字典,本身就是遞迴,為了解釋一個詞,需要使用更多的詞。當你查一個詞,發現這個詞的解釋中某個詞仍然不懂,於是你開始查這第二個詞,可惜,第二個詞裡仍然有不懂的詞,於是查第三個詞,這樣查下去,直到有一個詞的解釋是你完全能看懂的,那麼遞迴走到了盡頭,然後你開始後退,逐個明白之前查過的每一個詞,最終,你明白了最開始那個詞的意思。。。 箭頭線代表程式實際運行步驟。 看了樓上很多答案,大多偏重於描述遞迴的現象,而沒說明為什麼要用遞迴,遞迴的思想到底是什麼。前陣子剛好看了點東西,試著整理下,如有錯誤之處,請不吝指正。 什麼是遞迴? 1. 定義 **Wiki [1]:**Recursion is the process of repeating items in a self-similar way. 具體到電腦中去 [2]: 遞迴(英語:Recursion),又譯為遞回,在數學與電腦科學中,是指在函數的定義中使用函數自身的方法。 英文的Recursion從詞源上分析只是「re- (again)」 + 「curs- (come, happen)」 也就是重複發生,再次重現的意思。 而對應的中文翻譯 「遞迴」 卻表達了兩個意思:「遞」+「歸」。 這兩個意思,正是遞迴思想的精華所在。從這層次上來看,中文翻譯反而更達意。 2. 跟迴圈的區別 單看上面wiki的定義,貌似跟通常所說的無限死迴圈很像,他們的區別在哪? 遞迴是靜中有動,有去有回。 迴圈是動靜如一,有去無回。 舉個例子,給你一把鑰匙,你站在門前面,問你用這把鑰匙能打開幾扇門。 遞迴:你打開面前這扇門,看到屋裡面還有一扇門(這門可能跟前面打開的門一樣大小(靜),也可能門小了些(動)),你走過去,發現手中的鑰匙還可以打開它,你推開門,發現裡面還有一扇門,你繼續打開,。。。, 若干次之後,你打開面前一扇門,發現只有一間屋子,沒有門了。 你開始原路返回,每走回一間屋子,你數一次,走到入口的時候,你可以回答出你到底用這鑰匙開了幾扇門。 迴圈:你打開面前這扇門,看到屋裡面還有一扇門,(這門可能跟前面打開的門一樣大小(靜),也可能門小了些(動)),你走過去,發現手中的鑰匙還可以打開它,你推開門,發現裡面還有一扇門,(前面門如果一樣,這門也是一樣,第二扇門如果相比第一扇門變小了,這扇門也比第二扇門變小了(動靜如一,要么沒有變化,要么同樣的變化)),你繼續打開這扇門,。。。,一直這樣走下去。 入口處的人始終等不到你回去告訴他答案。 ...

2017年8月9日 · 1 min · MoeJue

若是現實讓你低頭,那就在二次元中仰望星空

如果現實讓你低頭,那就在二次元中仰望星空。 我和我的朋友們,相遇在二次元,相識在二次元,相知在二次元,相見在二次元,我們可以為了自己喜歡的角色是死對頭,而在對方說自己喜歡的角色時說出那個人的缺點,也可以為了我們喜歡的角色是一樣的,而討論我們喜歡的角色的優點。其實還是有人與你一樣同為漫迷,也許還承受著別人異樣的眼光,但你要相信你並不是一個人,有千千萬萬個漫友與你同在!在每個御宅的心裡,都承載著那份屬於自己來自二次元的感動。你們都說那是假的,但我知道那份快樂是真的 二次元封存著我們無法忘記的回憶,永遠保留著我們的感動。即使是虛假,但也是無可替代的、二次元孩子的信仰。二次元不存在,但是,不存在的虛幻才是最美的。 我再次找回了二次元久違的感覺,再次讓我回憶起了二次元浪漫的世界心中久久未能平靜,回過神來,才發覺自己還擁有一顆愛著二次元的心,才發覺自己心中還承載著一份對二次元的情

2017年8月2日 · 1 min · MoeJue

HTML5 畫布 - 小球碰撞

HTML5 是全球資訊網的核心語言,屬於標準通用標記語言下超文件標記語言(HTML)的第五次重大修訂。 自 1999 年以來,HTML 4.01 已有許多變化,如今,HTML 4.01 中的一些元素已被棄用,這些元素在 HTML5 中已被刪除或重新定義。為了更好地處理當今的網際網路應用程式,HTML5 添加了許多新元素和功能,例如:圖形繪製、多媒體內容、更好的頁面結構、更好的表單處理,以及一些 API,如拖放元素、定位,包括網頁應用程式快取、儲存、網路工作者等。 標籤 描述 <canvas> 標籤定義圖形,例如圖表和其他圖像。此標籤基於 JavaScript 的繪圖 API 效果展示: 您的瀏覽器不支援 H5 程式碼部分: <canvas id="my-canvas" width="500px" height="400px" style="border:1px solid red" > 您的瀏覽器不支援 H5</canvas> <script type="text/javascript"> <!-- 取得畫布物件 --> var my\_canvas = document.getElementById("my-canvas"); <!-- 取得畫筆 --> var my\_huabi = my\_canvas.getContext("2d"); var x = 50; var y = 50; var r = 20; function deawBall(x,y){ <!-- 設定畫筆顏色 --> my\_huabi.fillStyle = "green"; <!-- 開始一個新路徑 --> my\_huabi.beginPath(); <!-- 畫出小球 --> my\_huabi.arc(x, y, r, 0, 2 \* Math.PI); <!-- 關閉路徑 --> my\_huabi.fill(); } var fx\_x = true;//當 fx_x 為 true 時,向 x 軸移動 var fx\_y = true;//當 fx_y 為 true 時,向 y 軸移動 var speen = 1; <!-- 計時器 --> window.setInterval("moveBall()", 10); function moveBall(){ <!-- 判斷目前小球的運動方向 --> if(fx\_x == true){ x += speen; if(x >= 500-r){ <!-- 當達到底部時,向上彈 --> fx\_x = false; } }else{ x -= speen; if(x <= 0+r){ <!-- 當達到頂部時,向下彈 --> fx\_x = true; } } if(fx\_y == true){ y += speen; if(y >= 400-r){ <!-- 當達到左側時,向右側彈 --> fx\_y = false; } }else{ y -= speen; if(y <= 0+r){ <!-- 當達到右側時,向左側彈 --> fx\_y = true; } } <!-- 清除畫布 重畫 --> my\_huabi.clearRect(0, 0, 500, 400); deawBall(x, y); } </script> var my\_canvas = document.getElementById("my-canvas"); var my\_huabi = my\_canvas.getContext("2d"); var x = 50; var y = 50; var r = 20; function deawBall(x,y){ my\_huabi.fillStyle = "green"; my\_huabi.beginPath(); my\_huabi.arc(x, y, r, 0, 2 \* Math.PI); my\_huabi.fill(); } var fx\_x = true;//當 fx_x 為 true 時,向 x 軸移動 var fx\_y = true;//當 fx_y 為 true 時,向 y 軸移動 var speen = 1; window.setInterval("moveBall()", 10); function moveBall(){ if(fx\_x == true){ x += speen; if(x >= 500-r){ fx\_x = false; } }else{ x -= speen; if(x <= 0+r){ fx\_x = true; } } if(fx\_y == true){ y += speen; if(y >= 400-r){ fx\_y = false; } }else{ y -= speen; if(y <= 0+r){ fx\_y = true; } } my\_huabi.clearRect(0, 0, 500, 400); deawBall(x, y); }

2017年7月18日 · 2 min · MoeJue

正式開啟全站HTTPS加密之旅

經過有段時間的內測,部落格正式開啟全站 HTTPS。 建站到現在也快一年了,一直想搞個 HTTPS,但是原來的主機不支援 SSL 憑證,這就沒辦法了。 最近主機不也快到期了嘛,於是就換了個支援的伺服器。 之前也一直有人跟我說,部落格時不時的就存取不到了,不知道這次升級了個更好的伺服器,速度和穩定性方面如何了。 然後就是對我的 emlog 版本也進行了升級,雖然只是個 6.0.0 的測試版,但比起之前的 5.X 版本的後台管理介面就好看多了,依舊採用的是 Bootstrap 的 UI 函式庫。 (註:下圖為 emlog 6.0.0 測試版後台管理介面,第三方佈景主題的設定介面不見了,下圖右上角的佈景主題管理是我自行添加上去的) 2、微語不見了 當初 emlog 弄上微語的時候我就感覺那是多此一舉了,弄的很粗糙,但等到大家都熟悉了之後,又去掉了,未免有點。。。 其實這也能用第三方外掛程式寫,給有需要的人去折騰吧。。。反正我也不怎麼發微語(懶),就將其捨棄了。 當然想要實現全站的 HTTPS 還是很麻煩的,我為什麼要升級 emlog 呢?原因就在這裡,只有 6.0.0 之後的版本才全面支援 HTTPS 了,要是用之前的版本,那豈不是要改到死。。。 除了 emlog,還有就是目前我使用的大前端佈景主題也是不支援 HTTPS 的。 其實大前端最主要不支援 HTTPS 的地方就是百度的分享功能,在文章頁面使用了百度分享,導致 HTTP 和 HTTPS 混用,可愛的小綠鎖沒了。 「百度分享到目前為止估計也已經有兩三年沒有更新過了,其官方網站的資訊更新至今還停留在 2012 年的時候。這麼長時間未更新以至於現在百度系很多產品都 HTTPS 化了百度分享仍然還是不支援,對開發者來說很麻煩。如果網站已經啟用全站 HTTPS 則使用百度分享後會出現載入問題,百度分享的核心 JavaScript 會被攔截掉。」 在網上尋尋覓覓,發現已經有人處理了這個問題,所以我們直接做伸手黨即可。 Github 地址:https://github.com/hrwhisper/baiduShare 3、預設佈景主題的手機版頁面去掉了(反正很醜),反正目前佈景主題是響應式的,不需要。

2017年7月14日 · 1 min · MoeJue

簡單的css3頭像旋轉與3D旋轉效果

經常會在一些網站看到評論區,評論人的頭像當滑鼠經過會360°旋轉 先來看一下效果 .tximg{ height:300px; border-radius:50%; border:2px solid green; /變化規則/ transition:all 2s; } .tximg:hover{ /* 變化動作 定義2d旋轉,參數填寫角度 */ transform:rotate(360deg); } CSS 部分 img{ height:300px; border-radius:50%; border:2px solid green; /*變化規則*/ transition:all 2s; } img:hover{ /* 變化動作 定義2d旋轉,參數填寫角度 */ transform:rotate(360deg); } HTML 部分 (很簡單,就一張圖片) <img src="http://www.52ecy.cn/log0.png"> 3D 旋轉效果 (前端顯示樣式好像還是衝突了-。-) .div{ width:300px; height:300px; border:1px solid red; /如果希望看到3D效果,需要在動的這個元素的父元素,增加一個perspective屬性/ perspective:300px;/3D 元素距視圖的距離,一般與圖片的高度一致效果最佳/ } .img{ width:300px; height:300px; border:1px solid red; /變化規則/ /設定旋轉元素的原始點位置/ transform-origin:bottom; transition:all 2s; } .img:hover{ /變化動作/ transform:rotateX(60deg); } ...

2017年7月10日 · 1 min · MoeJue

用CSS3繪製iPhone手機

先上效果圖,先睹為快。(這絕對不是一張圖片。嗯這話怎麼怪怪的) 不要問我iPhone幾,因為我也不知道,沒用過,你懂得。 css樣式部分 #phone{ width:250px; height:500px; background-color:#2E2E2E; border:10px solid #3B3B3B; margin:100px auto; border-radius:30px;/設定div元素的圓角邊框/ } #camera{ width:8px; height:8px; background-color:#1A1A1A; border-radius:50%; border:2px solid #505050; margin:10px auto;/距離上邊距10px 左右居中/ } #receiver{ width:80px; height:8px; border:2px solid #505050; margin:10px auto; border-radius:10px; background-color:#1A1A1A; } #screen{ width:225px; height:385px; background-color:#0A0A0A; border:3px solid #1C1C1C; margin:10px auto; } #btn{ width:40px; height:40px; background:#1A1A1A; border-radius:50%; /當寬高相同時,則為圓/ margin:10px auto; } /:before 選擇器在被選元素的內容前面插入內容。/ #btn:before{ width:22px; height:22px; border:2px solid white; border-radius:30%; content:""; /即使插入的內容為空也需要寫,否則不顯示/ display:inline-block; margin-top:7px; margin-left:7px; } HTML部分 晚些我又加了點玩意上去 點擊Home鍵可以讓手機亮屏,5秒後又再次熄滅螢幕 ...

2017年7月3日 · 1 min · MoeJue

瞎折騰-友情連結自助申請

關於 友情連結自助申請是使用PHP語言開發的一款友情連結自動審核添加系統。 採用Bootstrap UI庫的柵格系統進行佈局,畢竟咱不是專業的前端,能搞成這樣就不錯了。 功能介紹 本系統,理論支持所有的網站;支持HTTPS的網站;友鏈需要設在網站的首頁;網址有做url跳轉或者防護的無法檢測;一級域名申請通過後,二級域名無法繼續申請;背景圖片隨機我圖庫中一千張; 緣由 在我友鏈中看到一博主,是這麼搞的。申請友鏈自動審核添加,瞬間就感覺高大上了許多,又省去自個審核的麻煩,又能及時添加上去。然後自個就瞎折騰了個 我就在這裝裝逼就好了,源碼有要的可以聯繫我。 以上如有說錯的地方,你TM來打我啊 效果如下圖 友情連結申請地址 友情連結申請須知

2017年6月1日 · 1 min · MoeJue

各種語言的OEP大全

平時要找 OEP 對照確實比較麻煩,我就整理了一下,直接在本文中查看並認識 OEP, 或者右鍵點擊圖片儲存到本機 點擊可查看大圖 如果對您有幫助的話,請留言評論一下吧~ VC6 與易語言 Delphi7 VB5 VB6 BC++ **VS2008Debug ** **VS2008Release ** **VS2012-VS2015Debug ** **VS2012-VS2015Release **

2017年5月19日 · 1 min · MoeJue

各種語言按鈕事件特徵碼

調試軟體,最重要的就是下斷點,那麼如何下斷點,就是一門重要的技巧 比如:彈提示框,就下MessageBoxA,註冊表的,就下RegOpenKeyA等等 當然,能直接下到按鈕事件,當然更為方便,因為到了按鈕事件後,很快就會到達核心程式碼,離你的破解也就不遠了 本文就總結一下各類語言找按鈕事件的方法,當然也可以借助工具,如VBexplorer,DEDE,ECE等等 一、VB程式 其實,VB的按鈕事件的找法是最為普遍的,也就是大家所謂的萬能斷點,其實也不僅僅是針對按鈕事件,還有很多其他的用處,如取消NAG,啟動框,灰色按鈕或隱藏按鈕,啟動時的timer事件等等,具體的就自己去總結吧,這裡只講按鈕事件! OD載入後,CTRL+B 查找 816C24 二、Delphi和BC++程式 Delphi和BC++都是同一公司開發的,故查找方法都一樣,當然你也可以使用DEDE. OD載入後,CTRL+G,轉到00401000處 然後就CTRL+B,查找特徵碼740E8BD38B83????????FF93???????? 下面的工作就是不斷的CTRL+L繼續查找和F2下斷了 三、易語言 易語言的這種查找方法,同樣適合有殼的程式,其他的就必須脫殼後再繼續操作了 OD載入後,就F9運行程式吧,當程式運行後, 然後CTRL+B,查找FF 55 FC 5F 5E 四、VC++程式(非MFC程式) OD載入後,單擊滑鼠右鍵,選擇"查找",然後是"所有命令” 在彈出的輸入框裡,寫入特徵程式碼 sub eax,0a 然後斷下後,F7跟進,F8幾次,就來到按鈕事件了 五、MFC類程式 當然判斷MFC和非MFC的程式,靠大家自己去判斷了 運行程式然後就CTRL+F,查找特徵程式碼:sub eax,0a 斷下後F7跟進,F8幾次,就會來到按鈕事件程式碼處了! 總結類:各種語言按鈕事件特徵碼 VB: 816C24 Delphi & BC++ : 740E8BD38B83????????FF93???????? MFC: sub eax,0a VC++: sub eax,0a 易語言: FF 55 FC 5F 5E或(e-debug) 萬能斷點: F3A58BC883E103F3A4E8 按鈕事件如何使用 請去看我的零基礎學破解系列教程 本文部分摘自網路

2017年5月15日 · 1 min · MoeJue