Projek Buku Git – Bantuan Diperlukan

Saya telah memulakan Projek Buku Git di Github.

Web : https://kidino.github.io/buku-git/

Github : https://github.com/kidino/buku-git

Git merupakan satu kemahiran penting untuk seorang software developer. Ianya membantu dalam menguruskan kod dan versi aplikasi yang kita bangunkan. Ianya juga memudahkan kerja-kerja pengurusan dalam projek yang melibatkan ramai programmer. Tetapi saya merasakan yang graduan IT dan sains komputer tidak mempunyai kemahiran ini setelah tamat pengajian.

Jadi, bersama dengan JOMWEB, kami telah menjalankan beberapa bengkel untuk memperkenalkan Git dan memberi pendedahan. Bengkel kami biasa berjalan selama satu hari penuh dan kami ajarkan apa sahaja yang sempat. Kami kenakan harga RM20, termasuk makan tengahari. Tempat biasanya ditaja oleh rakan-rakan JOMWEB sendiri yang mempunyai kemudahan bilik latihan dan internet.

Perlu saya ucapkan terima kasih kepada rakan-rakan berikut yang telah menaja tempat latihan sebelum ini:

  • NEF
  • Altfa Training
  • Serai Solutions
  • Webshaper (Neowave)
  • KPTM Kuala Lumpur
  • MaGIC

Bengkel yang lepas : http://jomweb.github.io/bengkel-git/

Meluaskan Bengkel Git ke Seluruh Negara Secara Francais Percuma

Continue reading Projek Buku Git – Bantuan Diperlukan

NEF-JOMWEB Ketengahkan Kepakaran ICT Tempatan Melalui 17 Projek Di JOMLAUNCH

10 Oktober 2015
Content Malaysia Pitching Centre, FINAS
Kuala Lumpur

Siang tadi berlangsungnya majlis JOMLAUNCH yang dianjurkan bersama oleh Persatuan Usahawan dan Industri ICT Bumiputera Malaysia (NEF) dan komuniti pembangun IT JOMWEB. Majlis telah berlangsung sepanjang hari dari pukul 9.00 pagi hingga 5.00 petang di Content Malaysia Pitching Centre, FINAS di KL Sentral.

JOMLAUNCH adalah sebuah majlis di mana pihak individu mahupun syarikat boleh menunjukkan projek dan hasil kerja dalam bidang ICT yang telah dibangunkan kepada umum. Majlis ini bertujuan untuk meraikan mereka yang terlibat dalam pembangunan ICT dan juga mengetengahkan bakat-bakat hebat tempatan dalam bidang ini. Penekanan diberikan kepada teknologi dan kaedah yang digunakan dalam pembangunan ICT dan bukannya aspek komersil sesebuah projek.

Oleh yang demikian, projek-projek yang dipertontonkan dibahagikan kepada empat kategori; 1) komersil 2) peribadi 3) sumber terbuka (open source) 4) komuniti.

17 buah projek ICT hasil rekacipta dan inovasi tempatan telah dipertontonkan kepada umum.

Di samping projek-projek yang dipertontonkan, majlis juga dihadiri oleh presiden NEF, Ashran Dato’ Ghazi yang memberi penerangan tentang NEF dan fungsi NEF dalam industri. Satu slot juga diperuntukkan untuk perkongsian pengalaman beberapa peserta program eStanford ke Silicon Valley, USA oleh MaGIC. Slot tersebut telah dikendalikan oleh Yusno Yunus dan Farid Nor dari Evenesis dan juga Aizah dari Mad Cat.

Majlis ini dijayakan hasil tajaan dan kerjasama sukarelawan dari JOMWEB dan NEF, NEF sendiri, Evenesis, Katsana, Content Malaysia Pitching Centre dan juga Pixaworks.

Berikut adalah projek-projek yang telah dipertontonkan kepada umum.

Continue reading NEF-JOMWEB Ketengahkan Kepakaran ICT Tempatan Melalui 17 Projek Di JOMLAUNCH

Membina Two-Factor Authentication (2FA) Dalam Sistem PHP Menggunakan Google Authenticator

google-authenticator3Kita biasa login ke sistem di web mengguna username dan password. Dan kalau kita menggunakan aplikasi perbankan, sebagai tambahan kita perlu menggunakan kod TAC yang hadir dalam telefon melalui SMS.

