Full Stack Developer

Dapat gambar di group KLUG. Tidak tahu siapa yang membuat gambar ini, namun memberikan gambaran mudah tentang Full Stack Developer.

Saya banyak menguasai diantaranya karena saya bisa dibilang menyaksikan lahirnya teknologi-teknologi itu. Atau bisa dikatakan banyak teknologi itu yang lahir dalam timeline hidup saya.

Walaupun kelihatannya rumit, asal sering digunakan saya kira tetal bisa dikuasai. Oke, mulai darimana?

Simulasi Benda Langit

Diantara ketertarikan saya dalam pengetahuan adalah ketertarikan dengan benda langit. Ada keteraturan dalam pergerakan benda langit yang membentuk orkestra jagad raya ini.

Dulu saya intens sekali dalam bidang ini, dan karena lama tidak saya gunakan menjadi lupa.

Belum lama ini Muhammadiyah mengumumkan Kalender Hijriyah Global Tunggal dengan kriteria utama

  1. Imkanur Rukyat dengan derajat ketinggian bulan saat matahari tenggelam minimal 5 derajat dan sudut elongasi minimal 8 derajat setelah konjungsi.
  2. Menggunakan global tempat pengamatan. artinya, jika bulan sabit “terlihat” di satu tempat dimuka bumi, maka berlaku tanggal satu dengan mengikuti perputaran bumi, dengan catatan bagian bumi bagian timur (New Zealand) sudah konjungsi sebelum subuh.

Dulu saya mengoleksi simulator benda-benda langit itu, namun sayangnya saya simpan di hardisk dan tentus aja, begitu saya ganti komputer maka alat-alat simulasi saya tertinggal di komputer lama yang suddah tidak saya gunakan.

Nah setelah saya cari-cari kembali saya menemukan kembali silmulasi-simulasi itu dalam situs University of Nebrasca Lincoln.

Silahkan mengeksplorasi simulasi benda langit dalam laboratorium online ini.

Versi-Versi Debian dan Ubuntu

Terkadang dalam melakukan instalasi server Debian/Ubuntu saya bingung. Ini versi ke berapa, atau terlalu jauh dari versi akhir atau tidak.

Berikut Versi dan nama-namanya Linux Debian

  1. Debian 12 (Bookworm) – Tanggal Rilis: 10 Juni 2023
  2. Debian 11 (Bullseye) – Tanggal Rilis: 14 Agustus 2021
  3. Debian 10 (Buster) – Tanggal Rilis: 6 Juli 2019
  4. Debian 9 (Stretch) – Tanggal Rilis: 17 Juni 2017
  5. Debian 8 (Jessie) – Tanggal Rilis: 25 April 2015
  6. Debian 7 (Wheezy) – Tanggal Rilis: 4 Mei 2013
  7. Debian 6 (Squeeze) – Tanggal Rilis: 6 Februari 2011
  8. Debian 5 (Lenny) – Tanggal Rilis: 14 Februari 2009
  9. Debian 4 (Etch) – Tanggal Rilis: 8 April 2007
  10. Debian 3.1 (Sarge) – Tanggal Rilis: 6 Juni 2005
  11. Debian 3.0 (Woody) – Tanggal Rilis: 19 Juli 2002
  12. Debian 2.2 (Potato) – Tanggal Rilis: 15 Agustus 2000
  13. Debian 2.1 (Slink) – Tanggal Rilis: 9 Maret 1999
  14. Debian 2.0 (Hamm) – Tanggal Rilis: 24 Juli 1998
  15. Debian 1.3 (Bo) – Tanggal Rilis: 5 Juni 1997
  16. Debian 1.2 (Rex) – Tanggal Rilis: 12 Desember 1996
  17. Debian 1.1 (Buzz) – Tanggal Rilis: 17 Juni 1996
  18. Debian 0.93R6 – Tanggal Rilis: 1995
  19. Debian 0.91 – Tanggal Rilis: 1994
  20. Debian 0.90 – Tanggal Rilis: 1994
  21. Debian 0.91 – Tanggal Rilis: 1994
  22. Debian 0.93R5 – Tanggal Rilis: 1995

