Friday, June 21, 2019

My Realme C2 budget phone with Color OS 6

Realme is a brand of OPPO. Realme C2 is a decent budget phone which you can get at the price of slightly below RM400.

Realme C2 is a successor of C1. I would say it is an alternative option of C1, which both of them are identical in terms of actual performance, which in some areas C2 is slightly better than C1 and some other C1 is slightly better than C2.

The 2 main differences are that C2 is using Mediatek MT6762 Helio P22 (12 nm) chipset and running on Android 9 OS, while C1 is using Qualcomm SDM450 Snapdragon 450 (14 nm) chipset and running on Android 8.1 OS.

Its size of 6.1" is big enough to have a screen suitable for elderly people to use after the font size is configured to be the largest.

Although it is a budget phone, it has pretty well performance with just a little bit of speed lagging compared with those flagship phones for normal applications. Its back cover is pretty nice and modern looking too. Therefore, it is also very suitable for kids and for people that just need a decent phone.

The Realme C2 comes with 2 options of specification: one with 2GB RAM & 16GB storage, and another more expensive one with 3GB RAM & 32GB storage. Bear in mind that the actual usable storage for the 2/16GB option is only around 6GB. The other 10GB was already used by the system and OS. It has a dedicated slot for microSD and supports external storage up to 256GB.

This phone only supports 2.4GHz WiFi and does not support 5GHz WiFi. However, it does support dual SIM 4G LTE.

It has a normal 13MP f/2.2 main camera working together with a 2MP f/2.4 camera for depth sensor. At its front is a 5MP f/2.0 camera, not a good option for people who loves selfie, but still usable.

Its Color OS 6 has a Control Center with big icons, provides convenient and easy access particularly to elderly people.

Color OS 6 also comes with  the Android App Drawer, which you have a choice to switch it on or off.

It's home screen has a handy smart sidebar for quick access to your favourite apps, which you can access by swiping from the side of the screen. The apps listing in the sidebar is configurable. You are also given the option to switch it off if you don't want to use it.

The phone has all the essential features in Android 9. It has quite a number of security related functions.

The anti-harassment/fraud function is actually the call and/or SMS blocking function. It has interesting features such as blocking of one-ring incoming calls, which you might not find in other phones.

The Realme C2 4,000 mAh Li-Po battery can last for more than 1 day for normal use.

One thing I dislike is its battery saving feature, which I think is too over. It always kill a lot of background running processes and apps, which might stop automation app and widgets from working after a while.

A lot of tweaking needs to be done to find the way to let the automation app and widgets continue working at normal even when the phone is in sleep. Smart Power Saver will always kill them off. You need to use Custom Power Consumption Protection option, and manually configure each of the apps for them to be able to continue running in background, and to automatically start when the phone starts.

All in all, this is a nice phone with high performance/cost ratio. Most apps (including the not so resource demanding games) can run pretty well on it, also I found Facebook is quite slow (takes a few seconds) in launching up in it.

Thursday, May 30, 2019

How to implement select all function for multiple sets of checkbox items on the same webpage using simple JavaScript

When designing a webpage with list of checkbox items, it is common and useful to implement a Select All/None function so that the user can easily select/unselect all items with a single mouse click.

This can be done with a simple JavaScript function, even without the need of using jQuery.

Now, the challenge is, when you have multiple sets of checkbox items on the same webpage, how to implement a shared JavaScript function to handle the Select All/None action to each set of the items respectively, so that when the user Select All in one of the sets, the other sets will remain unaffected by the action?

Let's say, we have 3 sets of item as below:

You can use separate FORM for each of the sets, and use FORM ID to distinguish each of the FORM. Each FORM will need to handle their own SUBMIT action separately.

If the different sets are within the same FORM and share the same SUBMIT action, you can make use of CLASS name in their CHECKBOX elements to distinguish and separate out the sets.

Here is the JavaScript codes to implement the Select All/None function (click the image to enlarge it):

and below is the HTML BODY part of the sample webpage (click the image to enlarge it):

Set 1 is in separate FORM from Set 2 and Set 3 with a different FORM ID. Note that even though Set 1 and Set 2 are both using the same CHECKBOX CLASS name, their checkboxes will can be selected all/none separately.

Set 2 and Set 3 are within the same FORM. We can still separate them by using different CHECKBOX CLASS names.

Our simple checkAll JavaScript function accepts both the FORM ID (as 1st parameter) and CLASS NAME (as 2nd parameter), and making use of its 3rd parameter as toggle. In this way, you can use this checkAll function to handle all the sets on the same webpage.

You can create a HTML file to try it out. Since this is just an ordinary HTML with simple JavaScript, it can run even without any web server. Just create the HTML, and open it with your web browser to test it out.

Monday, May 13, 2019

How to choose a better maintenance free car battery

Car battery is a consumable product that will eventually fail over time. When we say a better car battery, the most important point is that it can last longer and degrade slower.

Below are some of the criteria to look for in selecting a better car battery.

1. Brand

The lifespan of battery is affected by high temperature. Certain brand of battery is manufactured for use in hot equatorial areas, such as Amaron, Exide, etc.


2. Size

The battery for normal passenger car is normally of NS40, NS60 or NS70. NS60 is more powerful than NS40, and NS70 is more powerful than NS60.

However, choosing the right size of battery that match with your car's alternator is important. If you car's alternator is generating smaller current and designed to work with NS40 type of battery, it is better for you to stick to NS40 or at most upgrade to NS60 but not beyond.

This is because if the charge supplied from alternator is not sufficient to make the battery fully charged, the battery will suffer premature death and therefore has a shorter life span.

In addition, bigger battery will cause heavier workload to the alternator, which might also reduce the life span of the alternator.

