• Linux

    Reverse Proxy

    Nyalakan module yang diperlukan pada apache.

    sudo a2enmod proxy 
    sudo a2enmod proxy_http
    sudo a2enmod proxy_balancer
    sudo a2enmod lbmethod_byrequests

    Restart apache server.

    sudo systemctl restart apache2 

    Buat virtulhost.

    <VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName
      ProxyPreserveHost On ProxyPass / http://192.168.0.2:80/
    ProxyPassReverse / http://192.168.0.2:80/
    </VirtualHost>

    Restart apache.

    sudo systemctl restart apache2
  • Linux

    Menjalankan VirtualBox dari Console

    Untuk mengetahui daftar virtual machine yang ada pada VirtualBox, dapat dilihat dengan menggunakan command berikut:

    vboxmanage list vms

    Untuk menjalankan VirtualBox dapat menggunakan command berikut:

     /usr/bin/vboxheadless -s NamaVirtualBox

    Agar VirtualBox dapat jalan secara otomatis, dapat dibuat service.

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

    Tambahkan code berikut:

    [Unit]
    Description=VM service
    After=network.target vboxdrv.service

    [Service]
    ExecStart=/usr/bin/vboxheadless -s NamaVirtualBox
    ExecStop=/usr/bin/vboxmanage controlvm NamaVirtualBox acpipowerbutton

    [Install]
    WantedBy=multi-user.target
  • RaspberryPi

    Raspberry Pi Print Server

    Instalasi CUPS

    Update ke package terbaru.

    sudo apt-get update
    sudo apt-get upgrade

    Install package untuk server printer.

    sudo apt-get install cups 

    Setelah selesai, selanjutnya menambahkan user kedalam “lpadmin”. Group ini mengizinkan user untuk mengakses fungsi administration pada cups tanpa harus menggunakan super user.

  • Linux

    Qt for Linux/X11

    Requirements for Development Host

    Debian/Ubuntu (apt-get)

    sudo apt-get install build-essential libgl1-mesa-dev

    Fedora/RHEL/CentOS (yum)

    sudo yum groupinstall "C Development Tools and Libraries"
    sudo yum install mesa-libGL-devel

    openSUSE (zypper)

    sudo zypper install -t pattern devel_basis

    Downloading and Installing Qt

    Untuk file installer Qt, dapat diunduh disini.

  • other

    M.2 Family of Form Factors

    Key Card measurements Interfaces Common uses
    A 1630, 2230, 3030 PCIe x2, USB 2.0, I2C, DisplayPort x4 Wi-Fi/Bluetooth, cellular cards
    B 3042, 2230, 2242, 2260, 2280, 22110 PCIe x2, SATA, USB 2.0, USB 3.0, audio, PCM, IUM, SSIC, I2C SATA and PCIe x2 SSDs
    E 1630, 2230, 3030 PCIe x2, USB 2.0, I2C, SDIO, UART, PCM Wi-Fi/Bluetooth, cellular cards
    M 2242, 2260, 2280, 22110 PCIe x4, SATA PCIe x4 SSDs
  • Git

    Export local subversion to git repository

    Karena “git svn clone” tidak dapat digunakan melalui “file:///”, perlu menggunakan “svnserve” agar svn repository dapat diakses melalui “svn://”.

    svnserve -d --listen-port 4444-r T:\temp\svn-repository

    sehingga repositorynya dapat diakses melalui “svn://localhost:4444”.

    Langkah selanjutnya clone repository dengan menggunakan git svn clone.

    git svn clone "svn://localhost:4444"
  • Arduino

    Arduino Function

    void setup() {
      Serial.begin(9600);
    }
    
    void loop() {
      byte cData[18];
      byte  cLen;
      QFunction(cData, &cLen);
      for(int i=0; i<cLen;i++) {
      Serial.println(cData[i]);
      }
      Serial.println("");
      delay(1000);        
    }
    
    void QFunction(byte *data, byte *len) {
      byte mLen = 10;
      for(int i=0; i< mLen; i++) {
        data[i] = (byte) i+5;
      }
      *len = mLen;
    }
    
  • Android

    ListView on ScrollView

    Buat custom ListView tanpa fitur scroll.

    package al.akh.example.testing.view;
    import android.content.Context;
    import android.util.AttributeSet;
    import android.view.ViewGroup;
    import android.widget.ListView;
    
    public class ListViewNonScroll extends ListView {
    
        public ListViewNonScroll(Context context) {
            super(context);
        }
        public ListViewNonScroll(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
        public ListViewNonScroll(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
        }
        @Override
        public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            int heightMeasureSpec_custom = MeasureSpec.makeMeasureSpec(
                    Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
            super.onMeasure(widthMeasureSpec, heightMeasureSpec_custom);
            ViewGroup.LayoutParams params = getLayoutParams();
            params.height = getMeasuredHeight();
        }
    }

     

    Pada layout resource file, gunakan custom ListView yang telah dibuat di atas.

    <?xml version="1.0" encoding="utf-8"?>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fadingEdgeLength="0dp"
        android:fillViewport="true"
        android:overScrollMode="never"
        android:scrollbars="none" >
    
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
    
            <al.akh.example.testing.view.ListViewNonScroll
                android:id="@+id/list_view"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/ >
    
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/list_view" >
                ...
            </RelativeLayout>
        </RelativeLayout>
    
    </ScrollView>
  • Linux

    Mount raw file

    Katakanlah kita mempunyai raw file hasil dari dd command.

    dd if=/dev/sda of=/mnt/data/backup/akhalos.img

    Langkah pertama adalah membuat folder untuk mount file image.

    sudo mkdir /mnt/akhalos

    Langkah selanjutnya adalah mencari nilai offset sector yang ada pada file image yang nantinya akan digunakan sebagai parameter offset pada perintah mount.

    fdisk -l /mnt/data/backup/akhalos.img
    Device       Boot Start      End  Sectors Size Id Type
    akhalos.img1 *     2048 16777182 16775135   8G 83 Linux
    

    Dari data diatas, didaptkan offset sebesar 2048. Karena nilai setiap sector adalah 512 bytes, maka nilai offset yang didapatkan untuk parameter mount adalah 2048*512 = 1048576. Sehingga, perintah mountnya menjadi:

    sudo mount -o loop,offset=1048576 /mnt/data/backup/akhalos.img /mnt/akhalos