Skip to content

sandikodev/showmygear

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

93 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ShowMyGear (Somager): The Development Engine

ShowMyGear Developer Skill Tree

Note

ShowMyGear adalah bagian dari TrackMe Ecosystem.

English

Caution

Disclaimer: Bukan untuk Pemula Absolut. Repositori ini adalah koleksi strategi tingkat lanjut (intermediate-advanced).

  • Prasyarat Wajib:
    • Memahami dasar Jaringan Komputer (IP, DNS, Port).
    • Terbiasa dengan Command Line Interface (CLI) Linux/Unix.
    • Paham konsep dasar Pemrograman (Variabel, Fungsi, Logika).
  • Saran Belajar: Jika Anda baru memulai, silakan selesaikan kurikulum di Roadmap.sh atau CS50 terlebih dahulu.
  • Cara Baca: Jadikan repositori ini sebagai referensi arsitektural untuk membentuk mental model, bukan tutorial langkah-demi-langkah.

Start Here: Protokol Onboarding

Jika Anda baru pertama kali menginjakkan kaki di repositori ini, jangan biarkan tumpukan file teknis mengaburkan pandangan Anda. Ikuti Protokol Navigasi ini untuk pemahaman yang holistik:

graph TD
    Start["Entry: README.md"] --> P["Step 1: Kompas Naratif (Narasi & Konteks)"]
    P --> J["Step 2: Developer Journey (Peta & Leveling)"]
    J --> T["Step 3: Dokumentasi Teknis (Eksekusi)"]
    
    style Start fill:#f5f5f5,stroke:#333
    style P fill:#e1f5fe,stroke:#0288d1,stroke-width:2px
    style J fill:#fff9c4,stroke:#fbc02d,stroke-width:2px
    style T fill:#e8f5e9,stroke:#2e7d32
Loading
  1. Langkah 1: Kompas Naratif (Prologue & Intermezzo)
    Baca ini lebih dulu untuk memahami "roh" dan keterkaitan antar modul. Tanpa ini, Anda hanya akan melihat potongan-potongan teknis tanpa jiwa.
  2. Langkah 2: Peta Perjalanan (Developer Journey)
    Tentukan di mana posisi Anda saat ini. Gunakan ini untuk mengetahui urutan modul mana yang paling relevan dengan kapasitas kognitif Anda sekarang.
  3. Langkah 3: Dokumentasi Mendalam
    Gunakan Daftar Isi di bawah ini untuk menyelam ke spesifik modul teknis yang ingin Anda kuasai.

0. The Goal: Engineer of The Architect

"Mengapa belajar mendalam jika AI sudah bisa melakukan semuanya?"

Jawaban singkatnya: Kita sedang berevolusi dari "Penulis Kode" menjadi "Perancang Peradaban".

Saya meminjam istilah ini dari trilogi Prometheus. Di era Agentic AI yang mampu mereplikasi pekerjaan teknis (coding, debugging, deployment), nilai seorang manusia bergeser dari Eksekusi ke Visi.

Seorang Engineer of The Architect tidak hanya peduli pada "seberapa elegan kode ini", melainkan "bagaimana sistem ini bertahan dalam skala ekonomi 10 tahun ke depan".

Piramida Pengetahuan (Knowledge Dependency)

Untuk menjadi arsitek, Anda tidak bisa melompati fundamental. Pemahaman sistem operasi adalah akar dari segalanya.

graph TD
    A["Visi: Perancang Peradaban<br/>(Tokenomik, Ekonomi, Sospol)"]
    B["Sistem Desentralisasi<br/>(Web3, Smart Contracts)"]
    C["Keamanan & Integritas<br/>(Cryptography, Security)"]
    D["Infrastruktur & Jaringan<br/>(Linux, TCP/IP, Docker)"]
    E["Logika Dasar & Teks<br/>(Programming, CLI)"]

    E --> D
    D --> C
    C --> B
    B --> A

    style A fill:#f9f,stroke:#333,stroke-width:2px
    style E fill:#fff,stroke:#333
Loading

Evolusi Peran Developer

timeline
    title The Ascension of The Developer
    2015-2022 : The Coder : "Saya menulis fungsi." : Fokus: Sintaks & Algoritma. Memindahkan data dari A ke B.
    2023-2025 : The Pilot : "Saya menyetir AI." : Fokus: Prompting & Review. Validasi output generatif.
    2026-Future : The Architect : "Saya merancang sistem." : Fokus: Konsekuensi sistem, Model Bisnis, & Etika Komputasi.
