發表文章

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

Linux Ubuntu 18.04 開機自動執行指令

#切至root權限 sudo su nano lib/systemd/system/rc.local.service 文件後面加上下列 [Install] WantedBy=multi-user.target Alias=rc.local.service 存檔 建立 rc.local 檔 cd /etc sudo touch rc.local nano rc.local 文件內容如下 #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will “exit 0” on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. mount –bind /home/web_backup/ /var/www/html/web/ exit 0 文件說明:這邊我主要是要每次啟動自動mount web_backup 到 web資料夾中 #rc.local 變更執行權限 sudo chmod +x /etc/rc.local #啟用服務 sudo systemctl enable rc-local.service 重開機如果有自動mount就是成功囉!

自己動手寫 Shell Script

在許多的情況之下,我們都需要固定一組可以重覆或判斷資訊的指令, 而把這些指令存被在文字檔中,再交由Shell執行,就是Script。 一般會將Shell Script的副檔名命名為.sh,雖然副檔名在Linux中並非必要, 但是有副檔名可以讓我們更容易管理這些檔案。 假設有一個名為test.sh 的 Shell Script,首先用文字編輯器來撰寫內容如下: #!/bin/bash echo Hello World 第一行是必需的,它是用來定義你要使用的 shell。Linux中有許多的Shell可以使用, 如:ksh、bash,但是彼此之間語法有所差異,所以我們首先需要定義使用哪一個Shell。 而第二行的 echo 代表列出一個字串,預設會把後面的字串「Hello World」顯示在螢幕上。 將test.sh存檔後,可以用下列其中一種方式執行它: 1、直接輸入 sh test.sh 2、改變test.sh的權限,加上可以執行的權限,    chmod a+x test.sh    接著直接執行它:    ./test.sh 在Shell Script中,「#」表示註解,在#後面將視為註解並且被程式忽略。 例如: #pwd ls -l Shell只會執行ls -l,而不會執行ls -l 而「;」 則代表指令的分隔,例如: pwd;ls -l 和 pwd ls -l 都是一樣執行pwd及ls -l。 二、變數的使用 在Shell Script中,所有的變數都視為字串,因此不需要在定義變數類型。 在Shell中定義和使用變數時並不一樣。 例如,定義一個變數id並且設定值為2013001,接著還要將印出變數的值: id=2013001 -> 定義變數時前面不加「$」符號 echo $id   -> 使用變數時前面要加「$」符號 注意,在等號的二邊不可以有空白,否則將出現錯誤。 再介紹一個範例: dir=/home/oracle ls $dir 這裡我們定義了變數dir的值為/home/oracle,接著用ls指令來印出變數dir, 此時指令會變為ls /home/oracle,所以就把目錄中所有檔案都列出來。 我們再來看一個例子,說明如何使用變數來定義變數: $

查詢自己的AD帳號狀態,看是否被鎖定、密碼修改及到期日期等。

筆記一下 查詢自己的AD帳號狀態,看是否被鎖定、密碼修改及到期日期等。 指令:net user AD_USERNAME /domain 例如AD帳號為guest,則指令為: net user guest /doma

如何透過NFC技術提升您的業務發展?

NFC您可能已經聽說過的(一種新的智能手機具有的功能),但不確定是什麼。該首字母縮寫詞代表近距離通信,該技術是不久前發明的,並且似乎有光明的前景。有什麼特別之處? 近場通信技術可輕鬆直觀地將智能手機用於某些特殊用途。它提供了彼此之間非常靠近(1-4厘米)的設備之間的非接觸式雙向通信,因此您可以以此發送和接收數據。 看起來像藍牙嗎?沒錯,但是有了NFC,您的設備所消耗的功率就會大大減少,並且可以更快地建立無線連接。另外,NFC中沒有配對或相互發現之類的其他障礙。設置NFC比Wi-Fi或藍牙更容易-它會自動開始工作!無需啟動任何應用程序。順便說一下,由於範圍較短,不需要的攔截概率被降低到最小。 說到這一點,NFC使用短射頻在兩個設備之間建立自動無線連接。 NFC的用途是什麼? NFC有三個基本應用領域: 1.卡模擬:啟用NFC的設備的行為類似於智能感應卡(用於執行付款和票務等交易) 2. NFC讀取信息:支持NFC的設備讀取存儲在RFID標籤上,嵌入在智能海報和標籤中的信息 3.對等模式:兩個啟用NFC的設備相互連接以交換信息 當前,可以使用NFC支付的最受歡迎的應用是Google電子錢包(適用於Android設備)和Apple Pay(適用於iPhone)。不過,應該提到的是,NFC目前,iOS設備尚未完全支持NFC。 Android在這裡有花環。 這項嶄新的技巧為精明的商人提供了多種選擇: •NFC移動支付,其中設備充當非接觸式銀行卡。您無需使用標準銀行卡在收銀台付款,您可以使用; •安裝在手機中的NFC付款應用程序; •票務:在公共交通工具上的手機購買; •從街道板和廣告中讀取RFID標籤,類似於QR碼; •將藍牙設備與兩部手機進行一次觸摸即可配對。 很快,它將有望用於各種目的,例如電子貨幣,電子商務,在線票務,身份證,旅行卡,軟件保護加密狗和其他應用領域。 我如何知道手機中是否有它? 當前,在兼容NFC的智能手機中,我們可能會提到Google的Nexus S,三星的Galaxy S II和BlackBerry Bold 9900和9930。基本上,如果您在過去一兩年內購買了智能手機,則很可能已嵌入了NFC功能。為確保安全,請檢查支持該技術的設備的詳盡清單。 粘貼標籤,而不是標籤! N

ReactJS 與 AngularJS 該選擇哪一個比較適合?

ReactJS和AngularJS都是任何移動應用程序開發公司都非常流行的框架。兩者都各有千秋,根據開發人員的需求各有優缺點。讓我們分析兩個主要前沿參與者的功能,然後您可以決定選擇哪個。 AngularJS Angular是處理數據綁定的完美解決方案。 Angular應用程序中的數據綁定涉及模型(或客戶輸入源)和“視圖”之間的數據自動同步。當模型更改時,視圖將反映更改,反之亦然。通過減少多個步驟,Angular可能是一個非常吸引人的選擇。 ReactJS ReactJS是用於管理DOM(文檔對像模型)的出色框架,尤其是在處理大量數據時。 React主要通過在JavaScript中創建虛擬DOM來工作,該虛擬DOM充當DOM的中間表示。這種表示形式使您可以輕鬆地確定DOM中要更改的元素以及結果可能是什麼。 比較: 年齡: Angular從那開始就已經開始了React。因此,對Angular的支持要好得多。雖然Angular的編碼更加複雜,但是React更易於使用,因此您從支持社區獲得的幫助較少。 速度和功能: Angular JS功能更強大,但速度卻比React差一點。當有巨大的數據庫要提取數據時,用戶可能會遇到一些延遲。 React比Angular JS快,因此在渲染大數據時可以正常工作。 它使用完整的MVC架構,因此非常適合經驗豐富的編碼人員使用。它僅使用視圖組件,因此其功能比Angular JS少。初學者應該使用React。 部署: Angular JS從HTML角度起作用,並提供了範圍有限的用於打包和部署代碼的工具。而React從Java腳本的角度運行並提供諸如RequireJS之類的庫來加載代碼。 調試: 使用Angular JS可以輕鬆編寫代碼,但難以調試。借助React,它的調試變得更加容易。您可以獲取適用於Chrome的React Developers Tools擴展程序並開始使用。 兩者誰勝出呢? 那麼答案就是兩者!讓我們相互使用而不是反對。 React的純JavaScript環境為開發人員提供了更大的靈活性和學習便利性。當Angular進行某些限制時,您可以期望React提供完全的自由度。同樣強大的功能,可以在下一個大型項目中結合使用兩者。

ASP.NET Single Sign On 產品 - ComponentPro

