Android Studio was unable to find a valid JVM

Baru - baru ini Google lancarkan Android Studio secara rasminya. Anda boleh download di laman https://developer.android.com/sdk/index.html

Saja-saja nak mencuba, saya pun download Android Studio versi Mac OSX dan install di dalam MacBook Pro saya. Malangnya, setelah selesai install, saya dapat error message "Android Studio was unable to find a valid JVM"


Kebiasaan error message ni disebabkan tiada Java di pasang didalam komputer tersebut. Tetapi saya amat yakin yang laptop saya telah mempunyai Java. Setelah google, saya dapati secara default, Android Studio akan mencari java versi 1.6.. tetapi saya menggunakan versi 1.8

berikut adalah langkah-langkah yang saya ambil untuk membetulkan kesilapan ni.

1. semak versi java di dalam komputer. Jika tidak ada.. install.
    dalam contoh di atas, saya dapati versi java saya adalah 1.8.0_25

2. masuk ke /Applications dan klik kanan mouse dan pilih "show package contents". kemudian klik "Contents".

3. edit file info.plist cari JVMVersion dan edit versi java  anda disini. save.

4. walah... Alhamdulillah, selesai.

sahkan pemilikan domain

salah satu ciri yang ada didalam SAAS adalah membenarkan pengguna menggunakan domain mereka sendiri. sebagai contoh, di dalam blogspot, kita boleh menggunakan sama ada domain hanafiahyahya.blogspot.com atau domain pilihan sendiri contohnya example.com.

bagi menggunakan domain example.com, kita hanya perlu set cname ke lokasi yang ditentukan. Tetapi adakah domain yang di masukkan oleh pengguna itu adalah domain mereka?. apa yang berlaku jika mereka masukkan domain orang lain seperti google.com atau ibnuyahya.com?. Secara logiknya, sudah tentu domain tersebut tidak akan berfungsi memandangkan mereka tidak dapat set cname ke lokasi sepatutnya. Tetapi ini bukanlah masalah yang utama... masalah yang sebenar akan timbul bila pemilik sebenar domain tersebut mahu menggunakan domain mereka didalam SAAS kita.

Memandagkan domain tersebut telah di daftarkan sebelum ini, maka pemilik sebenar tidak dapat mendaftar kerana ia telah digunakan. Jadi, bagi menyelesaikan masalah ini, kita perlu sahkan pemilikan domain tersebut.

berikut adalah langkah-langkah yang boleh di ambil untuk memastikan pengguna tersebut adalah pemilik/mempunyai akses ke domain tersebut

1. Generate unique hash data untuk di masukkan ke txt record. dalam contoh ini, saya gunakan "sample1-123"

unique hash ini kita simpan didalam database bersama maklumat pengguna.

2. Semak kembali nilai txt record bagi domain tersebut dengan menggunakan function dns_get_record().  Langkah seterusnya, bandingkan sama ada record tersebut sama seperti data yang di simpan tadi. Contoh source code berikut menunjukkan bagaimana kita boleh gunakan dns_get_record() untuk menyemak dns record.

mendaftar akaun CDS

Baru baru ini saya ada mendaftar akaun CDS di RHB Investment Bank. Alhamdulillah, urusan telah selesai dan saya sudah terima Client Code. Langkah seterusnya, boleh la mendaftar di http://www.rhbinvest.com/ untuk menggunakan aplikasi online trading.
Mendaftar akaun CDS tidaklah begitu susah. Berikut adalah keperluan yang perlu di bawa semasa mendaftar
  1. Salinan fotokopi kad pengenalan (boleh juga photostat di kaunter pendaftaran)
  2. Statement bank 3 bulan
  3. RM10 
  4. Isi beberapa borang pendaftaran ( yg ni akan dilakukan di kaunter pendaftaran )
nota: pihak bank akan proses permohonan lebih kurang 1 minggu. 

Untuk makluman, tidak semua bank boleh mendaftar akaun CDS. Hanya bank "inventment" sahaja yang boleh. bagi bank RHB, anda boleh semak senarai dan lokasinya disini http://www.rhbinvest.com/page/site/public/english/locate_us.html

Selamat mendaftar. :)

langkah selanjutnya... kita belajar main saham.

aktifkan celcom 4G LTE

Haritu ada ternampak seorang IM tunjuk benchmark celcom 4G di laman facebook. Dapat 20mbps tuu. Jadi terdetik la saya untuk call celcom bertanyakan tentang perkhidmatan 4G ni bagi pengguna prepaid macam saya.

Ok.
Langkah 1,
pastikan kita subscribe MI38 , saya pun baru tau pasal ni. sebelum ni, paling lama pun saya subscribe 1 minggu saja. Tak tahu pula ada langganan 30 hari.

