Sunday, April 28, 2013

Kerana.

Minggu depan Pilihan Raya Umum ke 13. Undilah betul-betul. Jangan buat undi rosak.

Saya selaku pengasas dan ahli Kelab Angkatan Rakyat Independen Pengundi Atas Pagar (KARIPAP) ingin menyeru agar anda memilih secara berhemah, gunakan akal bukan emosi, dan jangan terbawa-bawa dengan political fanatism sampai merugikan diri sendiri.

Berikut adalah panduan memutuskan undi ragu sebagai rujukan anda bagi mengelakkan undi anda ditolak oleh SPR.

Ini arahan kepada Pegawai Pengurus/Penolong Pegawai Pengurus/Ketua Tempat Mengundi:


Berikut merupakan contoh undi yang diterima:










Berikut contoh undi rosak:







Sekian, terima kasih.

Ini kalilah...bukan lain kali.



Friday, April 12, 2013

Jangan.

Baru saja selesai membaca email farewell Rafizi Ramli kenapa dia resign dari Kompeni walaupon dah empat tahun email tu ditulis. Sangat boleh relate dengan apa yang dia tulis dari awal sampai akhir.

Aku dah kerja dengan Kompeni nak masuk lapan tahun dah. Bermula dengan HR dan Admin dekat suasana korporat dalam business Exploration dan Production sehingga ke bahagian Maintenance dekat suasana kilang dalam business Gas dan Power. 

Permulaan kerja memang sangat mencabar. Satu, sebab aku tak buat bidang yang aku pelajari. Aku amik Engineering, tapi buat HR. Dua, diletakkan dalam jawatan yang sepatutnya dipegang oleh orang senior. Tapi sebab position tu tak graded waktu aku masuk, lepas job evaluation position description yang aku draf berdasarkan apa kerja yang aku buat, baru tau position tu E2. Aku seeding E1 je kot time tu.

Tapi, macam yang Rafizi tulis dalam email dia, walaupon susah dan stressful, tapi suasana kerja sangat condusive dan memberi kepuasan dengan bos-bos yang supportive, bagi guidance dan coaching serta colleagues, officemate yang best-best belaka. 

Memang budaya kerja Kompeni awal-awal aku kerja dulu aku  macam tu. Seronok bekerja. Walaupon ada juga bos yang teruk macam bos Rafizi sebelum dia resign tu, tapi bukan majoriti dan kewujudan mereka agak terpencil. Kira malang jugalah nasib Rafizi dapat immediate bos gitu.

Memang terdapat perubahan culture dalam Kompeni sejak tahun 2009. Memandangkan aku masih bekerja dalam Kompeni, tak dapatlah aku nak cerita panjang-panjang dekat sini. Masih ada dua tahun bond yang perlu dihabiskan dan aku kalau boleh tanaklah kena buang kerja sebelum habis tempoh bond tersebut.

Tunggulah, dua tahun lagi insyaAllah...

Eh, aku sebenarnya nak tulis pasal kejayaan memahami VBA-SAP scripting... lain kalilah.



Saturday, January 5, 2013

Itu

As expected, no one commented my last post. Never mind, I'm posting my solution anyway.

Be warned though, as a non-programmer who only started using Excel VBA less than a month ago, my codes are not really efficient.

Nevertheless, the trainer for VBA fundamental offer this advice before our session ended;
"As long as your code is working, who cares whether it is efficient or not? You are not a programmer. Even if your code is super efficient, PC nowadays are so fast the different will only be like a few seconds... or milliseconds. What important is you understand your codes and able to use it"
For those of you who never use VBA before, here's a quick guide to start:
1. Open MS Excel, press alt + F11 to open the VB Editor.
2. At the menu bar, Insert > Module. You write your codes in here.

Here's how I did it:

1. Use VBA Split function to create an array from the cell with the equipment list.

Sub BreakItUp()

Dim eqListCombined As String
Dim eqList As Variant
Dim eqListNo As Integer

eqListCombined = ActiveCell.Value

eqList = Split(eqListCombined, Chr(10))
For eqListNo = LBound(eqList) To UBound(eqList)
   ActiveCell.Offset(1, 0).Select
   Selection.EntireRow.Insert
   ActiveCell.Value = eqList(eqListNo)
Next eqListNo




2. Copy down everything on the left side of the initial cell.

Dim i As Integer
Dim KiraColumn As Integer

