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!!

Google Adsense Biang Galau

Pak Romi Satria Wahono pernah bilang: blog itu bisa dijadikan alat untuk personal branding di dunia maya. Oleh sebab itu, sebaiknya blog itu tidak ditempeli dengan iklan. Karena dikhawatirkan iklan yang ditayangkan tidak sesuai dengan isi blog, atau bisa juga mengurangi independensi artikel yang kita tulis. Bayangkan… apabila ada artikel berjudul “Berkenalan dengan bahasa C#” yang membahas tentang dasar pemrograman, yang tampil malah iklan obat kuat. Artikel mengenai cara penggunaan LINQ di .Net, eh yang tampil malah iklan eMeLeM. Bahaya kan? mrgreen

Google Adsense

Fenomena Youtuber, Main Game Dapat Uang

Mencari uang dengan bermain game? Hmm… what a dream job!! Wuenak tenan ya, ibaratnya kita dibayar hanya untuk bermain game. Ikutan ah…  twisted

Ada 2 sumber uang, pertama dari iklan adsense, kedua donasi dari subscriber. Karena masih pemula, yang masuk akal untuk saat ini adalah uang dari iklan adsense. Dulu sudah pernah punya akun google adsense, gara-gara wejangan pak Romi, akhirnya akunnya gak dipakai dan akhirnya dinonaktifkan ama google. Hiks cry

Wokeylah mari berjuang mendapatkan akun baru. Coba daftar, eh ternyata ditolak karena menggunakan subdomain (root domain diredirect ke subdomain). Wokeylah mari berjuang memindahkan postingan blog ke root domain. Memang selama ini galau juga, kalau blog aku taruh di subdomain http://blog.rudyhartadi.web.id, lalu root domainnya mau diisi apa? Huehuehue

Jadi Gimana?

Yah, langkah saat ini adalah memindahkan blog dari subdomain http://blog.rudyhartadi.web.id ke root domain http://rudyhartadi.web.id. Lanjut menulis artikel di blog, sesuai resolusi tahun 2017. Kemudian mencoba daftar akun google adsense lagi. Dan semoga diapprove. Amin. cool

Trus tiba-tiba terlintas pertanyaan: kalau udah dapat akun adsense, nanti bikin content game apa? Gameplay atau streaming? Kalau gameplay, cara merekamnya gimana? Kalau streaming, pakai koneksi apa? Ngedit videonya gimana? Pakai ngomong atau tulisan? Ya udahlah, dipikir nanti aja. tongue

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

Presiden untuk Indonesia

Bismillah…

Tiga atau empat tahun lalu, aku masih sangat mengidolakan pak Jo. Seorang walikota yang dicintai warga Solo, hingga terpilih 2 periode. Seorang walikota yang berhasil berdialog dengan warganya untuk mencari solusi atas masalah yang dihadapi, salah satunya dengan cara diajak makan bersama. Sosok yang merakyat, ramah, sederhana berbaju kotak-kotak. Sosok yang kukira sangat layak untuk menjadi presiden masa depan.

Galau Pemilu 2014

Entah mengapa menjelang pemilu presiden 2014, hatiku mulai ragu dengan pak Jo. Hari demi hari keraguanku semakin bertambah. Akhirnya aku mencari info lebih banyak mengenai 2 calon presiden di pemilu 2014, yaitu pak Jo dan pak Prab. Aku follow facebook dari kedua kubu. Aku juga memfolow orang-orang yang mendukung pak Jo dan pak Prab. Kutemukan fakta-fakta mengenai pak Jo yang membuka mataku lebar-lebar mengenai sosok beliau. Dan hatiku mantap tidak akan memilih beliau, tidak akan lagi percaya dengan pencitraan yang diliput dalam media-media nasional. Mataku telah terbuka, dan tak akan terbutakan lagi. Amin.

Calon Presiden Pilihanku

Satu calon telah tereliminasi, pilihannya sekarang memilih pak Prab atau golput. Dan testimoni Aa Gym telah meyakinkanku untuk memilih pak Prab. Berikut cuplikan berita dari website http://voa-islam.com:

Menurut Aa Gym dirinya sudah mengenal Prabowo pada tahun 1990-an, saat Prabowo menyandang jabatan Danjen Kopassus. Pada saat itu, ada seorang jenderal petinggi TNI yang amat disegani dan selalu menjadikan umat Islam sebagai target kebenciannya.