Kalau kita biasa, mungkin ada website lain yang kita gunakan juga meminta kod khas yang hanya boleh didapati daripada telefon kita.

Ini semua dipanggil Two-Factor Authentication atau 2FA. Saya baru-baru ini mengaktifkan ciri-ciri 2FA untuk mengakses panel Amazon Web Service (AWS) syarikat. Amazon menggunakan aplikasi Google Authenticator untuk ini. Setelah aplikasi dipasang di telefon, kita boleh membuat tetapan khas bersama dengan AWS supaya boleh menggunakan 2FA.

Sekarang, apabila perlu login ke AWS, saya perlu nyatakan username, password dan kod khas yang saya boleh dapati daripada aplikasi Google Authenticator di telefon.

Sebenarnya kita juga boleh membangunkan sistem dan menggunakan Google Authenticator untuk pengguna-pengguna sistem kita.

Aplikasi Mobail Google Authenticator

Google Authenticator adalah aplikasi mobail yang boleh dimuat-turun kepada telefon pintar iOS, Android dan Windows. Kita boleh dapati aplikasi ini dari pautan di bawah:

Android
https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2

iOS (iPhone dan iPad)
https://itunes.apple.com/my/app/google-authenticator/id388497605?mt=8

Windows Phone
http://www.windowsphone.com/en-us/store/app/authenticator/021dd79f-0598-e011-986b-78e7d1fa76f8

Dengan aplikasi ini, pertama sekali yang kita perlu lakukan bersama pengguna adalah menyelaraskan kekunci khas yang digunakan untuk menjana nombor rawak unuk login kelak.

Apabila kita mengaktifkan ciri 2FA dengan pengguna, apa yang kita lakukan adalah menjana satu kekunci rahsia yang khusus, yang kita kongsi hanya antara pengguna dan sistem kita. Pengguna akan menggunakan aplikasi Google Authenticator untuk menyimpan kekunci tersebut. Dan kita boleh, boleh menggunakan database atau fail. Setiap pengguna akan mempunyai kekunci rahsia yang berbeza.

Bagaimana Google Authenticator Berfungsi?

Menjana nombor rawak untuk 2FA. Saya tak pasti saudara-saudari mengetahui bagaimana nombor rawak dijana. Tetapi, secara amnya, fungsi nombor rawak di dalam komputer pasti menggunakan satu nombor atau data “seed”. Kekunci rahsia yang kita jana tadi adalah “seed” untuk menjana nombor rawak untuk 2FA.

Berasaskan masa dan kekunci rahsia (sebagai seed) tadi, ianya digunakan oleh kedua-dua sistem untuk menjana kod nombor rawak yang digunakan untuk login. Selagi mana kekunci rahsia sama dikongsi oleh kedua-dua aplikasi, nombor rawak yang sama dapat dijana. Inilah yang digunakan untuk mengesahkan identiti pengguna secara 2FA.

google-authenticator4Integrasi Google Authenticator dengan Sistem

Saya ada membangunkan aplikasi demo penggunaan Google Authenticator. Ianya boleh didapati di Github saya.

Aplikasi Demo Google Authenticator oleh Saya
https://github.com/kidino/PHP-Google-Authenticator

Saya perlu beri kredit kepada pembangun library khusus untuk Google Authenticator dengan PHP. Saya dapatinya daripada PHPGansta di sini.

Library Google Authenticator untuk PHP yang saya gunakan
https://github.com/PHPGangsta/GoogleAuthenticator

google-authenticator2

Mungkin elok juga saya nyatakan bahawa kod yang saya hasilkan hanya sekadar mencuba integrasi aplikasi mobile Google Authenticator dengan sistem berasaskan PHP.

Di dalam sistem sebenar, implementasinya mungkin lebih rumit.

  • Kita perlu beri kebebasan kepada pengguna untuk mengguna ataupun tidak menggunakan 2FA.
  • Perlu ada cara reset kembali login 2FA secara manual
  • Perlu ada cara untuk reset kembali login 2FA dalam keadaan mana pengguna kehilangan telefon atau rosak
  • Perlu kaedah menyimpan secret key pengguna dengan lebih selamat, di dalam database barangkali (contoh saya hanya menggunakan fail teks)

Selamat mencuba…

 

 

3 Teknologi Pembangunan Aplikasi Web Open Source Yang Anda (Mungkin) Tak Tahu

