[NginX] Redirect subfolder ke subdomain

Ada masa di mana anda mahu menggunakan subdomain kerana lebih kemas dan mudah berbanding subfolder. Oleh sebab ramai pengguna sudah terbiasa mengakses subfolder tersebut, anda mengalami kesulitan untuk memindahkan mereka ke subdomain.

Dalam contoh ini, saya akan memindahkan subfokder admin ke subdomain admin.example.com. Di dalam konfigurasi NginX anda, tambahkan

location ^~ /admin/ {
    rewrite ^/admin/(.*) $scheme://admin.example.com/$1 permanent;
}

Cara bermain Fortnite pada Android yang telah dipasang Magisk

Fortnite telah dibuka kepada umum, tetapi hanya terhad kepada peranti tertentu. Di sini saya akan berkongsi cara bermain pada peranti yang belum disokong, dan bagaimana cara melepasi pengesan root.

Versi pendek:

  1. Sekiranya peranti tidak disokong, ubah build.prop agar Fortnite mengesan peranti anda sebagai salah satu peranti yang di sokong.
  2. Hide Fortnite di dalam Magisk Manager di dalam /sdcard.
  3. Aktifkan Hide Magisk Manager.
  4. Aktifkan Magisk Core Only Mode
  5. Padam folder MagiskManager.
  6. But semula (reboot)

Fortnite menyokong beberapa peranti yang disenaraikan di sini. Pada masa artikel ini ditulis, senarai peranti yang disokong adalah

  • Samsung Galaxy: S7 / S7 Edge , S8 / S8+, S9 / S9+, Note 8, Note 9, Tab S3, Tab S4
  • Google: Pixel / Pixel XL, Pixel 2 / Pixel 2 XL
  • Asus: ROG Phone, Zenfone 4 Pro, 5Z, V
  • Essential: PH-1
  • Huawei: Honor 10, Honor Play, Mate 10 / Pro, Mate RS, Nova 3, P20 / Pro, V10
  • LG: G5, G6, G7 ThinQ, V20, V30 / V30+
  • Nokia: 8
  • OnePlus: 5 / 5T, 6
  • Razer: Phone
  • Xiaomi: Blackshark, Mi 5 / 5S / 5S Plus, 6 / 6 Plus, Mi 8 / 8 Explorer / 8SE, Mi Mix, Mi Mix 2, Mi Mix 2S, Mi Note 2
  • ZTE: Axon 7 / 7s, Axon M, Nubia / Z17 / Z17s, Nubia Z11

Melalui pautan di atas, EpicGames mengatakan peranti anda mungkin boleh menjalankan fortnite sekiranya mempunya spesifikasi seperti berikut

  • OS: 64 bit Android, 5.0 or higher
  • RAM: 3GB or higher
  • GPU: Adreno 530 or higher, Mali-G71 MP20, Mali-G72 MP12 or higher

Tetapi sekiranya anda tidak boleh menjalankannya, anda boleh mencuba langkah di bawah.

Bagi peranti yang tidak di sokong

Untuk bermain pada peranti yang tidak di sokong, anda perlu mengubahsuai build.prop anda selaras dengan peranti yang disokong. Dalam panduan ini, kita akan menggunakan data daripada Samsung Note 9.

Muat turun BuildProp Editor
Mulakan dengan memuat turun BuildProp Editor dahulu.

Ubah build.prop anda
Baris demi baris, cari dan gantikan mengikut teks di bawah. Sekiranya tidak ada, tambahkan sahaja.

ro.product.brand=samsung
ro.product.manufacturer=samsung
ro.build.product=crownlte
ro.product.device=crownlte
ro.product.model=SM-N960F
ro.product.name=crownltexx

Matikan USB Debugging
Kemudian, anda perlu mematikan USB Debugging. Sekiranya anda tidak tahu bagaimana caranya, ikuti panduan ini.

Sorokkan Magisk

Magisk perlu disorokkan agar pengesan terbina di dalam Fortnite tidak dapat mengesannya.

Hide Fortnite
Masuk menu, lalu pergi ke Magisk Hide, tandakan aplikasi Fortnite