網路世界正在快速的變化。即使我們僅由一台服務器提供服務,但我們過去仍然經常維護用於不同類型產品或平台的多個用戶帳戶的日子已經一去不復返了。實際上,我們必須創建不同類型的密碼並設置用戶名才能訪問不同的網站。即使我們設法執行任務,也要記住每個人最艱鉅的任務,以使他們不會在我們腦海中混亂。但是,最近越來越多的網站活動要求進行身份驗證,因此看到了SSO或單一登錄的發展。 您可以使用同一組身份驗證來訪問多個網站,在大多數情況下也無需輸入身份驗證。這是一項偉大的發展,為我們省去了登錄我們訪問的每個網站的麻煩。這樣,我們可以節省時間,省去記住我們登錄的每個網站的痛苦以及用於登錄每個網站的憑據。但是在進一步解釋之前,有必要了解整個過程的工作方式。 什麼是SSO? SSO或單一啟用功能可以處理複雜的命令線程,使我們能夠通過單一身份驗證方法訪問多個網站。最常見的示例是我們如何登錄需要下載的需要註冊的其他應用程序,我們可以通過選擇Google帳戶並提供使用憑據的許可來做到這一點。通過大量密集的編程來創建無與倫比的用戶體驗,使我們日常生活中的任務變得簡單。單點登錄的原則是將您的憑據共享到一個安全的地方,稱為身份提供者。當要求您登錄時,請允許身份提供者在其認為適當的時候使用它,即使得到您的許可也可以。 然後,用戶使用身份驗證協議登錄到一個網站。它被轉移到原始身份提供者以進行安全保存和存儲。然後,他註銷了第一個站點,並且必須登錄到第二個站點。在這裡,他只需要單擊提供身份提供者的按鈕即可訪問該站點,從而提供可以確認同一個人身份的憑據。不需要用戶一次又一次地進行繁瑣的身份驗證。要執行此簡單任務,必須使用一組可以在確定的框架內工作的簡單工具。 實施SSO 該框架最困難的部分是將自身與現有代碼集成,並對網站進行編程。整個操作不僅需要設備登錄,還需要保存憑證足夠的時間,以便用戶可以完成必要的工作。必須提供下載和上傳的規定,也不要使用任何復雜或耗時的產品。 ComponentPro提供了一個完整的軟件包,可以處理SSO協議以及其他ASP.NET工具,這些工具可以通過FTP和SFTP託管和傳輸文件。 在通過Internet處理安全數據和個人信息時,必須保持謹慎,否則會破壞任何用戶的社會保障。 必須不惜一切代價避免選擇沒有適當安全措施的東西。 ComponentPro產品非常安全

適用於Java應用程式開發人員的10大推薦工具

目前,Java比其他編程語言更受歡迎。它也是一種編程語言,開發人員廣泛使用它來構建桌面GUI應用程序,Web應用程序,Web服務和移動應用程序。但是開發人員仍然需要強大的框架,IDE和開發工具,以快速,高效地用Java編寫應用程序。每個開發人員還可以根據自己的特定需求從許多Java框架,IDE和開發工具中進行選擇。 10種廣泛使用的Java框架,IDE和開發工具的概述 1)Spring MVC Spring是市場上成熟且流行的Java Web框架之一。除了支持模型視圖控制器(MVC)軟件開發範例外,Spring還簡化了常見的編程任務,例如數據庫集成,Web服務創建和安全性。程序員還可以選擇使用Spring Boot創建Java Web應用程序,無需進行複雜的XML配置即可部署Java Web應用程序。 Spring Boot進一步具有許多可用於生產的功能,例如運行狀況檢查,指標和外部化配置。該框架的最新版本還帶有一個命令行工具,使程序員可以運行Groovy腳本,並使用Spring快速創建Web應用程序原型。 2)JavaServer Faces技術(JSF) Oracle已經開發了JavaServer Faces技術(JSF)作為官方Java EE Web框架。通過Java社區過程開發的框架可幫助程序員快速創建服務器端用戶界面。通過使表示層與應用程序邏輯分離,它允許用戶快速創建網站。開發人員甚至可以使用JavaServer Faces UI組件標籤來連接項目的應用程序邏輯和表示層,而無需編寫任何其他代碼。社區成員還定期提供新的JavaServer Faces API,以簡化Java Web應用程序開發過程。 3)瓦丹 Vaadin使程序員可以更輕鬆地用Java編寫單頁Web應用程序的服務器端組件。開發人員還可以使用Vaadin使用HTML開發Web UI。他們可以進一步利用強大的Vaadin元素,其中包含用於業務應用程序的各種自定義HTML元素。他們甚至可以使用圖表,數據網格和組合框等組件來擴展Google Polymer庫。 Vaadin Pro提供的工具進一步幫助開發人員使他們的Web應用程序更具交互性和移動友好性,同時大大減少了編碼時間。 4)Google Web工具包(GWT) Google的網絡工具包通過將Java代碼編

為什麼Python可以做為新創公司的首選語言?

您的企業可能需要基於Web的動態解決方案;程式語言提供的多種選擇可能會讓您感到困惑。重要的是要了解,在初創企業中選擇語言或平台絕對是最關鍵的決定之一。儘管存在多種開發語言,但Python成為最受歡迎的語言,尤其是由於多種原因在初創企業中。除了以其更快的開發週期而著稱之外,Python可以相當快地滿足不斷變化和不斷增長的需求。 以下列出了Python是初創公司首選的語言的原因: 1.廣大的社群可供討論 Python是一種非常流行的語言,主要是因為易於閱讀。它整潔的語法可幫助初創企業輕鬆使用此編程語言。此外,Python具有內置的字典數據結構,這使其易於使用。 Python還包括高級數據類型輸入,可最大程度地減少支持代碼的長度。 2.速度和生產率的提高 對於小型初創公司而言,迅速進行營銷和實施新功能等因素具有重要意義。 Python具有面向對象的設計,該設計提供了過程控制和強大的集成,從而提高了速度和生產率。 Python也被認為是構建複雜網絡應用程序的首選。 3.幫助解決複雜性 大多數創業公司和社交網絡都是基於Web的,Python是解決複雜性的理想選擇。通過使用Python,您可以選擇克服多個問題,例如集成不同的系統,否則將需要更多的時間和精力。 Python還提供了可伸縮性,這對於初創公司將來擴展業務至關重要。 4.一個小團隊就足夠了 Python使程序員可以輕鬆地記錄有關概念的證明。使用Python時,不需要龐大的開發人員和設計師團隊即可創建高質量的產品。這無疑可以幫助初創企業和中型組織節省資源,並嘗試各種構想。 5.更快賺錢的機會 由於Python可以幫助人們更快地工作,而只需花費很少的初始支出,因此初創公司可以賺取更大的利潤。在Python上構建並支持您的項目後,回報會更快。因此,Python可以幫助初創企業快速賺錢,這絕對對他們有利。 6.即時支持 大多數初創公司更喜歡使用Python,因為當出現嚴重的技術問題時,它們會得到及時的支持。它還使您的產品具有高品質,並且不易崩潰。 7.易於創建的原型 對於大型項目,Python通常是一個簡單的解決方案。重寫用Python編寫的內容通常更容易。同樣,Python對於編寫原型很有用,因為它已經具有可以正常工作的原型。此功能無疑可以幫助初創企業節省金錢和時間

Drupal CMS 10大重要功能

Drupal是一個為多個網站提供動力的開源CMS(內容管理系統)平台。大量的主題和模塊集合使構建網站變得更加容易。以下是Drupal成為最可用的CMS平台的一些主要功能。 1)rupal不需要任何許可或不需要提供任何特許權使用費。在Drupal中創建的應用程序或程序的源代碼很容易訪問。 2)由於Web 2.0開發的快速和敏捷性能,Drupal的開發時間減少了一半。您將找到干淨的代碼,內容管理委員會,頁面和博客發布,民意調查,論壇,用戶登錄模塊,民意調查等等。 3)社區中提供了30000多個模塊,可幫助您快速向網站添加CRM,性能,備份安全性等更多特定功能。您可以非常簡單,快速地添加它們來構建您的網站。 4)關於安全性Drupal CMS以其堅如磐石的安全性,可靠性和安全性補丁以及不斷更新而著稱。 Drupal使您免受未知的安全威脅或黑客的任何在線代碼攻擊。 5)您可以從一頁開始構建,最多可以擴展到5000頁,而永遠不要更改任何內容。可以從管理員支持中管理執行和安全參數。諸如白宮,NASCAR,格萊美這樣的大型組織機構,都在Drupal上不斷發展。 6)100%免費的開源軟件,您將永遠不會被許可證,經常性費用或任何專有或任何其他機構鎖定。在服務器上安裝CMS文件就足夠了,您已經準備好了。 7)您可以輕鬆創建和發佈內容,設置用戶角色和權限,選擇可以查看/編輯/共享內容的人員。強大的內容創建和協作是Drupal的心臟。 8)由於許多開放的API和模塊,電子商務模塊和集成支付網關對Drupal來說是錦上添花。有現成的電子商務發行版,可用於支付網關,購物車,物流處理,CRM,消息傳遞等。 9)龐大的主題設計師社區設計了令人驚嘆的模板,這些模板將幫助您了解網站的願景和需求。字體,響應式佈局,圖形,可調整的顏色主題和佈局。您可以發現哪種圖像適合您的個性或只是建立您的網站。 10)為了擴展您的Drupal網站,使用了與第三方管理和API的集成。社交網絡集成被廣泛用於幫助您與更廣泛的受眾互動。 Drupal還允許與外部媒體和文件服務進行交互。