Dan berikut untuk Versi Ubuntu:

  1. Ubuntu 23.04 (Lunar Lobster) – Tanggal Rilis: April 20, 2023
  2. Ubuntu 22.10 (Kinetic Kudu) – Tanggal Rilis: October 20, 2022
  3. Ubuntu 22.04 LTS (Jammy Jellyfish) – Tanggal Rilis: April 21, 2022
  4. Ubuntu 21.10 (Impish Indri) – Tanggal Rilis: October 14, 2021
  5. Ubuntu 21.04 (Hirsute Hippo) – Tanggal Rilis: April 22, 2021
  6. Ubuntu 20.10 (Groovy Gorilla) – Tanggal Rilis: October 22, 2020
  7. Ubuntu 20.04 LTS (Focal Fossa) – Tanggal Rilis: April 23, 2020
  8. Ubuntu 19.10 (Eoan Ermine) – Tanggal Rilis: October 17, 2019
  9. Ubuntu 19.04 (Disco Dingo) – Tanggal Rilis: April 18, 2019
  10. Ubuntu 18.10 (Cosmic Cuttlefish) – Tanggal Rilis: October 18, 2018
  11. Ubuntu 18.04 LTS (Bionic Beaver) – Tanggal Rilis: April 26, 2018
  12. Ubuntu 17.10 (Artful Aardvark) – Tanggal Rilis: October 19, 2017
  13. Ubuntu 17.04 (Zesty Zapus) – Tanggal Rilis: April 13, 2017
  14. Ubuntu 16.10 (Yakkety Yak) – Tanggal Rilis: October 13, 2016
  15. Ubuntu 16.04 LTS (Xenial Xerus) – Tanggal Rilis: April 21, 2016
  16. Ubuntu 15.10 (Wily Werewolf) – Tanggal Rilis: October 22, 2015
  17. Ubuntu 15.04 (Vivid Vervet) – Tanggal Rilis: April 23, 2015
  18. Ubuntu 14.10 (Utopic Unicorn) – Tanggal Rilis: October 23, 2014
  19. Ubuntu 14.04 LTS (Trusty Tahr) – Tanggal Rilis: April 17, 2014
  20. Ubuntu 13.10 (Saucy Salamander) – Tanggal Rilis: October 17, 2013
  21. Ubuntu 13.04 (Raring Ringtail) – Tanggal Rilis: April 25, 2013
  22. Ubuntu 12.10 (Quantal Quetzal) – Tanggal Rilis: October 18, 2012
  23. Ubuntu 12.04 LTS (Precise Pangolin) – Tanggal Rilis: April 26, 2012
  24. Ubuntu 11.10 (Oneiric Ocelot) – Tanggal Rilis: October 13, 2011
  25. Ubuntu 11.04 (Natty Narwhal) – Tanggal Rilis: April 28, 2011
  26. Ubuntu 10.10 (Maverick Meerkat) – Tanggal Rilis: October 10, 2010
  27. Ubuntu 10.04 LTS (Lucid Lynx) – Tanggal Rilis: April 29, 2010
  28. Ubuntu 9.10 (Karmic Koala) – Tanggal Rilis: October 29, 2009
  29. Ubuntu 9.04 (Jaunty Jackalope) – Tanggal Rilis: April 23, 2009
  30. Ubuntu 8.10 (Intrepid Ibex) – Tanggal Rilis: October 30, 2008
  31. Ubuntu 8.04 LTS (Hardy Heron) – Tanggal Rilis: April 24, 2008
  32. Ubuntu 7.10 (Gutsy Gibbon) – Tanggal Rilis: October 18, 2007
  33. Ubuntu 7.04 (Feisty Fawn) – Tanggal Rilis: April 19, 2007
  34. Ubuntu 6.10 (Edgy Eft) – Tanggal Rilis: October 26, 2006
  35. Ubuntu 6.06 LTS (Dapper Drake) – Tanggal Rilis: June 1, 2006
  36. Ubuntu 5.10 (Breezy Badger) – Tanggal Rilis: October 12, 2005
  37. Ubuntu 5.04 (Hoary Hedgehog) – Tanggal Rilis: April 8, 2005
  38. Ubuntu 4.10 (Warty Warthog) – Tanggal Rilis: October 20, 2004

 

Konfigurasi PHP untuk Aplikasi Berat?

Yang paling sulit dalam implementasi software adalah bagaimana server dikonfigurasi? Ini adalah bagian paling rumit. Banyak variabel yang saling mempengaruhi. Beberapa kali saya melakukan tune-up server dan ya seperti coba-coba. Untuk menghasilkan konfigurasi optimal tentu tidak mudah.

Saya mencoba bertanya kepada chatgpt untuk konfigurasi awal yang bisa dicoba. Saya sebenarnya tidak yakin juga, tapi daripada toidak ada referensi sama sekali 🙂

Untuk aplikasi berat seperti LimeSurvey, yang membutuhkan konfigurasi PHP yang lebih kuat dan optimal, Anda harus memastikan bahwa server web Anda dapat menangani beban tersebut dengan efisien. LimeSurvey adalah aplikasi survei yang kompleks dan memerlukan konfigurasi yang baik untuk performa yang optimal.