“Setahu saya, pada waktu itu hanya Prabowo yang terang-terangan membela umat Islam. Ini kenangan luar biasa saya tentang sosok Prabowo yang sulit dilupakan. Ia perwira militer yang tak rela melihat umat Islam dipinggirkan. Karena alasan ini, saya mendukung Prabowo,” ujarnya. – See more at: http://www.voa-islam.com/read/indonesiana/2014/05/20/30499/kenapa-aa-gym-pimpinan-daarut-tauhid-mendukung-prabowohatta/

Isu kejahatan HAM? Yang diculik aja malah mendukung pak Prab kok. Kontroversi sosok adiknya? Aku masih belum menemukan jawaban.

Sempat kecewa ketika beliau mengambil keputusan untuk berkoalisi dengan partai Kuning, juga sering mengucap salam agama lain yang tidak perlu. Tapi tetap tak merubah pilihanku, aku yakin beliau tetap capres yang jauh lebih baik. Semangatnya, cara berpikirnya, kegagahannya dalam berpidato, pengorbanannya untuk NKRI, baik selama menjadi prajurit atau sekarang ini, semuanya menambah mantap pilihanku. Meskipun gagal menang, aku tetap bangga memilih beliau.

Siapakah Presiden Indonesia Saat Ini?

Hingga hari ini, aku masih belum yakin, apakah pak Jo itu orang yang baik atau orang jahat. Apakah beliau seorang pembohong, atau hanya seseorang yang terpaksa bohong? Sosoknya masih sangat misterius bagiku. Tapi yang kutahu pasti, beliau adalah seorang yang mudah sekali berucap janji manis, kemudian mudah sekali melupakan janji-janji itu, tidak ditepati, bagaikan tak pernah terucap. Dan kuyakin pasti, beliau bukanlah presiden yang baik untuk Indonesia.

Maaf bila ada yang kurang berkenan. Mari berdoa untuk Indonesia. Damai Indonesiaku. Piss…

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

Menentukan Arah

Enam tahun sudah aku menggeluti profesi sebagai penulis kode. Dan aku merasa, 6 tahun kok skillku gak bertambah banyak. Terkadang merasa sedih ketika melihat timeline facebook, teman-teman yang baru merintis usaha 1-2 tahun, sudah berani pasang iklan merekrut karyawan. Mereka seusiaku, bahkan ada yang lebih muda dariku. Wokeylah agar tahun ini ada perubahan, mari kita buat target untuk tahun 2017 ini, atau istilah kerennya Resolusi tahun 2017:

1. Kurangi Bermain Game

Alhamdulillah sudah bisa meninggalkan game Dota 2, lanjut meninggalkan game Clash Royale. Eits, bukan berarti gak boleh ngegame lho, tapi porsinya secukupnya saja. Rencana tahun ini mau bikin channel Youtube untuk game-game yang simple, yang ada achievement google playnya. Game pertama yang sudah kusiapkan adalah Hitman Go. Syukur-syukur bisa ramai, bisa ditempeli iklan, dan bisa dapat recehan. Amin. oops

2. Rajin Nulis Blog

Efek mengurangi bermain game, aku jadi punya lebih banyak waktu untuk berkarya, hasyah. Semoga semangat di awal tahun ini tetap menyala, tak pernah padam. Menulis blog ternyata membantu mengasah skill komunikasiku. Meski masih sering lelet sih, alias telmi, alias telat respon. Makanya, kalau kamu setelah membaca tulisanku di blog ini, dan membayangkan aku ini orang yang pintar ngomong, kamu salah besar. Hehehe.

3. Baca Buku-Buku yang Telah Dibeli

Buku adalah teman yang tak perlu suara untuk bicara, cukup hanya dengan barisan kata – Yurinda Dini

Iseng-iseng buka lemari buku. Aku terkejut ternyata aku punya buku kayak gini? Aku terkejut ternyata aku sudah pernah beli buku dengan judul ini, untung kemarin gak jadi beli lagi. Parah banget ya? Sampai lupa kalau sudah pernah beli buku berjudul itu dan mau dibeli lagi. tongue Rudy.. Rudy.. beli buku gak dibaca malah ditumpuk-tumpuk doang. Mau jadi kolektor buku? Buang-buang uang aja, ter.. la.. lu…

