• Windows

    ARP Commands

    Displays and modifies the IP-to-Physical address translation tables used by
    address resolution protocol (ARP).

    ARP -s inet_addr eth_addr [if_addr]
    ARP -d inet_addr [if_addr]
    ARP -a [inet_addr] [-N if_addr] [-v]

    -aDisplays current ARP entries by interrogating the current protocol data. If inet_addr is specified, the IP and Physical addresses for only the specified computer are displayed. If more than one network interface uses ARP, entries for each ARP table are displayed.
    -g Same as -a.
    -vDisplays current ARP entries in verbose mode. All invalid entries and entries on the loop-back interface will be shown.
    inet_addrSpecifies an internet address.
    -N if_addr Displays the ARP entries for the network interface specified by if_addr.
    -d Deletes the host specified by inet_addr. inet_addr may be wildcarded with * to delete all hosts.
    -s Adds the host and associates the Internet address inet_addr with the Physical address eth_addr. The Physical address is given as 6 hexadecimal bytes separated by hyphens. The entry is permanent.
    eth_addrSpecifies a physical address.
    if_addr If present, this specifies the Internet address of the interface whose address translation table should be modified. If not present, the first applicable interface will be used.

    Example:

    arp -s 157.55.85.212 00-aa-00-62-c6-09 …. Adds a static entry.
    arp -a …. Displays the arp table.

  • 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)