Bioskop

Membaca suasana bioskop yang digambarakan oleh Ikal. Ketika bersama Arai dan Jimron menonton film “tak bermoral” Indonesia. Abah teringat ketika masa ujian ke perguruan tinggi.

Waktu itu, seorang teman abah diterima di STAN. Untuk merayakannya abah bersama teman, pergi ke bioskop di kampung abah. Garuda namanya. Kalo lewat, abah biasanya melihat poster film yang gak jauh beda dengan carik merahnya bioskop Ikal. Kalo tidak ya poster film India.

Abah pun sama dengan Ikal, tidak pernah nonton di bioskop. Kecuali film perjuangan, semisal Janur Kuning, Gerakan 30 September PKI, yang memang diwajibkan sekolah. Begitupun ketika di Bandung, Jakarta, hehehe tidak pernah ke bioskop…kasihan kan :p Apalagi di Bogor…tapi i love pisan Bogor

Kebetulan, waktu itu kami menonton film India…gubrak :D

Penontonnya itu loh…persis seperti yang ikal katakan. Ketika jagoannya datang…bergemuruhlah gedung bioskop. Ada yang tepuk tangan, pun ada yang bersiul2. Sebaliknya jika penjahat datang…teriakan huh pun menggema. Ketika adegan klimaks…banyak yang tiba2 menjadi komentator ulung. Oh iya…malah ada yang sampe melempar2 kacangnya. Hiks…gubrak gak seh.

So sang pemimpi telah memberikan romansa nostalgia abah ;)

Phoca Gallery Terintegrasi dengan Joomla User

Lagi belajar

Nanya ke mbah google tolong dicarikan komponen joomla..alhamdulillah ternyata semuanya ada di toko Joomla serba ada http://extensions.joomla.org/

Niat mencari komponen Photo Gallery, dan abah lihat http://www.phoca.cz/phocagallery/ cool abis. Alus pisan euy. Sayang gallerynya belum terintegrasi dengan usernya joomla.

Dan tralala..dengan sedikit usaha, pengorbanan dan kerja keras, akhirnya abah bisa bikin modifikasi sehingga Phoca Gallery bisa terintegrasi dengan user. So bisa buat photo gallery untuk masing2 user.

Kalo anda mau silakan download di http://soft.abahadilah.com/demo/alumni/install/phocagallery_with_user.zip

Demo bisa dilihat di http://soft.abahadilah.com/demo/alumni/aplikasi/

Laskar Pelangi

Laskar Pelangi Gak berasa mata abah berkaca2 di trans-jakarta pada pagi hari ini. Terharu membaca akhir pengembaraan anak-anak Laskar Pelangi. Untuk Ikal, Lintang, Sahara, Mahar, A Kiong, Syahdan, Kucai, Borek, Trapani dan Harun, abah ucapkan terimakasih. Memberikan makna yang lebih tentang hidup ini, dan yang terpenting telah menemani abah. Disela2 kesibukan kantor, joomla dan Ajax. Mereka telah menghibur abah dengan petualangan2nya.

Buku yang hebat dan sangat layak dibaca dan dikoleksi. Dah gak tahan untuk baca sekuel selanjutnya Sang Pemimpi dan Edensor. Sayang bukunya nun jauh disana, di ukhtiku tersayang. Paling nanti abah minta diceritain :)

Untuk sinopsi buku ini bisa dibaca di http://id.wikipedia.org/wiki/Laskar_Pelangi

CEditNumber

CEditNumber adalah kelas turunan dari CEdit. Ditujukan agar input hanya bisa menerima angka, tanda minus dan separator desimal. Pun ada auto format dengan menggunakan local regional setting pada windows.

EditNumber.h

#if !defined(AFX_EDITNUMBER_H__1F33E9E6_0079_4051_B3F1_A592F3E8F186__INCLUDED_)
#define AFX_EDITNUMBER_H__1F33E9E6_0079_4051_B3F1_A592F3E8F186__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// EditNumber.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CEditNumber window

class CEditNumber : public CEdit
{
// Construction
public:
	CEditNumber();

// Attributes
public:

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CEditNumber)
	public:
	virtual BOOL PreTranslateMessage(MSG* pMsg);
	//}}AFX_VIRTUAL

// Implementation
	void SetDecimanLength(UINT pr_ndec);
	void SetCNumberString(const char* p);
	void GetCNumberString(CString& p);

	static void NumberFormat(CString& res, char sep_dec, int n_dec, char sep_thousand, const char* val);
public:
	virtual ~CEditNumber();

	// Generated message map functions
protected:
	//{{AFX_MSG(CEditNumber)
	afx_msg void OnKillFocus(CWnd* pNewWnd);
	afx_msg void OnSetFocus(CWnd* pOldWnd);
	afx_msg void OnChange();
	afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
