Cara Membedakan Kata Ganti Kami dan Kita

Kata ganti Kami dan Kita sama-sama digunakan untuk menerangkan orang pertama jamak. Apa yang membedakannya? Kapan harus pakai kata ganti kami, dan kapan pakai kata ganti kita? Baiklah, izinkan aku berbagi ilmu yang pernah kutimba di bangku sekolah dulu.

Kami digunakan apabila orang yang diajak bicara tidak terlibat di dalam aktifitas. Misalnya dalam kalimat “Kami akan pergi ke Yogyakarta”, maka orang-orang yang diajak bicara tidak ikut pergi ke Yogyakarta. Nah, pasti sudah tahu apa kegunaan kata ganti “kita” kan? Yup tepat sekali.

Kita digunakan apabila orang yang diajak bicara juga terlibat di dalam aktifitas. Misalnya dalam kalimat “Kita tidak boleh begadang, kata pak haji begadang itu tidak baik”, maka yang dimaksud agar jangan begadang adalah si pembicara dan orang-orang yang sedang diajak bicara.

Gimana teman-teman, sudah paham kan? Kalau sudah, kita tidak boleh salah lagi ya, gak boleh kebolak-balik lagi lho. lol

Semoga Bermanfaat. Tetap Sehat, Tetap Semangat, agar dapat Tetap dalam Perdjoeangan!!

Cara Ambil Error Message (Termasuk InnerException) C#

Program yang baik adalah program yang dapat menghandle error-error yang terjadi saat runtime. Hingga saat ini, aku masih belum bisa membuat program yang secanggih itu. Error handling yang aku lakukan hanya sebatas melemparkan pesan error ke sebuah message box. Kalau aplikasi ASP.Net, ya dilemparkan ke TempData, yang kemudian ditampilkan melalui box Alert. twisted

Masalahnya adalah terkadang detail pesan error yang bermanfaat itu tersedia pada error yang lebih dalam, atau istilah pemrogramannya InnerException, seperti pada gambar berikut:

ReportViewer error SetParameter ketika menggunakan Dynamic Report

Bila kita langsung mengambil pesan error dari Exception terluar, maka biasanya hanya akan tersedia pesan error seperti: “An error occured while updating the entries. See the inner exception for details.”, sebuah pesan error yang gak jelas, gak berguna, gak ada manfaatnya, hasyah. tongue

Nah, untuk masalah ini, aku menggunakan kode snippet ini:

public static class ExtensionMethod
{
    public static string GetMessage(this Exception ex)
    {
        while (ex.InnerException != null)
        {
            ex = ex.InnerException;
        }
        return ex.Message;
    }
}

Berikut contoh penggunaannya pada ASP.Net MVC:

try
{
    // proses data
}
catch (Exception ex)
{
    // error? tampung data di TempData dan redirect ke halaman index
    // error akan ditampilkan di alert box pada view
    TempData.Add(Alerts.DANGER, ex.GetMessage());
    return RedirectToAction("Index");
}

Semoga Bermanfaat. Tetap Sehat, Tetap Semangat, agar dapat Tetap dalam Perdjoeangan!!

Cara Hosting Gambar Blog di GitHub.com

Era harga hosting web mahal di Indonesia sebenarnya sudah berakhir. Sekarang, sudah banyak provider hosting yang menawarkan kuota unlimited dengan harga mulai dari 50rb/bulan. Dengan disk space unlimited tersebut, kita bisa mengupload gambar sebanyak-banyaknya di hosting kita, tanpa kuatir kehabisan kuota. Meski begitu, entah kenapa aku masih suka menaruh file gambar untuk blog ini di luar hosting. Emang dasar orang yang gak bisa mengikuti perkembangan zaman. Hehehe.

Aku sudah pernah mencoba hosting gambar di OneDrive, Facebook, Dropbox, Google Drive. Dan kesimpulanku, semuanya tidak cocok untuk hosting file gambar. Karena url gambarnya selalu gonta-ganti. Tidak tersedia url fix atau raw url. Sehingga, bisa jadi kita upload gambar hari ini, trus kita pakai url gambar di artikel, dan setelah beberapa bulan, file gambar itu hilang, karena urlnya telah berganti. Terpaksa harus edit artikel blog untuk mengupdate url gambar.

Nah untungnya aku ada ide memanfaatkan repo GitHub untuk hosting gambar, karena repo di GitHub.com menyediakan raw url yang fix gak berubah-ubah. Sangat cocok untuk masalah yang terjadi. Berikut langkah-langkah untuk me-hosting-kan file gambar blog di GitHub.com:

1. Join Github.com dan Install GitHub Desktop