KiraColumn = ActiveCell.Column
ActiveCell.Offset(0 - eqListNo, 1 - KiraColumn).Resize(1, KiraColumn - 1).Copy
ActiveCell.Offset(0 - eqListNo, 1 - KiraColumn).Select
For i = 1 To eqListNo
    ActiveCell.Offset(1, 0).PasteSpecial xlPasteValues
Next i
Application.CutCopyMode = False


3. Copy down everything on the right side of the initial cell.

Dim KiraRange As Integer
Dim j As Integer

ActiveCell.Offset(0 - eqListNo, KiraColumn).Select
KiraRange = ActiveCell.CurrentRegion.Columns.Count - ActiveCell.Column + 1
ActiveCell.Resize(1, KiraRange).Copy
For j = 1 To eqListNo
    ActiveCell.Offset(1, 0).PasteSpecial xlPasteValues
Next j
Application.CutCopyMode = False


4. Calculate the manhour per equipment on the right side of the intial cell

Dim k As Integer
Dim m As Integer

ActiveCell.Offset(1 - eqListNo, 0).Select
For k = 1 To eqListNo
    For m = 1 To KiraRange
        If ActiveCell.Offset(0, m) <> "" And IsNumeric(ActiveCell.Offset(0, m).Value) Then
            ActiveCell.Offset(0, m) = ActiveCell.Offset(0, m) / eqListNo
        End If
    Next m
    ActiveCell.Offset(1, 0).Select
Next k


5. Go back to the 1st cell and delete the entire row then go to the next equipment list row to be processed.

ActiveCell.Offset(-1 - eqListNo, -1).Select
Selection.EntireRow.Delete

ActiveCell.offset(eqListNo,0).select

End Sub


Basically, the above codes should be able to do the things I described in my previous post. By assigning the macro to a letter, say 'b', I can just press 'ctrl + b' all the way to the last line.

Of course in my example, there are only six rows. In the real worksheets that I wanted to process, the row number ranges from just seven to 1,873 rows per sheet.

Boleh patah jari woo tekan 'ctrl + b' 1,873 kali! So...

6. Create a simple procedure to loop the above process until it reaches a blank cell.

Sub loopBreakItUp()
Do Until ActiveCell.Value = ""
    Call BreakItUp
Loop
End Sub 


Maka selamatlah jari kita dari kelenguhan.

In my module, I've entered some other codes to check whether the right cell is selected, to remove funny characters, to skip rows which do not require processing (i.e. the cell contains only one equipment). etc. But you probably wont need them anyway.

If you are a programmer or used VBA before, you probably noticed that my codes are not 'hard-coded'. This means you can probably use this code even if the format of your data is not as same as mine.

So, that's it. My first Excel 2010 VBA project. Did it to assist my colleague, Mek Yam with her tasks.

Thanks for going through it. Feedback and question are always appreciated.

p/s: You can use the above codes at your own risk. Please backup any file before you execute the VBA codes.

Friday, January 4, 2013

Haprak

So, let me just share something about my first VBA project in MS Excel 2010.

I have a database of Preventive Planned Maintenance (PPM) activities saved in Excel worksheets. The PPMs are organized in a roster, where each PPM takes one row of the worksheet. For each PPM, there is a list of equipment stored in one cell, and manhours stored in a few cells along with other information.

Here's a screenshot of the original data:


I want the equipment list to be separated into individual cells in a new row with its PPM data copied, and the manhours divided per equipment.

Basically, this is the result that I want:


Before I share my codes, how would you do it?

Erm... I'm asking like someone actually read my blog... but who knows...

Thursday, January 3, 2013

Gaya

I cant believe I only made one entry in 2012. Ha ha.

2012 was a rather tough year. After five years in HR, I finally moved out and became a maintenance system 'expert user' (a clueless 'expert' actually), and by default required to lead my division in a Group-wide system migration project which was finally rolled out a couple of days ago.

At the same time I was struggling with post-surgery sciatica and back pain which resulted in me to undergo one major surgery to screw two flexible metal support on my lumbar spine earlier last year, then a minor surgical procedure to 'clean-up' the area around the implant, just a couple of months ago.

Well, let just say due to the pain I was suffering, I was screwed, literally, as well as metaphorically.

That basically sum my 2012. Plus, I decided to go bald.

Anyway, less than a month ago I went for a training on Excel VBA Fundamental. Tired of using so many nested functions and formulas in cells to do what I want to do in Excel all this while, I decided to go for this training.