Berikut adalah beberapa pengaturan dan praktik terbaik untuk mengonfigurasi server PHP dan server web Anda untuk menjalankan aplikasi berat seperti LimeSurvey:

1. Konfigurasi PHP (php.ini)

Ubah file php.ini untuk meningkatkan batas memori, waktu eksekusi, dan pengaturan lainnya yang diperlukan untuk aplikasi berat:

; Memory limit
memory_limit = 1G

; Maximum execution time of each script, in seconds
max_execution_time = 300

; Maximum amount of time each script may spend parsing request data
max_input_time = 300

; Maximum number of input variables
max_input_vars = 10000

; Maximum size of POST data that PHP will accept
post_max_size = 128M

; Maximum allowed size for uploaded files
upload_max_filesize = 128M

; The number of seconds a script is allowed to wait for input data
default_socket_timeout = 60

; Maximum amount of memory a script may consume
realpath_cache_size = 4096k
realpath_cache_ttl = 120

; Error handling and logging
log_errors = On
error_log = /var/log/php_errors.log

; Opcache settings (for performance improvement)
opcache.enable = 1
opcache.memory_consumption = 256
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 10000
opcache.revalidate_freq = 2
opcache.fast_shutdown = 1

2. Konfigurasi Apache (VirtualHost)

Jika Anda menggunakan Apache, tambahkan pengaturan PHP dalam blok VirtualHost:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/html/limesurvey

    <Directory /var/www/html/limesurvey>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted

        # PHP settings
        php_value memory_limit 1G
        php_value max_execution_time 300
        php_value max_input_time 300
        php_value max_input_vars 10000
        php_value post_max_size 128M
        php_value upload_max_filesize 128M
        php_value default_socket_timeout 60
        php_value realpath_cache_size 4096k
        php_value realpath_cache_ttl 120

        # Opcache settings
        php_flag opcache.enable 1
        php_value opcache.memory_consumption 256
        php_value opcache.interned_strings_buffer 16
        php_value opcache.max_accelerated_files 10000
        php_value opcache.revalidate_freq 2
        php_flag opcache.fast_shutdown 1
    </Directory>
</VirtualHost>

3. Konfigurasi MySQL/MariaDB

LimeSurvey juga sangat bergantung pada database. Berikut adalah beberapa pengaturan dasar untuk MySQL/MariaDB:

[mysqld]
max_connections = 500
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
max_allowed_packet = 64M
query_cache_type = 1
query_cache_limit = 1M
query_cache_size = 64M

4. Konfigurasi Nginx (Jika Menggunakan Nginx)

Jika Anda menggunakan Nginx sebagai server web, Anda bisa menambahkan pengaturan berikut di file konfigurasi Nginx:

server {
    listen 80;
    server_name example.com;

    root /var/www/html/limesurvey;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;

        # PHP settings
        fastcgi_param PHP_VALUE "
            memory_limit = 1G
            max_execution_time = 300
            max_input_time = 300
            max_input_vars = 10000
            post_max_size = 128M
            upload_max_filesize = 128M
            default_socket_timeout = 60
            realpath_cache_size = 4096k
            realpath_cache_ttl = 120
        ";

        # Opcache settings
        fastcgi_param PHP_VALUE "
            opcache.enable = 1
            opcache.memory_consumption = 256
            opcache.interned_strings_buffer = 16
            opcache.max_accelerated_files = 10000
            opcache.revalidate_freq = 2
            opcache.fast_shutdown = 1
        ";
    }

    location ~ /\.ht {
        deny all;
    }
}

5. Praktik Terbaik

  • Caching: Gunakan mekanisme caching seperti Redis atau Memcached untuk mengurangi beban pada server database.
  • Load Balancing: Pertimbangkan untuk menggunakan load balancer jika Anda mengharapkan jumlah pengguna yang sangat tinggi.
  • Scaling: Skala aplikasi secara horizontal dengan menambahkan lebih banyak server untuk membagi beban.
  • Monitoring: Implementasikan alat monitoring seperti New Relic, Datadog, atau Grafana untuk memantau kinerja server dan aplikasi.

Dengan mengikuti panduan ini, Anda dapat memastikan bahwa LimeSurvey berjalan dengan lancar dan efisien bahkan di bawah beban pengguna yang tinggi. Pastikan untuk menguji konfigurasi ini secara menyeluruh di lingkungan staging sebelum menerapkannya di lingkungan produksi.