Loading

Relevansi Deep Engineering

Mengapa kita masih perlu membahas hal-hal "low-level" seperti Linux, Network, dan Security di era AI?

Bidang Fokus Era Lama (Coder) Peran Era Baru (Architect) Kenapa Wajib Paham?
OS / Linux "Cara install package." Resource Management. AI bisa install library, tapi tidak bisa mengoptimalkan kernel untuk load ribuan user.
Networking "Cara panggil API." Security & Topology. Interaksi antar-Agent AI membutuhkan jalur aman yang diverifikasi secara manual oleh manusia.
Security "Ganti password berkala." Identity & Trust. Di dunia Web3, sekali identitas Anda bocor, seluruh aset digital peradaban bisa runtuh.

Repositori ini adalah Helicopter Viewβ€”sebuah pathway jujurβ€”untuk mempersiapkan Anda menjadi Arsitek yang memegang kendali penuh atas mesin-mesin cerdas ini. Kami tidak hanya membuat aplikasi; kita sedang membangun protokol yang tak bisa di-rollback.

Nantikan repositori lanjutan "Hyperfocus" untuk implementasi teknis tingkat lanjut.


πŸ›οΈ Jalur Persiapan: Membangun Fondasi

Jika Anda merasa asing dengan istilah-istilah di atas, jangan khawatir. Setiap arsitek memulai dari pemahaman material dasar. Sebelum menyelami repositori ini, pastikan Anda melatih otot teknis Anda pada topik-topik berikut:

1. Jaringan Komputer (The Nervous System)

Aplikasi modern adalah entitas yang saling berkomunikasi.

  • Wajib Paham: TCP/IP 4-layer (pahami minimal HTTP & DNS), Port (apa bedanya 80, 443, dan 22?), serta konsep Public vs Private IP.
  • Latihan: Coba hubungkan dua komputer dalam satu WiFi dan kirim pesan via terminal.

2. Sistem Operasi (The Soil)

Kode Anda tidak mengambang di awan; ia menapak di OS.

  • Wajib Paham: Linux Filesystem Hierarchy (di mana file log disimpan?), Permission (chmod/chown), dan Manajemen Proses (apa itu PID?).
  • Latihan: Install Ubuntu Server di VirtualBox/WSL dan coba buat user baru tanpa bantuan GUI.

3. Dasar Pemrograman (The Logic)

Hapus pemikiran tentang "framework" (React/Laravel) untuk sejenak.

  • Wajib Paham: Tipe data primitif, Array, Loop, dan Manipulasi Teks.
  • Latihan: Gunakan bahasa apa pun (Python/JS) untuk membuat script sederhana yang membaca file teks dan menghitung jumlah kata di dalamnya.

Tip

Disiplin Harian: Luangkan 1 jam setiap hari untuk topik-topik di atas. Repositori ini akan menunggu Anda saat Anda siap untuk melihat gambaran besarnya di akhir pekan.


πŸ—ΊοΈ Mulai Perjalanan (The Journey)

"Bedah isi kepala saya satu per satu di sini."

Dokumen ini adalah Menu Utama, namun panduan mendalam mengenai alur pengembangan tersedia di Peta Perjalanan. Ikuti jalur ini untuk memahami pola pikir seorang engineer dari dasar hingga tingkat lanjut.


Kompas Naratif (Prologue & Intermezzo)

"Peta jalan batin untuk menghubungkan setiap kepingan puzzle."

Jika Anda merasa kewalahan dengan banyaknya modul teknis yang tersedia, bacalah Prolog & Intermezo. Dokumen ini dirancang sebagai jembatan naratif untuk memberikan abstraksi dan konteks dari setiap perjalanan pemikiran di repositori ini.


πŸ“– Daftar Isi

Filosofi Penamaan

ShowMyGear (Dilafalkan: /so-ma-ger/) adalah akronim kinetis yang berevolusi sesuai perspektif pengamat:

  • ShowMyGear: Bagi mereka yang memamerkan setup mereka.
  • SawMyGear: Sebuah retrospektif tentang alat-alat yang digunakan.
  • SeeMyGear: Sebuah undangan untuk berkolaborasi.
  • Somager: Mesin "Source Manager" atau "Show Manager".
