Skip to content

Instantly share code, notes, and snippets.

Avatar

Ian Mustafa ianmustafa

View GitHub Profile
@ianmustafa
ianmustafa / httpclient.php
Created Dec 18, 2019
Simple HTTP Client for PHP using cURL
View httpclient.php
<?php
if (!function_exists('httpclient')) {
function httpclient($params = [], $debug = false)
{
// Pastikan parameter URL terisi
if (! isset($params['url'])) {
return false;
}
@ianmustafa
ianmustafa / 0-preface.md
Last active Oct 11, 2019
PHP: cURL vs file_get_contents
View 0-preface.md

PHP: cURL vs file_get_contents()

This is a very often asked question among PHP developers. This gist aims to answer it.

Case study

RajaOngkir API.

Benchmark

  • Done in DigitalOcean, cheapest droplet ($5), located in Singapore, using Ubuntu Server 18.04.3. (Referral link for anybody interested.)
  • System configured with (mostly) default configuration, using what's available from the package installation.
@ianmustafa
ianmustafa / 0-readme.md
Created Jul 11, 2019
Membuat Segitiga Pascal
View 0-readme.md

Membuat Segitiga Pascal dalam aplikasi CLI

Ketila sedang iseng, saya suka tantangan. Kebetulan, ada sedikit tantangan yang saya temukan di grup PHPID for Student: membuat Segitiga Pascal.

Kode dibawah saya buat from scratch, tanpa strategi dan algoritma khusus selain trial-and-error (iya saya lemah di algoritma haha 😂). Alhamdulillah, berhasil jadi, dan yang terpenting, saya juga jadi paham soal cara membuat Segitiga Pascal dengan bahasa pemrograman.

Contoh di bawah saya buat menggunakan PHP 7 dalam mode command-line interface atau CLI. Jika di lain waktu saya iseng lagi, akan saya buatkan contoh dengan bahasa lain. (Sudah ada gambaran ingin buat dengan JavaScript, untuk manteman yang sudah punya Node.js terinstal di komputer.) Kode yang ditulis sudah dengan lengkap meneyrtakan komentar berisi penjelasan kode yang ada. Semo

@ianmustafa
ianmustafa / instal-php-di-ubuntu.md
Created Oct 28, 2018
Instal PHP di Ubuntu dan keluarganya? Tak perlu bingung lagi!
View instal-php-di-ubuntu.md

Instal PHP di Ubuntu dan Keluarganya? Tak perlu bingung lagi!

Thanks to Ondřej Surý, semua jadi lebih mudah. Instal berbagai versi PHP secara bersamaan pun bisa.

@ianmustafa
ianmustafa / 0-md5pv-readme.md
Last active Aug 25, 2018
md5pv: md5sum with pv and output as file
View 0-md5pv-readme.md

md5pv: md5sum with pv and output as file

Add progress bar to your md5sum, and save the output as file!

Requirements

md5sum and pv must be installed on the target machine.

Installation

Just download the script and put it into your $PATH and make it executable.

@ianmustafa
ianmustafa / 0-preface.md
Last active Mar 3, 2017
Tantangan PHP Indonesia for Student: Cari Bilangan Duplikat dalam List
View 0-preface.md

Tantangan PHP Indonesia for Student: Cari Bilangan Duplikat dalam List

Sebelumnya, terima kasih kepada om Nur Hidayat (@hidayat365, Pojok Programmer) untuk tantangannya di grup Telegram PHP Indonesia for Students. Tantangan ini saya kerjakan karena iseng dan nungguin deploy app. 😂

Latar Belakang

Misalkan kita mempunyai list berisikan bilangan bulat antara 1 sampai n sebanyak n + 1 angka. Yang pasti kita ketahui adalah minimal ada satu bilangan yang duplikat dalam list tersebut.

Contohnya jika n = 3 maka bisa jadi isi List tersebut adalah 3, 1, 1, 3 atau bisa juga 1, 2, 3, 3.

@ianmustafa
ianmustafa / 0-preface.md
Last active Jan 19, 2017
Tantangan PHP Indonesia for Student: Algoritma Homing Pigeon
View 0-preface.md

Tantangan PHP Indonesia for Student: Algoritma Homing Pigeon

Sebelumnya, terima kasih kepada om Nur Hidayat (@hidayat365, Pojok Programmer) untuk tantangannya di grup Telegram PHP Indonesia for Students. Tantangan ini kembali mengingatkan saya bahwa overthinking itu tidak perlu. 😂

Latar Belakang

Ada seorang raja kaya memiliki wilayah kekuasaan yang luas sedang berburu sendirian, namun sayang tak sengaja dia terpelesat dan kakinya terkilir. Untungnya dia membawa seekor merpati, sehingga dikirimlah merpati itu kembali ke istana untuk meminta bantuan.

View 0-prepare-your-linux-server.md

Prepare Your Linux Server

What Does This Really Do?

Basically we set up the timezone and locale, and only allow for SSH root login without password, by using SSH authentication key. We also add a basic Vim conviguration inside .vimrc by adding line numbers by default.

Then we update the repository and the system, and also add basic tools like nano, curl, tmux, even vim itself doesn't included by the system. zsh and git is prequisites for oh-my-zsh,

@ianmustafa
ianmustafa / imageoptim.php
Last active Dec 26, 2019
Optimalisasi Gambar dalam PHP menggunakan Imagick.
View imageoptim.php
<?php
/* Maafkan kalo penamaan variabelnya berantakan :D
Ini juga agak lambat karena kompleksitasnya, terutama
di baris 61-95 (pembuatan gambar latar yang di-blur
untuk mengisi ruang kosong / menghindari crop)
*/
function imageoptim($imagepath, $savename) {
// Set imagepath default
$imagepath = "upload/source/{$savename}";
View do-you-phpbrew.md

Do you phpbrew?

By Ian Mustafa.

phpbrew builds and installs multiple version php(s) in your $HOME directory.

Install phpbrew

Follow this guide. Make sure you've meet these requirements.

Build and Install PHP