State of my Crypto Portfolio now?

Just sharing the state of my crypto portfolio. Cryptocurrencies currently accounts for less than 1% of whatever assets I still have after the Terra Luna and Hodlnaut collapse. I cashed out the surviving stable coins right after those incidents, and will continue to hold the remaining:

  • BTC (40%)
  • ETH (45%)
  • CRO/Others (15%)

I used to have some BAT, but due to the FTX incident, it has impacted Genesis and as a result, I doubt I will be getting back those, along with some BTC and ETH. The FTX incident is really bad and it gets uglier as more and more details are revealed. In my opinion, the fundamentals of crypto/block chain technology are still sound, and in FTX case, the issues are more related to governance and regulatory of exchanges and investment companies. Crypto is just a tool, it is the intent of the person or organization which makes it useful or harmful.

There are some of the things that I should have done but neglected to.

  1. Stop using Earn features in centralized exchanges. If I had not been lazy, I won’t have lost the crypto parked with Genesis.
  2. Transfer crypto assets from centralized exchanges to non custodial wallets (i.e. Metamask).

It would be safer to store crypto assets in non custodial wallets in case of another FTX event, just don’t forget or lose the security keys. That is how storing of cryptocurrency and assets is supposed to be in the first place and also decentralization.

Stay safe and stay strong everyone!

Business Central – Problem with too much spaces?

The dreaded mental block have struck again and I was left pondering on how to remove spaces from a text variable for quite a while. The most straightforward way, a bit primitive, was to loop through each character and append those without spaces to a new string. But there has to be a better way. AL language has a function to remove leading and trailing spaces, what is left is the spaces in between words.

An example of what was to be achieved as listed below:



I tried using Text.ConvertStr function but I got an error.

NewString := Text.ConvertStr(String: Text, FromCharacters: Text, ToCharacters: Text)

The ToCharacters cannot be an empty text. I was stuck.

After browsing to and fro, I finally found the answer. It has been staring at me all these while and it has been something I have been using so frequently. Introducing Text.DelChr. I don’t even have to do any trimming at all.

NewString := Text.DelChr(String: Text [, Where: Text] [, Which: Text])
MyOutputString := Text.DelChr(MyInputText, '=', ' ')

Using the above, all spaces in the text variable will be removed. Nice!

Business Central – BC14, C/SIDE, C/AL in 2022

First launched in 2018, Microsoft Dynamics 365 Business Central is an enterprise resource planning (ERP) system designed to replace its predecessors, Microsoft Dynamics NAV and Navision. One notable difference is that the platform is primarily cloud based and introduced a new AL language for development. C/SIDE and C/AL were supported from its initial release till Version 14 (BC14). In other words, BC14 is the last version that one is able to operate both C/SIDE and AL development environment. That is particularly useful when migrating to an extension based solution.

What is the deal with BC14, C/SIDE, C/AL in 2022 you might ask? Since it is a software-as-a-service, why are we still digging up the past and “reminiscing” about it? Shouldn’t be everyone on cloud and running the latest version of Business Central? Well, unfortunately, there are still some customers who are running Business Central 14 and below and retaining their customisation in C/AL, for reasons incomprehensible.


First introduced around 1995, C/AL stands for Client/server Application Language. It is the programming language used within C/SIDE (Client/Server Integration Development Environment) aka classic development environment in Microsoft Dynamics NAV and some versions for Microsoft Dynamics Business Central. It resembles Pascal language and has been replaced by AL.


Similar to C/AL it is the programming language that is used for manipulating data such as retrieving, inserting, and modifying records in a Dynamics 365 Business Central database. It controls the execution of the various application objects, such as pages, reports, or codeunits. AL is more modern, more efficient, open-source, and Cloud-enabled.

Why AL and not C/AL for Business Central?