flowchart TD
    Observer(["Mata Pengamat"])
    Observer -->|"Saat Pamer"| Show["ShowMyGear"]
    Observer -->|"Saat Retrospektif"| Saw["SawMyGear"]
    Observer -->|"Saat Kolaborasi"| See["SeeMyGear"]
    Observer -->|"Saat Mengelola"| Somager["Somager"]
    
    style Observer fill:#eceff1,stroke:#333
    style Somager fill:#ffee58,stroke:#fbc02d,stroke-width:2px
Loading

Ekosistem TrackMe

Tip

TrackMe adalah etalase minat; Somager adalah bedah anatomi pikiran di baliknya.

Jika TrackMe adalah sebuah Portfolio Tracker yang melampirkan "Apa yang saya kerjakan" (Project, Interest, Ongoing Work) di etalase GitHub Pages, maka ShowMyGear (Somager) adalah sisi internalnya.

ShowMyGear hadir untuk membedah cara berpikir (Mental Model) yang dibangun oleh developer (Sandikodev). Ini bukan sekadar daftar alat bagi mereka yang gemar mengoleksi software tanpa memahaminya, melainkan bentuk pertanggungjawaban alur pengembangan yang brutal secara:

  • Esensi: Mengapa kita melakukan ini? (Bukan karena sedang tren di Twitter/X).
  • Molar & Moral: Nilai filosofis di balik setiap ketikan, agar kode Anda tidak terasa seperti hasil generatif anak sekolah.
  • Praktikal: Bagaimana menjalankannya secara konkret, efisien, efektif, dan praktis tanpa romantisasi berlebihan.

Awalnya repositori ini mungkin terlihat hanya mendeskripsikan "tools apa yang dipakai", namun sejatinya ini adalah otopsi isi pikiran seorang developer yang sudah muak dengan cara-cara dangkal.

flowchart LR
    subgraph TM["TrackMe Ecosystem"]
        Front["🏠 TrackMe (Etalase)"]
        Back["🧠 ShowMyGear (Otak)"]
    end

    Front -->|"Lihat KARYA saya"| Public["Github Pages / Portfolio"]
    Back -->|"Lihat PIKIRAN saya"| Internal["Workflow / Philosophy"]
    
    Back -.->|"Powers"| Front
    
    style Front fill:#e1bee7,stroke:#8e24aa
    style Back fill:#b2dfdb,stroke:#00695c,stroke-width:2px
Loading

Peta Mental: Mengapa Repo Ini Ada?

Repo ini bukan sekadar kumpulan konfigurasi. Ini adalah Eksternalisasi dari Disiplin Mental seorang developer. Setiap file di sini adalah jawaban atas pertanyaan eksistensial dalam karir engineering.

Alur Berpikir (The Narrative Flow)

flowchart TD
    Level1["1. JIWA: Filosofi"] --> Level2["2. FISIK: Fondasi"]
    Level2 --> Level3["3. NAHKODA: Simbiosis AI"]
    Level3 --> Level4["4. BUKTI: Warisan"]
    
    style Level1 fill:#f8bbd0,stroke:#c2185b
    style Level2 fill:#e1bee7,stroke:#7b1fa2
    style Level3 fill:#d1c4e9,stroke:#512da8
    style Level4 fill:#c5cae9,stroke:#303f9f
Loading
  1. Dimulai dari Jiwa (Philosophy)

    • Pertanyaan: "Siapa saya dalam kode ini?"
    • Jawaban: Kita mulai dengan Filosofi. Kita mendefinisikan bahwa "Software adalah Teks", dan karena itu, setiap baris adalah sastra yang harus dijaga.
  2. Turun ke Fisik (Engineering Foundation)

  3. Bangkit sebagai Nahkoda (AI Symbiosis)

    • Pertanyaan: "Di era AI, apakah saya masih relevan?"
    • Jawaban: Justru semakin relevan. Tapi peran berubah dari "Tukang Ketik" menjadi "Nahkoda".
      • Kita memilih Editor AI bukan karena fitur, tapi karena kecocokan pola pikir.
      • Kita menerapkan Simbiosis AI untuk tetap memegang kendali esensi.
  4. Bukti Keabadian (The Proof)

    • Pertanyaan: "Apa peninggalan saya?"
    • Jawaban: Bukti Pemikiran (Proof of Thought). Pada akhirnya, yang tersisa bukan kode (yang akan usang), tapi jejak logika yang kita tanam.

Indeks Holografik