Langkah pertama tentu saja sign up ke GitHub. Kemudian download & install GitHub Desktop.

2. Buat Repository Hosting-Blog

Buat repository baru, misal hosting-blog di https://github.com/new.

GitHub - New Repo

3. Clone Repository Hosting-Blog

Pada halaman home repo hosting-blog, klik tombol warna hijau Clone or download, trus pilih Open in Desktop.

GitHub - Clone

4. Tambah File Gambar & Push (Upload) ke GitHub.com

Pada GitHub Desktop, klik kanan nama repo dan pilih Open in Explorer.

GitHub - Open in Explorer

Tambahkan file gambar di folder repo local kita. Sedikit saran, untuk jangka panjang, agar memudahkan dalam pengelolaan file, lebih baik dibuat folder tahun dan subfolder bulan, seperti yang dilakukan wordpress.

GitHub - Add Image

Balik ke GitHub Desktop, klik tab Changes, maka akan terdaftar file gambar yang telah kita tambahkan melalui file explorer pada langkah sebelumnya. Tulis pesan mengenai file gambar tersebut, misal diberi pesan judul artikel, dan tekan tombol Commit to master.

GitHub - Commit to Master

Langkah terakhir adalah tekan tombol Sync untuk mepush commit atau mengupload file gambar ke server GitHub.

GitHub Sync

5. Copy Raw Url Gambar & Gunakan di Post Blog

Buka Repo online hosting-blog, dengan cara klik kanan nama repo, pilih View on Github.

GitHub - View on GitHub

Cari file gambar yang barusan kita push. Klik untuk menuju halaman detail, klik tombol download, dan copy raw url gambar tersebut.

Github - Raw Url

Gunakan raw url itu di artikel blog. Taraa… Mudah kan?

Computer Hang waktu kejar deadline

Semoga bermanfaat.

Tetap Sehat, Tetap Semangat, agar dapat Tetap dalam Perdjoeangan!!

Cara Simpan File Gambar dari BLOB Database MySQL

Database menyediakan tipe data BLOB (Binary Large Objects) yang bisa digunakan untuk menyimpan file gambar. Namun, menyimpan file gambar di database itu kurang baik, karena akan membebani kinerja database. Best practice-nya adalah kita menyimpan path/nama file gambar tersebut di database, sedangkan file gambar tetap disimpan di disk.

Berikut cuplikan snippet kode laravel untuk mengekstrak/mengeksport file gambar dari tipe data blob di mysql.

Foto::whereRaw("foto is not null AND length(foto)>0")->chunk(100, function ($fotos) {
	foreach ($fotos as $foto) {
		file_put_contents(public_path() . "/foto/" . $foto->id . ".bmp", $foto->foto);
	}
});

Caranya ternyata cukup simpel, ternyata cukup dengan menggunakan fungsi bawaan php, yaitu: file_put_contents(). Tak perlu pakai library tambahan. Hehe.

Semoga bermanfaat. Tetap Sehat, Tetap Semangat, agar dapat Tetap dalam Perdjoeangan!!

Misteri Tipe Data Double/Float

Halo temans, bila kamu sedang mendesain database, pastikan mulai sekarang gunakan tipe data decimal untuk menyimpan angka pecahan. Jangan lagi pakai tipe data double maupun float. Kenapa? Silakan lihat gambar berikut:

Tipe Double Aneh
Tipe Double Aneh

Perhatikan baris Perlakuan DIHASILKAN pada bulan Oktober, angka yang seharusnya 0,00004 malah tersimpan sebagai 4E-5. Perhatikan pula baris untuk Perlakuan DISIMPAN DI TPS pada bulan Desember. Bila dihitung manual dengan rumus

TPS Des = TPS Nov + Dihasilkan Des - (Dimanfaatkan+Diolah+Landfill+Diserahkan+Tidakdikelola) Des\newline\newline TPS Des = 0.00095 + 0 - (0+0+0+0.00095+0) = 0

maka seharusnya hasil perhitungan DISIMPAN DI TPS di bulan Desember adalah 0, bukan -1.0842021724855E-19. Aneh kan? bigsmile

Nah, karena di database tersimpan seperti itu, maka waktu ditampilkan, hasilnya akan menjadi seperti ini:

Siplah - Tipe Double Aneh
Siplah – Tipe Double Aneh

Kurang tahu pasti, apa penyebabnya, tapi menurut pak Victor, itu salah satu sifat tipe data double/float dalam menyimpan floating pointnya. Lebih aman pakai tipe decimal. Jangan lupa tentukan juga nilai floating point yang akan disimpan, misal dua angka di belakang koma berarti menggunakan tipe decimal(20,2).

