發表文章

目前顯示的是 2月, 2021的文章

[ReactNative] react-native run ios 出錯

由於最近想學 React Native,所以便從官方文件去建置環境,但發現會出現一堆問題類似下面的 ** BUILD FAILED ** The following build commands failed: Ld /Users/xxx/Library/Developer/Xcode/DerivedData/AwesomeProject-ardlldkqvtvwnthjzmutsniznwjh/Build/Products/Debug-iphonesimulator/AwesomeProject.app/AwesomeProject normal x86_64 (1 failure) 目前對我有效的使用方式是 Podfile 也要先修正一個地方 use_flipper! 改為 use_flipper!({ 'Flipper-Folly' => '2.3.0' }) 再來是底下步驟: 1. Node.js 環境升到最新版 (目前是v15.10.0) 2. 開啟 Xcode 清除專案 # Xcode 的 Product 選項 # Clean Build Folder # 註:有人有提供需要在 File > Workspace Settings > Build System ## 從 New Build System 改為 Legacy Build System ## 但對我無效,所以我最後改回 New Build System 3. 移除一些檔案並重裝 rm -rf ~/Library/Caches/CocoaPods cd 專案路徑/ios rm -rf Pods rm -rf ~/Library/Developer/Xcode/DerivedData/* pod deintegrate pod setup pod install cd 專案路徑 rm -rf node_modules npm install # 有 Podfile.lock 也記得一起移除 4. 重新啟動 Metro server (佔用一個 terminal) npm start "--reset-cache" 5. 重新執行 npx react-native run-ios 資料來源: https

[Jenkins] 安裝 Jenkins 與Laravel在jenkins上執行測試

圖片
安裝 我這邊使用 docker 作為快速建置的方式 可以使用  https://hub.docker.com/repository/docker/neilwangtw/jenkins-php72 此為環境 PHP7.2 且 最新的 jenkins 詳細的 Dockerfile 與 docker-compose.yml 在這 https://github.com/qazwsxedccsqzse/jenkins-php72 使用方式就是先建立個目錄 /data/jenkins 接著進去裡面將 docker-compose.yml 啟起來 docker-compose up -d jenkins 預設是使用 8080 port 接下來就是去 web 介面設定 一開始在 /data/jenkins/secrets/initialAdminPassword 會有一組 hash 是拿來解鎖 Jenkins 的 輸入完之後 一開始可以先安裝 jenkins 推薦的 plugin 有額外需要的之後可以再裝! 到這邊就設定完了 從 bitbucket 上取得 repo 1. 先透過 docker 產生一組 ssh 的金鑰 # docker exec -it {jenkins docker id} bash # su jenkins $ cd ~ $ ssh-keygen 這時候就金鑰就會在實體主機的 /data/jenkins/.ssh 公鑰: /data/jenkins/.ssh/id_rsa.pub 私鑰: /data/jenkins/.ssh/id_rsa 註: 如果遇到權限問題,可以先把 /data/jenkins 的權限設定到 777 或是先在 docker 內部產生一個檔案,看一下對應實體主機, 所產生的 user 與 group 為何,我自己這邊產生的是 tss:kvm 2. 先設定用來可以存取 bitbucket 的密鑰  在 Repository Settings 內有 Access keys 或是直接到 https://bitbucket.org/組織/專案名稱/admin/access-keys/ 去新增 jenkins 的 ssh 公鑰 這個設定完就代表 jenkins 這個用戶可以去 bitbucket 上

[演算法] KMP

KMP演算法是在一段文字中,找出指定的子字串出現位置(substring search)的演算法 比較詳細的說明我就不闡述,把資料留在文末。 名詞定義一下: 在一段文字中的文字,假設叫做 text 要搜尋的子字串,假設叫做 pattern 在 text 中比對到的位置使用 i, 在 pattern 中比對的位置使用 j Prerequisites 製作出 prefix table 什麼是 Prefix table Prefix table 是這個 pattern 字串所有的子字串的最長前後綴的表 舉例: pattern = ABCDABD 各個子字串的最長前後綴 子字串 前綴 (prefix) 後綴 (prefix) 最大公前後綴字串長度 A 空 空 0 AB A B 0 ABC A,AB C,BC 0 ABCD A,AB,ABC D,CD,BCD 0 ABCDA A ,AB,ABC,ABCD A ,DA,CDA,BCDA 1 ABCDAB A, AB ,ABC,ABCD,ABCDA B, AB ,DAB,CDAB,BCDAB 2 這時候就可以把最大公前後綴字串長度變成程式在用的模式 pattern A B C D A B D 0 0 0 0 1 2 0 -1 0 0