Apabila untuk pembangunan web, yang biasa kita baca, kita dengar, dan mungkin kita gunapakai adalah seperti PHP, Ruby, Python, C# dan ASP. Mungkin juga kita pernah dengar pasal bahasa pengaturcaraan baru seperti Go dan Dart.

Dari segi platform dan framework, mungkin kita pernah dengar atau guna Laravel, Codeigniter, CakePHP, Yii, Zend, Symfony. Atau mungkin .NET, Ruby on Rails (RoR) dan Django. Mungkin kita juga teruja dengan teknologi NodeJS dan juga Meteor.

Tetapi tiga platform pembangunan web ini mungkin anda belum pernah dengar. Dan sebenarnya bukan calang-calang teknologi ini. Setiap sesuatu ada pengikut setia mereka, aktif dibangunkan malah digunapakai dalam projek-projek yang hebat seperti membina SaaS, membina OS, membina IDE, aplikasi enterprise dan sebagainya.

Kalau kita pernah dengar pun daripada 3 projek ini, mungkin kita tidak menyangka yang ianya digunakan untuk pembangunan web. Maka di sini saya ingin kongsi 3 teknologi open source yang digunakan untuk pembangunan web yang mungkin jarang-jarang kita dengari:

Continue reading 3 Teknologi Pembangunan Aplikasi Web Open Source Yang Anda (Mungkin) Tak Tahu

Menulis Markdown Dengan Brackets Dan Extension Markdown Preview

Bila kita memulakan sebuah projek programming, lebih-lebih lagi yang untuk dikongsi secara open source, eloklah ianya disertakan dengan dokumen README.md.

Mungkin ramai yang kurang biasa dengan format markdown, atau pun fail .md. Ianya adalah satu format fail teks yang ringkas, untuk memudahkan penulisan dokumentasi projek programming. Sekiranya di Github, apabila projek kita mempunyai fail README.md, kandungan fail itu akan terus dijadikan pengenalan kepada projek.

Mungkin lebih mudah saya andaikan markdown ini seperti HTML. Jika HTML adalah hypertext markup language, dari inspirasi itu, lahirlah markdown, seperti sedikit ajukan dalam dunia web.

Markdown mempunyai fungsi-fungsi seperti HTML untuk saiz huruf, baris bawah, bold, bullet list dan lain-lain. Tetapi ianya tidaklah mempunyai fungsi yang banyak macam HTML terutamanya dari segi layout, warna dan sebagainya. Ianya diringkaskan agar penulisan dokumen markdown menjimatkan masa, dan pada masa yang sama, tetap kemas untuk dibaca.

Website Daring Fireball sering menjadi rujukan tentang Markdown.

Continue reading Menulis Markdown Dengan Brackets Dan Extension Markdown Preview

PHP DOS Launch: Satu Langkah Melancarkan Browser dan Webserver untuk Melihat Hasil Programming

Sebagai web programmer, web designer kita perlu melihat hasil kerja kita di browser. Dan banyak kali, kita perlukan webserver sekali. Saya menggunakan Windows. Dan biasanya kita ada XAMPP. Tapi kadang-kala, rasa banyak langkah juga nak lancarkan XAMPP dan Apache.

Tapi sekarang ni, PHP hadir bersama webserver. Kita boleh gunakan Command Line dan gunakan arahan:

php -S localhost:port

Port tu boleh guna apa-apa nombor. Tapi biasanya saya gunakan antara 1000 hingga 2000 sahaja. Folder di mana Command Line sedang berada, itulah akan menjadi webroot untuk localhost yang baru dilancarkan tadi.

Continue reading PHP DOS Launch: Satu Langkah Melancarkan Browser dan Webserver untuk Melihat Hasil Programming

Kemaskini Kod Git Push untuk Server AutoScaling di Amazon Web Service (AWS)

Sebelum ni saya menulis tentang menggunakan Git untuk menyuruh server mengemaskini aplikasi atau kod. Dengan hanya membuat push ke repo di server Git, server aplikasi juga akan mengemaskini dirinya dengan kod yang terkini.

AWS, Autoscaling dan ELB

aws-autoscaling

Saya banyak menggunakan server di Amazon Web Service (AWS). Antara ciri yang hebat di AWS adalah autoscaling. Dengan autoscaling, kita boleh membina sebuah load balancer dan meletakkan server-server di bawahnya. Maka, trafik yang diterima oleh website akan diagih-agihkan kepada server-server yang terdapat di bawah ELastic Load Balancer (ELB) ini. Biasanya server-server ini adalah serupa, mempunyai kod yang sama, setting yang sama dan lain-lain. Dengan autoscaling, kita boleh tetapkan beberapa peraturan bila dan keadaannya untuk AWS menambah atau mengurangkan server di bawah ELB ini.