private:
	char m_dec;
	char m_thousand;
	UINT n_dec;
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_EDITNUMBER_H__1F33E9E6_0079_4051_B3F1_A592F3E8F186__INCLUDED_)

EditNumber.cpp

// EditNumber.cpp : implementation file
//

#include "stdafx.h"
#include "stdataadmin.h"
#include "EditNumber.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CEditNumber

CEditNumber::CEditNumber()
{
	char dec[10];
	if (! GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, dec, 10)) {
		sprintf(dec, “.”);
	}

	m_dec = *dec;

	char thousand[10];
	if (! GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, thousand, 10)) {
		sprintf(thousand, “,”);
	}

	m_thousand = *thousand;

	n_dec = 4;
}

CEditNumber::~CEditNumber()
{
}

BEGIN_MESSAGE_MAP(CEditNumber, CEdit)
	//{{AFX_MSG_MAP(CEditNumber)
	ON_WM_KILLFOCUS()
	ON_WM_SETFOCUS()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CEditNumber message handlers

BOOL CEditNumber::PreTranslateMessage(MSG* pMsg)
{
	// TODO: Add your specialized code here and/or call the base class

	if (pMsg->message == WM_CHAR) {
		int nVirtKey = (int) pMsg->wParam;

		if ((nVirtKey >= 32) && (nVirtKey <= 126)) {
			UINT maxlen = GetLimitText();
			char* buf = (char* ) malloc (maxlen+2);

			GetWindowText(buf, maxlen+1);

			if (nVirtKey == m_dec) {
				if (strchr(buf, m_dec)) {
					pMsg->wParam = 0;
				}
			}
			else
			if (nVirtKey == ‘-’) {
				if ((strlen(buf) > 0) && (*buf == ‘-’)) {
					pMsg->wParam = 0;
				}
				else {
					CPoint p = GetCaretPos();

					int n = CharFromPos(p);
					int nLineIndex = HIWORD(n);
					int nCharIndex = LOWORD(n);

					if (nCharIndex > 0) {
						pMsg->wParam = 0;
					}

				}
			}
			else
			if (nVirtKey == ‘0′) {
				if (strlen(buf)) {
					if (*buf != m_dec) {
						CPoint p = GetCaretPos();

						int n = CharFromPos(p);
						int nLineIndex = HIWORD(n);
						int nCharIndex = LOWORD(n);

						if (nCharIndex == 0) {
							pMsg->wParam = 0;
						}
						else
						if (nCharIndex == 1) {
							if ((*buf == ‘-’) || (*buf == ‘0′)) {
								pMsg->wParam = 0;
							}
						}
					}
				}
			}
			else
			if (nVirtKey < ‘0′) {
				pMsg->wParam = 0;
			}
			else
			if (nVirtKey > ‘9′) {
				pMsg->wParam = 0;
			}

			free(buf);
		}
	}

	return CEdit::PreTranslateMessage(pMsg);
}

void CEditNumber::OnKillFocus(CWnd* pNewWnd)
{
	CEdit::OnKillFocus(pNewWnd);

	// TODO: Add your message handler code here

	CString ret;

	GetWindowText(ret);
	NumberFormat(ret, m_dec, n_dec, m_thousand, ret.GetBuffer(0));

	SetWindowText(ret.GetBuffer(0));
}

void CEditNumber::SetDecimanLength(UINT pr_ndec) {
	n_dec = pr_ndec;
}