Setelah Anda melewati Protokol Onboarding (Langkah 1 & 2) untuk fondasi mental, Anda tidak perlu lagi membaca sisa modul secara berurutan. Gunakan indeks di bawah ini untuk menyelam ke aspek teknis berdasarkan Masalah yang sedang Anda rasakan:

Jika Anda merasa... Baca Modul Ini Karena...
"Saya cuma copy-paste kode AI." Simbiosis AI Anda perlu merebut kembali kemudi sebelum kapal Anda menabrak gunung es halusinasi.
"Repo saya berantakan & tak bernama." Git Hygiene Identitas adalah fondasi reputasi, jangan biarkan commit Anda terlihat seperti sampah anonim.
"Setup saya beda di tiap laptop." Standar Engineering Konsistensi melahirkan kecepatan; kekacauan melahirkan drama jam 3 pagi.
"Saya bingung pilih LLM." Lanskap LLM Anda butuh strategi tempur, bukan sekadar membuang uang untuk langganan yang tidak terpakai.
"AI sudah bisa segalanya, buat apa belajar fundamental?" Background & Manifesto Anda butuh "tamparan" realitas tentang arogansi si awam dan delusi penguasaan.

1. Infrastructure and Interoperability

flowchart TD
    subgraph PC ["Personal Computer (Host Machine)"]
        Win["Windows Host"]
        WSL["WSL 2 (Linux Kernel)"]
        IDE["IDE / Editor Utama"]
    end

    subgraph Remote ["Remote Infrastructure (Heavy Lifting)"]
        SSH["SSH Tunnel / VPN"]
        Server["Private GPU / Cloud Server"]
    end

    IDE -->|"Native / .NET / VB / Java Init"| Win
    IDE -->|"Sanitized Dev Env"| WSL
    IDE -->|"Offload Work"| SSH
    SSH --> Server
    
    Win <-->|"Interoperability"| WSL
    
    style PC fill:#e3f2fd,stroke:#1565c0
    style Remote fill:#ffebee,stroke:#c62828
    style IDE fill:#fff9c4,stroke:#fbc02d,stroke-width:2px
Loading

Strategi Hybrid: Sanitasi & Performa

Membangun lingkungan pengembangan bukan soal "mengikuti tren", tapi soal menjaga Integritas Sistem Utama. Kami membagi host menjadi dua kategori:

Dirty Host vs Sanitized Host

Karakteristik Dirty Host (Tradisional) Sanitized Host (Pendekatan Somager)
Instalasi apt install atau .exe installer global. WSL 2, Docker, atau Nix Shell.
Dampak Registry kotor, variabel global (PATH) membengkak. Sistem induk (Windows) tetap suci dan cepat.
Versi Sulit menjalankan dua versi DB (misal Postgres 12 & 16). Mudah. Setiap proyek punya kontainer/shell sendiri.
Uninstal Selalu meninggalkan residu file di AppData atau /etc. Cukup hapus container/folder proyek; laptop kembali baru.

Pengecualian: Kapan Menggunakan Windows Host?

Meskipun kami sangat mendewakan sanitasi via WSL, ada kalanya Windows Host adalah pilihan yang lebih cerdas:

  • Pengembangan .NET / VB: Dukungan native terbaik tetap berada di OS asal.
  • Inisiasi Java (NetBeans/IntelliJ): Untuk proyek desktop GUI berat, performa rendering Windows lebih andal daripada X11 forwarding.
  • Instalasi Tool Inti: Hanya alat yang bersifat "Global Driver" (seperti Git, Docker Desktop, VS Code, atau Winget) yang diizinkan diinstall di Windows Host.

Kenapa WSL? (Lebih dari Sekadar Linux)

  • Alternatif VirtualBox: VirtualBox membutuhkan alokasi RAM/CPU statis yang berat. WSL 2 menggunakan Dynamic Memory Allocation; ia hanya mengambil sumber daya saat dibutuhkan dan mengembalikannya ke Windows saat idle.
  • Paritas CI/CD: Kebanyakan pipeline (GitHub Actions, Jenkins) berjalan di Linux. Mengembangkan di WSL meminimalkan masalah "works on my machine" terkait perbedaan izin file atau case-sensitivity.

Interoperabilitas Jaringan: Akses Localhost

Bagaimana Dev Server yang berjalan di berbagai tempat bisa diakses melalui browser di Windows seolah-olah semuanya berjalan lokal?