Hide Magisk Manager
Anda perlu sorokkan Magisk Manager. Masuk ke bahagian settings, lalu tekan
Hide Magisk Manager

Magisk akan di ulang-pasang menggunakan nama pakej yang berlainan.

Magisk Core Only Mode
Kemudian, buka kembali Magisk dan pergi ke settings sekali lagi, dan aktifkan Magisk Core Only Mode

Padam folder MagiskManager
Langkah terakhir adalah memadam folder MagiskManager yang terletak di dalam /sdcard

Kemudian but semula (reboot) dan anda boleh cuba menjalankan Fortnite.

Cara mematikan atau menghidupkan USB Debugging pada Android

USB Debugging secara am nya digunakan oleh pembangun untuk mengakses log atau memindahkan fail supaya proses membangun aplikasi menjadi lebih mudah. Oleh sebab ini, terdapat aplikasi yang enggan dijalankan sekiranya mod ini aktif. Sekiranya anda mahu mematikan fungsi ini ataupun anda seorang pembangun yang mahu mengaktifkannya, anda sedang berada di tempat yang betul.

Pilihan USB Debugging terletak di dalam Developer Options. Sekiranya anda belum mengaktifkannya, ikuti panduan yang telah saya tulis ini
Apabila anda sudah dapat mengakses Developer Options, pergi ke
Settings > Developer Options
Skrol ke bawah dan cari seksyen Debugging. Di bawahnya anda akan menjumpai pilihan USB Debugging

Di dalam gambar di atas, USB Debugging sedang aktif. Tekan suis dikanan untuk mematikannya

Sekiranya anda mahu menghidupkan, lakukan sebaliknya

Cara mengaktifkan Developer Options pada peranti Android

Developer Options mengandungi pelbagai tetapan tambahan yang biasanya tidak diperlukan oleh pengguna biasa. Namun, anda mungkin memerlukannya sekiranya anda mahu mengakses tetapan seperti USB Debugging, DPI, touch display dan sebagainya.

Pertama, anda perlu pergi ke

Settings > About Phone

Lalu tekan Build Number sebanyak 7 kali atau sebanyak mana yang diperlukan.

Setelah selesai, anda boleh menekan butang Back dan menu Developer Options akan muncul di bahagian bawah sekali

Cara memasang Python 3.7 pada Ubuntu

Python adalah salah satu bahasa pengaturcaraan yang paling berkuasa. Penggunaan versi yang terbaru adalah amat digalakkan, tetapi anda mungkin mengalami masalah memasangnya kerana Ubuntu verdi lama tidak menyediakan versi Python terbaru di dalam wadah (repository) lalai.

Bagi anda yang menjalankan Ubuntu versi baru seperti 17.10 atau 18.04, anda boleh memasang Python menggunakan apt

$ apt install python3.7

Jika cara di atas tidak berfungsi ataupun anda menggunakan versi Ubuntu yang lebih rendah, anda perlu membina program ini daripada sumber kod.
Terlebih dahulu, pasang pakej yang diperlukan untuk membina Python daripada sumber

$ sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install libffi-dev

Lalu, muat turun serta ekstrak fail yang berkenaan

$ wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
$ tar xvf Python-3.7.0
$ cd Python-3.7.0

Mula membina

$ ./configure --enable-optimizations
$ make
$ sudo make install
  • --enable-optimizations akan menyebabkan proses kompilasi Python mengambil masa yang agak lama tetapi menjanjikan prestasi yang lebih pantas. Sekiranya anda mahu proses kompilasi yang lebih cepat, jalankan hanya ./configure tanpa --enable-optimizations

Hanya perlu tunggu proses selesai dan anda boleh menggunakan python3.7

python3.7 -V

Mengaktifkan error log pada PHP-CLI

Secara lalai, PHP-CLI tidak menulis log bagi sebarang ralat semasa anda menjalankan skrip. Perkara ini agak menyusahkan kerana anda akan tercari-cari log sekiranya skrip anda tidak berfungsi.

Untuk mengaktifkan panulisan log, anda harus edit php.ini. Kedudukan file ini bergantung kepada konfigurasi PHP anda. Dalam kes saya, kedudukannya di

/etc/php/7.2/cli/php.ini

Kemudian, cari baris

