Dav's Software Stack

🕓2017年08月01日 · ☕5 分鐘 · 👀... 閱讀

打工和其他學校事情都結束後, 是時候整理一下身邊的東西,

也順便紀錄自已過去到現在的工作環境, 把有用的工具記下來,

希望能持續紀錄周邊的變化 (或許每年一次吧) 😡

  • 2017-11 更新
  • 2018-06 更新

Machine:

  • Thinkpad L460:
    • 用了 5 年的 X201 終於螢幕出問題了, 不想繼續自己維修下去. 2016 年入手了 L460.
    • L 系列和 T 系列(T460) 只有外殼的材質, 螢幕解析度不一樣, 性能和硬件差異不大. 價差 $200 美元 😂😂 … 雖然前輩都說 T 和 X 系列是信心的保證, 但我應該夠用了.

VPS:

  • 還在考慮 LinodeDO, 也在看外國性價比高的 VPS, 探索中.
    • 或許還是用連線很慢的, 沒有 root 的 OpenShift … 要看未來的用量.

OS:

  • Arch Linux / Manjaro Linux:

    • 交作業大學 CS 系計中伺服器 OS 1 號, 大二上學期開始用到現在, 除了 Driver 的問題就沒其他問題了. 用過 i3 一陣子, 就回到 xfce 的懷抱, 原因只是螢幕太小, tiling wm 沒什麼用. 😅 , 也有點怕 tiling wm 用久了就回不去了 😂 …

    • Arch 除了提供 kernel 和 base system 外, 所有東西都要自己一步步建置, 自訂製自由度大, 但設定部分要小心維護.

    原則上 repository 方面團隊有另外在維護和架點, 省去自己調 kernel 參數 (CPU frequency etc.) 和 GUI Driver 等設定, 又可以快速重新建置環境, Community 也挺活躍的 😄~~~

    • 重新裝回 Arch Linux 😄, 不想繼續踩 Manjaro 地雷 😑 [2018]
  • Windows 10:

    • 用來做實驗, cross platform 測試, HyperV 使用.
    • msys2 / cygwin:
      • 雖然 Windows 未來有 Subsystem for Linux 的推出, 不過不用想都知道是 Simulator, 它如何解決兼容性和轉譯是值得學習的地方. 若只是一般指令使用和編輯, msys2 就很足夠了. 若有 Windows software 需求 (IE etc.) 才更換, 普通開發測試則使用 vagrant 開台 VM.
    • WSL : 瞭解後, WSL 並不是 Simulator, 而是 subsystem level 的東西, 看出來 Microsoft 要食掉 Unix 開發的市場 [2018].
      • 省掉我的 VirtualBox. 😄
    • PowerShell: 基於很多情況沒有權限的關係, 學一點 PowerShell 很有用.
  • FreeBSD:

    • 交作業大學 CS 系計中伺服器 OS 2 號.
    • 身為一個使用和學習 ZFS 的用戶, 愛用和支持 FreeBSD 是很正常的事 😄 目前停在 10.3 release 在 11.1 release, 沒有升級的打算 [2018].
  • 發現 CentOS 很夠用了 👍 [2018]

  • Oracle Linux [2018]:

    • 學習 Oracle DB, 用來做數據分析的練習, 有空裝個 Spark.

VM , Container and Hypervisor:

  • vagrant:

    • 使用 vagrant 來部署 UbuntuWindows 7 環境
    • 自行撰寫 vagrantfile 或直接抓新的 box.
  • Docker:

    • 若只是要做測試或只暫時需要某種 software, 則使用 docker.
    • 另外實驗 Container escape 也會使用.
    • 主要會自已撰寫 Dockerfile.
    • 不用自己裝一台 Kail.
  • Jail:

    • 作為一名使用 Jail 的用戶, 學習 Jail 的原理也是很正常的.
  • VMWare ESXi

    • 現在只叫 vSphere Hypervisor.
    • bare-metal 以往的首選, 可是 vCenter Server 只有 Windows 版本.
    • vSphere Web Client 的支援功能並未完善, 已少用 ESXi.
  • KVM:

    • 2017 年開始探討 KVM, 依賴 QEMU, libvirt, virt-install, virt-manager etc.

    • CPU 一定要支援 Intel VT or AMD-V 功能.

      1
      
      $ kvm-ok
      

