Kamis, April 08, 2021

Tombol Power Smartphone



Salah satu hal yang menjadi kebutuhan saya adalah mengurangi kebutuhan akan tombol power. Sering kali tombol power ketika ditekan tidak dapat menampilkan response yang cepat sehingga tombol power ditekan berulangkali. Akhirnya tombol power rusak dan beli smartphone yang laen yang lebih mahal.

Alternative solusi yang diambil:

  1. Kombinasi WaveUp dan Lock. WaveUp digunakan untuk menghidupkan layar pada kondisi smartphone sedang sleep. Lock digunakan untuk mengubah status smartphone menjadi sleep. Alternatif ini relative hemat battery. Namun sayang, WaveUp kadang tidak berjalan dengan normal setelah beberapa kali iterasi wake dan sleep.
  2. Kombinasi AlwaysOn dan Lock. Alternatif ini membuat smartphone tidak sleep secara total. Setelah memasuki status lock, AlwayOn akan menayangkan tampilan yang bisa di-customize dimana bila di-double-tap akan muncul lock pattern atau password. Alternatif ini cukup efektif namun membutuhkan resource battery lebih dari biasa.
  3. Kombinasi Screensaver dan Any Cut. Setting > Display > Sleep > 15 seconds. Setting > Display > Screensaver > Clock. Any Cut digunakan untuk membuat widget yang bila ditekan akan langsung menjalankan screensaver.

Aplikasi yang saya sebutkan dalam alternatif di atas adalah aplikasi open source yang dapat yang tersedia gratis lewat aplikasi F-Droid. Hal ini dilakukan dengan asumsi aplikasi yang berbayar tidak membutuhkan saya untuk mempromosikan product mereka.

Saat ini alternatif ketiga sedang saya coba. Hasil yang diharapkan adalah tidak lagi menggunakan tombol power kecuali memang tidak ada alternatif lain dan hemat resource battery.

Senin, September 21, 2020

VBoxNetDHCP.exe - The exception Integer Overflow

Symptoms

Pesan kesalahan ini muncul ketika menjalankan virtualbox guest vm yang memiliki konfigurasi network "NAT Network"

 

Cause

Unknown

Solution

Coba tekan tombol "Generate new random MAC address" disebelah text box MAC Address pada konfigurasi bagian Network


Jumat, Juli 17, 2020

Fatal error: zlib inflate error: incorrect header check

Applies To
lftp 4.8.1

Symptoms
$ lftp site 
lftp site:~> ls
ls: Fatal error: zlib inflate error: incorrect header check

Cause

lftp mengakses FTP Server menggunakan "Mode Z" yang melakukan kompresi terhadap data yang di-transfer. "Mode Z" in ada dalam draft https://tools.ietf.org/html/draft-preston-ftpext-deflate-03 namun belum ada standarisasi.

Solutions

Disable "Mode Z"

Edit berkas ~/.lftprc
set ftp:use-mode-z no

Senin, April 20, 2020

Iptables Port 2222

Sudah beberapa hari, saya heran dengan firewall di salah satu mesin. Awal-nya saya mau configure untuk nambah port 2222 untuk akses service SSH. Sudah ditambah ke iptables namun port baru ini entah kenapa tidak mau diakses dari luar mesin. Tanpa panjang lebar, ternyata issue-nya sebagai berikut:
$ sudo iptables -n -L INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num  target prot opt source    destination
1    ACCEPT all  --  0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2    ACCEPT icmp --  0.0.0.0/0 0.0.0.0/0
3    ACCEPT all  --  0.0.0.0/0 0.0.0.0/0
4    ACCEPT tcp  --  0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5    REJECT all  --  0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
6    ACCEPT tcp  --  0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:2222
Bisa dilihat di atas, konfigurasi port 2222 berada setelah baris 5 yang berisi REJECT. Seharusnya yang REJECT ditaruh di yang paling akhir. Langkah perbaikan sebagai berikut:

Hapus baris 6
$ sudo iptables -D INPUT 6
$ sudo iptables -n -L INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num  target prot opt source destination
1 ACCEPT all  --  0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp --  0.0.0.0/0 0.0.0.0/0
3 ACCEPT all  --  0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp  --  0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5 REJECT all  --  0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Insert rule port 2222 di baris 5
$ sudo iptables -I INPUT 5 -i eth0 -p tcp --dport 2222 -m state --state NEW,ESTABLISHED -j ACCEPT
$ sudo iptables -n -L INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all  -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all  -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp  -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5 ACCEPT tcp  -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:2222 state NEW,ESTABLISHED
6 REJECT all  -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Done

Selasa, Desember 24, 2019

IN SELECT plus EXISTS

Environment
  1. MySQL 5.7.27
  2. Centos 6.10
mysql> DELETE FROM CSV_DATA
WHERE FILE_ID IN ( SELECT FILE_ID FROM CSV_FILE WHERE FILE_STATUS = 7)
LIMIT 100000

129 sec
Nampak-nya seluruh row akan di-scan dan nilai FILE_ID pada setiap setiap row akan dibandingkan dengan hasil dari IN SELECT .
mysql> DELETE FROM CSV_DATA
WHERE EXISTS ( SELECT FILE_ID FROM CSV_FILE WHERE FILE_STATUS = 7 )
  AND FILE_ID IN ( SELECT FILE_ID FROM CSV_FILE WHERE FILE_STATUS = 7 )
LIMIT 100000

0 sec
Nilai dari EXIST akan di-evaluate dan bila row tidak ditemukan maka perbandingan selanjutkan tidak di-evaluate.

Dalam case ini, LIMIT digunakan untuk mempersingkat waktu locking terhadap table CSV_DATA. Statement JOIN tidak dapat digunakan karena tidak compatible dengan LIMIT .