Monday, December 27, 2021

Rectangular wooden digital LED alarm clock with humidity and temperature display

I have bought this rectangular wooden digital LED alarm clock with humidity and temperature display during the recent 12.12 online sale fiesta, at the price of slightly below RM40.

You can use it as a normal desktop clock (with the alarm function switched off) and also as your bedside alarm clock (with up to 3 different alarm time settings).

It is pretty feature-rich. Other than displaying the time (in either 12-hour or 24-hour format), it also displays the humidity (in RH percentage) and room temperature (in either degree Celsius or Fahrenheit). In DP-1 display mode, it can even show the date of today.

When your air-cond is turned off, and the humidity is above 75%, there is a high possibility that it is going to rain.

In normal days, the humidity level should be between 35%-65%. Higher than that, you should consider using dehumidifier to prevent the growth of mold and pests. Lower than that, you should consider using humidifier instead to safeguard the lifespan of your wooden floorings and furniture.

When your air-cond is turned on, both the humidity and temperature should drop. The room temperature should stay at the level that you set for your air-cond, otherwise you might need to service your air-cond as it no longer able to condition your room temperature according to your setting.

There are 3 power sources for this alarm clock:
  • Internal CR2032 battery, used as emergency power source to memorize your clock settings and to keep the time running when there is no other power sources available.
  • 4x AAA batteries, used as emergency power source for the alarm clock to function as normal, in the event of electricity blackout. Without the USB power source, the AAA batteries will be used up within 24 hours.
  • DC 5V 300mA USB power source, which is the main power source for this alarm clock. Note that the alarm clock only comes with a USB cable, and you need to prepare your own wall charger to supply the DC 5V 300mA power supply to the clock.

There are only 3 buttons at the back of the clock (Set, Up and Down), making it a little bit tricky to set up the clock. Anyhow, it comes with a comprehensive multilingual instruction manual for you to refer to when setting up the clock.

There are 3 brightness levels for its LED display. During 6.00pm to 6.59am, the brightness level will be automatically switched to the lowest. This is a nice feature so that its LED display will not be too bright at night until it might disturb your sleep.

The LED display even has a "power saving" mode that will turn it off after 15 seconds of display. You can either touch the clock with your hand, or make some noise by clapping your hands near the clock, to bring up the display. You can also turn off this "power saving" mode for the LED display to stay on.

This clock has altogether 3 alarms, which you can set up to 3 different time of the day for it to chime. In addition, it also has a setting for the alarm function to only work during weekdays, and it won't wake you up during weekends.

All in all, I find this alarm clock elegant looking, feature rich and practical to use. It is inexpensive too, either for own use or as a presentable gift.


Saturday, December 25, 2021

Gas stove heat diffuser metal plate

 I bought this 28cm heat diffuser aluminium plate for gas stove at the price of RM28.80.


It works by placing it on top of gas burner, so that:

  • To distribute heat from the underneath fire evenly, and avoid scorching. This also keeps the base of your cooking utensil clean and anew.
  • To support cooking utensils with smaller base, so that they can sit stably on top of the burner.
  • There is less mess in the event of soup overflow and spillage, as the plate will hold the spilled liquid, preventing it from dropping into the fire and burner.
This plate has 2 sizes available in the market: 24cm and 28cm. If you are in doubt, get the larger 28cm one. If your gas burner is small, you can get the 24cm one, as it will heat up faster and therefore able to save some cooking gas.

This plate also has several different thickness available in the market: 4mm, 6mm, and some even 8mm.

4mm one is just nice. Thicker plates are more heavy-duty to support heavier weight on top of it without deformation. However, they will need more time to diffuse and heat up, and will use up more cooking gas.


There is a chuck that comes together with the plate, for you to move the plate without worrying about burning your hand when accidentally holding a hot plate.





Sunday, December 19, 2021

Replaced my instant shower heater from Alpha Smart 18EP to Joven SL30iP

Recently, the "Line Fault" indicator of my 6 years old Alpha Smart 18EP instant shower water heater in one of my bathrooms had changed from its usual green light to red light. This is the same shower heater that was repaired in 2017 before.

I have replaced it with a new Joven SL30iP shower heater with DC inverter pump.


I bought the model without rain shower head for a cheaper price at around RM440, and managed to use back the rain shower head of the replaced Alpha Smart 18EP.

I have chosen Joven SL30iP this time, because:

  • It has a very high performance/cost ratio, even higher than Alpha Smart 18EP.
  • While the Alpha Smart 18EP has an AC pump, this Joven SL30iP has a DC inverter pump, which is much silent and saves electricity. More importantly, DC pump is less prone to electric shocks than AC pump.
  • It has a built-in double poles Electronic Earth Leakage Sensor (EELS) with a very good 10mA sensitivity.
  • It supports a lower minimum water pressure at 10kPa / 1.45 psi / 0.1 bar.
  • It supports a lower minimum water flow at 2 litres per minute.
The only thing I don't like about this Joven SL30iP instant shower water heater is that its pump on/off switch, EELS test switch and EELS reset switch are located at its side instead of its front, making it harder to locate the right switch you want to press on.

Note that the water inlet and outlet of this Joven SL30iP are on the opposite side compared with the Alpha Smart 18EP. If you connect its water inlet and/or outlet on the wrong side, the water heater will not operate.

Same with Alpha Smart 18EP, the casing of this Joven SL30iP is IP25 splash proof.

If you are surveying on your new instant shower water heater, perhaps you can consider this one.


Tuesday, December 14, 2021

How to keep MS Outlook meeting invitations inside Inbox after responding to them?