sms MI38 ke 28882

kemudian reply

BROADBAND YES

Langkah 2
lepas subscribe mi38, baru boleh activate 4G. Caranya

sms ON 4GLTE ke 28882

kemudian reply

4GLTE YES


Selesai.

rujukan
https://www.celcom.com.my/personal/promo/4glte?pid=1360826467841

Semantic Versioning

Label atau Versioning bukanlah sesuatu yang asing dalam dunia Pembangunan Perisian. Boleh dikatakan setiap developer akan melabelkan atau memberi versi kepada perisian yang di'release'.

Ada yang menggunakan tahun sebagai release version seperti "appname-2014" dan tidak kurang juga menggunakan nombor seperti "1.0.0" sebagai rujukan.

Secara personal, saya lebih berminat menggunakan nombor dengan format berikut MAJOR.MINOR.PATCH

untuk keterangan lanjut, anda boleh baca panduan yang di tulis oleh Tom Preston-Werner di http://semver.org/

ubah default php dalam mac osx kepada xampp

Secara default php didalam terminal akan menggunakan versi php yang disertakan didalam mac osx. Jika anda menggunakan 3rd party stack seperti XAMPP dan MAMP, mungkin anda akan mengalami masalah php version & seting yang tidak sama dengan stack anda.

Bagi menyeragamkan php version kita, lebih mudah jika kita tukar/pointkan php dalam terminal ke lokasi yang sama dengan stack kita. Dalam contoh ini, saya akan pointkan lokasi php dalam terminal ke lokasi yang sama bagi XAMPP. 


aws : high availability ( HA )

HA didalam dunia web adalah satu architecture yang dibuat bagi memastikan aplikasi/web dapat diakses sepanjang masa.Cuba bayangkan laman web jualan anda tidak dapat diakses oleh pelanggan dalam tempoh masa tertentu. Pastinya pelanggan anda akan bising bukan? :)

Bagi menyelesaikan masalah ini, architecture HA di bina. Walau bagaimanapun, untuk mencapai Availability 100% agak mustahil, tetapi tidak bermakna ia tidak boleh dicapai. Sebagai contoh. AWS memberi jaminan 99.95% availability untuk EC2 instance, ini bermaksud maksimum downtime untuk EC2 adalah 4.38 jam setahun, atau purata 21.56 minit sebulan.

Baca lagi »

App Store bugs?

Mungkinkah ini adalah bugs didalam Mac Osx App Store?. Widget tersebut adalah untuk Top free apps. Tetapi paid apps juga termasuk didalam senarai. Atau adakah paid apps ini akan dijadikan sebagai free sebagaimana xcode?.

 

Menguji paparan mobile dengan Google Chrome Browser

Seperti yang kita sedia maklum, kebelakangan ini term/keyword Responsive design begitu popular. Terdapat banyak juga css framework yang memberi sokongan responsive design seperti Bootstrap, Zurb Foundation, Gumby, Skeleton dan banyak lagi.

Responsive web menjadi popular disebabkan hadirnya peranti-peranti mobile dan tablet yang membolehkan pengguna melayar internet.

Sebagai web designer atau programmer , sudah tentu menjadi rutin untuk anda menguji paparan web anda. Paparan menggunakan monitor, menggunakan tablet dan mobile.

Baca lagi »

php : belajar curl

Dalam post lama saya ada buat tutorial berkenaan curl. Malangnya blog lama saya dah di padam semasa berpindah ke blogspot. Walau bagaimanapun, source code tutorial tersebut masih ada di dalam repository github saya.

Anda boleh dapatkanya di sini https://github.com/hanafiah/belajar-curl 

PDO : Perbezaan bindParam() dan bindValue()

Dalam tutorial Tutorial PHP Data Objects ( PDO ) yang lepas, saya ada menggunakan method bindParam() untuk "bind" parameter kepada pemboleh ubah tertentu. Ada yang bertanya mengapa tidak menggunakan bindValue(). Jawapan ringkas, tiada masalah untuk gunakan bindParam() atau bindValue().

Tetapi lebih baik saya tunjukkan perbezaan antara kedua method ini dan anda tentukan yang mana perlu.

Baca lagi »

Tutorial PHP Data Objects ( PDO )

Pengenalan

PDO atau PHP Data Objects merupakan lighweight extension yang membolehkan kita akses ke pelbagai database bergantung kepada PDO drivers yang ada.

untuk senaraikan database drivers yang ada didalam komputer/server kita, kita boleh gunakan arahan PDO::getAvailableDrivers()

print_r(PDO::getAvailableDrivers());