I regretted attending that training... 7 years too late. This is probably the most useful corporate-sponsored training I ever attended since I started working with this Company. I started using VBA right away after coming back from the training.

Well, for those of you out there whose job uses a lot of MS Excel, I would recommend that you go for this course, provided that you already know and used some of the more 'advance' feature of the software. If you do not know how to use the pivot table or even the vlookup function correctly, don't bother.

Actually, I wanted to share my first decent VBA 'project' in this blog so that others can comment or learn something from it but since getting back from office today, I was too occupied with house chores. The codes is not fully completed yet, although I've managed to get it to do the things I wanted it to do.

Wait, what did you say? Just copy + paste the codes?

Nope..

If one thing I learned from 2012 is this: try not to present half-cooked material to avoid you yourself from being cooked (or grilled) by your audience.

Good night.


Sunday, October 21, 2012

Faham

Semalam sebelum tidur aku bayangkan aku bangun pagi ni, segar, tak skit, solat, bersiap, siapkn Soleh dan Syifaak, hantar mereka ke taska dan tadika, lalu ke ofis, awal, untuk bekerja dengan penuh dedikasi...

Nampaknya dalam mimpi pun apa yang aku bayangkan tak menjadi.

Bangun dan kesakitan itu datang lagi. Tercapik-capik pergi solat. Mak yang siapkan budak-budak dan hantar ke taska. (Terima kasih Mak...)

Aku kembali terbaring. Cuba mengurangkan kesakitan dengan senaman regangan yang diajar waktu terapi fisio. Makin buat makin sakit. Dalam kepala tak berhenti berfikir kenapa dan kenapa.

...Dan di luar hujan turun menambahkan kedinginan pagi bumi Kerteh. Dan menambahkan denyut-denyut di pinggang dan kaki.

Dalam bilik ini juga tiba-tiba ada air yang menitis.

Wednesday, November 16, 2011

Engkau

Saya ingin berkongsi sedikit pengajaran (lesson learnt) daripada kejadian yang menimpa saya sekeluarga semalam supaya kita semua dapat mengambil langkah berjaga-jaga bagi mengelakkan kejadian yang sama daripada berlaku.

Apa yang berlaku:


  • Rumah saya di Bandar Baru Kerteh telah dipecah masuk semalam (15/11/2011) di antara pukul 2.00 – 6.00 pagi ketika kami sekeluarga berada di dalam rumah!

Barang yang dicuri:


  • Beg tangan isteri berisi dompet, satu set kunci rumah dan sebuah netbook. Dalam dompet tersebut ada wang tunai (beberapa ratus ringgit), kad kredit, kad ATM, KP sementara dan lesen memandu isteri.

Kerugian lain:


  • Gril belakang yang dipotong.

  • Kunci mangga yang perlu diganti.

  • Alat berkebun yang digunakan untuk mengumpil pintu rumah.
Bagaimana kejadian terjadi:


  • Penceroboh mengumpil kunci pintu dapur, memotong bahagian gril yang lemah (corak daun) dan masuk melalui bukaan sempit yang dihasilkan.

  • Menurut pihak polis, pencuri mungkin menggunakan seorang kanak-kanak untuk masuk melalui bukaan tersebut.

  • Penceroboh melarikan diri dengan membuka pintu menggunakan kunci rumah.




Tindakan yang telah diambil:


  • Melaporkan pada pihak polis.

  • Menelefon semua bank untuk block semua kad.

  • Menukar semua mangga kunci rumah memandangkan satu set kunci rumah turut hilang dalam kejadian.

Modus operandi Penceroboh:

“Lawatan Pertama”


  • Beberapa hari sebelum Hari Raya Haji dua orang lelaki datang ke rumah menawarkan khidmat potong rumput.

  • Salah seorang memperkenalkan diri sebagai ‘Din’ (suspek) dan memberi nombor telefon 09-8261433 bila diminta (panggilan tidak berjawab sejak pagi tadi)

  • Suspek agak ‘ramah’ dan bertanya pelbagai soalan berkenaan rumah dan diri saya termasuk kampung asal, berapa lama tinggal, berapa orang ahli keluarga, keadaan rumah dsb.

  • Suspek turut menawarkan perkhidmatan lain seperti pendawaian, menambak laman dan menanam rumput dan bertanya bila saya ada di rumah untuk membolehkan dia datang buat kerja.

  • Saya membenarkan suspek memotong rumput dengan upah RM20.