This is a frequently asked question (FAQ) that many people using Microsoft Outlook as their email client found their meeting invitations automatically deleted and moved from Inbox to Deleted Items folder once they've clicked on the button to accept or decline the meeting invitation.

The accepted meetings will appear inside your Calendar.

I believe many people prefer to keep the original meeting invitation emails inside their Inbox instead of deleting them, because the invitation email might contain important information about the meeting, such as the meeting agenda, attached documents, etc.

In fact, deleting responded meeting invitations from Inbox is not a bug, but rather a strange default behaviour of MS Outlook.

To change that default setting to retain your meeting invitation emails inside Inbox, go to File > Options, the Outlook Options dialog box as below will popup.


Select Mail on the left menu, scroll down to the Send messages section, and uncheck the option of "Delete meeting requests and notifications from Inbox after responding".

Click the OK button and you are done.


Friday, December 10, 2021

K8 body temperature infra-red thermometer powered by USB

Nowadays, infra-red thermometers are widely used in a lot of places to capture our body temperature, especially for COVID-19 preventive measure at the entrance of most commercial premises.

Infra-red thermometer has the following advantages:

  • Non-contact way of measuring body temperature
  • Fast measurement time of around 1 second
  • Pretty accurate if there is no other infra-red source around that might interfere with its signal receiver
  • Affordable price
For home and personal use, if we want to buy an infra-red thermometer, we might want to look for the following features:
  • Small and lightweight, easy to carry along, and save storage space
  • Accurate reading
  • Non-battery powered, since we are not going to use it frequently
  • Cheap price
I found the K8 body temperature infra-red thermometer that operates with DC 5V and powered by USB, cost slightly above RM10, is an ideal one to be used.


This small little device actually has 3 variants of power source connector: USB-C, micro-USB and lightning connector. If you want a future proof one, choose the one with USB-C connector.

It can be powered by the USB port of handphone...


or powered by the USB port of other devices, such as a laptop.


There is a button at its back to switch its reading between Celsius and Fahrenheit.

It will beep when it captured a new temperature reading in the rage between 32 °C to 42 °C. You will most probably get the same temperature when placing your forehead or palm in front of it.


Friday, December 3, 2021

Self COVID-19 testing by saliva with Sejoy SARS-CoV-2 antigen rapid test kit

There will be occasions that you need to do a COVID-19 self-test, to ensure that you are free from COVID-19 infection, before you attend certain events or enter into certain premises.

There are generally 4 types of COVID-19 self-testing kit available in the market now:

  • Nasal swab specimen test
  • Mouth swab specimen test
  • Nasal + mouth swab specimens test
  • Saliva specimen test
Among them, I find the saliva specimen test type is the easiest to use, cheapest to buy, and does not cause any discomfort during specimen collection.

You can get the Sejoy SARS-CoV-2 antigen rapid test kit at a price of slightly below RM5 per box (for single test) in Mr. DIY, 99 Speedmart, pharmacies, online e-commerce stores, and some other places.


A brief instruction on how to use it is printed at the back of its packaging box.


There is also detailed instruction printed on a large piece of paper inside the box.

Here are the steps to use it:
  • Do not eat or smoke or drink anything other than plain water at least 30 minutes before the test.
  • Wash your mouth with plain water.
  • Use a knife or scissor to unseal the box by breaking its "QC Passed" sealing sticker.
  • Take out its content.
  • Assemble the saliva collection funnel kit on top of the extraction tube.
  • Collect your saliva into the extraction tube until the saliva is slightly on top of the level mark you can see near the bottom of the extraction tube.
  • Remove the saliva collection funnel kit and put it inside the biohazard waste bag.
  • Put the extraction tube into the hole at the back of the packaging box, so that it won't fall down.
  • Unseal the extraction reagent bag.
  • Drop all the extraction reagent liquid into the extraction tube by squeezing on its bag.
  • Cover up the extraction tube with its attached stopper.
  • Mix your saliva with the extraction reagent by shaking the extraction tube for about 1 minute.
  • Take out the test cassette from its aluminum foil pouch.
  • Drop 2 drops of the mixture in the extraction tube by squeezing the tube on top of the "S" area on the test cassette.
  • You will see the liquid slowly moving from one end of the test paper to the other end. The paper will become purple in colour during the movement, and will change back to white after the movement.
  • The test result should be ready in 15-20 minutes.

  • The control line at "C" position should appear, otherwise the test is not successful, and you will need to redo the test again with a new test kit.
  • If you see another line at "T" position, your test result is COVID-19 positive. If there is no line at "T" position, congratulations, your test result is COVID-19 negative.
  • After the test, insert everything (except the large instruction paper) into the biohazrd waste bag, seal it before disposal.

After using the COVID-19 self-testing kit, you are required to report the test result in MySejahtera app regardless your test result is positive or negative.
  • Open up MySejahtera app in your mobile device.
  • Tap on the "Close" button to close the front page.
  • Tap on the "COVID-19 Self Test" icon.
  • Select "Update Self-Test Result".
  • Continue to follow the on-screen instructions to complete your reporting.

The COVID-19 self-testing kit is labelled with manufacturing lot number, year and month of manufacture, and also the year and month of expiry. At first I thought I'd need to key-in these information in the report, but it ends up I just need to report on whether my test result is positive or negative.

If you are tested COVID-19 positive, then you should reconfirm by taking another test with a new test kit.

If both the tests are showing COVID-19 positive, please isolate yourself immediately, and contact MOH immediately. You can click here to get the MOH COVID-19 hotline contacts.