C/AL development allowed flexibility in customizations, but it has also created a number of upgradeability challenges. In C/AL, all code changes were made at the core of the system. If you are writing codes to change how the system works, it takes time and effort to make sure that those customizations works when it is time to upgrade. AL takes a different approach. The standard Business Central core is basically an app, and any customization you published in the system is one or more apps. In this way, you can upgrade the core Business Central app with minimal impact to the rest of the customizations. Everything is neatly compartmentalized.

Why stay on BC14?

There is little reason why one should stay on with BC14. At this point of writing, Business Central is at Version 20 (BC20). There are some reasons given by customers who insisted on staying. Some of them involves the cost of migrating to an extension based solution, in-house tech preference of using C/AL for maintainability, misconception of increased maintenance, lack of control/ownership, among others. The more popular justification from customers are because of the windows client. Most of them conveyed that their end-users are used to the windows client and retraining them takes too much effort or they cannot adapt to it. Hence by maintaining status quo (using windows client), it would reduce the loss in productivity. So they claimed.

Should you upgrade?

To be honest, the prudent way forward is to upgrade. Why? Avoid technical debt. The longer one waits, the more costly it will be, in terms of effort and money. Upgrading to Business Central on cloud would ensure that you have the latest fix and feature upgrades. It would also be easier to maintain and support in future. You won’t be limited to windows client, you have access to new clients (web, mobile, tablet) without being constraint by your desktop. You get to enjoy better integration tools and options to future proof your business operations.

What are you thoughts and/or experience?

Which Safe Haven for your Hard-earned Money?

Interest rates have been going up and needless to say, the topics going around these days are the attractive Fixed Deposits and Singapore Saving Bonds (SSB) rates. That has certainly generated a lot of excitement and for a good reason.

In the backdrop of COVID-19, we have the Ukraine war with the potential to escalate to a nuclear exchange, a gloomy global economy sleepwalking seemingly towards recession, US-China rivalry and climate change, just to name a few. Oh, and not forgetting all those cryptocurrencies meltdowns. All these negative news have solidify the default status of the color RED in markets worldwide.

Just as it looks like the dearth of safe havens for common folks like us, these headlines provided us the much needed hope and possibilities.

Banks in Singapore lift fixed deposit rates further with latest round of promotions

CNA, 6 October 2022

Singapore Savings Bonds 10-year average return hits record high of 3.21%

CNA, 03 October 2022

Looking at the queues at the banks around the neighborhood, I am definitely not the only one who sat up and got moving. Of course, there are many other options such as cash fund (robo-advisors), money market funds, treasury bills, and so on. However, we will focus on Fixed Deposits and Singapore Saving Bonds (SSB) as they are the more popular options.

What are Fixed Deposits

Fixed Deposit (FD) or Time Deposit, is a type of bank account that promises you a fixed rate of interest for your principal based on the agreed tenure, or term (i.e. 6 months/1 year/2 years/etc.). In return, you agree not to withdraw the amount of funds. Your deposits are protected if your bank is listed in Singapore Deposit Insurance Corporation (SDIC), up to S$75,000.

What are Singapore Saving Bonds (SSB)

Singapore Savings Bonds are debt instruments issued and backed by the Singapore Government. They enjoy good credit ratings and are considered to be safe investments. Fully backed by the Singapore Government, you can always get your investment amount back in full with no capital loss. Touch wood, if you cannot get your money back, you have more important things to worry about.

From 1 Feb 2019, you may subscribe to SSB using your Supplementary Retirement Scheme (SRS) funds to grow your retirement nest egg. The Individual Limit has been raised from S$100,000 to S$200,000.

  • Both provide a safe option for growing your money
  • Your deposits/capital are protected
  • Interest rates are about the same in general.