setakat ini, beberapa database telah di support seperti MySql dan Oracle . Senarai penuh database yang di support boleh dapat di sini http://www.php.net/manual/en/pdo.drivers.php

Baca lagi »

jquery : pagination plugin

Assalamualaikum

Di penghujung tahun 2013 saya ada bangunkan satu jquery pagination plugin yang menggabungkan ajax, twitter bootstrap dan cache.

Tujuan utama plugin ini adalah memberi flexibility kepada saya untuk memaparkan kontent kedalam div element disamping mengurangkan server hit setiap kali user klik pada pagination link.

Jika berminat, dipersilakan untuk clone & fork dari akaun github saya

https://github.com/hanafiah/pagination

Demo
http://sandbox.ibnuyahya.com/pagination/example.html

aws : Load Balancing

Load balancing didalam dunia web adalah satu kaedah untuk membahagikan beban traffic kepada beberapa server. Ini disebabkan sebuah server tunggal tidak mampu lagi menampung bebanan traffic. Langkah pertama, mungkin kita akan buat vertical scaling ataupun scale up dengan menambah resource seperti memory dan sebagainya.

Vertical scaling mempunyai limitation, sampai satu tahap, kita tidak boleh tambah resource server lagi disebabkan kekangan hardware itu sendiri. Contohnya IBM BladeCenter HX5 boleh upgrade memory Up to 512 GB per 2-socket HX5, up to 1.0 TB for a 4-socket HX5 configuration, and up to 1.25 TB for an HX5 + MAX5 configuration .

Baca lagi »

Install PHP APC

Php APC , Alternative PHP Cache merupakan salah satu komponen yang agak penting bila kita berbincang tentang server performance.

Seperti yang diketahui PHP merupakan dynamic server-side scripting language yang memerlukan ia di compiled /interpreted setiap kali request ke server berlaku. Dalam banyak kes, kod yang perlu compiled /interpreted akan menghasilkan result yang sama. Ironinya, jika sama, tak perlu lah di compiled /interpreted setiap kali berlaku request yang sama tersebut.

Baca lagi »

Annual meeting

Bersiap siaga untuk annual meeting company. Aish... ni nak pi meeting je pi hiking.

aws : Memasang Statik IP menggunakan Elastic IPs

Sambungan dari tutorial memasang server di EC2, statik ip diperlukan untuk memastikan public ip kita tidak berubah jika EC2 Instance restart.

Dalam contoh dibawah, perhatikan instance id (1) dan juga public ip (2) 



Ip Address sebelum saya Stop dan Start instance adalah 54.184.205.80 manakala setelah instance restart, Public Ip (4) sudah berubah menjadi 54.184.148.81


Untuk mengelakkan masalah dynamic ip ini, kita boleh memasang Static IP (5) menggunakan Elastic Ips.

Baca lagi »

aws : Memasang server di Amazon Elastic Compute Cloud (Amazon EC2)


Kita mulakan dengan mengakses ke Amazon Management Console dengan menggunakan url dibawah
https://console.aws.amazon.com/console/home

Jika anda masih belum mempunyai akaun AWS, anda boleh mendaftar dan dapatkan free-tier selama 1 tahun.

Klik pada pilihan menu EC2 sebagaimana gambarajah di bawah.


Sebelum kita mula membuat instance baru, langkah yang paling utama adalah pilih region yang anda inginkan. Region ini adalah dimana anda akan install EC2 instance anda. Sebagai contoh, saya pilih region Oregon (1). Kemudian klik pada Instances (2) dan di ikuti dengan Launch Instance (3)

Baca lagi »

Pelik tapi benar. Mouse berfungsi dengan satu bateri.

Memang agak pelik. Mouse saya ni berfungsi dengan satu bateri je.
So far takda masalah. Saya boleh guna mouse macam biasa walau dengan satu bateri saja.
Sekarang masuk hari kedua. Nak tgk berapa lama dia skan bertahan. :)

Testing blogger apps

hi

Saya hantar post ini mengguna android apps.

Senarai Transactional Email Services

Trend sekarang ini developer banyak "leverage" servis bagi mengurangkan kerja-kerja maintenance dan memudahkan kerja development. Begitu juga dengan email servis, jika kita tidak mahu setup mail server sendiri, ada beberapa pilihan yang boleh dipilih seperti senarai dibawah ini


  1. Mailgun
  2. Postmark
  3. Postcron
  4. Mailjet
  5. JangoMail
  6. SendGrid
  7. Silverpop
  8. PostageApp
  9. Amazon SES
  10. lagi? sila tambah di ruangan komen.

Jika anda menggunakan salah satu dari servis tersebut, sila komen di bawah.