flowchart LR
    subgraph Win ["Windows Host (Browser)"]
        B["Browser (http://localhost:XXXX)"]
    end

    subgraph WSL ["WSL 2"]
        S1["Dev Server (0.0.0.0:8080)"]
    end

    subgraph Rem ["Remote Server"]
        S2["Dev Server (localhost:3000)"]
    end

    B <-->|"Localhost Mirroring (Otomatis)"| S1
    B <-->|"SSH Local Forwarding (Manual/IDE)"| S2

    style Win fill:#e3f2fd,stroke:#1565c0
    style WSL fill:#e8f5e9,stroke:#2e7d32
    style Rem fill:#ffebee,stroke:#c62828
Loading

Edukasi: SSH Local Port Forwarding

Untuk mengakses server remote seolah-olah berjalan di localhost Anda, kita menggunakan flag -L: ssh -L PORT_X:localhost:PORT_Y USER@REMOTE

  • PORT_X (Local Port): Port yang Anda buka di browser Windows Anda (e.g., 8080).
  • PORT_Y (Remote Port): Port tempat aplikasi Anda benar-benar berjalan di server remote (e.g., 3000).
  • Mekanisme: Perintah ini membentangkan "terowongan" (tunnel) yang meneruskan setiap permintaan ke localhost:PORT_X di laptop Anda menuju localhost:PORT_Y di dalam server remote.

Keuntungan: Anda tidak perlu membuka port firewall di server publik, karena trafik dilewatkan melalui jalur aman SSH.

Tip

Otomasi IDE: Kebanyakan IDE modern dengan fitur Remote SSH sudah melakukan pemetaan port (Port Forwarding) secara otomatis. Jadi, Anda tidak perlu khawatir jika terminal Anda hanya menampilkan "Running on localhost:3000" di server remote; IDE akan mencoba "memantulkannya" ke localhost laptop Anda secara transparan.

Catatan Performa: Jika koneksi internet Anda lambat, pemetaan otomatis oleh IDE terkadang terasa laggy. Dalam kondisi ini, melakukan manual tunneling via perintah SSH di atas terkadang memberikan performa yang lebih stabil dan responsif.


2. Terminal Cockpit

Terminal bukan sekadar tempat mengetik perintah; ia adalah Cockpit tempat Anda mengemudikan seluruh infrastruktur.

The Stack: Shell & Multiplexer

Kami memilih kombinasi alat yang meminimalkan friction antara pikiran dan eksekusi:

  • Emulator: Windows Terminal atau Alacritty. Harus mendukung GPU acceleration agar rendering teks instan (Zero Latency).
  • Shell: Zsh (dengan Oh-My-Zsh) atau Fish.
    • Fitur Wajib: Auto-suggestions dan Fuzzy Search (via fzf). Developer tidak boleh menghabiskan waktu mengingat path file yang panjang.
  • Multiplexer: Tmux atau Zellij.
    • Mengapa: Memungkinkan Anda membagi layar menjadi banyak panel danβ€”yang paling pentingβ€”menjaga sesi tetap hidup meskipun koneksi SSH terputus.

Important

Filosofi Kecepatan: Jika Anda butuh lebih dari 3 detik untuk berpindah antar proyek atau mencari file, maka setup terminal Anda gagal.


3. Git Hygiene

Di dunia yang dibanjiri kode generatif AI, Integritas adalah mata uang baru.

Signature of Trust (GPG/SSH Signing)

Setiap commit di repositori ini (dan seharusnya di milik Anda) wajib ditanda tangani secara digital.

  • GPG/SSH Signing: Menjamin bahwa commit tersebut benar-benar berasal dari Anda, bukan orang lain yang memalsukan nama/email Anda.
  • Verified Badge: Tanda centang hijau di GitHub bukan sekadar kosmetik; itu adalah Proof of Personal Accountability.

Atomic Commits

Hindari commit raksasa seperti "Fix everything". Gunakan Atomic Commits: satu perubahan kecil, satu maksud yang jelas. Ini memudahkan rollback dan kolaborasi tanpa drama konflik kode yang berlarut-larut.


4. Language Ecosystems

flowchart TD
    subgraph Isolation ["Level 1: Isolation"]
        Py["Python"] --> Poetry["Poetry .venv"]
        Node["Node.js"] --> Fnm["FNM + pnpm"]
    end
    
    subgraph Enterprise ["Level 2: Enterprise"]
        Java["Java"] --> SDK["SDKMan"]
        PHP["PHP"] --> Docker["Docker Compose"]
    end
    
    subgraph System ["Level 3: System"]
        Rust["Rust"] --> Nix["Nix Shell"]
    end

    style Isolation fill:#e8f5e9,stroke:#2e7d32
    style Enterprise fill:#fff3e0,stroke:#ef6c00
    style System fill:#f3e5f5,stroke:#7b1fa2