void CEditNumber::NumberFormat(CString& res, char sep_dec, int n_dec, char sep_thousand, const char* val) {
	if (n_dec < 0) return;

	CString s = CString(val); // satuan tanpa separator
	CString dec = CString(”");  // decimal

	s.TrimLeft(” “);
	s.TrimRight(” “);

	if (s.GetLength() == 0) {
		res = “0″;
		res += sep_dec;
		for(int i=0; i < n_dec; i++) {
			res += “0″;
		}

		return;
	}

	// pisahkan satuan dan decimal

	int pos = s.Find(sep_dec, 0);
	if (pos > -1) {
		dec = s.Right(s.GetLength()-pos-1);
		s = s.Left(pos);
	}

	// chek panjang n_dec

	if (dec.GetLength() > n_dec) {
		dec = dec.Left(n_dec);
	}
	else
	while (dec.GetLength() < n_dec) {
		dec += “0″;
	}

	// tambahkan sep_dec

	res = “”;
	if (sep_thousand == 0) {
		res = s;
	}
	else
	while(1) {
		if (s.GetLength() < 3) {
			res.Insert(0, s.Right(s.GetLength()));
			break;
		}

		res.Insert(0, s.Right(3));
		if (s.GetLength() > 3) {
			res.Insert(0, sep_thousand);
		}
		s = s.Left(s.GetLength()-3);
	}

	if (n_dec > 0) {
		res.Insert(res.GetLength(), sep_dec);
		res.Insert(res.GetLength(), dec);
	}

}

void CEditNumber::OnSetFocus(CWnd* pOldWnd)
{
	CEdit::OnSetFocus(pOldWnd);

	// TODO: Add your message handler code here	

	UINT maxlen = GetLimitText();

	CString s;
	GetWindowText(s);

	char temp[2];
	sprintf(temp,”%c”, m_thousand);

	s.Replace(temp, “”);

	int ndec = maxlen-s.GetLength();
	if (ndec > ((int) n_dec)) {
		ndec = n_dec;
	}
	else
	if (ndec < 0) {
		ndec = 0;
	}

	NumberFormat(s, m_dec, ndec, 0, s.GetBuffer(0));
	SetWindowText(s.GetBuffer(0));
}

void CEditNumber::SetCNumberString(const char* p) {
	char temp[2];
	sprintf(temp,”%c”, m_dec);

	CString s;
	s.Replace(”.”, temp);

	NumberFormat(s, m_dec, n_dec, m_thousand, p);

	SetWindowText(s.GetBuffer(0));
}

void CEditNumber::GetCNumberString(CString& p) {
	GetWindowText(p);

	char temp[2];
	sprintf(temp,”%c”, m_thousand);

	p.Replace(temp, “”);

	sprintf(temp,”%c”, m_dec);
	p.Replace(temp, “.”);
}

08/08/’08

Allohumma innaka ta’alamu anna hadihil qulb qadijtama’at ‘ala mahabbatik waltaqat ‘ala tho’atik wa tawahhadat ‘ala da’watik wa ta’a hadat ‘ala nushroti syari’atik fawatsiq.

Besok hari jum’at bertepatan dengan tanggal 08-08-’08. Camkan dalam hati, simpan dalam pikiran, hujamkan dalam kalbu, niatkan karena Alloh, insya Alloh tahun 2009 nyoblos No 08

Karena harapan itu masih ada :)

Nu urang bandung, 10 Agustus 2008 pasti moal leupat, moal birek, moal hilap engkin nyoblos No 2 Trendi, Taufikurrahman sareng Ustadz Abu Syauqi
 

Sekiranya bukan karena rahmat Alloh

Gerah, malem ini capek bgt. Abis olahraga, dorong motor dari mega kuningan ke kantor. Hiks…akhirnya kesampean deh mogok di jalanan. Gimana gak mogok, males sih ngerawatnya. Itu hikmah pertama.

Hikmah kedua…subhanalloh, nikmat apa lagi yang akan abah dustakan. Motor abah mogok gara2 gasnya gak mau turun…meraung2 terus. Ya Alloh coba seandainya motor itu lagi jalan…serem bgt…bisa jatuh nyerosot.

Semua karena kebaikan Alloh, ntah kenapa abah pingin sekali makan nasi goreng di jalanan. Karena lapar dong, ah abah ada2 aja :) Maksudnya biasanya makan di rumah gitu loh :p Selamatlah abah, karena waktu hidupin lagi pada posisi Normal, gasnya meraung2 terus, gak mau turun padahal udah dilepas.

Fabiayyii robbikuma tukadziban. Maka nikmat apakah lagi yang akan kamu dustakan. Alhamdulillah…terimakasih ya Alloh. Jadikan hambamu yang lemah ini, menjadi hamba yang pandai mensyukuri nikmat-Mu.

Walaula fadlulloh ‘alaikum warohmat lakuntum mina khosirin. Sekiranya bukan karena fadilah dan rohmat Alloh pasti pasti kalian termasuk orang merugi.

Interview

Lagi2 beres email sesuai dengan tema kantor bulan ini :) Eh ada email ancur :D

Seorang manager HRD sedang menyaring pelamar untuk satu lowongan di kantornya. Setelah membaca seluruh berkas lamaran yang masuk, dia menemukan 4 orang calon yang cocok. Dia memutuskan memanggil ke-4 orang itu dan menanyakan 1 pertanyaan saja. Jawaban mereka akan menjadi penentu apakah akan diterima atau tidak.

Harinya tiba dan ke-4 orang itu sudah duduk rapi di ruangan interview. Si Manager lalu mengajukan 1 pertanyaan: setahu Anda, apa yang bergerak paling cepat?

Kandidat I menjawab, “PIKIRAN. Dia muncul begitu saja di dalam kepala, tanpa peringatan, tanpa ancang-ancang. Tiba-tiba saja dia sudah ada. Pikiran adalah yang bergerak paling cepat yang saya tahu.”

“Jawaban yang sangat bagus”, sahut si Manager. “Kalau menurut Anda?”, tanyanya ke kandidat II.

