FrankenPHP : The Modern PHP App Server, written in Go

Ini adalah mainan baru dalam dunia PHP. Setelah PHP dibully habis habisan karena isu performa yang lambat, maka muncul teknologi baru dunia PHP. FrankenPHP.

FrankenPHP diketik dalam bahasan golang dan dipaket dalam satu file executable. Didalamnya sdh ada webserver Caddy dan tentu saja PHP.  Ini yg membuat kekencangannya berlipat-lipat.

Saya mencoba melakukan instalasi di server arm dengan mudah.

Selanjutnya »

Membuat Variabel Dinamis Pada Dokumen Word (docx)

Adalah hal menyebalkan ketika kita diminta membuat dokumen kenaikan pangkat/jenjang dalam organisasi. Karena jamannya online,  kita diminta mengedit dokumen docx dan menyerahkan ke pimpinan. Online yang setengah-setengah :). Kalau online beneran ya pakai databaselah, bukan nyerahin file docx 🙂

Bayangkan jika satu orang harus melampirkan 2 dokumen saja,  30 orang sudah 60 dokumen, Membuka 60 file word satu-satu maaaaak. Ampuuun….

Apalagi kalau harus ada yang diupdate di semua dokumen karena ada format dokumen yang salah, ada yang harus diedit. Buka – edit – simpan 60 dokumen. Ampuuun Caaaak.

Kadang tidak sampai disitu, data harus direkap dalam bentuk tabel spreadsheet. Buka satu-satu copas … hadooh…

Sampai disitu ada instruksi nama file harus urut abjat nama orang. Ngiiing ….

Lebih enak bahwa semua data itu kita masukkan database atau Google Sheet yang diisi melalui Google Form. Lalu kita membuat template word. Dan terakhir kita sambungkan data dengan template word  menggunakan skrip.

Selanjutnya »

Download Mp3 dari Youtube

Saya suka mendengarkan lagu dalam format mp3. Namun mendapatkan format mp3 ini tidak mudah didapat. Hari ini yang ada mpeg (lagu dengan video) yang didownload langsung dari Youtube.

Saya masih tertarik mendengarkan mp3nya saja. Video itu hanya menambah-nambah ukuran file saja.

Memang ada beberapa aplikasi online konversi dari URL Youtube ke Mp3, namun penuh kelemahan, seperti adanya iklan berbasis link yang tidak masuk akal sampai pada tidak bisa download mp3 yang panjang.

Akhirnya dengan bantuan ChatGPT, saya membuat program untuk mengatasi hal tersebut :

# pip install yt_dlp
import yt_dlp
def getmp3(url):
    ydl_opts = {
        "format": "bestaudio/best",
        "postprocessors": [{
            "key": "FFmpegExtractAudio",
            "preferredcodec": "mp3",
            "preferredquality": "192",
        }],
    }
    try:
        with yt_dlp.YoutubeDL(ydl_opts) as ydl:
            ydl.download([url])
        return True  # Berhasil
    except yt_dlp.utils.DownloadError as e:
        print(f"Error: {e}")
        return False  # Gagal

while True:
    url = input("Enter the URL of the video you want to download: \n>> ").strip()
    
    if not url:
        print("No URL entered. Please try again.")
        continue  # Kembali meminta URL jika kosong

    # Coba unduh URL
    if getmp3(url):
        print("Download successful! \n\n")
        continue  # Kembali meminta URL jika masih mau input URL kembali
    else:
        print("Invalid URL or an error occurred. Please try again.")

Namun sering library seperti ini cepat tidak bekerja seiring layanan yang menutup celah agar tidak bisa di dlownload.