• macOS

    Cara Menghapus Local Time Machine snapshot

    Untuk mengosongkan space harddisk pada macOS dapat dengan cara menghapus file local time machine snapshot. Untuk melihat file snapshot, dapat menggunakan command berikut:

    tmutil listlocalsnapshots /

    Didapatkan hasil seperti contoh berikut ini:

    mac@OS ~ % tmutil listlocalsnapshots /                       
    Snapshots for volume group containing disk /:
    com.apple.TimeMachine.2020-08-18-070820.local
    com.apple.TimeMachine.2020-08-18-090830.local
    com.apple.TimeMachine.2020-08-18-101626.local
    com.apple.TimeMachine.2020-08-18-130847.local
    com.apple.TimeMachine.2020-08-18-150842.local

    Untuk menghapusnya, gunakan command berikut ini:

    sudo tmutil deletelocalsnapshots 2020-08-18-070820
  • macOS

    Bluetooth Audio Codec pada macOS

    Seberapa bagusnya audio sering tergantung dari format yang digunakan. Biasanya, macOS menggunakan SBC audio compression codec sebagai standar. Tetapi, untuk mac jenis yang baru sudah mendukung AAC (Apple’s preferred iTunes codec) dan aptX. Kedua jenis codec tersbut mempunyai kualiatas audio dari pada SBC.

    Untuk mengetahui code apa yang sedang digunakan pada bluetooth audio, dapat dengan cara sebagai berikut:

    • Konekkana bluetooth audio dengan mac.
    • Tahan tombol Option, kemudian klik ikon bluetooth yang ada di menu bar.
    • Pilih bluetooth audio yang diinginkan.
  • CodeIgniter

    CodeIgniter Error Message

    Cookie “ci_session” will be soon rejected because it has the “sameSite” attribute set to “none” or an invalid value, without the “secure” attribute. To know more about the “sameSite“ attribute, read https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite
    

    Pada file config perlu menggunakan konfigurasi sebagai berikut:

    public $cookieSecure  = true; 
  • Android

    Android realtime chat dengan menggunakan Firebase Realtime Database

    Pada artikel kali ini, saya akan membuat realtime chat yang sederhana dengan menggunakan Firebase Realtime Database. Firebase Realtime Database adalah database yang di-host di cloud. Data disimpan sebagai JSON dan disinkronkan secara realtime ke setiap klien yang terhubung. Ketika membuat aplikasi cross-platform dengan SDK Android, iOS, dan JavaScript, semua klien akan berbagi sebuah instance Realtime Database dan menerima update data terbaru secara otomatis.

    Langkah pertama yang perlu dilakukan adalah membuat firebase project pada:

    https://console.firebase.google.com

  • Java

    Java Native Interface

    Java Native Interface (JNI) merupakan framework yang mengizinkan kode Java untuk memanggil native language seperti C, C+, maupun asemby. JNI dibutuhkan untuk mengoptimalkan performa pada Java.

    Install terlebih dahulu tools yang diperlukan:

    1. JDK dan JRE
    2. Java IDE, pada kali ini digunakan Netbeans IDE 11.2.
    3. C++ IDE, pada kali ini digunakan Qt.
  • PHP

    PHP stdClass to Array

    PHP stdClass to Array

    function objectToArray($d) {
        if (is_object($d)) {
            // Gets the properties of the given object
            // with get_object_vars function
            $d = get_object_vars($d);
        }	
        if (is_array($d)) {
            /*
            * Return array converted to object
            * Using __FUNCTION__ (Magic constant)
            * for recursive call
            */
            return array_map(__FUNCTION__, $d);
        }
        else {
            // Return array
            return $d;
        }
    }
    

    PHP Array to stdClass

    function arrayToObject($d) {
        if (is_array($d)) {
            /*
            * Return array converted to object
            * Using __FUNCTION__ (Magic constant)
            * for recursive call
            */
            return (object) array_map(__FUNCTION__, $d);
        }
        else {
            // Return object
            return $d;
        }
    }
    
  • Linux

    OpenVPN

    Install OpenVPN Server

    Download script untuk install OpenVPN:

    curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh 
    chmod +x openvpn-install.sh

    Jalankan script:

    ./openvpn-install.sh

    Selesai.

    Untuk konfigurasi OpenVPN dan firewall dapat dilihat di:

    /etc/rc.local -> Firewall 
    /etc/openvpn/server/server.conf -> Konfigurasi OpenVPN

    Jika ingin menambahkan user lain, dapat menjalankan ulang script di atas.

    Command OpenVPN Server

    sudo systemctl stop openvpn@server # <--- stop server
    sudo systemctl start openvpn@server # <--- start server
    sudo systemctl restart openvpn@server # <--- restart server
    sudo systemctl status openvpn@server # <--- get server status

    Install OpenVPN Client

    Install package.

    sudo apt install openvpn

    Copy file .ovpn ke directory /etc/openvpn/, kemudian rename dengan extension .conf

    sudo systemctl start openvpn@client  # <--- start client

    IP forwarding pada Client

    Buka file /etc/sysctl.conf

    Uncomment baris #net.ipv4.ip_forward=1

    Simpan file

    Reboot

  • macOS

    Homebrew

    Homebrew adalah open-source software package management system yang memudahkan instalasi perangkat lunak pada sistem operasi macOS dan Linux.

    Install command Line Tools.

    xcode-select --install

    Install homebrew:

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    Untuk menghapus homebrew dapat menggunakan command berikut ini.

    MacOS Catalina, macOS Big Sur, and MacOS Mojave:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"

    MacOS High Sierra, Sierra, El Capitan, dan versi sebelumnya:

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

    Pada homebrew, terdapat data collection yang mengumpulkan data-data installation, build error, dan operating system version melalui Google Analytics. Jika tidak ingin mematikan fitur ini, dapat mendisabelnya dengan cara:

    brew analytics off

  • Java

    Install Maven Local Repository

    Download Apache Maven disini.

    Tambahkan maven ke path pada Environment Variables.

    Jalankan command berikut ini:

    mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging> 

    Jika file JAR di hasilkan oleh Apache Maven:

    mvn install:install-file -Dfile=<path-to-file> 

    Jika menggunakan pom-file:

    mvn install:install-file -Dfile=<path-to-file> -DpomFile=<path-to-pomfile> 

    Keterangan:
    <path-to-file> lokasi file jar
    <group-id> nama group id (misal: org.akhal)
    <artifact-id> nama library (misal: kbbi)
    <version> versi library
    <packaging> jenis packaging (misalkan: jar)

  • Linux

    Menjalankan Program Java sebagai Service pada Ubuntu

    Buat sebuah Service

    sudo nano /etc/systemd/system/myjava.service

    Copy/paste kode berikut ini ke dalam file myjava.service

    [Unit]
    Description=My Java Service
    
    [Service]
    User=ubuntu
    # The configuration file application.properties should be here:
    
    #change this to your workspace
    WorkingDirectory=/home/ubuntu/workspace
    
    #path to executable. 
    #executable is a bash script which calls jar file
    ExecStart=/home/ubuntu/workspace/start
    
    SuccessExitStatus=143
    TimeoutStopSec=10
    Restart=on-failure
    RestartSec=5
    
    [Install]
    WantedBy=multi-user.target

    Buat file Bash Script untuk memanggil Service

    nano /home/ubuntu/workspace/start

    Copy/paste kode berikut:

    #!/bin/sh 
    /usr/bin/java -jar myjava.jar

    Start Service

    sudo systemctl enable myjava.service
    sudo systemctl start myjava.service