NAS di STB HG680P

Mungkin kamu punya keinginan untuk membuat NAS di STB dengan kriteria seperti Google Drive, menggunakan fasilitas 2 hardisk dimana keduanya saling syncronisasi.

Teknologi yang digunakan adalah

  1. Linux armbian sebagai basis OSnya
  2. RAID 1 untuk mirroring 2 HDD
  3. CasaOS sebagai yang – menurut saya – docker manager untuk instalasi NextCloud
  4. NextCloud

Bagi kamu yang tertarik silahkan mengikuti tutorial berikut:

Pilih Mana?

Perkembangan Teknologi yang sangat pesat 5 – 10 tahun terakhir menyebabkan belajar teknologi menjadi tidak mudah seperti dulu. Salah satu yang membuatnya tak mudah adalah banyaknya pilihan.

Dulu pilihan populer untuk belajar web hanya PHP – MySQL – HTML, CSS, JQuery.  Orang belajar itu aja sudah bisa menjadi web developer mumpuni.

Namun sekarang lain. ada banyak teknologi yang popularitasnya mirip-mirip.

Di Backend selain PHP ada NodeJS, Python, Golang, Rust.

Bahkan di Javascript saja,  kalau dulu hanya ada jQuery sekarang ada banyak framework turunan JS seperti Reach, Vue, Next, Nest dan banyak lagi …

Intinya saya juga lama macet gara-gara pemilihan bahasa dan framework. Jangan sampai kita capek-capek belajar akhirnya tidak banyak dipakai.

Seperti misalnya, ketika saya belajar Python – Flsk dengan harapan bisa memanfaatkan fitur datascience yg ada di Python untuk diumpankan di PHP/JS. Tapi saya fikir kalau tidak ada projectnya buat apa,  toh kalau tiga sampai lima bulan tidak kita pakai toh lupa juga …

BTW, mungkin saya ingin menguasai 2 aja dulu.

  • PHP dengan Laeavel 11
  • Node dengan ExpressJS

Kayaknya dua itu cukup untuk sekadar mengerjakan project kecil. Kalau nanti pengin project frontend mungkin nanti Vue atau Nextjs.

Demikian omon-omon gak jelas kita hari ini. Mudah-mudahan kita diberi Allah banyak rezeki. Amiin.

Web Programming, Dulu dan Kini

Saya sudah berkecimpung dalam web programming sejak 2002.  Dan bagi saya, web programming sekarang tidak lebih mudah daripada dahulu. Dahulu very-very simple.

Di PHP, jika kita ingin sebuah library tinggal copas dan include librarynya.

Jika ingin install aplikasi PHP tinggal copas satu folder, edit konfigurasi databasenya, langsung jalan.

Sekarang, jika kamu dapat skrip laravel, nodejs, golang, python, rust, tidak semudah itu. Ngatur PATH, kesesuaian versi-versi, berbagai dependensi. Ribet.

Sekarang jika saya dapat skrip dan sy jalankan, bisa dipastikan  langsung error. Harus install ini install itu, paket ini paket itu, ngatur ini ngatur itu, versi ini, dependensi dll. Agak heran juga sih, mengapa semakin maju segala sesuatunya tidak semakin dibuat simpel 🙂

 

SleekDB

SleekDB adalah sejenis Database NOSQL yang dibangun 100% dari PHP. Jadi, kamu bisa membuat aplikasi pure PHP “tanpa bantuan database apapun”.  SleekDB berbasis text dengan json format.

SleekDB hanya membutuhkan:

  • PHP >= 7.0
  • ext-json
  • ext-mbstring

Hebatnya SleekDB adalah, walaupun berbasis text dan hanya mengandalkan engine PHP, namun query yang digunakan sangat familier bagi programmer PHP, yaitu Query Builder.

Stuktur dokumennya kalau di MongoDB adalah Database -> Collection -> Document, kalau di SleekDB adalah Database->Store->Document.

Kelebihan SlackDB adalah simple dan mudah digunakan. Namun yang saya kurang suka adalah bahwa satu Document (row) diwakili satu file json.

Sebenarnya kalau ada developer madzab NOSQL dengan model seperti SleekDB namun teknologi penyimpanannya seperti SQLite (everywhere in single file) , maka dia akan menjadi SQLitenya kelompok database Non Relational.

MongoDB

Saya baru saja melakukan instalasi MongoDB 7.0.6, namun MongoDB saya install sebagai modul dari Laragon.

Caranya download yang versi Zip dan cukup di exstrak di bin/mongodb. Sedikit ada error saat saya start, dan bisa dibenerin dengan mengubah konfigurasi di mongod.conf. Namun saya lupa apa yg kemarin saya ubah.

Dan apabila kita membutuhkan MongDB Client maka kita bisa menggunakan MongoDBCompas

Berikut  beberapa catatan dari database NOSQL ini:

  1. Jika di Relasional Database ada istilah Database -> Table -> Rows
    maka di  MongoDB menggunakan istilah Database->Collection->Document
  2. Di MongoDB tidak diperlukan mendefiniskan row, bisa langsung memasukkan data apa saja.
  3. Jika di Relational database berbasis tabel maka di MongoDB berbasis JSON dan yang sejenis.
  4. Walaupun di MongoDB tidak diperlukan pembuatan column (rows), namun ada fasilitas untuk  memvalidasi key yang ada pada dokumen.
  5. Cara “Query” nya tidak menggunakan SQL ya bro, namun menggunakan perintah query dengan Java Script yang mirip-mirip json.
  6. Kalau menggunakan MongoDBCompas, bisa import langsung data berformat CSV ke dalam Collection.

Sebenarnya menurut saya cocok untuk LimeSurvey, sayangnya tidak ada dukungan di LimeSurvey.

BTW, saya belum akan menggunakannya untuk kebutuhan sehari-hari saya, dan ini masih sebatas mainan saja, karena memang belum ada urgensi menggunakan MongoDB saat ini. MongoDB besar instalernya aja 1/2 GB. Selain, kebutuhannya masih sebatas SQL khususnya MySQL dan SQLite 🙂

Contoh Query di MongoDB

// select * from products where tags in ("samsung",  "logitect")
db.products.find({
    tags: {
        $elemMatch: {
            $in: ["samsung", "logitech"]
        }
    }
});

// select * from products where category in ('handphone', 'laptop') and price > 5000000
db.products.find({
    category: {
        $in: ["handphone", "laptop"]
    },
    price: {
        $gt: 5000000
    }
});

Contoh perintah-perintah lainnya silahkan mengunjungi GitHubnya  Kang Eko .