Note
ShowMyGear adalah bagian dari TrackMe Ecosystem.
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.
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
- 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. - 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. - Langkah 3: Dokumentasi Mendalam
Gunakan Daftar Isi di bawah ini untuk menyelam ke spesifik modul teknis yang ingin Anda kuasai.
"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".
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
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.
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.
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:
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.
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.
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.
"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.
"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.
- π© Start Here: Protokol Onboarding
- π§ Kompas Naratif
- π Filosofi Penamaan
- π Ekosistem TrackMe
- πΊοΈ Peta Mental
- ποΈ Infrastructure and Interoperability
- β¨οΈ Terminal Cockpit
- π Git Hygiene
- π οΈ Language Ecosystems
- βοΈ Trade-off Analysis
- π€ AI Navigator
- π OS History and the "CLI-First" Mindset
- πΊ Physical Cockpit
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
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
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.
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
-
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.
-
Turun ke Fisik (Engineering Foundation)
- Pertanyaan: "Bagaimana cara saya menjaga kesucian teks tersebut?"
- Jawaban:
- Kita butuh Ruang Kerja yang suci: Terminal Cockpit.
- Kita butuh Identitas yang tak terpalsukan: Git Hygiene (GPG Signing).
- Kita butuh Konstitusi (Hukum): Standar Engineering.
-
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.
-
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.
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. |
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
Membangun lingkungan pengembangan bukan soal "mengikuti tren", tapi soal menjaga Integritas Sistem Utama. Kami membagi host menjadi dua kategori:
| 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. |
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.
- 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.
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
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_Xdi laptop Anda menujulocalhost:PORT_Ydi 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.
Terminal bukan sekadar tempat mengetik perintah; ia adalah Cockpit tempat Anda mengemudikan seluruh infrastruktur.
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.
- Fitur Wajib: Auto-suggestions dan Fuzzy Search (via
- 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.
Di dunia yang dibanjiri kode generatif AI, Integritas adalah mata uang baru.
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.
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.
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
- Mengapa:
pip+requirements.txtadalah 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.txtataupip installuntuk proyek non-trivial. - Pengecualian: Trivial, library Single-script atau prototipe sekali pakai.
-
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
npmyang menduplikasi foldernode_modulesdi setiap proyek,pnpmmenggunakan 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 bashnvmdapat memperlambat Shell Startup;fnminstan.
- Trade-off: Lebih cepat dan bersih daripada
-
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:
npmatauyarn(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.lockuntuk Deno,bun.lockbuntuk Bun).
- Global:
- 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.
- 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.
- Tool: Nix (Package Manager / Flakes)
- Masalah: Rust dan Elixir sering membutuhkan library level sistem (OpenSSL, GCC, dll.). Menginstalnya via
aptmembuat workspace "kotor" dan sulit direplikasi di mesin baru. - Solusi: Gunakan Nix untuk mendefinisikan Per-project Shell Environment.
- Workflow:
- Definisikan
flake.nixataushell.nix. - Jalankan
nix develop(atau gunakandirenv). - Hasil: Versi kompilator dan library sistem tersedia hanya di shell tersebut.
- Definisikan
- Trade-off: Kurva pembelajaran lebih curam, tetapi menjamin bahwa
cargo buildataumix compileberjalan di mesin apa pun dengan Nix, tanpa langkah Setup manual.
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
| 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. |
Kami tidak melihat AI sebagai pengganti, melainkan sebagai Exoskeleton untuk pikiran.
- Manusia = Arsitek & Nahkoda: Menentukan arah, struktur, dan konsekuensi bisnis.
- AI = Mesin & Navigator: Menghasilkan draf kode, mencari bug, dan memberikan saran alternatif.
- 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.
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
- 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).
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
- 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.).
- Winget: Manajer Global (menggantikan
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.
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.
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