Sebagai contoh, saya boleh tetapkan peraturan sebegini:
Continue reading Kemaskini Kod Git Push untuk Server AutoScaling di Amazon Web Service (AWS)

Malaysia’s OSS Heroes

Malaysia's OSS Heroes
Mior Muhammad Zaki, Redhuan D. Oon, Colin Charles, Syamil MJ, Azrul Rahim

I was at Malaysia Open Source Conference (MOSC.my) this year. Not for the whole conference though. Just to give a quick 45-minute (which concluded in 30) talk. The title of my talk is Malaysia’s OSS Heroes. OSS stands for Open Source Software by the way. I am going to show you my slides later on, but generally, I like sharing about the many cool people I know and about what they do and have done.

These people that I have on slides contributed a lot in terms of software and programming, and their OSS fans counterparts love them it.

So I gathered the five Malaysians that is big in OSS, put them in a series of slides, and let the MOSC.my people know. Oh, with the help of Ajif from KomikAjif.com, I also “hero them up” a bit.

Anyway, do check out the slides over at Slides.com.

By the way, Slides.com is awesome. It’s based on Reveal JS (gotta use open source for open source conference) and it has cool features for doing presentations like controlling the slides with your mobile phone.

Please bear in mind that this is not in any particular order. Also, I do not deny that there may be others also deserves to be called Malaysia’s OSS Heroes — I just don’t know them (yet). If you know more, do let me know. Comment here.

slides-front
Head over to slides.com for the presentation

10 Things I Learned About Katsana GPS, That I Did Not Know Before

katsana-pikom-skmm-3
The Katsana website. http://www.katsana.com

Last weekend, I was fortunate to be given some slots to manage during the PIKOM Fair, at the MCMC’s booth. I had eight slots and among that I invited to speak was friends from JOMWEB community.

I make sure that I have one slot reserved for Katsana GPS. Katsana is a product developed by Pixelated Sdn. Bhd. Their team comprises for fairly young dads I supposed. But  they have developed an interesting solution for end-user car GPS tracking.

So far I know that their lead developer, Mior Muhammad Zaki is a top-notch PHP programmer, a top Github user, top contributor to the Laravel framework and also the creator of the Orchestra Platform. I also know that Katsana is developed with Orchestra Platform. Katsana also won a spot in the first round of the Teraju’s SUPERB grant, which gave them an extra RM500,000 in grants.

And I also know… hmm… wait! That’s pretty much it. So during the talk by Syed Ahmad Fuqaha, who is the CEO of Katsana, also a really tech- and business-savvy guy, I made sure that I paid attention.

Continue reading 10 Things I Learned About Katsana GPS, That I Did Not Know Before

Node-Webkit: Jalan Pintas Membina Aplikasi Desktop Untuk Windows, Mac Dan Linux Bagi Web Programmer

Setelah sekian lama membina aplikasi web, agak berkarat kemahiran membina aplikasi untuk desktop. Kali terakhir membina aplikasi desktop adalah dengan Delphi. Dah berkurun rasanya. HTML, Javascript, CSS dan PHP lebih menjadi makanan harian. Malah bahasa scripting bash dan arahan command line Linux kadang-kala menjadi bahan minum petang.

Beberapa minggu lepas ada juga saya mencuba Visual Studio Express (VSE) untuk Desktop. Jadilah Hello-World saya. Tetapi kalau kita gunakan VSE, kita hanya membina aplikasi untuk Windows.

node-homepage

Baru-baru ni saya diperkenalkan Node-Webkit oleh Zulfa Junaidi (kenalan JOMWEB dan developer hebat di hasrimy.com). Node-Webkit adalah sebuah projek open source yang menggabungkan NodeJS dan engine pelayar Webkit (atau Chromium Embedded Framework) untuk pembangunan aplikasi desktop. Yang lebih menarik, seorang web programmer kini dengan mudah boleh membina aplikasi untuk Windows, Mac dan Linux sekali gus!
Continue reading Node-Webkit: Jalan Pintas Membina Aplikasi Desktop Untuk Windows, Mac Dan Linux Bagi Web Programmer