Thursday, November 25, 2021

My DEOcross C-ears electric earwax cleaner

If you have family member(s) who loves to pick ears using the traditional earwax rod or even cotton rod, here is a better and safer gadget for them.

This DEOcross C-ears electric earwax cleaner only cost me around RM15.

It operates with an AAA alkaline battery, and works by vibrating and vacuuming the ear wax out into its nozzle.

Here is the content inside the packing box:

  • Transparent plastic casing
  • The main body
  • 2x removable nozzles
  • Cleaning brush
  • AAA alkaline battery


On its body, there is only one button to turn it on and off.

Its removable nozzle is soft, with a length of 2.5cm which is safe to use for ordinary human inner ear.

After use, you can detach the nozzle and clean it with water.

There is a filter at the main body's head to prevent the vacuumed earwax from entering into the main body. It is also removable and can be washed with water.

The only complaint I have with this gadget is that, its battery compartment cap is pretty loose and easy to drop off. I use a piece of cellophane tape to stick the cap firmly to its body.


Friday, November 19, 2021

My portable ultrasonic turbine mini washer

Other than my CCKO CK9919 stainless steel smart garbage bin, I have also purchased a portable ultrasonic turbine mini washer at the price of slightly above RM40, during the recent 11.11 big sale promotion festival. It is mainly used to wash the mopping cloth of my Roborock S7 robot cleaner.


Inside the packaging box, there are:
  • The round washer unit with 9cm diameter, which can be put inside water.
  • USB cable with a controller unit in the middle. The controller unit cannot be put inside water.
  • USB traveler wall charger, also cannot be put inside water.


Some similar products come with a water bucket. The water bucket can even be foldable to save storage space and to make it easier for carrying along. However, those units with attached water bucket can easily cost double the price than this one.

As you can buy a bucket at the price of a few ringgit only, I think this unit without bucket is good enough, and it has a much better cost-performance ratio.

There are 3 suction cups under the unit. You can stick it at the bottom of a water bucket, or at the inner wall of the water bucket, or inside a basin, or inside any suitable water container.


This mini washer is designed to wash up to 1kg load of clothes, which is more than enough to wash my robot's mopping cloth.


It has 4 modes of operation, controlled by its controller:

  • Mode A: cycles of 2 minutes forward and reverse spinning + 1.5 minutes of ultrasonic cleaning + 5 minutes of bubble cleaning
  • Mode B: forward and reverse spinning
  • Mode C: ultrasonic cleaning
  • Mode D: bubble cleaning
Its forward and reverse spinning action will produce a swirl in the water, to clean up the clothes inside, similar to the way of how ordinary washing machine functions.

When the washing is finished, you can switch off its electricity power at the wall socket to turn it off. Otherwise, it will automatically turn off itself after 30 minutes of operation.

See it in action in the video below:


I find it to be a very good companion for any robot cleaners with mopping function. You can wash several mopping clothes together at one go with it.


Wednesday, November 17, 2021

My CCKO CK9919 20 litres stainless steel smart rechargeable sensor garbage bin

During the recent 11.11 big sale promotion festival, I have purchased a CCKO brand (model CK9919) 20 litres stainless steel smart rechargeable sensor garbage bin to be used in my kitchen. Its price was around RM170 after discount.


It is "smart" in the sense that it can automatically open its lid whenever its infra-red sensor detects an object near its top, then start a 5 seconds countdown after the object is cleared, and then automatically close back its lid.

You can see it in action in the video below:


Besides infra-red object detection, its lid can also be automatically opened by slight vibration to the bin (such as gently kicking its body) or by pressing a button on its top panel.

In this way, you can throw your rubbish into it without touching any part of the garbage bin. Convenient and hygienic.

There are other even smarter models of garbage bin available in the market. Some can even automatically wrap up the garbage bag inside when it is full, and automatically reload a new garbage bag after the existing used one is taken away. However, those types of smarter garbage bin require the use of their own special garbage bag (which is not cheap), and their price is higher too. Therefore, I did not choose those smarter type.

There are quite a number of different sizes available for CCKO elegant stainless steel garbage bin. In terms of shape, there are also 3 choices: round cylinder, rectangular and square.

For kitchen use, I found the rectangular type is more space-saving, and the size of either 15 litres or 20 litres is more suitable. Both the 15 litres and 20 litres have the same base size of 30cm x 22cm. Their difference is on the height: 20L one has a height of 50.5cm whereas 15L one is 39.5cm.

You can use smaller size one for living room, bedroom, writing desk, toilet, etc. accordingly.

The CCKO smart garbage bin consists of 3 parts: the stainless steel outer bin, black colour plastic inner bin, and its cover. Just like normal garbage bin, you can put garbage bag inside the inner bin to collect your rubbish.

This CCKO garbage bin comes with a user manual, a QC certificate, a USB charging cable, and 3 sample garbage bags. The user manual is written in Chinese.



Its actual opening available for you to throw rubbish is approximately 25cm x 13.5cm only.


The magic is played by its cover, with sensors and electronic motor to open and close its lid. It is powered by a 1,500 mAh rechargeable 18650 lithium-ion battery. The size of this 18650 battery is larger than AA size battery.

Charging can be done by connecting the round connector of its charging cable to its charging port, and the USB end to either a wall charger or a power bank. It is said that a single charge can last for more than a month operation.


When you take out the cover and turn it over, you can find 2 compartments. One is the battery compartment, and the other compartment is used to place a bag of activated carbon to remove bad odour.