如何提高Magento網站的性能?

由於Magento的功能非常豐富並且提供了驚人的功能,因此在Web開發行業中正變得越來越受歡迎。大多數開發人員更喜歡使用此平台,因為它提供了極大的靈活性,並具有對在線商店管理的強大支持和控制。但是,隨著時間的流逝,如果沒有適當的維護和支持,在線商店的運行速度將明顯下降。這裡列出了一些聰明有效的技巧,這些技巧可幫助您提高Magento商店的性能。 #1緩存配置 文件系統是Magento提供的默認緩存引擎。除此之外,您還可以配置Varnish緩存。另一個緩存引擎可以將Magento網站的速度提高近200倍。但是,您需要適當地支持此緩存系統。 #2清理數據庫日誌 您需要了解哪些數據很重要,哪些數據不必要。保留所有這些無關緊要的數據,並使數據庫如此龐大以至於影響Magento存儲並使其變慢,這確實是沒有意義的。及時清理數據庫日誌對於保持Magento站點的性能至關重要。要清除數據庫日誌,請首先檢查“表日誌”,然後需要選擇“空”選項,然後選擇“是”選項。加速網站幾乎不需要30分鐘。 #3優化MySQL服務器 MySQL有自己的“查詢緩存”,使用它可以動態生成內容和頁面,並且變得異常平滑。此外,它還有助於提高Magento網站的整體性能。您是否想知道此“查詢緩存”如何工作?好吧,起初,MySQL服務器存儲文本和特定查詢的結果。只要MySQL遇到相同的查詢,它就可以立即顯示結果。 #4確保使用最新版本 最新版本通常帶有附加功能,升級的功能,增強的安全性,固定的技術故障和錯誤等等。如果您使用的是Magento的舊版本,即使Magento已經有市場上的最新版本和升級版本,則網站減速通常是很正常的。因此,重要的是要確保您使用的是Magento的最新版本。 #5選擇最可行的虛擬主機 最佳做法是選擇一種滿足您網站要求的網絡託管。每月流量,網站空間,備份,數據傳輸,CDN,數據庫類型支持等是您需要為網站選擇最可行的網站託管所基於的一些方面。 除了上述所有要點外,其他一些重要要點還使用了經過適當優化的主題,通過最少使用第三方擴展等使網站保持整潔和簡單。

Angular JS應用於Web開發

現在網路環境的演變,消費者已經可以在各種設備,操作系統和瀏覽器上訪問網站和Web應用程序。因此,開發人員必須廣泛關注網站的用戶界面(UI),以使其易於訪問,使用和導航。作為一種強大的客戶端編程語言,JavaScript幫助開發人員構建豐富的Web用戶界面(UI)。開發人員可以通過使用許多前端JavaScript框架進一步加快Web UI設計的速度。 AngularJS是Google開發和維護的一種廣泛使用的前端JavaScript框架。 像其他開源JavaScript框架一樣,AngularJS還可以幫助開發人員降低Web應用程序的總體開發成本。但是它通過允許程序員通過擴展HTML語法來表達Web應用程序的各種組件,從而加速了自定義Web應用程序的開發。此外,每次後端更改時,AngularJS都會通過支持雙向數據綁定來更新Web應用程序的UI。開發人員可以通過將其與各種JavaScript庫集成來進一步擴展AngularJS。許多Web開發人員比其他前端JavaScript框架更喜歡AngularJS的原因還有很多。 為什麼大多數Web開發人員更喜歡AngularJS而不是其他前端JavaScript框架? 擴展HTML語法 除了用JavaScript編寫外,AngularJS還作為JavaScript文件分發。可以直接通過script標籤將其嵌入到網頁中。此外,它還允許開發人員通過使用ng-app,ng-model和ng-bind這三個ng指令擴展HTML來表示Web應用程序的各種組件。 Web開發人員甚至可以使用AngularJS表達式將AngularJS數據綁定到HTML,而無需編寫其他代碼。 不同地實現MVC模式 使用模型視圖控制器,開發人員可以通過保持用戶界面和業務邏輯分離來簡化大型Web應用程序的開發。但是AngularJS以獨特的方式實現了MVC模式。 AngularJS團隊將MVC模式的獨特實現稱為“模型-視圖-所有”。無論採用哪種模型視圖架構,程序員都可以更輕鬆地提高複雜Web應用程序的性能和可維護性。 支持雙向數據綁定 除了以不同的方式實現MVC架構之外,AngularJS還支持雙向數據綁定。該功能可幫助開發人員在模型和視圖組件之間同步數據,而無需付出額外的努力。每當後端更改時,AngularJS都會自動更新Web

Zend漸轉型成為當代Web應用程序框架

網站和Web應用程序的趨勢在企業中日趨重要,因此對Web應用程序框架的需求也在不斷提高。主要是因為Web應用程序正在使用與設備無關的體系結構,這使它們可以在許多設備上運行。當使Web應用程序易於在瀏覽器上運行時,這意味著企業可以營銷其產品或服務,提供快速銷售,發出通知,提供客戶支持以及其他所有功能。這就是網絡應用程序使企業的服務或產品更易於訪問的方式,從而幫助他們吸引了比以往更多的客戶。但是,真正的困惑始於選擇適合的Web開發框架來構建一個重要的應用程序。 隨著時間的流逝,Zend證明了其作為PHP框架的價值,該PHP框架能夠創建簡單,交互性和誘人的應用程序。在這裡,我們藉此機會指出使它成為Web開發領域無與倫比的框架的特殊原因。 #1企業應用程序的首選 Zend框架不僅對於簡單且信息豐富的網站,還因其面向業務的Web應用程序而受到大小企業的青睞。它的敏捷性,自定義和可控的開發以及廣泛的社區支持使其成為最可靠,最方便的業務框架。 #2擴展和預定義的類 在Zend框架中有豐富的面向對像庫和可擴展的預定義類。這鼓勵開發人員使用這些不同類的不同組件來創建強大的Web應用程序。此外,它使他們能夠部署組件的某些變體以進行更大的自定義,而無需侵入框架的代碼庫。通過使開發人員能夠以這種方式進行自定義,Zend允許創建Web應用程序獨有的功能。 #3多語言Web應用程序 Zend的特定翻譯組件使開發人員能夠創建多語言的Web應用程序,從而使企業可以很好地面向全球受眾。因此,毫無疑問,它是為數不多的PHP框架之一,它正在幫助企業打破所有語言綁定的障礙,並打開機會之門,使企業成為全球公認的企業。 #4鬆散組合的框架 設計方面的Zend是一個鬆散組合的框架,帶有一組簡單的類。儘管開發人員通常可以部署任何MVC組件來創建功能完善的Web項目,但他們也可以加載他們要使用的其他組件。因此,Zend是一種分離的框架,在其中,可以僅將其某些組件用作庫,而不必使用整個框架。 #5 MVC架構 Zend應用了MVC架構模式,該模式將數據庫和業務邏輯從表示層分離開來。這意味著後端和前端代碼將保持分離,從而使開發人員能夠以極大的靈活性進行工作。此外,開發人員青睞Zend的理由還有另一個。儘管有MVC模型,但它沒有模型實現。因此,開發人員可以自由使用他們方便的任何

Oracle BI Publisher 中進行條件分頁和固定行分頁的方法

下列介紹於Oracle BI Publisher中進行條件分頁和固定行分頁的方法 1.任意條件分頁: 需要於條件中加上 break-after或者break-before來進行 如: <?if:CURRENCY_CODE="NTD"?> <xsl:attribute name="break-before">page</xsl:attribute> <?end if?> 2.固定幾行進行分頁: 需要於條件中加上break-after或者break-before,在<?end for-each?>前面,如下方的例子中控制每頁5行進行分頁 <?if:position() mod 5 =0?> < xsl:attribute name="break-before">page </xsl:attribute> < ?end if?>