Loading

Python: Isolasi Ketat (Poetry)

  • Mengapa: pip + requirements.txt adalah cara lama yang rentan terhadap Dependency Hell. Tanpa file lock yang benar, proyek Anda bisa berjalan hari ini tapi gagal besok karena library transitif yang berubah.
  • Keunggulan: Poetry menjamin Deterministic Buildsβ€”apa yang saya install di mesin saya akan sama persis dengan apa yang Anda install di mesin Anda, hingga ke tingkat hash file.
  • Tool: Poetry
  • Aturan: Tidak ada requirements.txt atau pip install untuk proyek non-trivial.
  • Pengecualian: Trivial, library Single-script atau prototipe sekali pakai.

Node.js: Efisiensi & Kecepatan (fnm + pnpm)

  • fnm (Fast Node Manager): Ditulis dengan Rust. Kebanyakan pengelola versi Node (seperti nvm) ditulis dengan bash script yang sangat lambat dan menambah jeda ~1 detik setiap kali terminal dibuka. fnm berjalan instan.

  • pnpm: Pilihan utama untuk menghemat ruang disk. Berbeda dengan npm yang menduplikasi folder node_modules di setiap proyek, pnpm menggunakan Content-addressable Store. Semua versi library yang sama hanya disimpan satu kali di disk fisik Anda dan dihubungkan via hard link.

  • Version Manager: fnm (Fast Node Manager) dibangun dengan Rust.

    • Trade-off: Lebih cepat dan bersih daripada nvm. Script bash nvm dapat memperlambat Shell Startup; fnm instan.
  • Runtimes:

    • Node.js: Tujuan umum, kompatibilitas Legacy.
    • Bun: Untuk Tooling lokal performa tinggi atau Edge Deployment spesifik.
    • Deno: Untuk proyek spesifik yang membutuhkan Security Sandbox atau standar library modern.
  • Package Managers:

    • Global: npm atau yarn (hanya untuk alat CLI sistem).
    • Lokal (Project):
      • pnpm: Pilihan utama untuk proyek Node (hemat disk via Content-addressable Store, Strict Hoisting mencegah Phantom Dependencies).
      • bun: Ketika proyek berbasis Bun.
    • Filosofi: Gunakan alat Native dari platform target (misal, pertahankan deno.lock untuk Deno, bun.lockb untuk Bun).

Java: Enterprise & GUI

  • Version Manager: SDKMan (WSL/Linux) atau Scoop (Windows).
    • Alasan: Mudah berganti antara Java 8 (Legacy Swing/JavaFX) dan Java 21+ (Spring Boot) tanpa mengotori variabel global.
  • Desktop: NetBeans/IntelliJ diinstall via Managed Tools. Build hanya melalui Wrapper (mvnw/gradlew).
  • Web Services: Spring Boot berjalan di infrastruktur Dockerized.

PHP: Strategi Konteks Deployment

  • Filosofi: Container-First (Ketat). Menginstall ekstensi langsung di host atau menggunakan XAMPP/MAMP dianggap Bloated dan dilarang keras.
  • Modern/Cloud (VPS, AWS ECS, Railway):
    • Tool: Docker Compose atau Laravel Sail.
    • Aturan: Runtime aplikasi, database, dan cache wajib berjalan di kontainer terisolasi (Isolated Containers).
  • Shared Hosting Legacy (cPanel/Hostinger):
    • Toleransi: Laragon dapat diterima untuk Stack sederhana yang ditujukan untuk Shared Hosting.
    • Batasan: Hanya gunakan jika Containerization dianggap berlebihan (Overkill) atau tidak kompatibel dengan Deployment Target.

Systems (Rust & Elixir): Aplikasi Nix

  • Tool: Nix (Package Manager / Flakes)
  • Masalah: Rust dan Elixir sering membutuhkan library level sistem (OpenSSL, GCC, dll.). Menginstalnya via apt membuat workspace "kotor" dan sulit direplikasi di mesin baru.
  • Solusi: Gunakan Nix untuk mendefinisikan Per-project Shell Environment.
  • Workflow:
    • Definisikan flake.nix atau shell.nix.
    • Jalankan nix develop (atau gunakan direnv).
    • Hasil: Versi kompilator dan library sistem tersedia hanya di shell tersebut.
  • Trade-off: Kurva pembelajaran lebih curam, tetapi menjamin bahwa cargo build atau mix compile berjalan di mesin apa pun dengan Nix, tanpa langkah Setup manual.

