標籤: MAC

  • Mac 使用 Nodejs 的管理工具 n 來切換版本

    Mac 使用 Nodejs 的管理工具 n 來切換版本

    Nodejs 在前端應用越來越廣泛,有時會遇到不同專案或是交接外包的 nodejs 版本不同,於是需要切換,以下筆記一下切換的方法。

    在 windows OS 上使用 nvm 做版本切換工具,參考。在 mac 上有 n 這個工具來處理。先資料來源,還有參考文章:

    安裝建議使用 brew

    brew install n

    基本操作

    sudo n latest // 升級至最新版本
    
    sudo n stable // 升級至穩定版本
    
    sudo n xx.xx // 升級至指定的版本號

    如果想要有互動介面版本管理,直接輸入 n 即可跳出介面。

  • 解決 Sublime text 4 上 Package Control 無法使用的問題

    解決 Sublime text 4 上 Package Control 無法使用的問題

    自從開始使用 Mac 時,Sublime text 就是自己愛用的文字編輯器,基本上 PHP 的網站製作從 Sublime text 2 用到了 4,前年發現更新 mac 之後突然無法使用 package contol 的功能了。最近才有辦法解決,筆記一下,附上解決邏輯:

    首先先更新一下,看是否有需要更新。

    備份設定檔案、外掛檔案:
    開啟 Top Bar 上的「Sublime Text」->「Settings」-> 「Browse Packages…」,會開啟 finder 得到一個路徑,返回上一頁把 Sublime Text 資料夾的東西先備份起來,可能會用到 Installed Packages 和 Packages 這兩個資料夾,放的是外掛檔案設定。

    查看 sublime text 上的 log:
    重新開啟,點開 Top Bar 上的 「View」,選擇「Show Console」,會顯示 runtime 的執行訊息。

    至此我發現錯誤訊息:

    AttributeError: dlsym(0x7f876fc44440, EVP_PKEY_size): symbol not found

    查資料找到這篇文章,看起來是因為更新 Mac 產生 OpenSSL 的問題:

    附上文章內提供的解決方法翻譯:

    簡單來說,在 console 中執行這段指令(使用 urllib 透過 sublime 自帶的 ssl )重新安裝 Package Control 即可:

    from urllib.request import urlretrieve;urlretrieve(url="https://github.com/wbond/package_control/releases/latest/download/Package.Control.sublime-package", filename=sublime.installed_packages_path() + '/Package Control.sublime-package')

    安裝以後依照提示,裝置會需要重啟兩三次。
    而我有因為有把 Sublime Text 重新安裝,如果操作上資料會消失的話,可使用備份把檔案放回去即可。

    以上。我認真覺得 Sublime Text 是一個輕便好用的編輯器,尤其是同時需要開其他 IDE 或是編輯器的時候,電腦不起飛阿。

  • MacOS 使用 Apache JMester 來做壓力測試

    MacOS 使用 Apache JMester 來做壓力測試

    之前有一篇使用 ApacheBench 來做壓力測試的工具(參考),最近發現一個 GUI 的工具, Mac 和 Windows 都可以用,讚讚。

    照例除了附上操作說明連結,補上自己的注意事項和心得:

    1. 記得要裝 Java 8
    2. 在 MacOS 上,推薦從官網上下載 bin 檔案,用 brew 安裝有點麻煩(我安裝失敗了)
    3. 可以切換繁體中文(從上方 TopBar 點擊 “選項” -> “選擇一種語言” -> “Chinese (Traditional)” ),可是有些專有名詞可能要熟悉一下。
    4. 不得不說,GUI 的缺點就是要點點點,但是不用記住一堆指令,可惜他不是 app 形式製作的,執行檔案要保存好,連結做滿。
    5. 測試模版可以儲存(執行前會詢問),這滿方便的,許多創造一套 API 規則打天下,或是使用 wordpress 這類固定 Web App 的,很適合創建一些模版來用。

    另外補上一些壓力測試要注意的事情,權當壓測前的 check list:

    首先確認測試目標,如果是服務的本身的話,要記得確認流量不會經過服務前方的 CDN 或是防禦工具(e.g. Cloudflare 或是服務商提供的防禦機器)。操作上可以嘗試使用內網、修改 host 指定 IP,或是把防禦工具關閉(例如調整 nginx 或是關閉防火強);而如果是為了要測試防禦工具的話,得先確認是不是要和工具的服務商確認一下,如果是 SaaS 服務,通常會有延伸費用的。

    操作時,務必注意 header 中的操作,像是 token 或是 cookie 驗證,這次簡單測試沒有特別處理,不過通常需要登入的服務都會需要確認調整的。別壓力測試一堆結果都是導向 login 頁面,那就搞笑啦!

    除了內網測試,如果像是 wordpress 這類單體的 web application 外網測試也是需要的,畢竟外網才是正常一般使用者進入的環境。

    補一下程式截圖

    附上連結,這是下載的官網:

    使用 Mac 的安裝說明:

    我們的目標是測試 API ,這是使用說明(使用比較舊的版本,有些操作不太一樣):

    附上 DDos 的防禦策略介紹:

  • 在 Mac 上,大型 CSV 檔案切割方法

    匯出 SQL 中的資料,如果需要避免過多的指令碼,要精簡可提供給其他業務閱讀的格式,通常會使用 CSV 檔案的格式匯出,這是一種以檔案形式匯入匯出時很高效的格式,通常副檔名以「 .csv」作為檔案後綴。

    但有時下載下來的 CSV 檔案格式過大,電腦記憶體不足時打不開,這時 MacOS 系統可以用命令提示字元的方式進行切割。

    切割指令如下:

    split [-l line_count] [-b byte_count] [-n chunk_count] [file [prefix]]

    常用的指令操作範例:

    split -l 100 old_file.csv new_file_

    翻譯:舊檔案名稱為 old_file.csv 以每 100 行作為新檔案切割,切割檔案前綴為 new_file_ 。新檔案就會切格為 new_file_a、new_file_b ….. new_file_aa、new_file_ab … 這樣。

    通常也會需要搭配把新檔案名稱後面貼上 .csv 後綴,這樣才方便交付時對方打開。可以用以下指令:

    for i in $(find new_file_*); do mv $i "$i.csv"; done

    其實就是 bash 指令寫在同一行,意思就是逐步調整指定的檔案前綴來添加副檔名。新檔案就會變成 new_file_a.csv、new_file_b.csv ….. new_file_aa.csv、new_file_ab.csv … 這樣。

    要注意的是:

    1. 建議把檔案放在一個空的資料夾中操作。
    2. 在操作前,先計算好需要的分割新檔案大小,以及預計會產生多少檔案。太多檔案或是太大太小的分割檔案都會造成接下來的操作不易。
    3. 操作檔案必須確認是 csv 格式,不推薦 json 或是 sql 格式來做切割。也不推薦以 -b 參數作為操作,不確定一行(一筆資料)會包含多少字元,使用 -b 分割很容易切到同一行資料。

    參考:

    Split big CSV file using Linux or Mac OS Terminal – Datablist
    You have a very big CSV file, and you want to split it into several files of n lines. Smaller files let you open them with CSV editors without reaching their limits. If …

  • PHP 源碼掃描實作,使用 SonarQube

    PHP 源碼掃描實作,使用 SonarQube

    PHP 的原始碼弱點掃描實作,這邊使用 SonarQube 的社區版,這邊實作是參考這個連結,使用 MacOS 實現。

    首先先提供相關資源網站:

    SonerQube 官網和下載網址:

    Download | SonarQube
    Get the latest LTS and version of SonarQube the leading product for Code Quality and Security from the official download page.

    SonerQube 的套件 sonarscanner 安裝文件:

    JDK 官網下載:

    JDK 安裝教學:

    MAC中安裝JDK、Maven
    一、安裝JDK 1、開啟JDK官網,選擇對應版本,並選擇maxOS系統,此處以Java 8為例。 …

    下載 SonarQube 社區版解壓縮後,在 command line 中找到執行的指令,像是 MacOS 是在資料夾/bin/macosx-universal-64/ 裡面。進入資料夾中輸入:

    ./sonar.sh console

    即可在瀏覽器 http://localhost:9000/ 中開啟網頁。預設帳號密碼 admin/admin 登入後更換密碼。

    以下重點整理:

    1. 新增專案,選擇語言等操作完成後,會產生一組程式碼,該組程式碼是提供進入要掃描的資料夾根目錄中使用的。
    2. 在掃描之前,系統會提示需要安裝 SonarScanner ,請選擇 MacOS 版本,推薦加入 bash 中方便運作,參考這裡
    3. 需要先安裝 JDK ,無法在 root 環境使用。
    4. 掃描後看結果可能心情會不太好,不過系統提到的都滿有道理的,建議改一下。
  • 一些關於 iMessage 的注意事項

    iMessage 是 Apple 提供有別於 SMS ,但是又放在同一個 APP 中的通訊管道,使用 Apple ID 作為帳號(廢話),內建在 Mac 和 iOS 系統中,非常方便。但近年來 Apple 積極的防治 iMessage 被當做廣告群發的通道,也導致很多人被阻擋、甚至被停止了 iMessage 的使用權限。這裡分享一些關於 iMessage 的注意事項:

    導致 iMessage 帳號被封鎖的原因

    如果 iMessage 帳號被封鎖了應該怎麼辦?

    If you can't sign in to your iMessage account or FaceTime on your Mac
    If you can't sign in to your iMessage account or FaceTime, one of these solutions might help.

  • 開發環境簡單推薦

    介紹一下比較終端應用程式的開發環境, iOS 和 Android 使用原生語言開發、網頁端走 PHP LEMP 結構,以下做環境的整理。

    要注意以下推薦的內容大多都是要付費的。

    iOS 不用說,使用的是 XCode 所以電腦使用 MacOS ,XCode 也就是從 Apple Strore 下載就有的。無論是 swift 或是 obj-c 語言都可以。

    ‎Xcode
    ‎Xcode includes everything developers need to create great applications for Mac, iPhone, iPad, Apple TV, and Apple Watch. Xcode provides developers a unified workflow for user interface design, …

    Android 使用的語言是 Java ,軟體也是官方的 Android Studio,現在 Android Studio 很方便了直接下載下來就可以用。

    Web 開發的環境比較複雜一點,之前使用 MAMP PRO 版本,相當方便。

    雖然有人會想要用 Docker 來處理,可是自己的環境常常一次會多開很多的工作區域,考慮到自身的工作環境,所以就沒有更多研究,還是用了 MAMP PRO 很長一段時間,後來嘗試接觸 Parallels 這套軟體,這是一個虛擬機器(和 Docker 原理不同)軟體,但是他搭配 Parallels Tools 還滿不錯的,於是就用這個架設啦。

    Home
    Parallels Inc., a global leader in cross-platform solutions, makes it simple for customers to use and access the applications and files they need on any device or operating system. We help businesses …

    本機端及使用了虛擬機器,還是要想辦法快速架設, MAMP 雖然方便但是有個小缺點是他還是跑在原本的 MacOS (or Windows)上,後來選擇在本機上架設一套 CentOS LEMP 系統,把常用的部屬環境和模組設定好,UAT 或正式環境設定上用 GIT 版本控制程式碼,以及 autodeploy 就算是一個階段啦!其他諸如系統監控、安全防護等以後再為大家做一篇文章講解。

    這邊還是要提一下,可能以後會嘗試使用 Docker,這應該會是一個比較好的解決方案。

    而語言的使用上,golang 維持在 API 開發的程度(不打算學他 UI ),使用 VSCode 很方便。Python 也大同小異,偶而會用 flesk 弄一下簡單的 UI,PHP 的話則會使用 Sublime 來處理,他有很多套件很好用很方便,不過裝太多套件會變肥,記得要瘦身。

    其他操作的部分,簡易的圖像編輯以及切版目前是用 Photoshop 處理的,他有訂閱方案,時不時要 resize 一下圖片、修一下邊邊角角很方便。

    相片、圖片編輯、設計編輯與修圖軟體 | Adobe Photoshop
    使用 Adobe Photoshop 相片編輯與修圖軟體,建立和增強您的相片、影像和設計。這是全球最佳影像處理、圖片編輯、圖片去背和圖形設計軟體。

    而影片剪輯的話,目前和圖片的功力ㄧ樣,還只能做到套版和修修補補的程度,如果要上個字幕還是粗剪的話, MacOS 上唯一推薦 Final Cut Pro,這個要錢,但是比起和買其他的軟體,如果不是自己習慣的專業軟體,這個值得。

    Final Cut Pro X
    Final Cut Pro X 以 360° 影片剪輯功能、4K HDR 支援,及更先進的色彩校正工具,為後期製作帶來大革新。

    另外有還有一些小東西,選擇很多,隨找即有,但是不得不提:

    1. 雲端儲存裝置很重要,至於選擇就很多了,建議可以找有版本控制的,也可以多幾個作為分不同類型的儲存應用。還有,如果剛畢業記得找一下自己學校有沒有 Google Device 的免費無限儲存空間,這個好東西呀!
    2. VPN 也推薦準備一下,建議申請一個作為固定 IP 使用,也準備幾個是安全可跳轉到其他國家的,作為網站語系的檢查、安全操作或是查閱資料等滿方便的。這個如果是公司上班的打工仔,可能需要和公司談一下申請一組,如果是接客的半打工仔,稍微麻煩些要和客戶確認好避免維護不易,如果自己吃自己的話,那就推薦準備個幾組了。
    3. 我還滿喜歡做程式模板的,所以很多框架都會固定下來用很久,這有好有壞,得提醒自己追求穩定不一定全然是好事,所以在適當的保險下還是想辦法多一些框架可以選擇,至於模板的紀錄我還滿愛用 SinppetsLab 這套軟體,還有很多文字編輯軟體(像是 Sublime 的套件)也是支援多語言的程式碼片段存擋,都很推薦。也很推薦用 EvernoteOneNote 作為可用資訊的快速儲存工具,也很適合用來做私人筆記。
    4. Parallels Tools 裡面提供滿多意想不到的小工具,包含定時休息提醒、防止睡眠、記憶體釋放等等,都還滿好用的。
    5. Google Chrome 瀏覽器是開發人員好朋友,他有太多套件了,建議找如: 網頁翻譯、網站前端使用套件資訊、快速 HASH / 編解碼、IP 位置查詢、網頁整頁截圖、快速儲存分頁等等套件, 這些都很方便。另外 Chrome 裡面的群組功能十分方便,推薦使用。
    6. 而如果做 Server 端,VPS 的選擇也是需要的,我個人比較偏向 Vultr、 Linode、AWS、阿里雲、GCP 這些架設起來就是空的主機一台的雲端虛擬機器,也幾乎有便宜的方案可以選擇。

    網站部分,有些比較針對性的框架或應用程式,也許以後可以紀錄一下。
    先醬。