Oracle BI Publisher 報表分頁方法

一般報表如果想要進行分頁可以使用Word的分頁符號(CTRL+ENTER) 但這樣子最後面會出現空白頁 這時候可以使用下列方式 先在群組分頁中加上 @section 如<?for-each@section:G_PO_HEADER?> 在 <?end for-each?>前面加上<?split-by-page-break:?> <xsl:iftest="position()<last()"> < xsl:attribute name="break-before">page</xsl:attribute> < /xsl:if> <?end for-each?>的前面加上<xsl:attributename="break-after">page</xsl:attribute> 此方法於RTF檔中最後面無空白頁,但PDF會有空白頁 <?end for-each?>的前面加上<xsl:attributename="break-before">page</xsl:attribute>此方法於RTF檔和PDF最後面都會有空白頁

使用docker架設registry2 Server

用下列指令就可以很容易的使用docker來架設registry2 server docker run -d \   --name registry2 \   -e REGISTRY_STORAGE_DELETE_ENABLED=true \   -p 5000:5000 \   -v $PWD/files:/var/lib/registry \   registry:2.6.2

使用docker架設gitlab server

首先需準備好ssl憑證,這部分可參考 Let’s Encrypt 建立conf,data,log,ssl等資料夾於$PWD/files之下. mkdir -p $PWD/files/conf mkdir -p $PWD/files/log mkdir -p $PWD/files/data mkdir -p $PWD/files/ssl 並把fullchain.pem以及private.pem放在$PWD/files/ssl資料夾下, 接著用下列語法,就可以用docker架設gitlab server了 docker run -d \   --name=gitlab \   --hostname git.mydomain.com \   --env GITLAB_OMNIBUS_CONFIG="external_url 'https://git.mydomain.com' ; nginx['redirect_http_to_https'] = true" ; gitlab_rails['backup_keep_time'] = 604800 ; \   --publish 443:443 \   --publish 80:80 \   --restart always \   -v $PWD/files/ssl/fullchain.pem:/etc/gitlab/ssl/git.mydomain.com.crt \   -v $PWD/files/ssl/privkey.pem:/etc/gitlab/ssl/git.mydomain.com.key \   -v $PWD/files/conf:/etc/gitlab \   -v $PWD/files/log:/var/log/gitlab \   -v $PWD/files//data:/var/opt/gitlab \   gitlab/gitlab-ce:10.1.0-ce.0 其中 --hostname git.mydomain.com \ --env GITLAB_OMNIBUS_CONFIG="external_url 'https://git.mydoma

調整docker空間大小

首先查看一下目前空間大小 /Applications/Docker.app/Contents/MacOS/qemu-img info ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2 接著調整大小 /Applications/Docker.app/Contents/MacOS/qemu-img resize ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2 +20G 調整後,需重新啟動docker 參考連結: https://rui.sh/fix-docker-for-mac-no-space-left-on-device-error.ht ml http://www.jianshu.com/p/2b756f9c10c1

Raspberry Pi 樹莓派wifi 設定

Raspberry Pi 樹莓派wifi 設定 修改/etc/wpa_supplicant/wpa_supplicant.conf 如下: sudo vim /etc/wpa_supplicant/wpa_supplicant.conf 下方輸入wifi ap資訊: ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=TW network={   ssid = "wifi_ap_ssidname"   psk =  "wifi_ap_password"   key_mgmt=WPA-PSK } 存檔,重開機既可

Raspberry Pi 樹莓派 關閉7吋觸控螢幕的方法

raspberry pi 樹莓派關閉7吋觸控螢幕的方法 關閉: sudo sh -c 'echo 1 > /sys/class/backlight/rpi_backlight/bl_power' 開啟: sudo sh -c 'echo 0 > /sys/class/backlight/rpi_backlight/bl_power' 切換: if [ "$(cat /sys/class/backlight/rpi_backlight/bl_power)" -eq "0" ]; then \   sudo sh -c "echo 1 > /sys/class/backlight/rpi_backlight/bl_power"; \ else \   sudo sh -c "echo 0 > /sys/class/backlight/rpi_backlight/bl_power"; fi

使用chmod 設定權限指令

例: 設定demo資料夾下的所有檔案權限 find demo -type f -exec chmod 644 {} + 設定test資料夾下的所有資料夾權限 find demo -type d -exec chmod 755 {} +

centsos 基本安裝參考指令

centsos 基本安裝參考指令 #更新 yum update -y && yum autoremove -y #安裝常用工具,如vim/wget/openssh-server/nslookup/ping/ifconfig yum install -y git vim wget openssh* nfs-utils nfs-utils-lib open-vm-tools net-tools bind-utils iputils yum-utils #設定ssh mkdir -p ~/.ssh cat <<EOF > ~/.ssh/config Host *     StrictHostKeyChecking no EOF #關閉swap SWAPLINE=$(cat /etc/fstab | grep swap | awk '{print $1}' | sed 's/\//\\\//g') sed -i "s/$SWAPLINE/#$SWAPLINE/g" /etc/fstab swapoff -a free -m #關閉SELINUX setenforce 0 sed -i s/^SELINUX=.*$/SELINUX=disabled/ /etc/selinux/config systemctl disable firewalld.service systemctl disable libvirtd.service #Forward Policy iptables -P FORWARD ACCEPT #關閉防火牆 iptables -P FORWARD ACCEPT systemctl stop firewalld systemctl disable firewalld #NTP校時 yum install ntp ntpdate ntp-doc -y cat > /etc/ntp.conf  <<EOL restrict 127.0.0.1 restrict ::1 server time.stdtime.gov.tw  minpoll 1 maxpoll 3 server t

在vscode中設定git push 使用快速鍵

圖片
vscode中,git push的快速鍵 至vscode中開啟 選取 " 偏好設定 " 中的 " 鍵盤設定 " 點選左上角的{} 加入 [     {         "key": "ctrl+alt+p",         "command": "git.push"     } ] 就可以用ctrl+alt+p來推送.

ssh 免密碼登入方法

首先先產生公私鑰 mkdir -p ~/.ssh cd ~/.ssh ssh-keygen -f id_rsa -t rsa -N '' 接著將公鑰寫入server的authorized_keys即可 cat ~/.ssh/id_rsa.pub | ssh username@serverip "cat >> ~/.ssh/authorized_keys"

SQL帳號密碼查詢的推薦用法

測試資料: INSERT INTO `test` (`user`, `pswd`) VALUES ('test', 'ABcd+1234'); 一般常見做法 SELECT `user` FROM `test` WHERE `user`='test' and `pswd`=sha1('ABcd+1234') 較安全做法,但是會增加DB CPU的功耗! SELECT `user` FROM `test` WHERE `user`='test' and sha1(CONCAT(`pswd`,9999))=sha1(CONCAT(sha1('ABcd+1234'),9999))

CAD使用基礎技巧,15個指令介紹

一、需要知道的概念,以及基本操作 1、CAD是由很多命令組成,命令的執行方式多種多樣,基本上有兩種: 一種是先輸入命令(或選擇命令按鈕)再執行操作,另外一種是先選擇,然後在執行命令。有許多命令這兩種操作都是可以的。 例:刪除一個物體的時候可以先選擇刪除命令,然後再選擇物體,也可以先把物體選中再選擇刪除命令,兩種操作的結果都是一樣的。(鍵盤輸入E 空格 選擇物體 空格或者選擇物體 輸入E 空格,結果都是一樣的) 2、透明命令。 大部分命令執行的過程是單一的,也就是說在執行的過程中只能執行完,或者中途取消。但也有些命令是在一個命令的執行過程中可以執行另外一個命令,也就是說A命令執行的過程中可以執行B命令,B命令執行完後,繼續執行A命令,直至結束。這樣的命令叫「透明命令」。 3、選擇物體的方式。 有兩種一種是從左上到右下選擇,一種是從右下到左上選擇,兩種方式的選擇結果是不同的,第一種:左上到右下;只能選擇到被拉出來的框完全包圍的物體;第二種:右下到左上;凡是和虛框相交的所有物體(包括包圍了的物體)。 4、相對坐標: 相對於當前點(或者你制定的點)的位置,這個非常重要!!!比如你要畫一條1000mm的線,選擇命令,然後從螢幕上任意取一點,然後給一個方向(移動滑鼠到你想的方向,如果是水平或者豎直的線,可按F8打開正交)輸入1000回車(或者空格)就得到了一條1000mm的線,這是最簡單的相對坐標。 比如你想畫一個1000X1000的正方形,那你就需要先選擇命令,然後在螢幕上任意取一點,然後輸入「@1000,1000」然後回車(或空格)就得到了一個正方形。「@」就代表了相對坐標。再有,假如你想畫一條1000mm長和水平方向夾角37度的線,那麼你就選擇線命令,然後再螢幕上任意取一點,然後輸入「@1000<37」回車。OK了。這兩種方式必須要記住,必須的! 5、鍵盤操作: a、在任何時候都可以直接在鍵盤上輸入命令,並執行不需要在某個地方點一下再輸入命令。 b、命令可以輸入全名,也可以輸入簡寫。 c、空格和回車的作用一樣,是執行命令,也就說你輸入完命令按空格或者回車就可以執行。 d、如果向繼續上一個命令,那麼可以直接按空格,不必重新輸入命令或者選擇按鈕了。 6、滑鼠操作: 左鍵,不用說了。 右鍵:在執

CAD中重複執行之前使用過的命令

圖片
在用CAD畫圖過程中,經常需要重複執行命令,例如連續畫圓、畫直線等,CAD為了提高操作效率,提供了多種快速重複執行命令的方法,我們沒有必要重新輸入命令名或命令別名(快捷鍵)。快速重複執行命令的方法有幾種,可以根據的實際情況和自己的喜好進行選擇。 一、重複執行剛運行的命令 1、返回和空格   我們執行完一個命令後,單擊空格或返回鍵,就可以直接重複執行剛執行過的命令。空格鍵比較長,雙手操作都非常方便,因此,空格鍵比較常用。 2、在圖形窗口中按滑鼠右鍵 默認狀態下在圖形窗口中按滑鼠右鍵會彈出快捷菜單,但也可以關閉右鍵快捷菜單,讓右鍵等同於回車,這樣單擊滑鼠右鍵就可以重複命令了。當然也可以定製滑鼠右鍵在不同狀態下的滑鼠右鍵的操作模式,如下圖所示。 比如我們可以設置右鍵慢擊和快擊的區別,快擊的時候但回車用,慢擊彈快捷菜單。也可以分別設置沒有選定對象(默認模式)或選定對象(編輯模式)時是重複上一個命令或顯示快捷菜單。 就算顯示右鍵菜單,在右鍵菜單的最上面也會顯示「重複XXXX」,選擇此項也會重複剛執行過的命令,只不過這樣操作麻煩一點。 3、MULTIPLE命令 要多次重複執行同一個命令,可以在命令行中輸入「multiple」按空格鍵,此時顯示提示信息「輸入要重複的命令」輸入命令,比如輸入L畫直線,當按回車或空格結束直線命令後,會自動重複直線命令,直到按「ESC」鍵退出。 當需要多次連續重複同一操作的時候,可以使用此命令。 二、重複執行最近運行的命令 1、右鍵菜單 如果在圖形窗口中右鍵設置成顯示快捷菜單,不僅可以重複剛執行的命令,右鍵菜單中還會顯示最近執行的命令,可以選擇執行其中某一個命令,如下圖所示。 2、上下方向鍵 用向上的方向鍵可以在命令行翻找之前執行過的命令,如果翻過了,可以用向下方向鍵返回,當找到了要執行的命令後,按回車鍵即可執行此命令。 這種方式效率不太高,但如果命令比較長,輸入麻煩而且我們記得不是很熟的時候,可以用這種方式。 3、命令行最近使用命令列表 在AUTOCAD高版本增強了命令行功能,增加了一個最近使用功能列表的按鈕,單擊此按鈕可以顯示最近使用命令列表,可以在列表中直接選擇要重複執行的功能,如下圖所示。 這種方式顯然比上下方向鍵一個個翻找要更

超低延遲,極致手感,超強MAME變種GroovyMAME介紹

首先講一下。這是一篇安利模擬器:GroovyMAME的文章,GroovyMAME是我找了很久才找到的比較滿意的街機模擬器。因為國內對此模擬器的中文記載幾乎為零,所以我會認真的寫些文字來介紹這個模擬器。 在本文的開頭,講一講視頻遊戲的輸入延遲這個概念(input lag)。 根據WIKI的資料解釋,在視頻遊戲領域裡,輸入延遲的定義如下: 輸入延遲就是指遊戲中按下一個按鈕到遊戲產生反應之間的延遲響應時間。 輸入延遲由很多部分的延遲組成,包括顯示器的延遲、手柄的延遲、作業系統和顯示驅動的延遲等等方面的延遲。 重點是,因為模擬器的運作機理,對比實機,模擬器不可避免的會產生更大的輸入延遲。 在https://byuu.org/articles/latency/有一篇多機種模擬器higan作者寫的有關模擬器延遲的文章,裡面有較為詳細的說明。 比如在輸入輪詢方式、聲音採樣、視頻處理、主題疊加等方面,模擬器都難以達到實機的效果,因為模擬器的輸入延遲比實機延遲要大。這裡省略65535字,具體的理論論證,請到上述網址觀看。 為了減少這種模擬器的輸入延遲,模擬器作者們做了很多嘗試,於是GroovyMAME就應運而生了。 GroovyMAME是一個MAME變種,專注於輸出低解信號,降低輸入延遲,減少畫面撕裂、抖動。GroovyMAME主要是一種PC——低解CRT解決方案。 更令人興奮的是,配合同作者編寫的顯示驅動軟體CRT Emudriver,和一些特定型號顯卡,主要是hd4xxx——hd7xxx系列amd顯卡,可以將各種模擬器低解輸出到街機顯示器、電視、彩監。 一台配置奔騰G3258超頻4.5G的電腦,使用amd hd4xxx——hd7xxx系列顯卡,安裝winxp或win7系統,配合GroovyMAME,輸出信號到低解crt顯示器,能達到很高效的性能,和與街機基板相近的顯示效果。在一些視頻網站上有街機基板實機和GroovyMAME電腦的對比效果測試,真偽難辨。 雖然這種方案需要配一台PC電腦,價格比較昂貴,不過卻適合性能至上的用家。 雖然GroovyMAME主要是用於把視頻信號輸出到低解crt顯示器,不過用液晶顯示器也可以玩GroovyMAME,而且比官方版MAME延遲更少。若是你有錢買具有144HZ顯示功能甚至支持G-Syn

如何進行DevOps測試

DevOps的定義因一名從業者到另一名從業者而異。一些組織將DevOps用作一種實踐,而其他組織則將其作為一種文化或運動。但是,每個組織都必須實施許多更改,同時要從傳統的軟件開發實踐轉換為DevOps。他們還必須建立一個環境,​​將所有軟件開發活動(編碼,測試,部署和發布)無縫集成到一個週期中。 DevOps進一步要求企業促進程序員,測試人員和操作人員之間的持續溝通和協作。從業人員還需要使用專門的工具來平穩地進行開發,質量保證和操作。同時,企業還必須特別專注於實施DevOps測試,以評估從計劃的規劃階段到部署階段的軟件質量。因此,每個企業都必須關注許多因素才能有效地實施DevOps測試。 實施DevOps測試時應重點關注的重點 測試自動化 在實施DevOps時,從業人員需要確保所有測試活動都與單個週期保持一致。組織必須探索使所有測試用例自動化並實現100%測試覆蓋率的方法。它需要使測試前和測試後活動自動化,以促進持續集成和交付。因此,企業需要投資強大的軟件測試框架和工具來自動化整個測試過程,並在整個DevOps週期中重複運行測試。 持續集成 DevOps強調持續且快速交付軟件應用程序。為了促進軟件模塊的更快交付,從業者必須促進持續集成(CI)。 CI將使QA專業人員能夠定期執行單元測試,以評估每天添加到集中式代碼庫中的代碼的質量。通過與程序員的協調,他們可以進一步解決通過單元測試立即發現的錯誤或缺陷。 由於持續評估代碼,因此CI流程將減少附加測試時間。但是,測試人員仍然需要執行代碼性能和白盒安全性測試,以更有效地評估應用程序代碼的質量。這就是為什麼;對於從業人員來說,在實施DevOps測試時促進CI並投資於強大的持續集成測試工具至關重要。 生產環境監控 一個DevOps週期涵蓋所有軟件開發活動-編碼,測試和操作。因此,從業人員需要在整個開發和部署過程中都聘請軟件測試人員。除了執行所需的測試外,質量檢查專業人員還需要持續監控生產環境。對生產環境的持續監視將幫助測試人員在使軟件崩潰之前識別錯誤。而且,他們可以通過設置專用計數器(如服務器響應時間和生產環境中的CPU /內存利用率)來評估應用程序提供的實時用戶體驗。 附加測試和檢查 CI將幫助企業評估添加到集中式代碼庫中的代碼的質量。但是企業仍然需要執行各種測試來評估軟件的功能,

