Typescript – Builder Pattern and Inheritance

Using Typescript, I want to make a class of Builder of abstract class and follow a Builder Pattern and the child class will implement the details.

The parent abstract class:

The child class:

If you notice, you need to change the return of build() function into child class name.

typescript builder pattern and inheritance - child class
typescript builder pattern and inheritance – child class

Selenium – This version of ChromeDriver only supports Chrome version 85 error on Ubuntu

I use Selenium web driver to scrap some website data that I need for my property analysis. In this case I use chromedriver.

When I want to run it after I upgraded my Chrome browser on Ubuntu I found this error.

My steps to resolve this

1) Check my Chrome browser version and found it is 87.

google browser version
google browser version

2) Check my chromedriver version by typing

ubuntu check chromedriver version
ubuntu check chromedriver version

I found my version is 85 not same as my browser.

3) Check the location of the chrome driver by typing

In my case I found my chrome driver at /usr/local/sbin

chrome driver location on ubuntu
chrome driver location on ubuntu

4) Download the latest chromedriver at

Google ChromeDriver Website  till version 114

5) After extracting the latest chromedriver, replace the old one.

ubuntu replace old chromedriver
ubuntu replace old chromedriver

Then when I run back my program, it works!

World Biggest Technology Companies by Countries

I want to compare which countries have the most influence in technology. So I did my studies based on world biggest technology companies.

world biggest technology companies
world biggest technology companies

US still dominates technology with 50% of world biggest technology companies come from this country.

Followed by Japan (3), China (2), South Korea (2) and Taiwan (1).

From Y2018 to Y2019, number of companies from each country remains the same but China technology companies share in term of revenue increase marginally by 0.91% at the expenses of South Korea and the United States.

Besides, only US represents the Western countries which have biggest technology companies while the rest are all from Far East.

Reference:

Wikipedia – World Biggest Technology Companies

Surat Rayuan Pengurangan Cukai Taksiran Majlis Perbandaran

Saya amat terkejut dengan kadar cukai taksiran di Bentong sebanyak RM1,077.30 setahun untuk sebuah kondominium bersaiz 818 kaki persegi.

Ianya amatlah mahal jika dibandingkan dengan kadar cukai taksiran di Shah Alam di mana rumah teres hanyalah RM280.80.

Disertakan contoh surat bantahan cukai taksiran untuk mereka yang ingin menyerahkan bantahan kepada mana-mana majlis perbandaran.

Contoh Surat Bantahan Cukai Taksiran

contoh surat bantahan cukai taksiran majlis perbandaran
contoh surat bantahan cukai taksiran majlis perbandaran

Klik sini untuk contoh dalam PDF surat bantahan cukai taksiran Majlis Perbandaran.

Proses Bantahan

  1. Majlis Perbandaran akan menghantar surat kepada pemilik mengenai kadar cukai taksiran yang dikenakan.
  2. Pemilik hendaklah menghantar surat bantahan kepada Majlis Perbandaran
  3. Menghadiri sesi bantahan dan menerangkan dari segi fakta kenapa pemilik menganggap cukai taksiran adalah tinggi seperti perbandingan dengan Majlis Perbandaran yang lain.
  4. Majlis Perbandaran akan menggunakan akta kerajaan negeri tempatan untuk mempertahankan kadar cukai taksiran yang diberi.
  5. Majlis Perbandaran akan menghantar surat mengenai pengurangan atau mengekalkan kadar cukai taksiran selepas sesi bantahan tersebut.
  6. Jika Majlis Perbandaran telah menghantar bil cukai taksiran  anda hendaklah membayar terlebih dahulu.Jika bantahan cukai taksiran berjaya, Majlis Perbandaran akan mengubah dan mengambil kira bayaran yang terlebih untuk bayaran bil akan datang.

Pengalaman Menghadiri Sesi Bantahan Cukai Taksiran Majlis Perbandaran Bentong pada 23 September 2020

sesi bantahan cukai taksiran majlis perbandaran bentong 23 september 2020
sesi bantahan cukai taksiran majlis perbandaran bentong 23 september 2020
cukai taksiran majlis perbadaran bentong 2020
cukai taksiran majlis perbadaran bentong 2020

Majlis Perbandaran Bentong masih membenarkan pemilik untuk hadir sesi bantahan walaupun tidak menghantar surat. Cukup hanya menghantar email sebelum sesi bermula.

Sesi dimulakan dengan pengenalan kepada ahli-ahli majlis perbandaran yang hadir untuk mendengar sesi bantahan.