I like this garbage bin very much. It is smart. Its stainless steel body looks solid, classy and elegant. It is easy to use.

More importantly, this CCKO CK9919 garbage bin is water-resistant, protecting its electronic parts from damage being splashed by liquid. I did read some online reviews to some of its cheaper counterparts without water-resistant feature that those garbage bin will stop working after some time, probably due to electronic parts damaged by liquid.


Friday, November 5, 2021

My B03 home-use upper-arm digital blood pressure measuring and monitoring machine with colour background and voice function

After I have purchased and used the Jumper JPD-500E fingertip pulse oximeter, I have recently added a B03 home-use upper-arm digital blood pressure measuring and monitoring machine for my family use.


There are several types of home-use blood pressure monitor available in the market, including the traditional bisep (upper-arm) type, wrist type, finger type, etc. The American Heart Association (AHA) recommends the upper-arm culf type for more reliable measurements.

This B03 upper-arm digital blood pressure monitor can operate with 4 AAA-size alkaline batteries, or powered with 6V USB power source. It has English speaking voice function, providing instruction for blood pressure measuring, and reading out the result after the measurement is completed. It cost slightly more than RM50.


This machine provides 3 measurement values, namely Systolic (upper) value in mmHg, Diastolic (lower) value in mmHg, and pulse rate in bpm. It has memory to store up to 99 times of readings each for up to 2 different persons. It will auto power-off itself 1 minute after measurement is completed and there is no further operation by the user.

Before its first usage, we need to set its date and time by long pressing the S button and then using the M button to do the value setting, so that the date and time for its stored readings are correct.

Blood pressure readings below 120/80 mmHg are considered in the normal range. High blood pressure a.k.a. hypertension is categorized base on severity into Elevated, Stage 1 Hypertension and Stage 2 Hypertension.

Hypertension is also called "the silent killer" as many patients do not have obvious symptom for years. They might not be aware of having hypertension, unless periodically doing medical check-up with doctor, or using this type of home-use digital blood pressure monitor to frequently self check-up.

Hypertension after the Elevated level will need to seek for medical consultation from doctor, and medication might be needed to lower down the blood pressure. Prolonged hypertension can cause damage to body organ.

On the other hand, low blood pressure a.k.a. hypotension refers to blood pressure readings below 90/60 mmHg. Hypotension generally has less impact to our health than hypertension, and usually does not need any special medical treatment, unless there is symptom occurred.

The B03 digital blood pressure monitor uses the standard from World Health Organization (WHO) to determine the category level of its measured blood pressure. Its backlight will turn green for normal blood pressure, orange for mild hypertension, and red for severe hypertension. This visual effect is very handy, especially for the elderly to know the category of their blood pressure level, without the need to interpret the Systolic and Diastolic readings themselves.



The more recent International Society of Hypertension (ISH) 2020 classification of hypertension is as below:


As mentioned in the User Manual of the B03 digital blood pressure monitor, our blood pressure constantly changes throughout the day. It tends to be higher in the early morning and also in the afternoon, and lower at night during our sleep.

There are many mobile apps available to help us record down and monitor our blood pressure readings. Unfortunately, the B03 digital blood pressure monitor is unable to send its readings to our handphone, and we have to manually key-in the readings in the app by ourselves.

One of the recommended mobile app to use is BP Journal developed by a Malaysian called Jason Ong (owner of PortalGroove Solutions). It supports a multitude of global and regional blood pressure classification guidelines (ISH, ACC/AHA, ESH/ESC, NICE, etc.). It supports multi-profiles and able to generate report so that you can share with your doctor or family members.

As prevention is always better than cure, it is highly recommended for every family to be equipped with an upper-arm digital blood pressure monitor, to be used by the whole family, especially the elderly. With the handy blood pressure monitoring machine, you no longer need to check your blood pressure at clinic, as you can self-service at home, and you can have as frequent measurements as you like.


Sunday, October 24, 2021

Online stock filtering and screening by inventory turnover and receivables turnover

Cash flow is critical in running all businesses. Companies without healthy cash flow are very likely to go into financial trouble sooner or later.

In normal business operations, there are several factors that have great impact to the cash flow of the company, including:

  • How fast can the company sell out its goods?
  • How fast can the company collect the full payment from its customers?
The first factor can be rephrased in layman terms as "how fast can the company make money through its operations?", which is no doubt, the faster the better. This can be reviewed by its inventory turnover rate.

When the company's goods are stored in the warehouse or display rack, there is storage cost involved. The value of the goods could also be depreciated as they are approaching their shelflife expiry, or when newer goods are introduced to the market which becomes more attractive to the customers. Most importantly, the goods can only bring revenue to the company after they are sold (or leased) to customers.

The formula to calculate inventory turnover is:

Inventory turnover = Cost of goods sold / Average value of inventory

Low inventory turnover rate indicates:
  • Weak sales
  • Over-stocking (too much goods produced or brought in)
This can be resulting from poor marketing and/or poor sales to clear out the inventory effectively. This can also be due to lack of customers' purchasing interest to the goods, which could be:
  • Price is set too high
  • Product quality is too low
  • Low demand

High inventory turnover rate indicates:
  • Strong sales
  • Insufficient inventory (not a good sign)
This can be resulting from effective marketing and/or aggressive sales. This can also be due to:
  • Price is set too low
  • Product is good that customers are willing to pay for its price
  • High demand
Even if a company achieved a consistently high inventory turnover rate, its cash flow is yet affected by its receivables turnover rate.