Fixed DepositSingapore Saving Bond
Insured up to S$75,000 by SDIC, depending on bankFully backed by the Singapore Government
Various Tenure Options10 years, can withdraw any time
Forfeit all interest for early withdrawalRetain existing payout prior withdrawal date
Interest payout end of tenurePayout every 6 months
Require account with bankRequire bank account with one of the 3 local banks and an individual CDP Securities account
At most 1-2 business day to process withdrawalsNeed to wait till specific payout date per month
Full capital amount will be investedAllocated amount subjected to allotment limit
No maximum limitMaximum limit of S$200,000
Can have joint accountPersonal account only
Promotional rates subjected to terms and conditionsStandard rate for all
Might have minimum requirementStart with as little as S$500
The Better Choice?

Fixed Deposit

  • Comfortable with short term lockdown funds
  • Only need a bank account / Unable to have a CDP account
  • Able to get cash fast at the expense of interest payout
  • Have lump sum for capital and want to place full amount
  • Fresh funds and/or minimum placement for promotional rates not an issue
  • Able go to a physical bank branch for certain transactions (for some banks)

Singapore Saving Bond

  • Comfortable with longer term horizon
  • Regular savings in small amount when lump sum is not possible
  • No requirement to get cash fast (because need to wait for payout date)
  • Already have or wants to create CDP account and have local bank account
  • Able to accept allotment limits
  • Can subscribe digitally (i.e. online banking, ATM, etc.)

You might be interested in a recent post from the Turtle Investor – “How To Check Singapore Saving Bonds Allotment Results And Useful Tools“.

Special Mention: Stablecoins (Cryptocurrency)

This would probably be the last thing on a lot of people’s mind after what has happened in the cryptocurrency world – Terra Luna, Celsius, Three Arrow Capital (3AC), Hodlnaut and other DeFi attacks. Hence, they are NOT recommended as a form of safe investment. Unless you know what you are doing, it would be prudent to avoid them. It is possible to lose all your assets with no legal recourse. There are no form of protection such as SDIC or FDIC, and they are not backed by any financial institution nor government.


Not sure if those are isolated incidents but some old folks might be obsessed with chasing after the rising fixed deposits interest rates. After hearing from their friends or relatives that XYZ bank is having a higher interest rate than what they had signed up for, they are bent on switching their accounts without considerations.

Why would you want to take out your fixed deposit account which is due in a month or two, and forfeit the interest, just to chase another one with a higher interest rate? Or to jump from a month or two year old account to another one just because of that increase in 0.5%?

I am not sure if that is a good idea unless they really have done their calculations. Or perhaps I am the one who got it wrong?


19 Oct 2022 – For fixed deposits, you can request to withdraw to a bank account of your choice or by cheque. For Singapore savings bond, the withdrawal will be to the bank account that you have set in your CDP account.

Growing Old

Growing old is something all of us are going through from the day we were born. At this very moment, we are all growing old. This is an inevitable fact of life. Some people take it in their stride, choosing to treasure every minute of their existence. Others look upon it with dread, opting to ignore and lead their life like an immortal. Such is life.

I was young and foolish once. I believe everyone was. When you were young, the thought of growing old and the limits of human life are the last thing on your mind – for most people. It is until when you reach your 40s, the mid-stage of a typical human lifespan that this reality strikes back hard for those who are aware. Middle age marks a major milestone in one’s life and it is no wonder most people are at their most depressed state during this time. When one is young, one leads life blissfully ignorant about their limited life span and when one is old, they humbly accept that they will soon leave this life. Quite a sobering thought.

I too have grown to sober up slowly and humbled by life.

Crypto Winter

It gets colder and colder in crypto land and there is no denying that this crypto winter is going to last for quite a while. The latest casualty is Hodlnaut and it certainly won’t be the last. IMHO, this decade is not going to be peaceful at all.

The key focus now is to survive and limit losses to the minimal. However, not all is doom and gloom. All markets will have their periods of ups and downs and during this period of down time, it is the best opportunity to go back to basic and re-learn the lessons of the past and strengthen the fundamentals for the future.

Stay safe and stay strong everyone!

Business Central – How to download the PDF guide/manual