5. Trade-off Analysis

flowchart TD
    Start(["Masalah"]) --> Q1{"Butuh Benar atau Cepat?"}
    Q1 -->|"Benar (Correctness)"| Poetry["Poetry / Nix"]
    Q1 -->|"Cepat (Speed)"| Fnm["fnm / Bun"]
    
    Start --> Q2{"Butuh Isolasi?"}
    Q2 -->|"Ya, Mutlak"| Docker["Docker / Nix"]
    Q2 -->|"Tidak, Development"| Helper["Helper Scripts"]
    
    style Poetry fill:#a5d6a7
    style Fnm fill:#ffcc80
Loading
Pilihan Pro Kontra Mengapa kami memilihnya
Poetry Deterministik, menangani Venvs secara otomatis, Publishing bersih. Resolver lebih lambat dari uv/pip, non-standar untuk pemula. Correctness > Kecepatan. Membatasi "works on my machine".
fnm Sangat cepat (Blazing Fast), dukungan Cross-shell. Dokumentasi kurang ada di mana-mana dibanding nvm. Kecepatan Shell Startup dan keandalan Rust.
Nix Reproducibility mutlak, kebersihan sistem. Sintaks kompleks, penggunaan disk berat (Store), kurva belajar. Kami benci apt-get install libssl-dev merusak proyek lain.
Remote SSH Offloads penggunaan sumber daya, Persistent Sessions. Latensi, butuh internet/jaringan. Menjaga laptop lokal tetap dingin/hemat baterai; skala ke Workloads berat.

6. AI Navigator

Kami tidak melihat AI sebagai pengganti, melainkan sebagai Exoskeleton untuk pikiran.

The Navigator Mindset

  • Manusia = Arsitek & Nahkoda: Menentukan arah, struktur, dan konsekuensi bisnis.
  • AI = Mesin & Navigator: Menghasilkan draf kode, mencari bug, dan memberikan saran alternatif.

Pemilihan Alat

  • Editor Utama: Kami merekomendasikan Cursor atau Windsurf. Keduanya memiliki pemahaman konteks seluruh kode (Codebase Awareness) yang jauh melampaui ekstensi plugin biasa.
  • Workflow: Jangan pernah menerima kode AI secara buta. Setiap baris yang di-generate harus di-review seolah-olah Anda sedang me-review pekerjaan junior developer.

Tip

Simbiosis 1+1=3: Developer yang paham fundamental ditambah kecanggihan AI akan memiliki ambang produktivitas yang mustahil dicapai di masa lalu.


7. OS History and the "CLI-First" Mindset

Perjalanan: Dari Source ke Stabilitas

timeline
    title Evolusi OS Daily Driver
    2015 : Arch Linux (Belajar) : Linux From Scratch
    2018 : Ubuntu / Debian : Era Produktivitas
    2020 : CentOS (Server) : Pekerjaan Enterprise
    2022 : Windows 10/11 : Era Stabilitas + WSL 2
Loading
  • Akar: Penyelaman mendalam ke internal Linux via Arch Linux, Gentoo, dan Linux From Scratch (LFS). Ini bukan hanya untuk penggunaan, tapi untuk memahami bagaimana OS mempengaruhi Software Stack.
  • Evolusi Daily Driver:
    • Ubuntu/Debian: Untuk produktivitas dan tugas umum, menerima Trade-off keterbukaan komunitas vs stabilitas korporat.
    • CentOS/AlmaLinux: Untuk pekerjaan Enterprise/Server-grade (Java/Spring/ASP).
    • Windows:
      • Menyukai Windows 8.1 karena sifatnya yang ringan.
      • Menetap di Windows 10 untuk stabilitas (merasa Windows 11 sering Bloated atau tidak stabil, meskipun saat ini menjalankannya).

Manifesto CLI: "Software is Text"

flowchart TD
    User(["User"])
    Dev(["Developer"])
    
    subgraph Reality["Realitas Software"]
        GUI["Antarmuka (Kulit)"]
        CLI["Teks / Kode (Inti)"]
    end
    
    User -->|"Melihat"| GUI
    Dev -->|"Memahami"| CLI
    GUI -.->|"Abstraksi"| CLI
    
    style GUI fill:#cfd8dc,stroke:#333,stroke-dasharray: 5 5
    style CLI fill:#263238,stroke:#000,color:#fff