error_log =

Atau lebih spesifik pada konfigurasi saya yang terletak di baris ke-586,

; error_log = syslog

Ubah baris tersebut kepada

error_log = php_error.log
  • Pastikan tiada simbol ; di hadapan baris
  • Anda boleh mengubah php_error.log kepada apa sahaja yang anda mahukan

Apabila log ditulis, php_error.log akan diletakkan di dalam direktori semasa.
Contohnya jika anda berada di dalam

/home/user/log

Apabila anda menjalankan skrip.php, log akan ditulis di

/home/user/log/php_error.log

Wget senarai url berserta nama di dalam fail

Saya mempunyai fail yang mempunyai banyak url berserta nama. Contoh seperti ini:

http://example.com/media.mp4 video.mp4
http://example.com/media.mkv video.mkv

Berdasarkan senarai tersebut, saya mahu memuat turun http://example.com/media.mp4 lalu menamakan fail tersebut sebagai video.mp4. Hal ini menjadi sulit kerana senarai yang saya miliki adalah ribuan baris.

Solusinya adalah dengan menulis kod bash:

while read a b; do wget -c -O "$b" "$a"; done < video.txt
  • Gantikan video.txt dengan nama fail senarai anda.
  • Dan jalankan skrip bash tersebut

    $ bash download_video.sh
    

    Wget akan membaca setiap baris lalu membahagikan url dan nama ke dalam variable.

    Rujukan: https://stackoverflow.com/a/36193156

    Aktifkan custom post di dalam WordPress API v2

    WordPress REST API adalah fungsi di dalam wordpress yang membolehkan anda berinteraksi dengan laman WordPress anda tanpa perlu login ke wp-admin.

    Sebelum anda boleh membuat post baharu atau edit post lama, anda perlu tahu dahulu apa jenis custom post yang anda gunakan di laman WordPress anda. Anda boleh menyemak senarai post di https://example.com/wp-json/wp/v2/types.

    Sekiranya anda menggunakan tema selain yang diberikan oleh WordPress, anda mungkin menghadapi masalah di mana tema anda menggunakan custom post type yang secara lalai tidak muncul di dalam WordPress. Anda hanya per letakkan kod di bawah ini di dalam wp-includes/functions.php.

    function sb_add_cpts_to_api( $args, $post_type ) {
        if ( 'movie' === $post_type ) {
            $args['show_in_rest'] = true;
        }
        return $args;
    }
    add_filter( 'register_post_type_args', 'sb_add_cpts_to_api', 10, 2 );
  • Gantikan movie dengan jenis post anda.
  • Lalu refresh lama web anda.

    Rujukan: http://scottbolinger.com/custom-post-types-wp-api-v2/

    Batalkan git commit

    Jika anda tersilap membuat commit tetapi belum push ke git, sebagai contoh commit ke branch yang salah atau salah ejaan, anda boleh batalkan commit tersebut.

    Terdapat 2 cara. Cara pertama, soft reset yang mana hanya akan batalkan commit yang terbaharu tetapi tidak membatalkan perubahan pada fail anda.

    $ git reset --soft HEAD~1
    

    Cara kedua pula adalah hard reset. Cara ini berbahaya kerana segala perubahan pada fail anda akan dibatalkan.

    $ git reset --hard HEAD~1
    

    Rujukan: https://stackoverflow.com/a/3197432

    [SQL] SELECT pelbagai nilai dari kolumn yang sama

    Saya mempunyai masalah untuk memilih beberapa nilai dari kolum yang sama. Contohnya seperti di bawah.

    Table: names

    id first_name last_name
    0 Ahmad Firdaus
    1 Muhammad Amir
    2 Syed Amar

    Sekiranya kita mahu memilih kolum first_name yang mempunyai nilai Ahmad dan Muhammad, statement

    SELECT * from names WHERE first_name="Ahmad" AND first_name="Muhammad"

    tidak akan berjalan seperti yang kita kehendaki kerana 2 nilai atau lebih tidak boleh berada di dalam 1 kolum yang sama. Jadi cara untuk selesaikannya adalah dengan menggunakan IN.

    SELECT * from names WHERE first_name IN (Ahmad,Muhammad)