Once in a while, customers would call in to request a copy of the Business Central documentation/user guide/manual. Here is how you can guide them to get it.

Business Central Help Page

With reference to the above screenshot, do the following:

  1. Click on the “Question mark” at the top right of their Business Central page
  2. Click on the “Help & Support” link
  3. On the “Help & Support” page, click on the “Help” link as highlighted and identified as ‘3’ in the screenshot.
  4. A new window/tab to Microsoft Docs will open, alternatively you can directly go to the Microsoft Docs website (Link as shown below)

Welcome to Microsoft Dynamics 365 Business Central – Business Central | Microsoft Docs

Microsoft Docs Website for Business Central

Once on the Microsoft Docs website, click on the Download PDF link at the bottom left of the page (as shown above) to open or right click to download.

Business Central – Dude, Where’s the Warranty Date?

There is always something new to learn everyday in Business Central. I was doing some setup to test item tracking involving serial numbers and was fiddling with the warranty date required setting (See screenshot below). Somehow, the warranty column did not show up in the item tracking line page for both Purchase and Sales lines.

Item Tracking Card

After consulting one of the senior functional consultants, I learnt that the warranty column had to be manually added in via the personalization feature. The end result is as shown below.

Item Tracking Lines

Wonder why they couldn’t tie the visibility of the warranty date column to the setup. Am I missing anything?

Snakes and Camels?

I was intrigued by an email from a vendor that mentioned snakes and camel case for the field names from an API call. “What snakes and camels? Since when do animals come partying in our project?”, I wondered. These terms are quite rarely heard these days. Typically people deal with title case, uppercase, lowercase etc., so I decided to do some research to find out what is it about.

Camel case and snake case are different forms of variable naming convention style. These two are the more popular ones that programmers use. Camel case and snake case stand at opposite ends of the naming convention spectrum and we shall see how and what they are like in this article. You might even be using them without knowing what they are called, just like me.

Snake case uses underscore between words to create separation. As variable names cannot contain spaces, this reduces readability when multiple words are combined to describe its purpose. Snake case tries to minimize this shortcoming.


It is immediately apparent why it is called a snake case. It do looks like a snake wiggling amongst the codes. One study has found that readers can recognize snake case variable names more quickly than camel case.

Camel case uses capitalization of the first character of each word to denote the start of a new word. It is also known as Pascal case or upper camel case. When it is not, it is often referred to as lower camel case.


It is obvious why it is called a camel case. It does looks like it has a lot of humps doesn’t it. Do note that it is different from title case where it retains space as word separators. Camel case has been criticized as not been as readable compared to other methods due to the removal if spaces (and/or alternative replacements) and uppercasing of every word.

From the above examples, it seems pretty obvious that snake case provides better readability, but that is just my opinion. Some people find camel case easier to read. To me readability is especially important in coding. If your team member or others are unable to understand it, it is useless. The coding language and platform that you are using do affect your choice of naming convention. It is better to follow the standards (if there are any).

Terra Luna Fallout – Retrospect & Takeaway

The Terra Luna fallout needs no introduction, especially since it had became global news and the impact was so great that it was the talk of the town amongst common folks who were totally clueless on cryptocurrencies. That had also painted a big red bullseyes for the regulators.

It also took quite a while for me to get a grip on the situation and understand what happened. A lot of people had been burnt by this fallout and some time is needed to calm down and assess the damage.

Brief Background

Unless you have been living under rock, here is a brief summary of what happened.

TerraUSD (UST) is an algorithmic stablecoin that maintains its 1:1 peg with the US Dollar via software logic instead of being backed by physical assets (unlike USDC). LUNA is the native token of Terra, a blockchain developed by Terraform Labs and is primarily used to operate the collateralizing mechanisms that ensures UST’s peg. USTs are minted by burning LUNA and can be also swapped for LUNA. For example, if the UST values goes above USD$1, the equivalent value of LUNA would be burned, which mints more UST, making it less valuable. If the UST price drops below USD$1, they are swapped for LUNA, which in turn makes UST more valuable.