Loading
  • Keyakinan Inti: "Software bukanlah apa yang terlihat (GUI), melainkan apa yang tertulis (Text/Command)."
    • Esensi vs Antarmuka: Mental model ini wajib dimiliki oleh developer. "Software" adalah logika fundamental yang tertulis dalam teks. "Antarmuka" hanyalah lapisan presentasi yang bisa berupa apa saja: GUI, TUI, CLI, atau bahkan BCI.
    • The Layer of Lies (Lapisan Kebohongan):
      • GUI sering kali menyembunyikan realitas sistem di balik tombol-tombol yang tampak mudah. Ia mengabstraksi kompleksitas untuk kenyamanan pengguna, namun bagi developer, abstraksi ini bisa menjadi jebakan saat debugging.
      • CLI memberikan transparansi. Tidak ada yang tersembunyi. Anda melihat argumen yang dikirim, permission yang ditolak, dan status exit secara jujur. Menguasai CLI berarti Anda menghentikan ketergantungan pada "sihir" tombol dan mulai memahami mekanika mesin yang sebenarnya.
  • Keamanan & Visibilitas: Alat GUI dapat mengeksekusi script latar belakang tanpa sepengetahuan Anda. Dalam CLI, Anda adalah operatornya; setiap perintah yang berjalan adalah manifestasi dari kehendak Anda. ini adalah pertahanan pertama melawan ancaman keamanan yang tersembunyi.
  • Manajemen Paket Windows:
    • Winget: Manajer Global (menggantikan apt, pip -g). Digunakan untuk alat inti seperti Git.
    • Scoop/Chocolatey: Manajer Project/Ecosystem. Digunakan untuk kebutuhan Runtime spesifik (.NET, C#, dll.).

8. Physical Cockpit

Pikiran yang tajam butuh antarmuka fisik yang tidak menghambat.

  • Input: Mechanical Keyboard (Tactile) untuk feedback jari yang presisi. Mengetik adalah kegiatan motorik yang mempengaruhi ritme berpikir.
  • Output: Monitor dengan Refresh Rate tinggi (120Hz+) dan akurasi warna yang baik. Ini bukan soal gaming, tapi soal mengurangi kelelahan mata saat menatap teks ribuan baris.
  • Mobility: Laptop ringan untuk mobilitas pikiran, namun tetap terhubung ke Remote Server untuk daya komputasi berat.

Note

Hardware adalah Pelayan: Jika Anda menghabiskan banyak waktu mengurus hardware daripada bekerja, maka Anda tersesat dalam romantisasi.



πŸš€ Menuju Stage Berikutnya: Hyperfocus

Jika ShowMyGear adalah Helicopter View tentang "Apa" dan "Mengapa", maka Hyperfocus (Segera Hadir) adalah "Bagaimana" dalam skala industri yang brutal.

Apa yang akan ada di Hyperfocus?

  • Infrastructure as Code (IaC): Mengelola server bukan lagi via SSH manual, tapi via Terraform/OpenTofu.
  • Web3 Implementation: Membangun dApps di atas protokol yang Anda desain sendiri.
  • Advanced Security: Implementasi Zero Trust di lingkungan development pribadi.
  • Automated Productivity: AI Agent yang benar-benar bekerja untuk alur kerja spesifik Anda.

Ini bukan akhir, ini adalah pembukaan gerbang menuju kedaulatan digital yang sesungguhnya.


πŸ“« Diskusi & Koneksi

Merasa tersesat? Bingung dengan arah tulisan ini? Mari berdiskusi lebih kontekstual. Repositori ini adalah ruang terbuka.

  • Diskusi: Gunakan tab Discussions untuk pertanyaan mendalam.
  • Sosial Media: DM saya langsung di @sandikodev (Facebook, Instagram, X/Twitter, TikTok, LinkedIn).

"Saya sangat menghargai siapa saja yang ingin berdiskusi lebih lanjut."


🏠 Home | πŸ—ΊοΈ Roadmap | πŸ€– Protokol Agentik | πŸ“œ Konstitusi Arsitek | πŸ” Kedaulatan Digital | πŸ”­ Future Spoiler | ⌨️ Hardware & Ergonomi

About

ShowMyGear (Somager): Authenticating the idea of a clean, reproducible development environment. "Software is not what is seen, but what is written.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors