Ho Kee Pau

A Chinese traditional dim sum house in Singapore which is located at Lorong 27, Geylang, Singapore, opens from morning and late night. It is conveniently located nearby Aljunied MRT and easily accessible by public transportation.

Simple setting and spacious, I went there for dinner recently with three others on one of the weekdays. It was not crowded and we ordered a lot of different types of dim sum, both steamed and fried types. Our table was full of little plates of dim sum.

Seriously, I have no ideas if this is good idea for having a full table of food for dinner. No warnings were given I think about the number of food we ordered and how big the portion would be.

We used to eat at Swee Choon at Jalan Besar and we thought size and quantity of dim sum were similar. It proved us wrong. Let us see the big bowl of porridge, it is century egg porridge with additional of a normal chicken egg. Too many eggs right! It is quite delicious and I loved the texture of the porridge, it is Cantonese style. What do I mean? Well, if you ever tried a silky smooth porridge before, you will know the fineness and smoothness of the porridge is different than the Teow Chew style.

Next, I pretty liked the fried beancurd skin with prawn, it is crispy and yet it is not too oily. The size is just nice as compared to the fried beancurd skin with dumpling. You can see the difference of these two fried food on my picture on the bottom right. The darker colour fried items are the fried beancurd skin with dumpling. I believed the ingredients are the same with the normal sui kow’s skin dumpling.

Sometimes, we like to eat cheap and big in size dim sum to make our money worth. However, it does not mean we enjoy the food at all. I would prefer dim sum comes in a regular or small size because every single bite of it is meat and more meat. It is not recommended to eat so much at one time and unable to enjoy the rest of the food.

Overall, the dim sum here is cheap, big in portion, worth for the money if you are meat-goer and just want to eat until full without burning your wallet. I personally like Swee Choon and Wan Dou Sek for dim sum.

Address: 43 Lor 27 Geylang, Singapore 388176.

Soi 19 Thai Wanton Mee

It was recommended by few bloggers and some ex colleagues worked at Jurong East before this. I didn’t manage to try with them when I went over to Jurong East. It is getting rare for me to travel to Jurong East lately and recently, I took a trip down to the West to work on something. I went to search for the hawker centre where this Thai wanton mee is located by myself but got lost after a wrong turning.

There was no queue at all during my visit at the hawker place around 2.00PM. It comes with small, regular and large size. I chose the regular sized noodle. It is dry, springy noodle and didn’t have any sauce on it, yet I managed to mix all the ingredients together.

The portion of $5 for regular which is said to be extra ingredients didn’t seem to be a lot, maybe it has more sliced of char siew or more wanton inside the little bowl of soup, there are two dumplings. It has Chinese sausage and two fried dumplings. That is all for a regular.

The noodle is good and delicious even it does not have sauce on it. Maybe it is already tossed with some special sauce beforehand. Their soup is very salty, they should tone down the taste. I did try to enjoy each strand of noodles and paired it with the ingredients to find out the reasons why people liked it so much and itt is so good that famous Thai wanton noodle bar SabX2 in Bangkok has put up a sign stating they are not affiliated.

Personal opinion, I will not think it is a Thai wanton mee that one must try or even travel far to try it. It has few branches, Jurong East, Ang Mo Kio and Kovan. I probably will give it a miss if there is a queue for this stall.

Address: Soi 19 Thai Wanton Mee, 130 Jurong Gateway Rd, #01-211, Singapore 600130

Big Data, A Long Introduction

One of my colleagues from the Business Operation texted me on one morning and asked me where she can get insights, understand some of the terminology, difference between the SQL and NoSQL, and how to make decision which type of database to be used. Instantly, I replied, “get it from me!” I was pretty confident that I could give her an answer and I wanted to explain databases in a more interesting way.

What is SQL?

Structured Query Language (SQL) is computer language for database management systems and data manipulation. SQL is used to perform insertion, updation, deletion. It allows us accessing and modifying data. It stored in a relational model, with rows and columns. Rows contain all of the information about one specific entry and columns are the separate data points.

What is NoSQL?

NoSQL encompasses a wide range of database technologies that are designed to cater to the demands of modern apps. It stored a wide range of data types, each with different data storage models. The main ones are document, graph, key-value and columnar. 

This explains the above picture. Apps such as Facebook, Twitter, search engine (web) and IoT applications generate huge amount of data, both structured and unstructured. The best examples to explain what is unstructured data are photos and videos. Therefore, it needs different method to store the data. NoSQL databases do not store data in rows and columns (table) format.

Differences between SQL and NoSQL

There are a lot of websites which we can search online to give us the differences and I referred to this website.

NoSQL is also known as schema-less databases. The above screenshot uses the word, dynamic schema, which means the same, it does not have a fixed schema which locked same number of the columns (fields) for data entry. NoSQL data allow to have different number of columns when data is added.

Image: https://www.guru99.com/nosql-tutorial.html

Another major difference is scalability, SQL is vertical scaling and NoSQL is horizontal scaling. Let’s use a picture to explain scalability.

Relational databases are designed to run on single server in order to maintain integrity of the table mappings and avoid the problems of distributed computing. Often, we will look into more RAM, more CPU and more HDD, ways to upsize our system by upgrading our hardware specification. It is scale up or vertical scaling. This process is expensive.

NoSQL databases is non-relational, making it easy to scale out or horizontal scaling, meaning that it runs on multiple servers that work together, each sharing part of the load. It can be done on inexpensive commodity hardware.

Question: SQL or NoSQL?

Let’s refer to this article, the choice of the database between SQL and NoSQL cannot be concluded on the differences between them but the project requirements. If your application has a fixed structure and does not need frequent modifications, SQL is a preferable database. Conversely, if you have applications where data is changing frequently and growing rapidly, like in Big Data analytics, NoSQL is the best option for you. And remember, SQL is not deceased and can never be superseded by NoSQL or any other database technology.

In short, it depends on what type of applications or project requirements and type of query result as well.

Big Data

Big data is used to refer not just to the total amount of data generated and stored electronically (volume) but also to specific datasets that are large in both size and complexity which algorithms are required in order to extract useful information from them. Example sources such as search engine data, healthcare data and real-time data. In my previous article about What is Big Data?, I shared that Big Data has 3 V’s:

  • Volume of data. Amount of data from myriad sources.
  • Variety of data. Types of data; structured, semi-structured and unstructured.
  • Velocity of data. The speed and time at which the Big Data is generated.

Yes, based on all the above, we have covered 2 of the 3 V’s, the volume and variety. Velocity is how fast data is generated and processed. Although, there are more V’s out there and some are relevant to Big Data’s description. During my visit to the Big Data World 2018 in Singapore, I realized that my understanding of Big Data was limited to the understanding of the volume and variety. In this blog, I am going to write more.

Storing Big Data

Unstructured data storage which cannot be stored in the normal RDBMS for some reasons and often Big Data is related to real-time data and required real-time processing requirements.

Hadoop Distributed File System (HDFS)

It provides efficient and reliable storage for big data across many computers. It is one of the popular distributed file systems (DFS) which stored both unstructured and semi-structured data for data analysis.

Big Data Analytics

There are not many tools for NoSQL analytics in the markets at the moment. One of the popular method dealing with Big Data is MapReduce by dividing it up into small chunks and process each of these individually. In other words, MapReduce spread the required processing or queries over many computers (many processors).

This Big Data does not limited to search engine and healthcare, it can be data e-commerce websites where we want to perform targeted advertising and provide recommendations systems which we can often see in websites such as Amazon, Spotify or Netflix.

Big Data Security

Securing a network and the data it holds are the key issues, a basic measurement such as firewall and encryption should be taken to safeguard networks against unauthorized access.

Big Data and AI

While smart home has became a reality in the recent years, the successful invention of smart vehicles which allows vehicles drive in auto-mode, gives us a big hope that one day smart city can be realized. Countries such as Singapore, Korea, China and European countries such as Ireland and UK are planning smart cities, using the implementation of IoTs and Big Data management techniques to develop the smart cities.

I am looking forward.

Reference:
Dawn E. Holmes (2017) Big Data A Very Short Introduction.

Python: formatter

Below shows how to do more complicated string formatting. Refer below for the sample code:

formatter = "{} {} {} {}"

print(formatter.format(1,2,3,4))
print(formatter.format("one","two","three","four"))
print(formatter.format(False, False, True, False))
print(formatter.format(formatter, formatter, formatter, formatter)
print(formatter.format(
  "First thing",
  "that we can try",
  "maybe is having",
  "a line of sentence"))

It is using something called function to turn the formatter variable into other strings. When the code write, formatter.format, it tells the Python compiler to do the following:

  • Take its formatter string declare in the first line.
  • Call its format function.
  • Pass to format function, the 4 arguments which matches up with the 4 curly brackets {}s in the formatter variable.
  • The result of calling format on formatter is the new string that has the {} replaced with four variables.

This is what the print statement prints.
1,2,3,4
one, two, three, four
False, False, True, False
{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
First thing that we can try maybe is having a line of sentence

Python: Introduction IV

It has been a while back I wrote about Python Introduction I, II and III. Today, I am going to complete the last part of the introduction, the NumPy. Months ago during my Python’s self-learning time, I wrote about NumPy, here is the link.

NumPy

It is an alternative to Python List, the NumPy array helps us to solve problems dealing with Python List’s operations. Calculations on Python Lists cannot be done in the same way we do for two integers or strings. This package needs to be installed before we can import and use it.

In my blog above, I wrote about the behaviour of the NumPy Array. It does not allow different types of elements in the array. When a NumPy Array is built, element’s data type changed to end up with a homogeneous list. Supposed, the list contains a string, number and Boolean, now it changes to all string format, for an example.

Also, the operator “+”, “-” and etc which we used along with Python List, are different in NumPy Array. Refer below for an example:

py_list = [1,2,3]
numpy_array = np.array([1,2,3])
py_list + py_list 
numpy_array + numpy_array

First output shows the two lists are merged or combined together into a single list. Second output shows an array returns an output of addition of those numbers. The screenshot below shows the result which I used Jupyter Notebook to execute.

Whatever that it has covered in the link above is good enough to give us a basic understanding of Numpy. If you wish to learn more, there is another link I found from the Medium which we can refer to.

NumPy Subsetting

Specifically for NumPy, there is a way of doing list subsetting, using an array of Boolean. Example below shows how we can get all the BMI values above 23. Refer to the example from DataCamp,

First result returns as Boolean, True if BMI value is above 23. Then, you can use this Boolean array inside a square bracket to do the subsetting. When the Boolean’s value is True, it selects its value.

In short, it is using the result of the comparison to make a selection of data.

2D NumPy Array

I covered the 2D NumPy Array in this link, where it shows how to declare a 2D NumPy Array and how does it work in subsetting, indexing, slicing and perform math operations.

NumPy: Basic Statistics

You can generate summary statistics of the data using NumPy. Python NumPy has few useful statistical functions which can be used for analytics. It includes finding min, max, average, standard deviation, variance and etc. from a given elements in the array. Refer to my write up on this basic statistics in this link.

Career Changed

Yesterday, I was looking at my photographs that I took during numerous events that I took part in Singapore and Malaysia since year 2015. It was 6 years after I started working in Malaysia, I thought it would be a right time for me to choose another path within the IT industry. I was a MSSQL Database Administrator with 3-4 years experience. I did some C# coding before that too.

How I got started with?

One day, I bumped into an event organized by MindValley in Kuala Lumpur, Malaysia, they want to share some knowledge about the NoSQL. It was a new thing back then, it was something that I heard before, but nobody really using it. I decided to book a flight ticket and flew back to Kuala Lumpur just for that event and spend a long weekend there. As soon as I landed myself in Kuala Lumpur, I directly went to the venue, which was at Bangsar. It was quite near to KL Sentral, the last stop where the buses or trains from airport stop. The whole journey sounded a bit crazy to some people when I shared it.

As I sat down on those colourful bean bags around the open area and enjoyed my pizza and drink, I spotted my university senior. She recognized me too and we talked a while. She gave me some encouraging words and that was how I began attending talks and events to learn more from different people.

Got into Data Science…

The same year, I joined a few online groups such as Singapore SQL User Group, CodingGirls, TechLadies and Google Developers Group. I attended a few of the SQL user group’s meetup. They are experienced users who work in Singapore and each meetup, they will share different topics.

Back in Malaysia, there was a Data Science program organized by MDEC (Malaysia Digital Economy Corporation) with collaborated with Coursera to provide Malaysians the platform to learn Data Science and apply them at work. It was the first time, I heard about such programs and I intended to join it with few friends of mine.

I signed up the course and paid the Coursera’s course called Introduction to Data Science in USD while attending the online lectures and offline lectures in Cyberjaya, Malaysia for 6 times in order to get myself qualify for the reimbursement of the course fee after completed with certain grades. I made special arrangements to head back to Malaysia to attend those classes and it proved the worth and some of the lecturers (each class has different lecturers or working adults) facilitated the learning and helped us to understand and complete the course.

Then, I attended an event called Opportunities in Data Science Talk Sept 2015 to find out more work opportunity in Singapore.

Well, it did not immediately give me an opportunity to join Data Science field. This kind of events usually share experience and knowledge for non Data Science people or those who want to know about this role. It gave me an insight what Data Science can do to help me solve the problems faced by the management team of my previous company. I started to look into data in different angles of my life and I love playing around with data to find out more. Data, eventually, became my boyfriend.

My involvements in Microsoft and Google’s events were quite a lot during the same year as well as the following year too. I loved to meet up with them and learn whatever I could understand from them. Sometimes, I was really hard to catch up their tempo.

Slowly, I found myself attending these meetup more to getting myself check-in into Microsoft’s office or Google’s office or sometimes, it could be at some local university’s auditoriums and feeding my stomach with food. I rarely got in touch with the people and did not socialize throughout the event.

The Microsoft’s old interior design of the open space used for events.

Google has a pretty cool open space after they moved to Pasir Panjang.

I need to do something…

After completed my Coursera’s course, I wanted to make a change in my career. It would be great if I could move into Data Science since I just finished the course, however, it turned out to be impossible in Singapore. Employers were looking for experienced data scientists to join the company. With no experiences, even a startup company also kind of hard to get in. Then, I reflected myself. The diagram below suggested me data analytics is my next career path, instead. So, I decided to take a step backward and explore.

After all, at the end of year 2016, I quit and started another role in another company in year 2017 as a BI developer. The company requires the developers to develop the ETL and use business intelligence software to generate reports and dashboard. Some programming skills such as Scala and ScalaJS are required. I took a steep turning in my life, from using the Windows platform to Linux platform, from database to programming, from SQL Server to MongoDB.

It was a completely different life that I took quite a while to adjust myself with the help from the team who I always think they are helpful. The team spirit was really high and I almost thought this company could be the next retirement company for me. I thought I found someone who works like Richard Branson.

One year later, I was so lucky to get paired up for mentorship in a Data Science group in Singapore but I truly not ready to go for it, so it did not turn out well and eventually discontinued.

Back then, I struggled a lot with Scala and my mentor told me to look for a software engineer who is good in Scala to help me out from there. My mentor did not see that I was anywhere near to Data Science. After a long email to my CTO, I came to the conclusion. My passion toward coding is not really strong and I did not intend to do it for long term, maybe at most, I would only code when it is required to clean the data or transform the data as part of my data preparation.

Data Analytics or BigData?

In year 2018, I was looking into BigData. I wanted to know how BI, Data Analytics and BigData come into pictures and why people so into BigData. I even took annual leave to attend the 3-day Big Data World event in October 2018 to explore and look for the possibility of getting some job opportunities for my next career.

After the event, I realized how wrongly I put Big Data definition in my knowledge, even to some people. Big Data is not just having one meaning. Then onward, I was quite determined to get things right, using the right terms and explain things using the correct ways. After that, I thought Data Analyst role is something closer to what I wanted to do and there are a lot of job opportunities out there. Once my client told me, there are some people working as Data Analyst and Data Scientist but they did not really know what they are doing. It sounded like a glamoured job title that everyone has used. And, I still followed the trend. wanted to be a data analyst and looked into taking short course to move myself into this role.

There are a lot of courses from the polytechnic schools in Singapore, offering analytics courses for working adults. At that point of time, I was intended to do Masters either at SMU or NUS or at least go back to school and study. I really need to study analytics for real. However, being a foreign student I need to take the GMAT exam. Then, I think I prefer something short and cover the essential topics on data analytics.

Being a volunteer

In Dec 2018, I went to be a volunteer for Google Developers Group. I was at one of their big event organized at Google’s office at Pasir Panjang. I was told to assist them at the registration area and I could also attend the talks during the that time. However, I chose to talk to people, for the first time. I learned from them, even though it was something not related to what I was working. I realized the important of networking and being socialized. It was a great experience and subsequently, I decided to register myself to help TechLadies group.

I wanted to reach out more people, especially those who want to study something and want to have some people to motivate each other. It is a right platform to begin with. My focus in the group is organizing study groups.

Charging toward analytics and system administrator works

In the early months of year 2019, I signed up for the Specialized Diploma in Business Analytics and Specialized Diploma in Big Data at Temasek Polytechnic. They offered me a place for the first option. I preferred the Big Data course over the Analytics because I wanted to learn something different.

In April, I started my school in Singapore, learning Business Analytics. It helped me to understand my job well. I got real picture of data analytics, I am able to conceptualize better than before and with in-class discussion with other coursemates, I got fascinated how much data analytics can do. I resumed attending data analytics talk but I chose what to attend. If the events give me the opportunities for networking and job opportunities, then it is something worthy to go. I do not need anymore introduction sessions.

Same month, my volunteer works began. I started to learn how to juggle my time between work, school and study groups. I have conducted 4 study groups and there are more to go. Meanwhile, I took a break and will assist on the pre-bootcamp workshops. I think it would be a great experience to learn from different team of people, how to run a workshop.

On the other hand, I got exposed to system administration work while working with my colleague. He is kind enough to teach and let me work around with virtual machines and setting up databases. Of course, all these can be done by himself without my assistance.

It is something I wanted to do in my previous job. And, now I know how to do it so. Besides that, one of my projects’ partner and the IT team got me into the setting up the encrypted database and connection pool. It was interesting area, database, system administration and security.

Image: Udureka.

Actually is it data analytics or data engineering interests me more?

About 5 months back, I started to think about this question. All the while, I thought I liked analytics. Yes, no doubt, but it is not entirely all about analytics only. Data engineering gives me a sense of security. What kind of security I am talking about? I mean, it makes me feel more sense if I know how the data, that I am using daily for analysis, are coming from and how to process them from raw data to something clean and meaningful for analysis.

Studying helps me to solve my puzzle. I am able to make a clearer pictures after learning through the program. My assignment and project help me to understand things. Soon, I was quite confident to answer people, that I am in love with another boyfriend, the data engineering.

Data Engineering

Then, I started to compare the 3 roles, data analyst, data engineer and data scientist. Simple definition as below:

  • Data Analyst takes data and helps companies make better business decisions. Collect data, analyse data and make reports.
  • Data engineer develops, constructs, tests and maintains the whole architecture of the large-scale processing system. Set up data pipeline.
  • Data scientist, a professional who deals with enormous mass structured/unstructured data and uses their skills in math, statistics and programming. Visualization and business decision making.

While the roadmap shared by Udureka seems to be a little bit misleading from my point of view. I think these 3 different roles have its own roadmap and it is not something that starts with Data Analyst then Data Engineer and eventually becomes Data Scientist.

Look into the breakdown of the skillset, it tells me each of them is having different skillset. You may look at each of them needs different sets of knowledge and some of the advanced knowledge are uniquely for the role itself such as Machine learning and deep learning for Data Scientist, data architecture and ETL for Data Engineer and reporting and data visualization for Data Analyst.

And different tasks to be done per each roles.

During the interviews I went to recently, I shared with my interviewers about my future career path as a Data Engineer and how I can use my knowledge and experience to march into this role. Looking back all this years, even I did not have the Data Analyst title, however, I have done a lot on the data warehouse, ETL, reporting and visualization including data cleaning work on the data sources. It shows how close I am toward data engineering. And, all I need is to upgrade my skill set to advance levels.

My next job next month, I will be working closely with the system analysts to build data warehouses and data marts (one of the areas I think I am closing working toward the data engineering – next involvement is data pipeline) and the stakeholders to do data visualization (storytelling) and training. I do hope it is going to be an exciting journey of learning things. Again, I am not holding a Data Engineer or Data Analyst title in my new job πŸ™‚

A Day Visit to East Coast Park

After my lunch at the Parkway Parade, I walked to the East Coast Park (ECP) via the underpass walkway located behind the Fairprice Finest next to the Parkway Parade. The underpass walkway is lit up, quiet and clean. I think most of the residents nearby use the walkway to the ECP.

I believed there are a few underpass walkway to ECP and the one I took ended up at Area C, slightly further away from the Marine Cove where most activities are there.

It was a bright and sunny day after lunch and the idea of walking at the park somehow made me feeling it was a wrong choice after I exited at Area C. I walked along the covered walked way and stopped at Starbucks coffee. I was thinking it could be a good idea to just sit here and chill for the day.

The above picture is taken from the Internet, a fellow writer from https://ordinarypatrons.com took a picture of the al-fresco area which I wanted to sit down to watch the world goes by. It is spacious and minimal noise.

However, I decided to continue walk down the staircase to go closer to the beach area as the wind blew from the sea, seemed making the nearby area cooling and sat down under the trees’ shade was a good idea.

The stunning photograph took using my Huawei P10 with a mother and a baby passing by my frame. The time was well-spent here.

Back in year 2018, at the other side of ECP, I took another beautiful photograph.