Early this month, a large amount of UST was dumped, and UST started to de-peg. As it dragged on, with the backdrop of lack of official information, more UST was sold in mass panic. Hence it was not just a case of UST being de-pegged but it also had an effect of crashing the price of LUNA. With both UST and LUNA prices in free-fall, the rest is history.

Biggest run in crypto history.


Needless to say, it triggered a fallout on the broader crypto market as well as getting international headlines. Even Tether (USDT), another stablecoin, but backed by physical assets de-pegged for a brief period of time. A lot of people’s hard earn money went down the sink and talks about suicides were everywhere. I think it was the largest wipe out in the crypto market.

Personal Experience

I had done my research and knew of the risks involving algorithmic stablecoins and how Terra Luna works. I knew that it is a matter of time before a serious de-peg occurs and that the potential of a bank run is always there. Even with their Bitcoin and other reserves, it is in my belief that they are unlikely to survive a full run onslaught.

At that time, before the great crash, 5-8% of my portfolio is in UST and LUNA. I was expecting that I would have enough warning and buffer time to exit if I had to. In the end, I lost almost everything despite knowing what I had gotten into and having an “exit plan”.

Then came the de-peg and crash.

I didn’t expect it to free fall so fast and both at the same rate. The plan was to exit if there was a loss of more than 50% for LUNA. When the price of LUNA was around $30, I was considering selling it all, including UST. Actually, based on the plan, I WAS supposed to sell it all. But I hesitated, thinking that there was a chance that it might recover, despite all signs pointing to further free-fall ahead. It was sunk cost fallacy at work.

When I did finally wake up from my slumber, the price was at $8-9. I sold everything. And later on, out of greed and false hope that I could recoup some of those losses, I stupidly bought some LUNA at around $0.05, and you all knew what happened after that.


It was my first crypto crash. In the last major crash, I was only an observer and I thought I would have learnt from it. I was so wrong. It was very stressful to experience it first hand and for the first time and you really need steady nerves and calm mind to do the right things.

I had a plan, but my discipline to follow through with the plan failed. My emotion is the weakest link. You can make all the plans you want, but when the crunch comes and you could not execute, it is pointless.

Another thing learnt is don’t be greedy. Most of the time when you are too greedy, you lose more.

The fortunate thing is that because I had done my research and knew what risks of I am getting into, UST and LUNA did not constitute a major part of my portfolio, hence losses were limited.

There were two questions that I had been pondering about since I started my crypto journey and perhaps it might be answered this time.

  • Is it better to stake or earn/keep in CEX (Centralized Exchange)?
  • Compensation/Airdrops for staked coins vs coins in CEX?

Staked coins might not be easy to exit as compared to coins store in centralized exchanges. But in the event of compensation, in the case of LUNA, you will be the first to get airdrops but for coins in exchanges, you probably might get nothing at all.

That is why I am pleasantly surprised that Hodlnaut supports the new Terra Network airdrop.

Hodlnaut Supports the New Terra Network (LUNA) Airdrop

To my knowledge, they have been the only one that supports it and throughout this Terra Luna fiasco, they have been very professional and provide clear and timely updates. Major exchanges should be learning from them. Am certainly very impressed and I think they have a bright future ahead.

Moving forward

I still believe that there is future in crypto and it is just the beginning. However, we have to be realistic and looking at the path it took for internet to be part of our day to day life, it will be a rough journey ahead.

The lessons learnt today, I hope, would allow me to avoid making even more costlier mistakes in the future. Life is an on-going learning experience. And always remember, invest what you can afford to lose and always, always remember, there is more to life than dollars and cents.

If you are curious on what caused and how TerraUSD (UST) came to de-peg, you can check out the link below.

Nansen – On Chain Forensics: Demystifying TerraUSD De-peg