Pemilik menerangkan kenapa kadar cukai taksiran dianggap tinggi:

  • Perbandingan dengan kadar cukai taksiran Majlis Perbandaran yang lain
  • Fakta yang berkaitan dengan peribadi contoh telah  bersara, kos hidup yang tinggi.
  • Skop kerja Majlis Perbandaran tidak banyak terutama untuk kondomium di mana kebersihan kawasan dan landscaping diuruskan sendiri oleh JMB.

Majlis Perbandaran akan mempertahankan kadar cukai taksiran berdasarkan akta kerajaan negeri tempatan yang telah diluluskan di mana cukai taksiran dikira berdasarkan kadar dan harga rumah.

 

 

 

Resipi Nasi Goreng Tomyam

Long due to update blog on recipe and cookery. Sebenarnya i can say my cooking dah upgraded sket from before disebabkan pandemik COVID-19 lama sangat bertapa kat rumah macam-macam buat dari mengemas, make over, repainting sampai laa exploring resipi-resipi baru.

Slowly i will update mana-mana menu yang best and my family suka. Bila dah bosan dengan masakan bibik atau beli makanan luar mula akan google apa yang mudah dan sedap untuk di makan. Tomyam sup memang la common sangat kalau dah tak tau nak masak apa – match dengan telur dadar dan sayur pun dah cukup.

resipi nasi goreng tomyam
resipi nasi goreng tomyam

Hari ni i buat kelainan iaitu Nasi Goreng Tomyam

Pertama sekali masak nasi supaya bila nak campur dengan rencah nanti nasi tak superhot dan lembik.

Bahan – bahan;

  1. bawang merah + bawang putih + halia + cili api (kisar untuk dijadikan bahan tumisan)
  2. paste tomyam
  3. sos ikan
  4. ayam potong kecil atau ikut suka (utk siapa yang suka seafood boleh tukar accordingly)
  5. daun limau purut (hiris halus)
  6. carrot (potong mancis)
  7. sawi
  8. hirisan halus serai
  9. telur
  10. garam
  11. lada sulah
paste tomyam
ready made paste tomyam

Cara memasak;

  1. Masukkan minyak dan tumis bahan tumisan (bawang merah, bawang putih, halia dan cili api) sehingga kuning keemasan.
  2. Masukkan paste tomyam dalam 3-4 sudu besar dan hirisan serai (agak mengikut banyak  nasi yang akan dicampurkan kemudian)
  3. Apabila paste dah sebati dengan bahan tumisan barulah masukkan ayam dan carrot kacau sehingga masak. Pada masa yang sama boleh masukkan sos ikan, daun limau purutdan garam.
  4. Bila ayam sudah masak baru masukkan telur – kacau (2) teknik i guna biasanya dalam kuali sama just split side untuk stir telur tanpa mix dengan rencah tadi.
  5. Kemudian campurkan sayur sawi dan nasi – gaul rata sampai perencah sebati dengan nasi.
  6. Hidangan Nasi Goreng Tomyam selesai. Boleh add on keropok, telur mata atau ayam goreng untuk dimakan bersama. Tak nak add apa pun takpe. Selamat mencuba ya!

Programmers Quadrant or Software Developers Quadrant

I created the Programmers Quadrant to make my software developers team aware of their current skills position.

With the quadrant,  a programmer can easily visualize where are they now in term of skills.

The quadrant has Data Structure and Algorithm as its vertical axis. While Reusable Codes as it horizontal axis.

This programmers quadrant is only for someone who knows to code already. If he is still learning, he won’t be categorized under this quadrant.

Data Structure and Algorithm Vertical Axis

This axis represents how good a programmer regarding data structure or algorithm.

The better he is the higher he can go into the axis.

Given a set of requirements, a programmer must be able to identify the best data structure and algorithm to solve the requirements.

Reusable Codes Horizontal Axis

This axis how good a programmer in making a reusable codes instead of hard coded to a specific application.

A person who has good knowledge on object oriented programming, design pattern, best coding practice and follows naming convention standard.

4 Programmers Quadrants

#1 – Einstein Coder

A programmer who is very good in data structure and algorithm but at same time can produce reusable codes.

#2 – Genius Code

A programmer who can create or know what is the best data structure or algorithm to be used but his code is hard coded.

#3 – Engineer Coder

A programmer who most of the time uses third party library or technology to make its application and the code produced is reusable and easily readable.

#4 – Frankenstein Coder

A programmer who use third party library, can make an application works but he produces hard coded application and not reusable for other application and not easily readable.