There are generally 3 ways a business collect money from its customers:
  • Advanced (prepaid) collection - customer paid before receiving the goods.
  • Cash term collection - customer pay upon goods delivery.
  • Credit term collection - customer is given interest-free period to make payment within a timeline (normally 7-days, 14-days, 30-days, 60-days, etc.) after receiving the goods.
The money that customers owe to the company, normally due to credit terms, is called receivables. It is a common sense that high receivables will tighten up the company's cash flow, and, on the other hand, advanced payment collection will have positive impact on the company's cash flow.

The common formula for receivables turnover is:

Receivables turnover = Total credit sales / Average accounts receivables

However, the formula used in Rakuten Trade Stock Screener is:

Receivables turnover = Total revenue / Average accounts receivables

This could be due to the difficulty in separating the credit sales from the revenue with the financial information made available to the investors.

A high receivables turnover rate indicates that the company is effective in collecting back the money owed by customers. A low receivables turnover rate is normally a red alert to investors and bankers.

Here is an example to perform stock filtering and screening in Rakuten Trade based on the 2 turnover rates as mentioned above.

Login to Rakuten Trade online trading website, select the Stock Screener menu, add a new filtering criterion, and select Receivables Turnover (%). Set its minimum to 10%.

Then, add in another filtering criterion Inventory Turnover (%). Set its minimum to 10%.


You should be able to get a list of around 40-50 matching stock counters on your screen at this moment.

Note that inventory turnover is generally industry-related, and you should compare the inventory turnover rate of a company with its peers in the same industry. For example, we expect a high inventory turnover rate in the FMCG industry.

If you don't have a Rakuten Trade account to access to the Stock Screener above, you can use this link to open a new Rakuten Trade account for free, including no charge for opening new CDS account. By opening account with the link, you can get 500 RT Points within 30 days upon your account activation. Beside that, if you start your trading within the first 10 business days after account activation, your first online trading brokerage fee will be rebated as additional RT Points as well.


Upgraded my Roborock S7 cleaning robot with its auto-empty dock that supports both bag and bagless debris emptying

When I bought my cleaning robot, I have chosen Roborock S7 instead of S6-Max or S5-Max because I knew it is the model that can pair with Roborock auto-empty dock.

In fact, I find it quite difficult to empty out the dust in the Roborock S7 dust box because the debris can be trapped in quite a lot of places inside the dust box. The only effective way to quickly empty it out is to vacuum out the debris, which is exactly what the Roborock auto-empty dock function to do. As such, I suspect that the dust box is designed that way to entice people to buy its auto-empty dock to make life easier.

Currently, there are already 3 generations of Roborock auto-empty dock:

  • The 1st generation can only work with disposable 1.8 litre dust bag, which can easily hold debris for more than a month.
  • The 2nd generation has a cyclone separator unit to collect debris into its dusbin without dust bag. Alternatively, it can also work with the disposable dust bag by replacing the cyclone separator in it with the dust bag components.
  • The 3rd generation, not available to S7 yet, is able to automatically refill the robot's water tank and clean the robot's mopping cloth, besides emptying out the debris from the robot's dust box.
If you intend to buy a Roborock auto-empty docking station, I strongly encourage you to buy the 2nd generation that comes with both the cyclone separator and also the dust bag holder and disposable dust bag. I bought it at the price of slightly above RM1,600 in Banggood online shop.


The Roborock auto-empty dock has 2 colour selections: black and white. The Roborock S7 cleaning robot also has black and white selections.

I find that mixing the colour between the robot and its auto-empty dock also looks nice and would not cause any dissonance. Here is my white Robock S7 and its black auto-empty dock.


You can see that I have already replaced its cyclone separator with its disposable dust bag unit. In this way, I don't need to clean its dustbin, as all the debris will be stored inside the 1.8L dust bag.

Its cyclone separator looks like lotus seedpods. The Roborock auto-empty dock user manual has the instruction to change it with the dust bag unit, and vice-versa.


The Roborock auto-empty dock comes in 2 pieces after unboxing, which we need to assemble its body onto its base by screwing 5 screws that are marked with the screwdriver sign. An L-shape screwdriver is available at the base for that purpose.

The Roborock auto-empty dock comes with a dust box with an air-inlet, to replace the one in the S7. You will need to remove a lit that covers the air-inlet window in the S7 robot too. Detail instruction is given in the user manual.

The debris in the robot's dust box is sucked into the left cylinder of the dock station, and then settles down in the right cylinder, either in its dust bag or directly in the dustbin.

There are 2 filters inside the left cylinder, namely the rear HEPA filter and the front cup filter, both are removable and washable.

After the Roborock S7 robot made its first docking onto this auto-empty docking station, you will find additional functions for this auto-empty dock in the Roborock mobile apps.

The left button at the bottom of the main page has changed to "Empty Dustbin".


There is also an Auto-Empty Settings menu option, in which you can set the empty mode to be either smart, light, balanced, or max.


When assembling this Roborock auto-empty dock, I was amused by its state-of-the-art brilliant and beautiful design, which is a combination of engineering, art, practicality, hygiene, and user experience. It's just amazing. You could be feeling the same when you assemble a unit too.

Note that when the robot is docked onto this auto-empty docking station, it is pretty tightly "sucked" on it and not manually removable, unless by force, which is a big no-no.

If you want to bring the robot to another place for multi-floor cleaning, you can detach it from the docking station by using the Remote Control function in its mobile app. Just control it to move backward, and it will come out from its docking station.

In certain countries, Roborock has bundled them together as S7+. If you see the S7+ model, it is actually an S7 rebot that comes together with its auto-empty dock. But, you need to beware that the auto-empty dock in the S7+ might be of the first generation, without the cyclone separator.