“Hm… KEJAPAN MATA! Datangnya tidak bisa diperkirakan, dan tanpa kita sadari mata kita sudah berkejap. Kejapan mata adalah yang bergerak paling cepat kalau menurut saya.”

“Bagus sekali! Dan memang ada ungkapan ’sekejap mata’ untuk menggambarkan betapa cepatnya sesuatu terjadi.” Si manager berpaling ke kandidat III, yang kelihatan berpikir keras.

“NYALA LAMPU adalah yang tercepat yang saya ketahui”, jawabnya, “Saya sering menyalakan saklar di dalam rumah dan lampu yang di taman depan langsung saat itu juga menyala.”

Si manager terkesan dengan jawaban kandidat III. “Memang sulit mengalahkan kecepatan cahaya.”, pujinya.

Dilirik oleh sang manager, kandidat IV menjawab, “Sudah jelas bahwa yang paling cepat itu adalah MENCRET.”

“APA???!!!”, seru sang manager yang terkaget-kaget dengan jawaban yang tak terduga itu.

“Oh saya bisa menjelaskannya.”, kata si kandidat. “Dua hari lalu kan perut saya mendadak mules sekali. Cepat-cepat saya berlari ke toilet. Tapi sebelum saya sempat BERPIKIR, MENGEJAPKAN MATA atau MENYALAKAN LAMPU, saya sudah berak di celana.”

Tentu saja kandidat terakhir yang diterima…

Starbucks

Starbucs “Minum apa ya? Kopi pahit aja deh mbak!” pinta abah. Pelayan starbucks tersenyum, “Gak usah pake gula aja Pak. Mungkin expresso ya.”

Pelayan menyebutkan nama minuman yang dipesan 2 teman abah. Ah lupa lagi namanya. Yang pasti menggugah selera. Satu cup kopi diatasnya seperti ada ice cream gitu.

Tiba giliran abah, “expresso coffe!” “Hah! Bercanda kali ya! Masa iya abah dikasih secangkir kecil (banget) kopi”

Teman2 tertawa melihat mimik wajah abah yang masih terbengong2 memegang gelas mini. “Itu biangnya kopi bah, rasain aja” ujar guru. Dan ternyata bener, nendang banget, satu sruputan aja bikin badan seger kembali.

Belum kopi habis, ternyata starbuck di setiabudi one, tidak buka 24 jam. Daripada mubazir, kopi yang seuprit abah bekel ke dalam botol aqua yang abah bawa dari rumah.

Terima kasih guru, dan temen, sudah memperkaya pengalaman abah. Pengalaman pertama minum kopi di starbucks. Istri aja bilang, wah abah hebat-lah :)

Emansipasi Wanita???

Seperti biasa, abah datang ke kantor lebih pagi dari yang lain. Menunggu lift, telah banyak pegawai BP Migas yang memang jam kantor-nya lebih pagi 1 1/2 jam dari kantor abah. Mungkin kebetulan masuk lift, hanya abah lelaki satu2nya, yang 7 cewek, kebanyakan ibu2.

Hmm…sebenarnya sudah dari dulu berpikiran tentang ini. Mengapa perusahaan tidak mendahulukan pria. atau para suami dalam merekrut pegawai? Mengapa ibu2 begitu bersemangat untuk mencari pekerjaan, padahal suaminya sudah mapan? Kenapa perusahaan lebih memilih wanita yang dalam 40 hari, dapat datang bulan selama seminggu, ato ibu2 yang jika cuti hamil 3 bulan, belum menyusui?

Menurut abah jawabannya karena budaya yang telah mempengaruhi pemikiran kita. Betapa digembar-gemborkannya emansipasi. Bagaimanapun pria dan wanita itu beda, tanggung jawab suami dan istri itu sangat beda. Seandainya wanita lebih mengalah, lebih tepat memahami posisinya, abah yakin bisa meminimalkan suami yang menganggur, suami yang harga dirinya jatuh karena tidak punya penghasilan.

Seandainya tidak semasive seperti sekarang, ya mungkin dari 100 pekerja hanya ada 1 wanita, itu masih bisa ditolerir, tapi sekarang, sepertinya wanita lebih gampang mencari pekerjaan. Atau untuk kondisi2 darurat masih bisa dimaklumi, seperti keadaan ekonomi yang sangat kurang. Atau jika bidang pekerjaannya malah bisa membuka lowongan pekerjaan, itu lebih bagus. Daripada harus bersaing dengan pria.

Surga kita sama

Berdo’alah untuk sahabat yang telah “meninggalkan” kita. Beramalah sebanyak yang bisa kita lakukan. Mengadulah sebanyak kata yang kita punyai. Menangislah hingga air mata kering tak berair.

Karena surga kita sama. Agar, Insya Allah kelak kita bisa bertemu dalam ridha-Nya. Amin.

Bertemu dengan hati yang bersih dan kasih sayang sejati.