Regardless of the size of the battery, if the charging system is unstable, the battery will die fast.

3. Performance Rating

A battery number looks like this: 46B24L

The first 2 digit is its overall performance rating. The higher the better.

The alphabet after the first 2 digit is an indicator of the battery's width and height. This alphabet can be from A to H. Smaller alphabet indicates smaller width and height.

The number after the alphabet is its length in centimeter. For the battery number 46B24L, its length is 24cm.

The final alphabet indicates the position of its positive terminal. L means it is on the left, and R means it is on the right.

4. Amp Hour (AH)

Amp Hour is an indicator of how much energy is stored in a battery.

It is the energy a 12 volts battery can deliver continuously for 20 hours (C20) at 80°F (26.7°C) without falling below 10.5 volts.

The state when the battery's energy fall below 1.75 volts per cell (or 10.5 volts in a 6-cells 12 volts battery) is considered as "fully discharged".

There are several C-rating given to the batteries in relation to its AH, by giving the battery a specific load to discharge:
  • C3 means the battery will be fully discharged over a period of 3 hours.
  • C5 means the battery will be fully discharged over a period of 5 hours.
  • C8 means the battery will be fully discharged over a period of 8 hours.
  • C10 means the battery will be fully discharged over a period of 10 hours.
  • C20 means the battery will be fully discharged over a period of 20 hours.
  • C100 means the battery will be fully discharged over a period of 100 hours.
In normal practice, C20 is used to measure the AH of vehicle batteries.

The AH value among batteries with same size varies, and you should look for the one with higher AH value.

5. Reserve Capacity (RC)

RC is a general indicator of how long a fully charged new battery can continue to operate the vehicle's essential accessories when the alternator or fan belt fails.

It identifies how many minutes the battery can deliver a constant current of 25 amps at 80°F (26.7°C) without falling below the minimum voltage of 1.75 volts per cell in order to keep the vehicle running.

The higher the RC rating, the longer your vehicle can operate in the event your alternator or fan belt is faulty.

6. Cold Cranking Amps (CCA)

CCA is a rating used to define the battery's ability to start an engine in cold temperatures. It refers to the number of amps a 12-volt battery can deliver at 0°F (-17.8°C) for 30 seconds while maintaining a voltage of at least 7.2 volts.

The higher the CCA rating, the greater the starting power of the battery.

Battery starting power deteriorates as the battery ages. Therefore, a battery with higher starting power should give you more confidence over time.

Replacing a battery with one that has a lower CCA than the original may result in poor performance.

7. Price

Normally, the branded battery that suit with your car's alternator, with high performance rating, high AH, high RC and high CCA, will also come with a high price tag.

As such, you might want to strike a balance between the battery's price and its performance. Choose the above average battery, and it can probably last for at least 2 years.

Friday, May 3, 2019

DSN-less access to Microsoft SQL Server from Raspberry Pi Raspbian Stretch

Accessing Microsoft SQL Server (including SQL Server Express and Azure SQL Database) from Linux isn't that straightforward.

Microsoft does provide free connection library for Linux to access to SQL Server, but the library will not work for Raspbian OS in Raspberry Pi due to conflicting type definition with other essential library in the system.

Below is the easiest way I found out to access SQL Server from Raspberry Pi.

You need to enable and allow TCP/IP access to the SQL Server.

The SQL client to use is FreeTDS through unixODBC.

First of all, make sure the required FreeTDS and unixODBC components are installed in the Raspberry Pi:

sudo apt install freetds-bin freetds-dev tdsodbc unixodbc unixodbc-bin unixodbc-dev

If you are using Python to access the SQL Server, also need to install the following components:

sudo apt install python-pymssql python-pyodbc python-sqlalchemy

If you are using PHP to access the SQL Server, then need to install the following components:

sudo apt install php7.0-odbc

Since we are going to use the DSN-less method to access to the SQL Server, it is not necessary to configure the DSN settings. However, there is still minimal configuration needs to be made.

sudo nano /etc/odbc.ini

Description = SQL Server
Driver = FreeTDS
Trace = No
TDS_Version = 7.0

For the TDS Version, if you are unsure about the version of your SQL Server, then set the TDS Version to 7.0.

You can set the TDS Version according to the following:

  • TDS Ver. 7.0 for SQL Server 7.0
  • TDS Ver. 7.1 for SQL Server 2000
  • TDS Ver. 7.2 for SQL Server 2005
  • TDS Ver. 7.3 for SQL Server 2008
  • TDS Ver. 7.4 for SQL Server 2012, 2014, 2016 or 2017
Lower TDS version has more compatibility but less feature in SQL command and less supported data types.

Another file you need to edit is odbcinst.ini.

sudo nano /etc/odbcinst.ini

Description = FreeTDS unixODBC Driver
Driver = /usr/lib/arm-linux-gnueabihf/odbc/
Setup =  /usr/lib/arm-linux-gnueabihf/odbc/

Now you should be ready to access to your SQL Server from this Raspberry Pi.

Python test script:

import pyodbc

server = 'your_SQL_Server_IP_address'
database = 'your_database'
user = 'database_user'
password = 'database_user_password'

conn = pyodbc.connect('DRIVER={FreeTDS};SERVER='+server+';PORT=1433;DATABASE='+database+';UID='+user+';PWD='+password+';')
cursor = conn.cursor()
for row in cursor.fetchall():
        print row

PHP test script:

$server = 'your_SQL_Server_IP_address';
$database = 'your_database';
$user = 'database_user';
$password = 'database_user_password';
$query = 'SELECT * FROM INFORMATION_SCHEMA.TABLES;';   // your SQL query

if ($db = odbc_connect('DRIVER={FreeTDS};SERVER='.$server.';PORT=1433;DATABASE='.$database.';',$user,$password)) {
        $res = odbc_exec($db, $query);

        while( $row = odbc_fetch_array($res) ) {


Monday, April 29, 2019

dnGrep - Free GUI "grep" and "sed" tool for Windows

If you are familiar with UNIX/Linux operating system, you must be using a lot of "grep" command to search for string inside text files, and "sed" command to find and replace string in the text files.

There are identical command in Windows such as "find", "findstr" or even the PowerShell "Select-String", but they are just not as easy to use as "grep" in UNIX/Linux.

There are also GUI tools for Windows which aim to perform the "grep" and "sed" function, majority of the good ones need you to pay for it, except dnGrep which is licensed under GNU GPL v2 and is therefore free for use.

dnGrep is indeed a very powerful find and/or replace tool for Windows. It can not only search for text or keywords inside the target file(s), but also able to perform a text replace action in target text file(s).

Beside normal text files, it is also able to search inside MS Word documents and PDF files. It can also search inside archived file.

You can perform your search by plain text input, or XPath query language, or regular expression (regex), or even phonetic.

You can also specify to search for files in a folder (and sub-folders) within a particular date range in which they are created or last modified.

The search result is displayed with yellow background highlight, together with the line number in the target document. Double click on the search result will open up the target document for further action.

The beauty of its replace function is that, the replace action can be undone.

You can also create "bookmarks" to store frequently used search keywords and conditions.

dnGrep is lightweight, fast in action, powerful and free for use. It is an essential 3-party tool in your Windows computers.

Click here to go to the download page of dnGrep.

Monday, April 22, 2019

My UGREEN LP144 gravity handphone holder for car CD/DVD slot

Handphone holder (a.k.a. phone cradle) is a very handy and useful gadget when we want to hold our phone in our car at eye level.

One of the common use case is when we use our handphone for navigation on Google Map, or Waze, or some other similar navigation apps.

There are generally 5 types of handphone holders available in the market:

  • CD/DVD player slot holding type
  • Air-cond vent fin clipping type
  • Suction mount type which attached onto the windscreen
  • Standing type putting on top of the car front panel
  • Rearview mirror attaching type
I would recommend the first 2 types, because they can take advantage of your car aircond blowing to cool down your phone. If you attach your phone onto the windscreen or put it on top of the car front panel, the sunlight will heat it up to a high temperature, which is unfavourable to the phone and its Li-ion battery.

Depends on the design of your car front panel, you can choose the more popular air-cond vent fin clipping type, or the CD/DVD player slot holding type.

My UGREEN LP144  gravity handphone holder of car CD/DVD slot holding type costs at RM20++ and has a simple packaging.

This is how it looks like (front and back).

As you can see from the picture, it has 3 rubber pads to be inserted into the car CD/DVD slot to hold it firmly. The big button at the back of the center rubber pad is used to align the rubber pads for insertion and removal.

This handphone holder can still be used even when there is CD/DVD inside the player. It would not affect the CD/DVD playing.

I have chosen it because of its special 3 arms design, whereby when the lower arm is pulled down, the left and right arms will contract. When you slot in your phone, the weight of the phone will pull down the lower arm, forming a strong grip by the side arms.

As such, it can hold your phone firmly, and you don't need to be worried about the phone fall off the holder when you are driving on bumpy road.

This holder can fit for handphones with width up to about 8.3cm. If the phone is too large (for example, the Huawei Mate 20 X with width of 8.54cm), then might not be able to fit in.

For my car, the phone is sitting at the position just nice to be cooled by the air-cond behind it.

The only thing I dislike about this product is that, it will produce rattling sound when you are driving on uneven road, and there is no phone put on it. This is caused by its plastic arms knocking onto the center part and producing the noise. Anyhow, this problem does not exist when there is a phone put on it.

If the manufacturer can enhance its design by putting a layer of thin soft sponge at the knocking points which produces the noise, then it will be a perfect product.

Thursday, April 18, 2019

Free database clients able to access multiple DBMS - DBeaver CE & DBSL Database Browser

Nowadays it is not unusual for IT personnel to deal with multiple databases at the same time. There is also a high chance of the need to deal with databases in different database management system (DBMS).

It will be nice to have a universal or multi-platform GUI database client as a single tool for accessing databases in different DBMS. If you are searching for this kind of database tool, and prefer for free solution, I would recommend 2 of them.

DBeaver Community Edition is a more popular one, which can run in Windows, Linux and Mac OS. It is a beast with extensive number of features to view and manage the databases.

The Community Edition supports a vast number of SQL relational databases, while the non-free Enterprise Edition supports additional NoSQL databases including Apache Cassandra, Apache Hive, Hadoop, MongoDB, InfluxDB, Redis, etc.

The Community Edition itself can open and manage most (if not all) of the famous DBMS such as Azure SQL server, IBM DB2, Firebird/Interbase, Informix, Ingres, MySQL/MariaDB, SAP MaxDB, Oracle, PostgreSQL, Microsoft SQL server, SQLite, Sybase, Teradata, etc.

It also supports file-based database like DBF, Microsoft Access, and even CSV file.

With ODBC connection, it supports all databases that is able to be connected via ODBC.

You can open multiple databases and multiple tables at the same time.

It has complete set of table management functions, including import/export and even generating mock data for testing or demo purpose.

If the table relationship is well defined in the database schema, DBeaver can also display the ER-diagram at a mouse click.

DBeaver, even though with the free Community Edition, has everything you need to work with the databases.

But sometimes we just need a simple, lightweight, straightforward, and preferably portable (no installation needed) database tool. Database Browser by DB Software Laboratory will be the one that suit for this purpose. It only run in Windows, either as installed application or as portable application.

Database Browser is very easy to use, and mainly used to view and/or edit the database content. The flow is simple: you select a database, it will list down all the tables. You select a table, it will list out the records in the table.

Database Browser supports famous DBMS such as Oracle, Microsoft SQL server, MySQL/MariaDB, PostgreSQL, Interbase/Firebird, OleDB, SQLite, BDE, MongoDB, etc.

With ODBC connection, it supports all databases that is able to be connected via ODBC.

The list is not as extensive as DBeaver, but is still comparatively more than most other database tool in the market.

It can also show the ER diagram in its SQL Query Builder function. The SQL Query Builder works in a way with GUI interface similar to Microsoft Access.

It supports data import from Excel file, and export to CSV, TAB, Excel, RTF or HTML files.

If you just want to browse or edit the database content, Database Browser will be a handy tool for you.

If you want to deal with views, indexes, stored procedures, sequences, triggers, and even database parameter fine tuning, then you will need DBeaver.

Wednesday, April 17, 2019

Get additional online purchases cashback through Shopback, including Grab calling

Nowadays online merchants and/or e-commerce websites tend to give rebates in the form of special discount, free shipping, coupons, vouchers, cashback, etc. to maintain their attractiveness in having customers purchasing with them.

In addition, if you make payment with certain cashback credit cards for your purchases, you will also receive cashback from the credit card issuing bank as well. During certain debit card cashback campaign, you can also receive cashback by using such debit card too.

Now, you can get another layer of additional cashback, if you perform your online purchases through Shopback.

Shopback has been around for quite some times, and has grown into quite a successful online affiliate marketing portal. It will give you cashback if you access the e-commerce websites from the Shopback website or mobile app (instead of accessing directly to the e-commerce websites or their mobile apps), and made a confirmed purchase within a tracking timeframe.

Many has joint Shopback and enjoy the additional cashback from their e-commerce spending. If you have not joint the bandwagon, it is never too late to create a free Shopback account now. You can get RM5 sign-up cashback if you join by clicking this link to access to Shopback website, and click on the "Claim Your Bonus" there.

After that, continue to click here to go to Shopback mobile app download page to download its app. Note that for certain e-commerce websites including Lazada, 11street, Shopee, etc., you can only get your cashback from Shopback for online purchases done in mobile app, but not in their e-commerce website. (Previously, purchases made in their website were count for Shopback cashback, but things have already changed now.)

For some other e-commerce platform such as Taobao, you can still get Shopback cashback even though you make your purchase in their website.

Beside online e-commerce shopping, you can also get Shopback cashback from Grab calling by opening Shopback mobile app first, then open Grab mobile app from within the Shopback app.

To ensure a successful Shopback cashback for Grab:
  • Book the Grab via Shopback mobile app only.
  • Do not edit the Notes to driver and ensure that there is a code similar to **29437185SB003** under the Notes.
  • Book only JustGrab, GrabCar and GrabShare rides. Cashback is not eligible on GrabTaxi rides.
  • Ensure no existing trips before clicking through Shopback.
  • Click through Shopback again for every ride.
  • No cancellation or incomplete trip.
In fact, inside Shopback app, there is an updated list of Grab valid coupons, promo codes and offers for your easy reference, so that you won't miss out using those deals with Grab.

You can also use Shopback to get additional cashback from food delivery service with Foodpanda, Honestbee, DeliverEat, Eatigo, etc.

and also from hotel and flight booking with Agoda,, Expedia, Klook, etc.

and also from mobile prepaid plan top-up using online reload service from Lazada, 11street, Qoo10, etc.

and also from online ticketing with StubHub, buying concert, festival, event tickets with them.

even subscribing to new broadband service with Unifi, Maxis, Time, etc. and this Shopback cashback amount can be up to several hundred ringgit.

As such, whenever you want to make online purchase, just access to Shopback mobile app and use it to go to the targeted m-commerce app, or access to Shopback web portal and use the link in the website to go to the targeted e-commerce website, you will get Shopback cashback from your confirmed purchases.

The cashback will be accumulated in your Shopback account, which you can then withdraw to your own bank account as real cash.

Monday, April 15, 2019

T-Max full glue 3D tempered glass for curved edge display screen handphone

If you have a handphone with dual curved edge display screen, such as the Samsung Galaxy series of Note 8, Note 9, S8, S8 Plus, S9, S9 Plus, ... or the Huawei Mate and P series of 9 Pro, 10 Pro, 20 Pro, 30 Pro, ... or some other similar phones, you will need to be more cautious in selecting a screen protector for your handphone.

Due to the curve nature of the screen, curved edge tempered glass is a much better choice to fit for the phone than plastic screen protector.

Certain curved edge tempered glass only has adhesive at the curved surface, leaving the flat surface of the screen non-sticky. This will greatly reduce the touch screen sensitivity and is a big no-no. It will also cause "rainbow effect" which is a big distraction to screen viewing.

Certain tempered glass tends to attract dirt and dust at its edge, which is also a kind of annoyance.

Certain tempered glass when applied, would not fit well with the phone casing.

I find the T-Max full glue tempered glass for curved edge display screen handphone, when applied correctly, would not have these common problems and is good to use.

This tempered glass is to be applied with adhesive for full coverage on the flat and curve surfaces. The liquid adhesive needs to be dried with UV light. A UV lamp is included in the package.

It fits seamlessly on the phone, fits well with the phone casing, has a crystal clear display, does not affect touch sensitivity, and the phone's on screen fingerprint scanner can function well.

It also has a layer of smooth oleophobic coating, which will repel water droplets and reduce fingerprint left on the screen.

Installing this T-Max tempered glass on the phone will need some skill. You can watch the video below to see how it is done.

Friday, April 12, 2019

Format 64GB SD card to FAT32 with AOMEI Partition Assistant

Most Android based devices such as CCTV, dashcam, etc. indicate that they only support SD card up to 32GB only.

This is simply because SD card of 32GB and below is pre-formatted with FAT32 partition which is accessible by the Android system. Microsoft Windows has put itself a limitation to be able to format a storage device into FAT32 partition for up to 32GB only. It will force you to format storage device above 32GB (eg. 64GB, 128GB, ...) with either exFAT or NTFS.

However, most Android based devices don't support exFAT and NTFS, therefore unable to access your storage device with such partition format.

This does not mean that you cannot use storage device of 64GB and above in those Android based devices, because you can still format them into FAT32 by using 3rd party tool such as the free AOMEI Partition Assistant Standard Edition.

The process to convert exFAT partition into FAT32 with AOMEI Partition Assistant Standard Edition is pretty simple.

You just need to right click on the existing partition, select Format Partition from the menu, set the File System as FAT32, click OK, then click Apply which is the first menu bar option on top.

With this, your 64GB or 128GB SD card is very likely to be able to work without problem in those Android based devices.

Click here to download the AOMEI Partition Assistant Standard Edition software for free. It is free for both personal and commercial use.

Friday, April 5, 2019

Fix the "need new app to open ms-wpc" message keeps on pop-up problem in Windows 10

If you are facing a problem with Windows 10 with a pop-up message as below that keeps on prompting even though you continuously clicked on the OK button, here is the fix.

Right click on the Windows icon on the left of taskbar, and run Windows PowerShell as admin.

Copy and paste the following command to run in the Windows PowerShell admin console.

Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}

Hopefully after this, your problem will be fixed.

Wednesday, March 27, 2019

EmEditor - lightweight text editor able to open large file and also manipulate CSV

Recently, I was looking for a text editor that is capable to open and edit an SQL dump as large as 2.7 GB, and I only found EmEditor to be the workable one. Most of the well-known text editors for Windows failed to open the file. Several managed to open, but became extremely slow and easy to crash during navigation or editing.

EmEditor by Emurasoft has been around since 1997. Its user interface is still Windows 95 alike, and not that impressive at all. It seems to be powerful, with quite a lot of functions, but looking for the function will probably need some times searching in its menu items. It has most of the basic function of a modern text editor, including syntax highlighting for programming languages and scripts.

Due to its old fashion user interface, you probably won't use EmEditor for normal text editing or program coding. However, EmEditor has 2 unique features that really make a difference from other editors. These 2 superb features are:

  • ability to open and edit large text file, as big as 248 GB or 2.1 billion lines!
  • ability to manipulate CSV file with nice tabulation of the data into columns.
If you need a lightweight editor to open text file with millions of line, you are very likely end up with EmEditor. EmEditor is able to open such large file without consuming much memory or taking up much CPU resources.

Example of those large text files including but not limited to:
  • SQL dump with data
  • Log file
  • Large dataset in CSV or XML
EmEditor is pretty fast in loading the large text file. If the file is really large and over a gigabit, it still needs some times to fully load the file, but not that long.

Sequential moving in between text is seamless and fast, but jumping will take a longer time. Editing character by character is also fast, but text replacement with highlighting and cut will also take a longer time.


EmEditor has function to split a file into multiple smaller files, and also the reverse function to combine several files into one.

This is handy in the situation whereby you need to search for a portion of the large file, and export it out for further manipulation using other tools. Another situation is to split a large chunk of SQL dump into smaller files, so that the SQL server can import by handling smaller files.

EmEditor has powerful CSV manipulation functions similar to spreadsheet such as MS Excel or LibreOffice Calc. Compared with those spreadsheet programs, EmEditor is pretty lightweight and faster to load up.

It can tabulate the CSV data into columns, insert/delete a column, perform sorting, perform filtering, convert the CSV separator, etc.

Because of these 2 unique functions, I find EmEditor a handy tools for IT person, particularly for dealing with large text files involving dataset or log file.

Friday, March 22, 2019

Cellular frequency bands allocated to Malaysia mobile network operators

The telecommunication spectrum assignment in Malaysia is handled by Malaysian Communications and Multimedia Commission (MCMC).

Mobile network operators (MNOs) need to pay multi-million ringgit to MCMC in order to get the spectrum assignment in specific frequency band, so that they can provide cellular mobile service to customers with their assigned frequency bands.

The customers' device need to be able to communicate on the same band with the cellular transmitter at the nearby telco tower of the mobile service provider in order to establish a connection for voice and data transmission.

SIRIM is the certification body who will test and certify the mobile devices sold in the local market are complying to the spectrum used in Malaysia.

Current allocated frequency bands to MNOs in Malaysia are as below. Note that the mobile operator might not make use of all of their allocated frequency bands. In fact, most of them are not using the 900MHz band for 2G GSM.

Lower frequency means longer wavelength. This will have better in-house penetration and also able to reach a longer distance, but the bandwidth is lower and connection speed is slower.

Higher frequency means shorter wavelength. This can carry more bandwidth and also provide faster connection speed, at the trade-off of poorer in-house penetration and shorter coverage distance.

LTE frequency bands are numbered according to either the FDD specification or the TDD specification. For example, FDD Band 5 used by Unifi Mobile has a low frequency of 850MHz, therefore the LTE connection speed in this band is generally slower than those in FDD Band 3 (1800MHz).

Android mobile device users can install an app called LTE Discovery by Simply Advanced to have realtime information about which LTE band the device is connected to, as well as the signal strength, cellular tower position, and many other related information.

Tourists bringing mobile phone and/or tablet to Malaysia can check the table above with their own device specification on 2G/3G/4G to ensure that their device can function well in Malaysia, either using roaming or a SIM card purchased in Malaysia from one of the MNOs or MVNOs.

Tuesday, March 19, 2019

Hotlink Postpaid Flex plan by Maxis

Hotlink Postpaid Flex is a postpaid (not prepaid) mobile plan operated by Maxis.

At a monthly fixed cost of as low as RM30, you can get unlimited voice calls, unlimited SMS and 1GB of high speed data usage. After the data quota used up, you can still use the Internet at capped speed for no additional charge.

On top of the base plan, you can buy monthly auto-renewed or single month one time bundle(s), which provides you categorized apps-based unlimited high-speed Internet access:

  • Unlimited Social (RM10) - Facebook, Instagram, Snapchat, Pinterest & Twitter.
  • Unlimited Music (RM10) - Spotify, Joox, Saavn, KK Box & Smule.
  • Unlimited Chat (RM5) - WeChat, WhatsApp, Line, IMO, QQ & IM.
These apps-based unlimited Internet access bundles are sharable via mobile hotspot tethering, although the tether speed will be capped at 5Mbps.

Additional high speed Internet quota can also be purchased as Internet pass with the current rate as follow:
  • 2GB for RM10 (valid until next billing cycle)
  • 1GB for RM3 (valid for 1 day)
However, only the base Internet plan can be tethered, and these additional Internet pass cannot be tethered to share with other devices.

If you need more high speed data in your base plan, you can switch your plan to:
  • RM30 plan = 1GB high speed Internet + unlimited calls + unlimited SMS
  • RM40 plan = 5GB high speed Internet + unlimited calls + unlimited SMS
  • RM60 plan = 10GB high speed Internet + unlimited calls + unlimited SMS
When you subscribe or switch to the RM60 plan called Hotlink Postpaid Flex Plus, you can buy the following phones with 24 months contract with very attractive price:
  • Vivo Y81i @ RM1 only
  • Vivo Y85 @ RM199
  • Vivo Y95 @ RM399
Note that these are mid-range Android smartphones, which performance is not comparable with high end or flagship smartphones.

You can install the Hotlink Flex app available in Google Play Store or iTune App Store to manage your account and monitor your high speed Internet data usage.

Note that the app for this Hotlink Postpaid Flex plan is called Hotlink Flex, not the other Hotlink RED (for Hotlink prepaid users) or MyMaxis (for Maxis postpaid users).

Inside the Hotlink Flex app, there are also quite a number of hot deals containing discount e-voucher as a kind of benefit to its users.

Note that as this is a postpaid plan, Maxis will charge you RM10/month to send itemized paper statement to your address. This is considered pretty expensive. Even if you opt for the summarized paper statement, it will also cost you RM5/month.

You can eliminate this monthly charge by opting for eBill to have your monthly statement sent to your email address instead. eBill is free of charge. You can switch between eBill and paper statement inside the Hotlink Flex app.

You can also set up Direct Debit to have Maxis auto-charge your credit card for monthly payments, so that you don't have to worry about handling your monthly payment. Hotlink Flex app contains a direct web link for you to manage your Direct Debit instruction, which you can register, change credit card, suspend, reactivate or terminate your Direct Debit with Maxis.

To subscribe or port in to this Hotlink Postpaid Flex plan, you will need to visit a Maxis Store. Your SIM card will be given to you on the spot. If there is available stock for the Vivo phone and you are subscribing to the Hotlink Postpaid Flex Plus plan with contract, you can also straight away carry your phone back from the shop.

This is quite a cost effective plan, especially for those who can make good use of the unlimited calls and unlimited SMS (e.g. businessman, sales person, agent, remote support person, etc. who needs to make a lot of calls and/or SMS every month). After all, Maxis is still the industry leader with good and stable 2G/3G/4G network coverage and speed that you can rely on.

Sunday, March 17, 2019

Unifi Mobile #bebas prepaid with no credit reload expiry

It seems that Webe Digital (formerly known as Packet One or P1) had taken a long time to keep on pivoting their mobile service from P1 4G to Webe to Unifi Mobile, until recently, they seems to find some light at the end of the tunnel after the launching of Unifi Mobile #bebas prepaid plan in January 2018.

However, this prepaid plan has become less and less attractive. Initially when it was newly launched, it provided each subscribers with up to 5 free SIM cards, in which each SIM card preloaded with free 20GB of LTE data, 10 minutes voice call and 10 SMS.

Soon, it changed to provide each subscribers with up to 3 free SIM cards only, and each SIM card preloaded with free 10GB of LTE data, 10 minutes voice call and 10 SMS.

Now, it has changed to provide each subscribers with only 1 free SIM card, and the SIM card preloaded with free 10GB of LTE data, 50MB of 3G/LTE data, 10 minutes voice call and 10 SMS. Soon, the SIM card might cost you RM10, and the bundled LTE data might be further reduced to 2GB only.

In order to subscribe to this Unifi Mobile #bebas prepaid plan, you will need to download and install the Mobile@Unifi app from Google Play Store or iTune App Store, then order your SIM pack from inside the app.

During the SIM ordering process, you can either select a new number or port-in an existing phone number from another telco's existing plan. You can also select to collect your SIM pack for free at your chosen TMpoint outlet, or to have your SIM pack courier to you at the cost of RM10.60.

What makes this Unifi Mobile #bebas prepaid plan attractive?
  • You can get a beautiful phone number (or port-in your existing phone number) and start using it without paying a single sen.
  • You can port out the beautiful phone number to your preferred telco later, to get a better service.
  • If you prefer to stay with the plan, unlike other prepaid plan with fixed weekly or monthly reload commitment, your reload in this plan does not expire. This means your next reload has no time limit, and you can perform the next reload only after you have used up all the existing quota.
Anyhow, you need to keep your SIM card active at least once in every 90 days, otherwise your number could be terminated.

To keep your SIM card active, just perform any one of the following actions, and your 90 days deadline counter will be zerorized and recalculated from scratch:
  • Make a call to any number
  • Send an SMS to any number
  • Connect to the Internet and use some data
  • Top-up your plan with at least RM10

Unifi Mobile is using its own ex-P1/Webe 4G LTE infrastructure, which has limited coverage, and running on LTE Band 5 (B5, 850MHz band). It is also riding on Celcom 3G and LTE infrastructure to obtain a much wider coverage, which is crucial to provide usable service to its subscribers nationwide.

This has made their plan a little bit complicated. Their data usage quota is separated from own Band-5 LTE (listed as LTE only in the subscription options) and Celcom network (listed as 3G/LTE in the subscription options).

For 2GB, 4GB and 8GB high speed data top-up, you get 50% of the top-up data for their own Band-5 LTE usage, another 50% for Celcom 3G/LTE usage. If you are connected to their own tower, you consume your data quota under LTE; If you are connected to Celcom tower, you consume your data quota under 3G/LTE.

Unlike other telcos which provide free unlimited capped basic data, you need to pay for the basic data in this Unifi Mobile prepaid plan. You can connected to the Basic Data either using 2G/3G or LTE, with a capped maximum speed.

Note that beside the ordinary non-expiry data reload options, there are also some unlimited data reload options with expiry (2 hours, 24 hours, 7 days) for you to subscribe whenever you need to consume a lot of data usage during certain specific occasions.

The voice call and SMS subscriptions are more straightforward, and both of them are bundled together.

Currently there are only 2 types of subscription available:
  • 200 minutes call + 200 SMS for RM30
  • 60 minutes call + 60 SMS for RM10
You can consider the SMS as free bundle to the voice call minutes, and each voice call is costed at 15 sen (for 200 minutes) and 16.67 sen (for 60 minutes) respectively.

This is considered pretty attractive, because for normal postpaid plans, unused voice call minutes and SMS will be burnt every month, and for normal prepaid plans, you got to keep on top-up every week or every month in order to keep the unused voice call minutes and SMS, or else all the accumulation of them will be burnt in one go.

For this Unifi Mobile #bebas prepaid plan, 15 sen per minute is really 15 sen per minute, there is no restriction of when you use it. There is no commitment to pay monthly or to periodically top-up a minimum amount, until it is fully used up, as long as you remember to keep your line active (you got plenty of SMS, just simply send out one SMS every quarter will be able to keep your line active).

As such, this Unifi Mobile #bebas prepaid plan might be suitable for you if you are:
  • trying to get a free beautiful new mobile number.
  • planning to use it for tablet that connects to WiFi most of the time.
  • planning to use it for secondary phone with low usage.
  • planning to use it for mainly receive calls and/or SMS.
  • an elderly person who most of the time stays at home with Unifi broadband subscription (with WiFi, IPTV and DECT phone), so you only need to use your mobile phone when you are not at home.
  • a tourist who plans to stay in Malaysia for at least a few days, up to 3 months, and wants to get a free SIM card with free 10GB data, together with minimal bundled voice minutes and SMS. (you don't need to pay for it, until you need to top-up after fully used)
  • a person who finds that Unifi Mobile #bebas prepaid plan is able to provide flexibility and freedom to pay for your actual use, without monthly payment or periodic top-up commitment.
You can easily toggle on/off the IDD and roaming service of your SIM card from within the Mobile@Unifi app setting.

It is advisable for you to turn OFF both IDD and roaming unless you need to use them. This is because if you use them (either intentionally or accidentally) without prior subscription to an IDD and/or roaming pass, you will be charged on Pay As You Use (PAYU) basis which could burn your wallet a big hole. The rate of IDD and roaming pass in Unifi Mobile is on par with most other postpaid/prepaid plans, not so attractive either. The IDD and roaming pass in Yoodo has more attractive price.

Thursday, March 14, 2019

Yoodo - mobile service as cheap as RM3/month suitable for light usage users and backpackers

Yoodo is a mobile service provider in Malaysia operating under the umbrella of Celcom Axiata and riding on the mobile network infrastructure of Celcom.

You can't find any official outlet of Yoodo, because they operate on the Internet and prefer you to be self-service to subscribe to their mobile service, and to self-manage your mobile plan based on your actual need on monthly (30 days) basis.

Yoodo was just launched in 2018. Initially, it was not so attractive, until its data plan been reduced to cheaper price, and the quota starting from as low as 2GB/month usage @ RM12  (instead of starting from 5GB/month @ RM30 when it was launched).

Yoodo is currently one of the very few mobile service providers in Malaysia that enables you to spend less than RM30 per month in your mobile service.

You might want to seriously consider using Yoodo if you are:

  • a light usage mobile user who prefers not to spend too much on your mobile plan. If you are a medium data usage user, you can opt for Hotlink Postpaid Flex instead, which provides unlimited nationwide calls and unlimited SMS, with price starting from RM30/month only (for 1GB data plan, add RM10/month to get additional 4GB/month). If you are a heavy data usage user, there are plenty of postpaid/prepaid plans available with high data quota, including those with unlimited data + unlimited calls + unlimited SMS.
  • planning to maintain a beautiful mobile phone number at the lowest possible cost at RM3/month.
  • planning to use it for tablet that connects to WiFi most of the time, and does not need any voice or SMS bundle.
  • planning to use it for receiving calls and SMS.
  • planning to use it for making calls and/or SMS, with low to medium data usage. 
  • a backpacker or tourist who plans to stay in Malaysia for more than a week to a few months, and wants to get a mobile plan with cheap IDD option to receive and/or make calls and SMS to other countries.
  • a backpacker or tourist who plans to visit Malaysia and some other surrounding countries, with cheap roaming option.
  • a person who finds that Yoodo is able to provide flexibility and freedom to customize your own plan based on your actual need from month to month.
Yoodo plan is pretty straightforward. Its base plan consists of 3 portions: data, voice and SMS, which you can customize your usage for the month (30 days validity from day of subscription).

You can always make change to your plan for the upcoming month. So, if you know that next month your usage will be higher (for example, when going for outstation), you can subscribe a higher plan for next month, and then fall back to the lower plan the month after.

There is a GUI in Yoodo's website for you to try out how to adjust your base plan for data, voice and SMS, with the price automatically calculated for you.

The beauty of Yoodo plan is that, as long as it is still active, you can always receive phone calls and SMS, even you just subscribe a data plan and leave the subscription to voice and SMS to remain as zero.

Unlike certain data plans from other telcos which will impose restriction on hotspot tethering (mobile data sharing), there is no tethering restriction on Yoodo data subscription, be it a base plan or booster plan.

Yoodo SIM pack can be ordered online for free, and will be courier to you for free too.

Click here to order your Yoodo SIM pack and receive RM20 credit in your e-wallet when you successfully activated a plan with the SIM card.

If you need the SIM pack to be delivered to you within 2 hours, it is possible if your receiving address is in Klang Valley, and you are willing to pay for the express delivery service. This express delivery option is available when you order your Yoodo SIM pack. This will be necessary for backpackers or tourists. You can arrange for your accommodation's reception to receive the SIM pack on your behalf while you are away visiting places.

You will need an Android phone or iPhone in order to manage your Yoodo account with the Yoodo app, which you can download and install from Google Play Store or iTune App Store. Each account can manage up to 5 Yoodo SIMs.

Note that the device you use to manage your Yoodo account with Yoodo app need not be the same device which you are going to install the Yoodo SIM card. If it is the same device, then you might need to connect to WiFi to download the app and to perform SIM card activation, before you got mobile data available for use.

After you've received your SIM pack, you need to activate the SIM card inside it to start your subscription. Don't worry whether you have already customized your base plan during SIM pack ordering process or not, because you will be given a chance to customize the base plan again during the activation process.

However, if you have customized your base plan for a mobile number port-in from another telco, your base plan for the first month cannot be changed during activation. You will need to order a new SIM and start over the process for such a change.

Yes, Yoodo does support MNP (mobile number portability).

Yoodo activation process involves scanning (or manually key-in) the barcode of the SIM card, taking a photo of your NRIC or passport, taking a photo of yourself which requires you to do some action, and paying for your first month subscription by using your credit/debit card or PayPal account.

You might want to use a phone with better camera for the activation process to be smoother, because it will use OCR to scan your NRIC/passport and use face recognition AI to scan your face.

Don't forget to key-in this Referral Code during activation for you and me to get RM20 in our e-wallet respectively: cwqhp2909

After you become a Yoodo user, you will also have your own unique Referral Code to get RM20 for each referee sign-up.

Below is the Yoodo Dashboard shown in Yoodo app for you to manage your Yoodo subscription.

It will show you your current plan and usage. Don't worry when your base plan used up in the middle of the month, you can always purchase a booster plan by taping on "Buy more" to get additional quota for the month.

For example, even though I did not subscribe any voice plan for the month, if I need to make call, I can purchase a voice call booster plan to get the required quota immediately.

Note that you can buy roaming and IDD service from the above Dashboard screen too. Just follow the steps, the app will explain about the service to you clearly.

Your plan will be auto-renewed after 30 days, using the same configuration as this month unless you change it. Changes will take effect on the next cycle, and before it is effective, you can always come back and modify the configuration by tapping on "Change".

In the above screen, you can switch off the auto-renew function, and your e-wallet or linked credit/debit card or PayPal account will not be automatically charged when your current 30 days subscription cycle ended.

If you don't pay for the next month, you can still receive voice calls and SMS, but unable to access to Internet, make call and send SMS. There is a grace period for this, after that, your account will be terminated and your mobile number will be unusable.

Beside the 3 base plans of data, voice and SMS, you can also subscribe for specific app data usage add-ons, including Instagram, Facebook, YouTube, WhatsApp, and PUBG Mobile. The data usage for subscribed add-ons will be consumed first before the base data plan is deducted for the month. Note that these add-ons are not applicable for tethering.

Also note that since Yoodo is riding on Celcom network, it shares the same pros and cons, as well as strength and weaknesses, with Celcom mobile service, which you might be interested to read my another article here.

Yoodo's customer service is pretty friendly, helpful and responsive. They are contactable with Live Chat in the app and also in their website, within the operating hour from 9am to 9pm (weekdays) and from 9am to 6pm (weekends). To access to Live Chat, just go to the Help section and scroll to the very bottom of the screen, and look for this:

Beside using Live Chat, you can also fill in a web form to submit an issue ticket to them. There is also a community forum to discuss with other Yoodo users and staffs.

No doubt Yoodo's establishment and its business model has disrupted the Malaysia mobile service market. It provides a 3rd kind of mobile subscription beside the traditional prepaid and postpaid plans.

It is flexible that you can customize your plan according to your need, with booster plan to boost up your quota within a subscription cycle, so that eventually you only pay for what you need to use. It is also very easy to exit, either by MNP to another telco, or stop paying for the subsequent month and let the subscription lapses by itself.

There are also options for immediate termination and SIM card replacement, in the event of handphone lost, for example.

If you find it interesting, you can order the SIM pack for free without any obligation. Then when you want to start using it, you can customize your own plan in Yoodo app, and activate the SIM card to start your subscription.

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