Oracle發布了Java SE 9,具有150多個新功能

Oracle發布了Java SE 9,具有150多個新功能。廣泛使用的編程語言的最新版本具有一些新功能和API,可加快大型和小型設備的應用程序開發。同時,Java 9提供的功能可幫助程序員提高應用程序的性能,安全性和可維護性。因此,對於程序員來說,了解Java 9提供的一些關鍵功能變得至關重要。 程序員需要了解Java 9哪些知識? 模塊系統 開發人員現在可以使用對HTML5和JavaScript的更好支持,將JDK分為多個模塊。每個模塊化JAR文件都包含一個模塊描述符。開發人員可以通過require語句定義各種模塊的相互依賴性。模塊化使程序員更容易在缺少額外內存的小型設備上順利運行JVM模塊。同時,它們也只能運行應用程序所需的API和JVM模塊。 提前編譯 Java 9通過提前(AOT)編譯大大改善了代碼編譯過程。即使在虛擬機啟動Java類之前,程序員也可以利用AOT編譯將Java類編譯為本機代碼。 AOT編譯通過克服即時(JIT)編譯的主要缺點,提高了大型和小型應用程序的性能。與JIT編譯不同,AOT編譯可確保沒有Java方法保持未編譯狀態。 實時打印循環工具 Java 9附帶了一個新的real-eval-print-loop(REPL)命令行工具-Shell。 Shell被設計為具有以交互方式評估聲明性語句和表達式的功能。程序員可以在編譯之前使用Shell來評估Java代碼的質量。他只需輸入一段代碼並收集反饋即可。 Shell甚至可以自動完成製表符並添加所需的終端分號。新的REPL工具使Java與廣泛使用的編程語言(例如Python和Scala)競爭。 更好地支持HTML5和JavaScript Java 9提供的經過改進的Javadoc文檔工具具有生成HTML5標記的功能。另外,最新版本的編程語言還支持一些新的字符,塊和腳本,這是Unicode 8.0編碼標準的一部分。同時,Java 9帶有改進的輕量級JavaScript引擎,使程序員可以更輕鬆地將JavaScript代碼嵌入Java應用程序中。開發人員可以直接使用JDK提供的Nashorn ECMAScript語法樹的解析器API,直接在各種IDE和框架中啟用ECMAScript代碼分析。 改進的流API 在編寫Java代碼時,程序員使用字符串來表示計算。 Ja

樹莓派 Raspberry Pi 硬體加速播放影片當廣告機

在 Raspberry Pi 中播放影片檔可能會發現有嚴重的卡頓, 這是因為你所使用的播放程式並沒有使用硬體解碼的功能, 要解決這個問題, 最簡單的方式就是使用 omxplayer 程式, 因為這個程式本來就是專為 Raspberry Pi 設計。不過 omxplayer 並沒有播放清單的設計, 如果你想重複連續播放多個檔案, 就無法完成。還好, 目前已經有人提供了簡易的 shell script, 可以幫你將指定的資料夾當成播放清單, 自動重複一一播放資料夾中影音檔案的工作。 像是我就將所有的影音檔放在 /home/pi/share/pv 下, 然後在 /home/pi 下建立一個 play.sh 檔: 內容如下 #!/bin/sh # get rid of the cursor so we don't see it when videos are running setterm -cursor off # set here the path to the directory containing your videos VIDEOPATH="/home/pi/share/pv" # you can normally leave this alone SERVICE="omxplayer" # now for our infinite loop! while true; do  if ps ax | grep -v grep | grep $SERVICE > /dev/null  then   sleep 1;  else   for entry in $VIDEOPATH/*   do    clear    # -r for stretched over the entire screen    omxplayer -r $entry > /dev/null   done  fi done 再使用以下的指令將 play.sh 變更為可執行檔: sudo chmod +x videoloop.sh 就可以執行 /home/pi/play.sh 來重複一一播放 /home/pi/share/pv 下的所有影音檔了。如果你想要讓

[實用指令] Windows下使用類似grep的指令findstr

 Windwos 中也有一個類似 grep 的指令:findstr,支援搜尋多個檔案及遞迴搜尋子目錄。 例如:findstr “serve” app.js package.js 上述範例是要在app.js、package.js這兩個檔案中找出 serve 的字串,其結果如下: app.js:var favicon = require('serve-favicon'); package.json:    "serve-favicon": "~2.3.0" 另外 findstr 有兩個常用的參數 /i、/c /i:不分大小寫 /c:使用特定的字串作為搜尋的字串 例如:findstr “my love” aa.txt,預設會以多個字串來搜尋,所以只要符合「my」或「love」就會顯示出來,如果改為 findstr /c:”my love”,則會以「my love」來搜尋。 其餘更多的參數可以參考 「findstr /?」

Oralce、SQL Server 利用 NULLIF 來解決除以0 的錯誤

NULLIF  語法如下: NULLIF ( expr1 , expr2 ) 若兩個運算式不相等,即expr1<>expr2,則NULLIF傳回expr1。 若運算式相等(即expr1=expr2),將傳回NULL值。 利用NULLIF的特性來解決除以0的問題,測試如下: SQL> select 5/:var from dual; 當變數var=0時,產生除以0的錯誤 select 5/nullif(:var,0) from dual; 當變數var=0時,nullif傳回null,所以運算結果為null,沒有錯誤訊息

Windows 利用tasklist與taskkill來刪除Process