Terminal:

  • ROXTerm:

    • 試用了各家的 terminal 一陣子, 選了 ROXTerm 這款開發停滯 (?) 的 terminal.
    • 自行 tarball Compile 和修改配置.
    • 相比其他小型 terminal (如 xfce-terminal, XTerm, rxvt etc.)
      • 優點在於 overhead 偏低, 配置簡單, 支援足夠的 short-key 和模式.
    • 程式碼量較少, 有空可以自己修改看看.
  • [Zsh] (http://www.zsh.org/):

    • 現在換了較輕量的 prezto [2018]
    • 常用的 Plugins 和 command:
      • fasd [2018] : 較多人用的 fasd.
      • zsh-autosuggestions:
        像 Fish shell 一樣的 command 提示.
      • sudo: 按二下 Esc 自動加上 ‘sudo’.
      • take, clipcopy etc.

IDE or Editor:

  • [vim](http://www.vim.org/):

    - 主要用來寫 **C/C++**, **Python**, **Ruby**, **Lua**, **Go**, **Shell script** 等不需要很強語法提示, 或靜態分析的語言, 主要開發用的 editor, 其優勢是不需要一個 GUI 介面, 方便且 Overhead 比較少. - Unix system administrator 來說必備的一個工具. - 自訂的 .vimrc 已經改得太複雜了 ... 期望未來有時間整理和重构. - 搭配 [YouCompleteMe](valloric.github.io/YouCompleteMe/) 和 [Tmux](https://tmux.github.io/) 就基本可以寫程式了. - 在快速建置多台 Server 的過程, 通常使用別人的 .vimrc 或自已寫一支小型的放上 server , 方便部署.
1
2
3
        $ git clone git://github.com/amix/vimrc.git ~/.vim_runtime
        $ bash ~/.vim_runtime/install_basic_vimrc.sh
        $ cd ~/.vim_runtime && git pull --rebase
  • Visual Studio Code:

    • Microsoft 2015 年開始推出市場的 Editor, 使用 Electron 開發.
    • 試用版時期已經覺得 UX 很好, 原生整合 Git, Terminal; 內建有 Debugger framework, 還是 Open Source 的. 😄
    • 目前用來寫 Javascript, Typescript, 和 Web (HTML, CSS) 相關 Projects.
    • 較大的問題在於 Memory usage 相對過高, Huge file 的開啟和非主流 Plugin 沒人跟進.
    • 現在主要在 Windows 上寫 JavaC# [2018].
  • [PHPStorm] (https://www.jetbrains.com/phpstorm/):

    • 學生免費版.
    • 靠 IDE 寫 PHP 是一件很正常的事 😂😂 閒置中
  • [Rider] (https://www.jetbrains.com/rider/) [2018]:

    • 結合 mono 在 Linux 上寫 C#

還有巨型的 Android Studio (for Java), 和地表最強 Visual Studio. (for Unity or Everything).


SCM (Source Control Management):

  • Git:

  • Mercurial:

    • 一款用 Python 實作的 VCS. command 卻叫 hg.
    • 也是一開始接觸的 VCS, 當初使用 Bitbucket 時發現原來只支援 Mercurial, 後來才支援 Git.
    • 剛巧我常用的工具和網頁都使用 hg, 比如 Python, Vim, Scapy, libmemcached, sudo, tinycc 等等.
      • 未來要去 pull request 也要用一下. 😂
    • 雖然未來主流都是 Git, 連 M$ 內部 SCM 都開始換 Git.
      • hg 卻很有趣地常出現在 FB, Google 的內部 Project.

DevOps:

  • [Puppet] (https://puppet.com/):

    • 一開始接觸的自動化工具, 後來也少用了, 因為依賴 HTTP 和 配置會慢慢變得偏向個人複雜化 …
    • 大公司想用 Ruby 做 Project 的人真的不多 😂
  • Ansible:

    • Python 做的自動化工具, 用來 deploy 多台 Server 用.
    • 使用 ssh 互通 remote server, YML 格式檔維護.
    • 目前沒有正式使用在工作環境, 但周邊人都很推薦 … 地雷也不少, 或許是我太弱了 😂

Groups Tools (PMS, bug tracker etc):

以前都被人推介去 IRC 聊天, 現在亞洲, 除了日本人(?) 都很少見人固定在線上了. 🚬

  • Gitter

    • GitHub 團隊推出的一款 IM, 2017 年被 GitLab 買了下來, 也 OpenSource 了, 未來應該會集成更多東西.
  • Trello:

    • 團隊合作時, 提供非常棒的 Project 管理看板.
  • Trac and Redmine

    • 持續學習的 issue tracking system.
    • 個人認為 Redmine 比較好用, 不過: 基於 RoR , Document, Community 等都是要考慮的"事情”.

DataBases Tools:

  • mycli:

    • 超好用的 MySQL command line 提示工具 😄.
  • DBeaver:

    • 平時用的 GUI DB Client 工具.
    • Windows 則裝了 HeidiSQL.
  • 現在倒只用 SQL Developer 了 [2018]

  • sqlitestudio [2018]:

    • 搭配 sqlite 一起用, 很方便 :D

Online Services:

  • Bitbucket:

    • 做小團隊 Project, 個人開發用, 好處是無限 private repo. 也不會經常被DDoS?
  • GitHub:

    • GitHub 則用來參加 OpenSource Project, 和把能見人或有用的程式放上去.
  • Gitea:

    • 自己架 Git Server 的新選擇 ! 採用 Go 開發.
  • GitLab:

    • 讓我知道世界備份日日期的 GitLab
    • 優點在於最近一直集成很多工具, 比如內建免費的 CI 和 private repo 等.
    • 用來架 Blog 很不錯, 所以架這里了. 😄
  • Zeal:

    • 一個離線看知名 Project Document (API) 的工具.

其他都是 security tools, testing tools, log tools 之類.


si1kdd
作者
si1kdd
Yet another muggle who still programming