Monday, October 11, 2021

Online stock filtering and screening by profit margins and profit growth

Beside analysing stock counters investability using Return of Equity (ROE) and Return of Assets (ROA), it is also imperative in fundamental analysis to evaluate the business profitability of the stock counters. This can be achieved by looking into their profit margins and profit growth rate.

Operating profit is the profit (i.e. revenue minus the cost of goods sold) derived from the company's core business operations. Operating profit margin is the percentage of operating profit portion divided by total revenue.

A company with higher operating profit margin usually has more room to give discount (i.e. temporary lowering the profit margin in order to secure a deal), and therefore more financially healthy.

Companies which are able to maintain a high operating profit margin all the time are usually having high competition barrier, protecting them from being forced into price war with competitors. 

The operating profit margin is usually going along with the industry. Industries with generally high profit margin including high technology, cosmetics, premium consumer brands, etc. If a company's operating profit margin is above its industry average, it indicates that its management team is more capable in bringing in business profit than its industry peers.

Pretax profit is the profit that takes into account both operating income and non-operating income. Examples of non-operating income including investment gains, forex gains, profit from selling out fixed assets, etc. Pretax profit is also known as earnings before interest and tax (EBIT).

Usually, a company will have pretax profit margin that is slightly lower than its operating profit margin. If its pretax profit margin is higher than its operating profit margin, it indicates that the company is making more profit from non-operating revenue than its core business revenue.

Here is an example to perform stock filtering and screening in Rakuten Trade based on profit margins.

Login to Rakuten Trade online trading website, select the Stock Screener menu, add a new filtering criterion, and select Operating Margin (%). Set its minimum to 35%.

Then, add in another filtering criterion Pretax Margin (%). Set its minimum to 30%.

Beside having good profit margins, we might also want to see the company's profit growth year by year. Therefore, select the 3rd filtering criterion Pretax Profit Growth Rate (%) and set its minimum to 10%.


You will instantly get the list of matching stocks on your screen, which is around 40 to 50 counters at the time being.

Combined with our 2 filters of ROE and ROA, the list will be left with only around 10 counters.

You will see some rubber glove counters in the list. The rubber glove industry has been enjoying an exceptional good profit margin over the past 2 years. The question you need to ask as an investor is that: does this good profit margin sustainable, at least for another upcoming year?

Note that companies with low profit margin does not necessary mean that their industry is not profitable, provided that they are able to generate their profit by high volume of sales. Example of such industries including grocery trading, essential food trading, etc.

If you don't have a Rakuten Trade account to access to the Stock Screener above, you can use this link to open a new Rakuten Trade account for free, including no charge for opening new CDS account. By opening account with the link, you can get 500 RT Points within 30 days upon your account activation. Beside that, if you start your trading within the first 10 business days after account activation, your first online trading brokerage fee will be rebated as additional RT Points as well.


Sunday, October 10, 2021

Caltex RM5 cashback with CaltexGO pump-and-go mobile app

As you might have been aware, Caltex Malaysia has recently introduced the CaltexGO pump-and-go mobile app, available in Google Play Store and Apple App Store.

Apparently, it is the same CaltexGO mobile app already in used in Caltex Singapore and Caltex Thailand for the same purpose of enabling contactless and cashless petrol refueling at their petrol station.

This is an enhancement to the existing Caltax tap, pump and go system, which you need to slot in your JOURNEY card to collect BPoints, then tap your credit card or debit card at the petrol pump terminal to refuel your vehicle.

Now, with the CaltexGO mobile app, you can bind your JOURNEY card and your credit/debit card with your user account, and you can refuel your vehicle at Caltex petrol station even without bringing those cards along with you.

CaltexGO will auto-detect the Caltex petrol station you are located at with your mobile phone GPS location detection service. You just need to enter your petrol pump terminal number into the app, then lift the petrol pump and start refueling. When you put back the pump to the terminal, your bill will be instantly generated, and you just tap a confirm button to pay for it. Your JOURNEY card loyalty points will be automatically credited too.

Currently CaltexGO in Malaysia only support VISA or Mastercard credit card or debit card. Hopefully e-wallets will be included too in the future.

As a welcome offer to encourage usage of CaltexGO mobile app, Caltex Malaysia is currently giving out RM5 cashback for petrol refueling of RM30 and above, until 31st December 2021.


Your RM5 cashback will be automatically used during your next petrol refueling of RM30 and above at Caltex station using CaltexGO. You will see it as "promotion discount" in your bill, as shown above. Your bills are paperless and stored in your app, so you can always track back your historical petrol refueling transactions in Caltex station.

This means that you will not immediately get the RM5 cashback during your first time using CaltexGO to pump petrol of RM30 and above. The next time and all subsequent times you do the same, you will get the RM5 cashback automatically, until the end of promotion period on 31st December 2021.

RM5 is equivalent to 16.67% of RM30, which is a pretty good offer, isn't it?



Friday, October 8, 2021

Malaysia year 2022 national and state public holidays

The official 2022 national and state public holidays in Malaysia has been announced by Cabinet, Constitution and Inter-Government Relation Division (BKPP), Prime Minister Department.

There are 14 days of national holiday (12 national holidays, whereby Chinese New Year and Hari Raya Puasa have 2 days of holiday respectively, and all the rest are 1 day).

1 of them fall on Friday, 1 fall on Saturday, 5 fall on Sunday, and 2 fall on Monday. Most of the states will have around 4 state holidays in addition to the national holidays. 