“Lawatan Kedua”


  • Beberapa hari selepas Hari Raya Haji, suspek tiba-tiba datang lagi sekitar Maghrib menawarkan pasir, kononnya ada lebihan dari kerja tempat lain. Saya menolak.

  • Suspek cuba mendesak dengan menawarkan untuk membersihkan halaman, membuang batu-batu dan menambak pasir dan bertanya sama ada saya ada di rumah atau tidak pada hari esoknya.

  • Setelah ditolak, suspek menawarkan pula ikan segar, kononnya dia baru pulang dari laut.

  • Saya bersetuju untuk beli sikit (2kg dgn harga RM10/sekilo) dengan niat untuk membantu dan supaya dia cepat beredar dari rumah saya.

  • Saya membayar dengan not RM50 memandangkan tiada duit kecil. Suspek menyatakan dia tiada duit kecil dan mahu ke stesen minyak berdekatan untuk menukar baki.

  • Suspek tidak kembali selepas itu.

Pengajaran/Langkah-langkah pencegahan:


  • Jangan terima/benarkan orang yang datang untuk potong rumput/bertukang/kerja-kerja lain dengan tiba-tiba walaupun upah yang diminta murah.

  • Sekiranya dia masih merayu/mendesak minta nama, nombor telefon, alamat dan tengok nombor plat kenderaan yang dinaiki oleh orang-orang berkenaan. Jika boleh, ambil gambar.

  • Jangan melayan perbualan ‘ramah’ orang yang tidak dikenali supaya tidak mendedahkan perkara-perkara yang membolehkan dia mengagak bila rumah tidak berpenghuni, jadual harian kita dsb.

  • Jangan tinggalkan kunci rumah dan barang berharga terutama wang tunai di ruang tamu, dalam kereta atau di tingkat bawah (sekiranya bilik tidur di tingkat atas).

  • Kalau terdengar bunyi yang pelik, jangan abaikan sebagai bunyi kucing, angin atau sebagainya. Periksa sambil membawa sesuatu yg boleh dijadikan senjata, just in case.

  • Sentiasa kunci pintu pagar rumah setelah masuk ke dalam rumah dan apabila keluar. Ketika “Lawatan Kedua”, suspek masuk terus sehingga pintu hadapan rumah ketika Maghrib.

  • Jangan tinggalkan alatan berkebun seperti cangkul, garfu tanah, rake dsb di luar rumah.

  • Sentiasa awasi dan selia kerja-kerja yang dilakukan oleh kontraktor/tukang walaupun di kawasan luar rumah.

  • Sentiasa berwaspada dengan orang yang tidak dikenali. Jangan mudah percayakan orang.

  • Simpan nombor balai polis berdekatan (Polis Kerteh: 09-8261222).

Langkah-langkah pencegahan lain (bergantung pada bajet/situasi)


  • Pasang sistem penggera atau CCTV.

  • Tukar gril kepada jenis palang biasa yang sukar dipotong atau dibengkokkan.

  • Pasang kunci jenis selak pada pintu kayu.

  • Menubuhkan rukun tetangga untuk kawasan perumahan.

Mujur…:


  • Barang-barang berharga lain kebanyakannya berada di tingkat atas rumah.

  • Penceroboh tidak naik ke tingkat atas rumah dan tidak mengapa-apakan anak-anak dan isteri.

Lain-lain:


  • Ini merupakan kejadian ketiga pecah rumah di kawasan rumah saya yang mensasarkan rumah lot tepi. Cara pecah masuk hampir sama (melalui pintu belakang, dan gril dipotong)

  • Penceroboh semakin berani kerana memecah masuk ketika ada orang di rumah. Kes-kes sebelum ini selalunya berlaku ketika tiada orang di rumah dan pada musim cuti.

  • Penceroboh selalunya mencuri wang tunai, atau barang-barang berharga yang senang dibawa dan dijual seperti barang kemas, laptop dan telefon bimbit.

  • Penceroboh berkemungkinan penagih dadah yang terdesak. Golongan sebegini adalah sangat berbahaya. Jangan ambil tindakan melulu sekiranya berhadapan dengan mereka.

Sekian, terima kasih.

p/s: Nota ini telah di email kepada rakan sekerja untuk tindakan bersama. This incident has left me traumatized and I hope it will not happen to anyone else, anywhere.