Windows7 / Windows8 kill process Linux下要刪除某個程序通常會使用 ps 配合 kill 來刪除程序。 如:ps -ef |grep [PROCESS NAME]       kill -9 [PID] 在Windows下,通常是開啟工作管理員來強制結束應用程式,但是如果要寫成Script,就必須改為命令式。 TASKLIST [/S system [/U username [/P [password]]]]          [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]         TASKKILL [/S system [/U username [/P [password]]]]          { [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]         (Tasklist:查詢Process ; Taskkill:刪除Process)         例如要刪除已開啟的記事本(notepad): 1、查詢記事本的Process訊息     C:\> tasklist |find /i "notepad.exe"     notepad.exe      6051 Console     1     5,832 K 2、由上得知記事本的PID為6051     C:\> taskkill /f /PID 6051     成功:處理程序 PID 6051 已經終止了。     taskkill使用的參數     /f:指定此參數可強制終止處理程序     /PID:指定要終止之處理程序的 PID     3、也可以直接以程式名稱刪除     C:\ taskkill /f /im notepad.exe     成功:處理程序 "notepad.exe" <PID 6051> 已經終止了     下面的Script,可以刪除多個相同的程式,例如同時開啟了三個記事本: @echo off for /f "tokens=2 deli

關於模擬器 這些可能是你沒聽說過的故事

圖片
作為遊戲的最主要載體,曾經家喻戶曉的幾代街機、家用主機們都已經退出了歷史舞台。而由於電視接口、遊戲制式等方面的原因,許多遊戲也都已經難見天日。 當你想要回顧多年前那些遊戲的時候,模擬器就是一個最方便的解決方案。前兩年,索尼終於在PS4上模擬了幾款PS2遊戲,不過隨後也並沒有什麼太多進展。而另一方面,微軟Xbox One及後續機型Xbox One X的前代遊戲兼容性就達到了爐火純青的級別。那麼究竟是什麼導致了模擬器的兼容問題,這些問題又能不能被解決呢,我們今天就來聊聊這個話題。 首先,模擬器的原理其實就是在一台性能較高的計算平台中通過軟硬體模擬的方式來運行其他平台的遊戲。而在這個過程中,很多條件都在制約著模擬器運行的實際效率,也同時直接關係到某主機或某遊戲是否可以在模擬器中正常運行。 其次,模擬器運行的最低條件是「這台主機一定要比被模擬的主機性能強」,至於要強到什麼程度(需要2-10倍以上的性能差),這就要考慮到兩台主機的硬體區別了。具體來說,也就是架構和硬體構造的差別。 舉個例子,PS系主機所採用的架構幾乎每一代都在改變,這也造成了它們軟體所採用的「語言」互不相同。次世代主機「聽不懂」上一代主機軟體到底想幹什麼,想要運行前代遊戲就必須模擬出一整套軟體和硬體系統出來,而這樣的「跨架構模擬」則需要次世代主機擁有前代主機十倍以上的機能。 然而這「十倍以上的性能」可不是說說這麼簡單,一方面次世代主機未必有這樣出色的機能,另一方面還需要開發人員對模擬器及遊戲進行一系列的調試。即便可以做到,主機開發商也未必有這樣的「閒心」。舉個例子,PS4目前已經有足夠機能來支持PS2遊戲,然而索尼並不願意推進這個項目。 另一方面,類似於WiiU、3DS、Xbox One這樣的主機就可以輕易兼容前代主機,畢竟它們基本都是「一個媽生的」(架構類似),不需要太多的機能損耗。 主機模擬界的奇葩們 知道了遊戲主機模擬器的大致原理和性能損耗問題之後,我們再來看看那些不按套路出牌的遊戲模擬方式。 這些年來,主機廠商第一方對模擬器的態度十分有趣,他們所採用的技術和實行方案也有所不同。不同於微軟旗下Xbox,在索尼的PlayStation平台,索尼就曾經在PS3上強行添加了一塊PS2主機CPU和部分精簡主板、以實現向下兼容,不過隨著主機版本的更替

Raspberry PI 使用 MJPG-streamer 來架設 Stream WebCam Server

一樣先更新並安裝packages sudo apt-get update sudo apt-get install subversion sudo apt-get install libjpeg8-dev sudo apt-get install imagemagick 下載Source 回來自行編譯 利用將剛所裝的SVN 將  MJPG-streamer 的 source 抓回來,執行下方指令: svn co https://mjpg-streamer.svn.sourceforge.net/svnroot/mjpg-streamer mjpg-streamer 進行編譯 cd mjpg-streamer/mjpg-streamer make 完成後,將USB WebCam接上樹莓派 執行lsusb 來查看是否有抓到硬體 如下 Bus 001 Device 007: ID 0c45:6310 Logitech Tech USB 2.0 Camera 接著在剛剛編譯的目錄下輸入 ./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www" 若出現類似下方訊息 Unable to set format: 1196444237 res: 640x480 則代表WebCam不支援輸出,MJPEG 的格式,改在指令中加個 -y 的參數,讓它改用 YUYV 的格式 如下: ./mjpg_streamer -i "./input_uvc.so -y" -o "./output_http.so -w ./www" stream server 若是正常啟動的話,會在最下方看到如下訊息  o: www-folder-path...: ./www/  o: HTTP TCP port.....: 8080  o: username:password.: disabled  o: commands..........: enabled 這時候就算快完成了

在Oracle下建立Function [PL/SQL]

當你要建立一個 Function 或是 Procedure 時候 你可以定義參數傳入和傳出參數 IN – 該參數可以在function 或procedure參考使用. 但function 或procedure不能修改該參數值. OUT - 該參數無法在function 或procedure參考使用. function 或procedure可以設定該參數值. IN OUT - 該參數可以function 或procedure參考使用, 也可以設定該參數值. function 的語法: CREATE FUNCTION get_bal(acc_no IN NUMBER) RETURN NUMBER IS acc_bal NUMBER(11,2); BEGIN SELECT order_total INTO acc_bal FROM orders WHERE customer_id = acc_no; RETURN(acc_bal); END; /

Oracle Trunc() 函數的使用方法

Oracle trunc()函數是最常用的函數之一,下面就為您介紹oracle trunc()函數的用法,供您參考,希望可以讓您對oracle trunc()函數有更深的認識。 1.TRUNC(for dates) TRUNC函數為指定元素而截去的日期值。 其具體的語法格式如下: TRUNC(date[,fmt]) 其中: date一個日期值 fmt        日期格式,該日期將由指定的元素格式所截去。忽略它則由最近的日期截去 下面是該函數的使用情況: TRUNC(TO_DATE('24-Nov-1999 08:00 pm','dd-mon-yyyy hh:mi am'))         ='24-Nov-1999 12:00:00 am' TRUNC(TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am','hh'))='24-Nov-1999 08:00:00 am' round     (date,'format')未指定format時,如果日期中的時間在中午之前,則將日期中的時間截斷為12     A.M.(午夜,一天的開始),否則進到第二天。 TRUNC(date,'format')未指定format時,將日期截為12     A.M.,不考慮是否在中午之前的條件。 2.TRUNC(for number) TRUNC函數返回處理後的數值,其工作機制與ROUND函數極為類似,只是該函數不對指定小數前或後的部分做相應舍入選擇處理,而統統截去。 其具體的語法格式如下 TRUNC(number[,decimals]) 其中: number待做截取處理的數值 decimals指明需保留小數點後面的位數。可選項,忽略它則截去所有的小數部分 下面是該函數的使用情況: TRUNC(89.985,2)=89.98 TRUNC(89.985)=89 TRUNC(89.985,-1)=80 註意:第二個參數可以為負數,表示為小數點左邊指定位數後面的部分截去,即均以0記。 以上oracle trunc

WiiU模擬器CEMU最新版本演示視頻 完美運行《馬里奧賽車8》

圖片
CEMU是目前市面上最棒的Wii U模擬器。現在幕後團隊在研發新版CEMU。近日,網友「rezoire」在You Tube分享了使用CEMU1.5.0運行《馬里奧賽車8(Mario Kart 8)》的試玩視頻。蹦撒卡拉卡!一起來看看試玩視頻吧! 亂保養小心變『乾燥花』!免費肌膚檢測⭐找到命定組合 Sponsored by DV TOKYO 【遊俠網】CEMU 1.5.0模擬器《馬里奧賽車8》 試玩視頻 喜大普奔!從視頻中,我們可以看到,這款Wii U模擬器完全可以hold住《馬里奧賽車8》!遊戲的畫面非常流暢,已經接近WiiU運行遊戲的效果。相信在不久的將來,大家就可以在CEMU上暢玩Wii U的遊戲啦! 關於Wii U模擬器的最新進展,敬請期待遊俠網的後續報導! 視頻截圖:

最強Xbox 360模擬器「Xenia」已可流暢運行《HALO 3》

圖片
「Xenia」是目前最好的Xbox 360模擬器,目前這個模擬器還在開發之中,在今年五月的時候,這款模擬器已經可以成功啟動《光環3(Halo 3)》了,而今天,我們愉快地告訴大家,通過Vulkan API,現在這款模擬器已經能夠以30幀/秒的流暢度運行《HALO 3》啦!怎麼樣?是不是很激動呢?廢話不多說,讓我們一起來看看演示視頻吧! 【遊俠網】Xbox 360模擬器「Xenia」《HALO 3》演示視頻 我們可以看到,是的,沒錯,模擬器的確可以30幀流暢運行《HALO 3》了,不過呢,畫面真的是「慘不忍睹」,各種貼圖錯誤,顏色錯誤,說句實話,這根本就不是Xbox 360上的《光環3》。但無論如何,這30幀的流暢度,還是令人感到有些驚訝。 公布這段視頻演示的網友也曬出了他的PC配置:Intel Xeon e3-1240 V2 @ 3.6 GHz/8GB DDR3-1866 MHz RAM/Nvidia GTX 1050ti。而模擬器的版本為XENIA 1.04-ML-Custom-Build。 無論如何,能夠在PC上看到30幀的《HALO 3》還是很令人激動的,我們希望模擬器開發小組能夠再接再厲,早日修復畫面問題,為我們帶來一款畫質完美的《HALO 3》!

Xbox 360模擬器重大突破:遊戲穩定運行

圖片
目前微軟已經為Xbox One用戶帶來了對Xbox 360遊戲的兼容功能,那麼PC玩家呢?只能自力更生嘍。 好在黑客達人夠給力。 國外大神Ben Vanik最新發布了一段Xenia模擬器的演示視頻,這次運行的遊戲是《都市摩天樓》,遊戲基本已經可以完美運行,幀數穩定,同時畫面渲染也不存在錯誤。 雙11限定↘$99吃到飽+免費流量5GB【剩3 天】 Sponsored by 亞太電信Gt智慧生活 不過,目前模擬器只能夠運行一些小型遊戲,之後他將會進一步進行大型遊戲的測試。 模擬器測試PC的配置信息 作業系統:Windows 10 64bit 處理器:Intel Core i7 6700K @ 4.60 Ghz 內存:16 GB DDR4 顯卡:GTX 970 4GB

MAME遊戲速度極限測試

圖片
MAME遊戲速度極限測試 前文提到本人的2500K超頻到4.3G,性能足以應付一般的2d遊戲,但是還有一些非常複雜的2D遊戲比如蟲姬2和怒首領蜂大復活無法滿速運行。 那麼MAME能不能用來測試電腦的模擬器遊戲運行速度呢?答案是可以的,MAME有個測速選項,可以測量遊戲的速度。在命令行窗口中運行官方MAME,用以下的命令就可以跑測試:mame <game> -bench 90,其中參數90的意思是進遊戲跑90秒的平均速度。執行這個命令後,在遊戲運行了90秒後,就會出現遊戲速度數據。 在MAMEUI(也就是原MAME32)的主頁上,有個測試頁面,上面測試了一些遊戲,可以看出MAME模擬遊戲的速度和顯卡關係不大,但是和CPU和內存的速度受到很大影響。 比如測試遊戲的MAMEUI作者john iv的機器的CPU是i7 6700K超頻到4.5G,32G的DDR4 3200內存。 他測試的結果,e8400 3.0G的機器測試下來的速度比6700K 4.5G速度低58%。 而i5 2500K 4.5G的機器比6700K 4.5G的速度低28%,G3258 4.5G機器的速度比6700K 4.5G的速度低6%。 從各種遊戲的速度來看,純2D遊戲,MAME不能利用更多的CPU核數和顯卡處理。那麼只拼CPU的單核處理能力和內存速度。這時候G3258的速度比2500K的速度還快。 而在一些複雜的3D遊戲中,2500K的四核處理能力發揮了一些作用,比如宇宙巡航艦4和空中自行車的速度,2500K的速度比G3258要快一些,但是差距仍然不大。所以總的來說,G3258模擬MAME遊戲的性價比更高一點。 那麼MAME中的遊戲速度最低的是哪個呢?根據MAME大神之一的Haze的說法,他用4G的i7 CPU跑Chihiro驅動的速度在3-4%。這樣推算MAME想要滿速運行這個驅動的遊戲需要至少140G的i7處理器的速度才行。Chihiro驅動的遊戲,主要是Out run 2、VR戰警3和死亡之屋3之類的一些複雜的3D遊戲,所以現在想玩這些遊戲,起碼在MAME上是不可能的了。 另外,一個令人沮喪的事實是MAME的速度是越來越慢的。可能舊版本能夠跑滿速的遊戲到了新版本就不滿速了,這和MAME奉行的精確模擬的精神有關,一個

顛覆傳統虛擬引擎 一玩助手發布第三代原生安卓遊戲模擬器

圖片
近日,一玩助手(www.yiwanzhushou.com)正式發布第三代原生安卓模擬器引擎。與普通基於VM架構的模擬器引擎不同,一玩助手安卓模擬器引擎基於Runtime架構,拋棄傳統的虛擬機技術轉換層,使手游APK以Windows原生程序運行。全新一代安卓模擬器引擎徹底解決了其它模擬器無法解決的運行卡頓、速度慢、安裝不上等問題,即使五年前的老爺PC機都可以穩定跑到60幀,內存占用減少90%,硬碟空間也僅需十份之一,是一款安卓模擬器的劃時代產品。 市場主流模擬器深度分析 魚和熊掌不可兼得 目前,市面上安卓模擬器軟體種類繁多,大致可分為兩大流派:Bluestacks和Virutalbox。Bluestacks是最早在PC上實現運行安卓系統的方案,但Bluestacks是基於定製的虛擬機方案,很難面面俱到,而且存在軟體翻譯的消耗,在性能和遊戲兼容性方面欠佳。Virtualbox通過在Windows內核底層直接插入驅動模塊,創建一個完整虛擬的電腦環境運行安卓系統,加上CPU VT硬體加速,性能和兼容性都更好,但是對於電腦CPU有一定要求,超過五年以上的電腦使用起來比較吃力。 國內像靠譜助手、新浪手游助手等一大批手游助手類都是直接基於Bluestacks內核,但由於Bluestacks是商業閉源項目,無法深度定製,只能進行簡單優化,再包裝介面後上市。其他的像海馬玩、逍遙安卓、夜神、iTools這類的產品都是基於Virtualbox,而海馬玩、iTools是直接採用Oracle發布的Virtualbox免費版,逍遙安卓、夜神則對Virtualbox原始碼深度定製後,進行重新編譯來進一步提高性能和兼容性。但是這兩種方案都需要用戶安裝一個龐大的虛擬機。 從本質上來說,這兩種方式並無區別。屬於上一代的技術解決方案。包括Google和微軟都在研究如何讓安卓應用平滑移植到其它平台。可能是由於技術難度過大的原因,微軟已經在2016年宣布放棄該項目。 第三代安卓遊戲模擬器 引擎快得不止一步 基於市面現有安卓模擬器分析,安卓應用要想在電腦上運行,唯一的方案是通過安裝虛擬機,進而通過虛擬機運行虛擬的安卓系統。要想安裝虛擬機,就必須安裝全套內核級驅動,而這一結果導致了運行虛擬機要消耗大量硬碟空間和內存。除了占用資源多拖慢電腦速度以外,最致命的缺陷是傳統方案過度依

當年和索尼任天堂並列的遊戲巨頭,如今只能靠模擬器回憶

圖片
曾經的世嘉公司,是和索尼、任天堂、微軟並列的四大遊戲巨頭,留下了不少經典作品,比如索尼克系列,不過大家玩過比較多的應該就是那些街機遊戲吧。不過如今的世嘉公司早已沒落,能夠讓人回憶起來的,也就是模擬器里的那些遊戲而已。 法國一名玩家為遊戲掌機GPD WIN定製了一款模擬器,包含了20多種平台的遊戲,其中就有世嘉平台的。這裡面的遊戲還是很多,不知道有多少遊戲是小夥伴曾經玩過的呢? 世嘉出的遊戲畫風都很獨特,偏歐美人的口味一點,可能這就是沒有流行開來的原因?但是用GPD掌機試玩了一些,遊戲性還是不錯的。   模擬器支持平台如下: Master System - Nintendo NES - Snes -Megadrive - Megadrive 32X - Sega CD - NEC PC Engine - Nec TurboGraph 16-GameboyAdvance - Mame - NeoGeo - CPS1 - CPS2 - CPS3 – PSP - American Lasergame - Taito Type X² (Nesica) - GameCube - Sega Saturn - Sega Model 2 - PS2 -Atari Lynx – GameBoy 經過大量玩家,在GPD WIN遊戲掌機上完美運行,華麗的仿街機介面效果,各模擬器平台及遊戲均配以精美的標題圖片、背景圖片及視頻預覽,有興趣的可以到GPD掌機貼吧下載圍觀。

Switch主機揭秘 竟暗藏紅白機Golf遊戲!

圖片
任天堂Switch這款掌機非常適合用來玩一些經典的紅白機和街機遊戲,而任天堂已透露,在2018年才會推出「Virtual Console」遊戲的付費服務。然而在這之前,卻有人發現原來早在Switch第一批產品出貨時,就已經內置了一款紅白機上的經典遊戲-Golf。遊戲支持Joy-Con操作,最多兩位玩家一起對戰。而這款遊戲是竟然隱藏在Switch主機裡面的紅白機模擬器里。 根據一位名為「Yellows8」的程序猿發現,一款名為Golf的遊戲系統內置於Switch主機,但目前他們找不到官方途徑去啟動它;不過,只要為Switch進行Root機之後,卻可以順利打開這款遊戲。 在啟動遊戲後,就可利用Joy-Con手柄來操作,最多支持兩位玩家對戰。操作方面可使用d-pad按鈕以及操控杆,也可按住Z(L/R)按鈕再揮動Joy-Con來操作。 這位程序猿表示,flog其實就是golf的倒寫,它是1984年推出的一款經典的高爾夫球遊戲。flog系統理論上是一個NES(超級任天堂) 模擬器,從Switch最初的零售版系統軟體已經開始預載。而Golf這款遊戲的ROM本身並不獨立存在,而是直接藏於這個模擬器的程式碼裡面。 目前,Yellows8還是找不出任何正規方法來開啟這款遊戲,只能通過Root的方法來打開。看來,如果你不是像Yellows8這樣的程序猿,還是乖乖到等任天堂正式推出官方Virtual Console服務後再下載更多遊戲吧。