Kelantan and Terengganu will have 1 additional holiday for Hari Raya Qurban.

Chinese New Year falls on Tuesday and Wednesday (1st and 2nd February 2022). I believe many people will take a few days leave during the period, namely Monday, Thursday and Friday, so that to enjoy a whole week holiday.

Hari Raya Puasa falls on Tuesday and Wednesday too (3rd and 4th May 2022). Good news is, Monday 2nd May 2022 is also a replacement holiday for Labour's Day which falls on Sunday 1st May. Therefore, you can have another whole week holiday by taking leave on Thursday and Friday.

Deepavali falls on Monday (24th October 2022), so you will have a long weekend.

Click here to download the table of Malaysia year 2021 gazetted national and state public holidays.


Thursday, October 7, 2021

PHP: Exporting data table array to Excel xlsx file with PhpSpreadsheet library

In many occasions when a data table is queried from database and/or displayed on the screen of web application, there is a need to enable the user to download the table, preferably as an MS Excel file.

Traditionally, the method of doing so is to export the table as CSV (comma-separated values) or TSV (tab-separated values) text file, and to use MS Excel to import the CSV or TSV into a worksheet.

There are a lot of shortcomings using this method, including but not limited to:

  • You need to open a new webpage in order to perform the file export, which looks weird to the user experience.
  • The separator character might be different for different users. Some uses comma (","), some uses semicolon (";"), some uses vertical bar pipe ("|"), and so on. Libre Calc in LibreOffice is more flexible in handling the separator character during data import, whereas in MS Excel, if the separator character in the file is not the same with your computer's regional format setting, you will probably get rows of long data in single column.
  • The CSV/TSV is in plain text, and no cell formatting can be made.
  • You need to properly escape and handle the data to be exported, to ensure your data export is successful without error.
  • Numeric fields will most probably be treated as number in the worksheet, although you might want to treat them as text string instead. Common occasions including handling of telephone numbers, batch numbers, serial numbers, etc.
Over the years, there is a trick to export a TSV as XLS (old Excel file format), by putting these 2 lines in the page header:

header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-Type: application/vnd.ms-excel");

There is a matured sample source code by Chirp Internet (www.chirpinternet.eu) that includes a function to do data cleansing before the export. You can click here to look for the source code of that script.

However, the exported file is actually just a TSV instead of real XLS file. Newer version of MS Excel will actually prompt out warning message when you try to open such exported XLS file.

A much better and proper method is to use the PhpSpreadsheet library to generate the real MS Excel file in xlsx (Microsoft Open XML Spreadsheet) format.

By using this method, you can export the Excel file without the need of opening a new webpage that confuse the user. You can also perform many Excel file manipulation by using the functions, classes and methods provided by the PhpSpreadsheet library.

The PHP codes below are originally posted by billynoah in Stack Overflow forum.

Step 1: Install PhpSpreadsheet library using composer, if you haven't done so.

If you are using Laragon WAMP platform, you can install the library by opening the Terminal window (the 4th button in Laragon control panel) and type the following command:


composer require phpoffice/phpspreadsheet



Step 2: Add these 3 lines at the beginning of your PHP script.

require '/vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

Step 3: Prepare your dataset in an array. Normally, this is queried from SQL database server using SELECT statement. Note that in order to use the writeXLSX function with source codes in Step 4 below, the dataset needs to be stored in an array instead of an object.

Below is a simple example of such codes, utilizing ezSQL library class:

$db = new ezSQL_mysqli(MY_USR, MY_PWD, MY_DB, MY_HOST);
$sql = "SELECT * FROM ".MY_TABLE;
$items =$db->get_results($sql, $output=ARRAY_A);
$keys = array_keys(current($items));

Step 4: Put the following function somewhere in your script.

function writeXLSX($filename, $rows, $keys = [], $formats = []) {
// instantiate the class
$doc = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
$sheet = $doc->getActiveSheet();

// $keys are for the header row.  If they are supplied we start writing at row 2
if ($keys) {
$offset = 2;
} else {
$offset = 1;
}

// write the rows
$i = 0;
foreach($rows as $row) {
$doc->getActiveSheet()->fromArray($row, null, 'A' . ($i++ + $offset));
}

// write the header row from the $keys
if ($keys) {
$doc->setActiveSheetIndex(0);
$doc->getActiveSheet()->fromArray($keys, null, 'A1');
}

// get last row and column for formatting
$last_column = $doc->getActiveSheet()->getHighestColumn();
$last_row = $doc->getActiveSheet()->getHighestRow();

// if $keys, freeze the header row and make it bold
if ($keys) {
$doc->getActiveSheet()->freezePane('A2');
$doc->getActiveSheet()->getStyle('A1:' . $last_column . '1')->getFont()->setBold(true);
}
// format all columns as text
$doc->getActiveSheet()->getStyle('A2:' . $last_column . $last_row)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_TEXT);
if ($formats) {
foreach ($formats as $col => $format) {
$doc->getActiveSheet()->getStyle($col . $offset . ':' . $col . $last_row)->getNumberFormat()->setFormatCode($format);
}
}

// enable autofilter
$doc->getActiveSheet()->setAutoFilter($doc->getActiveSheet()->calculateWorksheetDimension());

// autosize all columns to content width
for ($i = 'A'; $i <= $last_column; $i++) {
$doc->getActiveSheet()->getColumnDimension($i)->setAutoSize(TRUE);
}

// write and save the file
$writer = new PhpOffice\PhpSpreadsheet\Writer\Xlsx($doc);
$writer->save($filename);
}