Update: Pada database MySql, ternyata tipe double bisa ditentukan nilai floating pointnya, misal double(20,2). Sedang di SQL Server tidak bisa. Seprtinya pada mysql, masalah ini bisa diatasi dengan cara ini. Entahlah.

Tetap Sehat, Tetap Semangat, agar dapat Tetap dalam Perdjoeangan!!

Credit: Victor Utomo

Ctrl + K + D ala Visual Studio di Sublime Text 3

Salah satu fitur penting editor teks pada Visual Studio adalah Ctrl + K + D, yang berfungsi untuk merapikan identation (itu loh, yang bikin format teks menjorok, supaya enak dilihat) kode kita. Sudah menjadi kebiasaan, sehabis menulis baris kode atau menekan Ctrl + S, tangan ini secara reflek akan menekan Ctrl + K + D. Bahkan ketika ngedit kode php pakai Sublime Text 3. tongue

Nah, karena kebiasaan ini cukup mengganggu, akhirnya kucari-cari dan terus kucari, ternyata dia tumbuh mekar di dekatku… Eh, malah nyanyi lagunya Sheila, :3

Nih teman-teman, cara supaya Ctrl + K + D bisa jalanĀ  di Sublime Text 3:

  1. Jalankan Sublime Text 3
  2. Buka Menu Preferences -> Key Bindings – User
  3. Tambahkan teks ini:
[
    { "keys": ["ctrl+k", "ctrl+d"], "command": "reindent", "args": {"single_line": false} }
]

Semoga bermanfaat. smile

Tetap Sehat, Tetap Semangat, agar dapat Tetap dalam Perdjoeangan!

Sumber: http://www.techportal.co.za/software-applications-hardware/181-other/sublime-text-3/534-how-to-indent-the-same-way-as-visual-studio-ctrl-k-d-in-sublime-text-3.html

Cara Mudah Bedain Fungsi Kategori dan Tag Pada WordPress

Cara paling mudah membedakan fungsi Kategori dan Tag pada WordPress (juga platform blogging yang lain) adalah dengan menganalogikan fungsi Daftar Isi dan Index pada sebuah buku. Fungsi Kategori pada WordPress bisa disamakan dengan fungsi Daftar Isi pada sebuah buku. Sedangkan fungsi Tag bisa disamakan dengan Index pada sebuah buku.

Pada sebuah buku, Daftar Isi akan memuat pokok bahasan utama dari suatu bab. Bila bab terlalu luas, maka bab tersebut dapat dipecah menjadi beberapa sub-bab. Sedang Index merupakan daftar kata/istilah yang terdapat dalam buku. Kata dalam index dapat berulang pada bab satu dan bab yang lain.

Menggunakan konsep buku ini, maka sebuah artikel sebaiknya memiliki satu kategori saja, namun boleh memakai beberapa tag yang berhubungan dengan artikel. Misal kita punya tag “C#”, kita bisa memakainya pada artikel berkategori “Algoritma” dan “Tips & Tricks”. Sedang artikel yang memuat tag “C#”, sebaiknya kita tentukan satu kategori saja, apakah lebih cenderung ke kategori “Algoritma”, atau lebih cocok pakai kategori “Tips & Tricks”.

Begitu kurang lebih teorinya teman. Mengenai praktek penggunaannya, terserah teman-teman saja. Kan yang punya blog teman sendiri. Mau pakai kategori, ya gak papa. Mau pakai Tag, ya gak papa. bigsmile Semoga bermanfaat.

Tetap Sehat, Tetap Semangat, agar dapat Tetap dalam Perdjoeangan!!

Firefox tidak bisa buka Google.com dan Facebook.com

Mozilla FireFox support website yang sudah menggunakan IPv6, seperti google.com, live.com, dan facebook.com. Nah, kalau koneksi internet kita masih menggunakan IPv4 (seperti speedy), maka kita tidak bisa mengakses website dengan IPv6. Solusinya adalah dengan menonaktifkan IPv6 di setting adapter wifi/lan kita. Seperti gambar berikut:

WifiProperties-DisableIPv6
WifiProperties-DisableIPv6

Atau dengan cara yang lebih gampang, yaitu disable IPv6 di FireFox, seperti gambar berikut:

Firefox-network.dns.disableIPv6
Firefox-network.dns.disableIPv6

Tetap Sehat, Tetap Semangat, agar dapat Tetap dalam Perdjoeangan!!

Referensi: https://support.mozilla.org/en-US/kb/firefox-cant-load-websites-other-browsers-can#w_ipv6