Semoga ilmu yang didapat dari buku-buku yang kubaca di tahun ini bisa dikonversikan menjadi sebuah artikel yang bermanfaat di blog ini.

4. Mengasah Ilmu Koding

Meski aku taruh nomor 4, namun ini sebenarnya hukumnya wajib di tahun 2017. Target tahun ini menguasai angular, ionic, build aplikasi android, kemudian diupload di google play store, syukur-syukur bisa nambah uang jajan. Semoga di bulan yang akan datang ada ide untuk proyek pribadi yang bermanfaat, lumayan bisa dipajang di blog ini.

5. Nulis Buku Pemrograman?

Ini target tambahan sih, karena menulis itu gak mudah lho. Apalagi menulis sambil mengajar agar mudah dipahami. Terkadang ketika selesai mengetik artikel di blog, aku berkata dalam hati: tulisan ini kayaknya gak penting banget deh, wkwkwk. Percayakah kamu, semua tulisan di blog ini hampir pasti melewati proses ketik-hapus-baca-ketik-hapus-baca-ketik-hapus. Bahkan ada artikel yang sampai sekarang masih jadi draft, masih dalam proses pertimbangan penting atau gak mutu, publishable atau deleteable. Hahaha #TepokJidat lol

Demikian target hidupku di tahun ini. Semoga bisa terlaksana. Dan semangat ini semoga tetap berkobar. Apa target teman-teman di tahun ini? Share dong.. !? Emang ada yang bakal baca tulisan ini di blog yang gak jelas ini? Wekaweka bigsmile

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!!

Orang Islam Belajar Islam

Hari ini aku pergi ke Gramedia Pandanaran Semarang. Seperti kebanyakan orang pada umumnya, hal yang kulakukan setibanya di lantai dua adalah melihat dan membaca buku-buku di rak New Arrival, Best Seller, dan Recommended Books yang letaknya tepat di depan tangga. Salah satu buku yang cukup menarik dan menimbulkan niat untuk membelinya adalah buku berjudul Orang Islam Belajar Islam.

Orang Islam Belajar Islam
Orang Islam Belajar Islam

Agak lupa buku ini berupa komik atau buku teks. Sepertinya buku teks tapi ada visual komik. Karena baru datang, dan malas membawa-bawa buku keliling rak gramedia, akhirnya aku tidak mengambil buku ini dulu. Aku berjalan ke rak buku motivasi-pengembangan diri-psikologi, lanjut ke rak buku komputer, lalu ke akuntansi-ekonomi-bisnis, kemudian ke rak novel-komik-musik, dan terakhir ke rak buku islam. Tak terasa 3/4 gramedia telah aku kelilingi, hehehe.

Hari sudah sore dan kaki rasanya sudah pegal, aku putuskan untuk mengambil buku-buku incaran. Dan aku heran, kenapa buku Orang Islam Belajar Islam itu seolah-olah lenyap dari rak buku new arrival-recommended-best seller? Ku putari rak-rak itu tak kurang dari 3 kali. Ku baca satu per satu judul buku yang ada di situ. Ku cari di bawah tumpukan buku pertama, barangkali tertutup buku dengan judul yang berbeda. Tak ketemu juga.

Usaha terakhirku adalah mencari di komputer yang disediakan di pojok-pojok gramedia. Aha.. ada di rak buku islam. Aku meluncur ke nomor rak yang tercantum di hasil pencarian komputer. Eng-Ing-Eng hasilnya nihil. Karena hasrat ingin membeli buku itu sangat kuat, akhirnya aku mengelilingi lagi rak buku islam, membaca judulnya satu-persatu. Dan hasilnya adalah nihil, hahaha.

Yah, karena sudah kayak orang kurang kerjaan, keliling gramedia, akhrinya aku menyerah dan memutuskan untuk langsung ke kasir dan cabut pulang. Ngeenggg…. (gak juga deng, soalnya lihat-lihat buku obral di halaman depan gramedia dulu)

Tips kunjungan ke Gramedia berikutnya:

  • kalau nemu buku yang menarik, langsung ambil
  • kalau pas waktu mau ke kasir, ternyata uang dalam dompet kurang, pilih buku-buku yang kira-kira besok waktu ke gramedia lagi bakalan lenyap.
  • tapi kalau ada buku yang benar-benar menarik ya mending dibeli, eliminasi buku yang lain. Lenyap-lenyaplah, tapi kalau jodoh pasti bertemu. lol

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