Step 5: Call the writeXLSX function to generate your MS Excel file.

writeXLSX(EXCELFILE, $items, $keys);

That's all about it. Pretty easy and straightforward, isn't it?


Sunday, October 3, 2021

Online stock filtering and screening by ROE and ROA

In fundamental analysis, Return of Equity (ROE) and Return of Assets (ROA) are among the most important indicators used to evaluate the investability of targetted stock counters.

There are generally 4 components that make up the shareholders' equity:

  • The shares that are sold out to the shareholders, and tradable in the market.
  • The shares that are repurchased by the company and kept as treasury shares.
  • Company's profit that is reinvested into the business as retained earnings.
  • Additional paid-in capital pumped into the company by its shareholders.
In short, shareholders' equity is the money that the company's shareholder had invested into its business, together with the retained earnings from the company's business profit.

ROE is therefore a measurement to evaluate how effective is the company's management team in managing the business and bringing in annual profit to the company.

ROE = Net Profit / Shareholder Equity

The main different between ROE and ROA is that, ROE does not take into account the financial leverage or debt of the company, whereas ROA includes it.

As you might have aware of the basic financial equation as illustrated in the diagram below:


Total Assets = Shareholders' Equity + Total Liabilities

The company needs assets to run its business. The assets can be funded either from shareholders' equity, or from 3rd parties (non-shareholders) as liabilities, for example, in the form of financing loans.

ROA is a measurement to evaluate how effective is the company's management team in utilizing the company's assets to make profit.

ROA = Net Profit / Total Assets

ROA = Net Profit / (Shareholder Equity + Liabilities)

For those companies that are in net cash position (without any debts), its ROE = ROA.

For those companies with liabilities, its ROE is normally higher than ROA, as assets are increased by taking debt.

As a benchmark, if the ROA is lower than bond return rate or even fixed deposit return rate, the shareholders might as well put their money (and borrowed money) in those low-risk money-generating financial instruments, rather than in the business, which is more risky.

When picking target stocks for investment from thousands of counters in the stock market, one of the initial fundamental shortlisting methods is to filter the target stocks to those that meeting the criteria of ROE > 20% and ROA > 15%.

In Rakuten Trade, you can easily do your shortlisting with just a few mouse clicks.

You just need to login to Rakuten Trade online trading website, select the Stock Screener menu, add a new filtering criterion, and select ROE (%).


After that, do the same to select another filtering criterion ROA (%).

Set the minimum of ROE to 20%, and the minimum of ROA to 15%.



You will instantly get the list of matching stocks on your screen, which is around 30 to 40 counters at the time being.

If you don't have a Rakuten Trade account to access to the Stock Screener above, you can use this link to open a new Rakuten Trade account for free, including no charge for opening new CDS account. By opening account with the link, you can get 500 RT Points within 30 days upon your account activation. Beside that, if you start your trading within the first 10 business days after account activation, your first online trading brokerage fee will be rebated as additional RT Points as well.


Monday, September 13, 2021

How to use RT Points in Rakuten Trade to offset brokerage fee

Rakuten Trade is currently the first and the only Malaysian stockbroking online platform with a loyalty point system and also allows offset of stock trading brokerage fee by using your accumulated RT Points.

With this mechanism, if you have enough RT Points in your account, you can literally trade with zero brokerage fee when you wholly offset it with your RT Points.

Each RT Points carries a value of RM0.01. As such, if you have 1,000 RT Points, that is equivalent to RM10 value that you can use to pay for brokerage fee.

Rakuten Trade offers 3 different types of stock trading accounts: Cash Upfront, Contra, and RakuMargin. Each of them will have a separate CDS number, but you can access to all of them using a single Rakuten Trade user account.

Normally, a brokerage firm will charge you RM10 for each new CDS number account opening, but opening stock trading account with Rakuten Trade (including the CDS account) is free of charge and can be completed wholly online without the need to fill up paper forms or meeting in person.

If you use this link to open a new Rakuten Trade account, you can get 500 RT Points within 30 days upon your account activation. Beside that, if you start your trading within the first 10 business days after account activation, your first online trading brokerage fee will be rebated as additional RT Points as well.

The brokerage fee of Rakuten Trade online platform is among the cheapest in Malaysia, ranging from a minimum of RM7 to a maximum of RM100. If you trade in large amount per transaction, the maximum cap of RM100 will be a very attractive rate.

If you do day trading (buying and selling the same share within the same day) using your contra account, the brokerage fee for your selling transaction will also be rebated.

Below are some of the ways to accumulate RT Points:

  • Refer your friends to Rakuten Trade (500 RT Points each)
  • Trading brokerage fee (RM2 = 1 RT Point)
  • Deposit at least RM5,000 into your trading account within 5 business days after account activation (150 RT Points for each type of accounts)
  • Transfer shares from your other CDS to your Rakuten Trade CDS (150 RT Points)
  • Participate in Rakuten Trade's online and offline events, seminars, talks, survey, etc.

Online trading with Rakuten Trade can be performed either with the Rakuten Trade web platform or the iSPEED.my mobile app.

To offset your brokerage fee with your RT Points, make sure you select the "Use RT Pts to lower Brokerage" option in your Buy/Sell order, before you click on the Confirm button.

The same applies in iSPEED.my mobile app.


Beside able to use for brokerage offsetting, you can also transfer your RT Points to AirAsia BIG, Bonuslink or Boost at a 1:1 conversion rate.


Hint: Click on the "Older Posts" link to continue reading, or click here for a listing of all my past 3 months articles.