Hello, I’m Brian!

And this is my blog of my uncurated thoughts on the vicissitudes of life, random ramblings on the comings and goings of people around me, secret confessions on love and morose ponderings about the future. It is a place where I transcribe my emotions.

Here’s more about me.

Calum Scott, Leona Lewis - You Are The Reason (Duet Version)     

COVID-19 & Straits Times Index

Okay, I’ll stop being a bitch and just vomit out what is on my mind.

1) The infection numbers are going to explode in the USA. Gonna overtake China by the end of the week if testing capabilities isn’t bottlenecked. Should hit past 1M by the end of April.

2) People are grossing and massively underestimating (a) how quickly this issue will resolve itself and (b) the economic impacts of it directly and (c) the future downstream impact as society itself changes.

3) This “crash” is NOT a buying opportunity YET. It is just 1 month into this bear market ffs!

4) A lot of business models are shit and most stuff on the SGX are pure trash that should really be cleansed out by an economic recession, even some of the blue chips. Buying them “because they are cheap” but without consideration how they will operate profitably and with an edge 5-10 years down the road will be a mistake that many will make.

5) On the other hand, there are certain sectors that will likely completely rebound when this whole crisis is over and will be hitting pre-COVID numbers in 2022 and beyond. Those are the kind of things that you’d want to be in.

6) Business environment will change rapidly and I think a lot of the commercial office space REITs are gonna get smashed hard and may never fully recover as BCP is showing that companies might not really need to rent AAA office space for…. whatever reasons they have.

7) USDSGD might go well up to 1.6 or 1.8

8) Opportunity will be for anyone that has NOT already started panic buying the “crash” and has ammo to buy the blood when the bad news finally peak.

9) When the time comes, consider using CPFIS if you have got that liquidity to spare.

10) Probably a terrible idea to be buying private property as an investment – massive liquidity requirements, terrible friction of both time and cost to exit, tiring as an asset to make it productive. Unless you’re an expert and are particularly looking to flip it eventually for the capital gains, I doubt that it would make sense to looking for firesale property unless you do have prior expertise and its a market you are intimately familiar with. To expand – it’s not that it is a bad market, but you’d probably get bested by the industry insiders with the liquidity to make the best moves.

I have more things on my mind, but I think the main points are that (a) FX risks is not being managed, (b) this is way too early in the crash to be buying stuff and (c) liquidity is king and will be what allows to even enter opportunities later.

Personally, I’ve managed (a) and (c) by keeping a sizable chunk of USD in BlockFi and just eating 8.6% pa. Even if we were in a bull market, eating 8.6% by sitting in cash is a pretty freaking good deal. It is an even more amazing deal in a bear market and a strengthening dollar. Just something to keep in mind.

When the time comes, I am prepared to either (a) YOLO even more into crypto or (b) yoink back out my USD from BlockFi back to my local bank account in SGD and start buying the local blood.

If REITs on average aren’t pushing 10%++++ on pre-COVID earnings, I’m not even gonna bat an eyelid, haha.

Good luck out there people, as your favorite Uncle Warren loves to say, it is finally time to see who’s been out there swimming naked.


almost everything, almost right

I love my personality type. It hurts me, yet it pleases me.

INFJs are fond of themselves. They try to have friends but they often do not get past the “hello” phase. They prefer non-interactive media, which is why they predilect for poetry and prose. The fucking paper will not fucking talk back to them.

In the rare occasion that they do manage to befriend someone (after alternating between telling a potential friend too much and then too little about themselves, perhaps they found a balance for once), the INFJ listen to others and then they pretend that the anecdotes relayed to them were ones they experienced themselves. This way, everything can be about them.

INFJs often want to change the world, but what they don’t realize is that they, themselves, need to change. The INFJ animal is a badger. Badgers are dumb. Badgers won’t fucking let go if they bite you, much like an INFJ. INFJs are prone to biting people, the freaks.

And this just about sums me all up in three paragraphs.

almost everything, almost right


Annoying iOS Copy-Link Bug


No space between text and URL in Copied/Shared links in any application

Steps To Reproduce

1) Open Apple News app
2) Go to any app and click the More Options menu
3) Click Copy to get a link of the article
4) Paste the link in Messenger/Telegram to share the link to someone
5) Verify the shared text commingles the URL and the last word in the shared text. Example – Missed out on the bitcoin boom? Try these virtual currencies instead – NBC News

Expected Result

Space between shared text and URL. Example – Missed out on the bitcoin boom? Try these virtual currencies instead – NBC News


How to Not Trade Crypto Like Jym

There are 3 ways to decide how you want to invest. Profitability and difficulty as well as risk is different for each one but worry not I shall guide you.

If your portfolio size is <0,5 BTC, you should invest solely on etherdelta, cryptopia and other tiny exchanges. Research coins that either JUST got added or got added recently, or were fomo’d and abandoned. What matters there is SHILL POWER. Look for coins that fill all these requirements:

  1. Small marketcap (below mil is the best, below ~3 is okaysih)
  2. Low total supply, majority must be in circulating supply (85%)
  3. Have a solid team or idea or advisors
  4. Have burn/exchanges announcements or rumors going around

Anything extra shillable is great. Once you buy, talk about the coin on telegram groups and shill it like your life depends on it. Post often with cashtags and talk about the burn/whatever there is to attract investors and potential marketcap. Don’t bullshit though or you’ll hurt both your reputation and the coin.

What’s the most important here is TAKING PROFITS before the price goes to shit.

Don’t expect a 500%, take the 250%.

I advise you to all in if your portfolio is below $1000, your portfolio is tiny, you need to grow, I started the same way.

If your stack starts getting too large to sell/enter trades there with, consider climbing up the second step. If  <20 BTC, you should diversify between multiple solid projects on Binance and by the time you go there you should have already learnt to do proper research. What you need to understand now is market demands (this is why we have a group) or you’ll get stuck holding forever with your portfolio growing at a slower rate than btc. Don’t hold your whole stacks, when you see a coin went 10-20% up and down multiple times, set sells and buys at these prices. Go with the market, not against it.

I strongly advise you divide your stack between 2 holds that you swing and 3 trading stacks at max that you use to go into pumps/breakouts.

If you entered a quick trade and it didn’t work out, don’t be a retard, CUT YOUR LOSSES, don’t trade emotionally. Don’t panic. Always have a strategy before you jump into a trade, always keep some spare BTC.

Always keep a few ethers to invest in possible 100xers on etherdelta/cryptopia for longs. 5% of your stack at most.

Keep in mind you don’t need to be an expert on TA, use trendlines, support, resistance, volume and bullish/bearish indicators.


I present you the most valuable material of what i stumbled upon which i’ve chosen to study trading/investing, mandatory watch, you need to see how successful people operate, act and think

An Aside…

Jim Rohn – dude’s gone from 0 to 100 by changing his perspective of life and surrounding himself with the right people, good watch

Anton Kreil this guy is massive. Nuts daytrader + teacher, my personal favourite, in some of these videos you will see him teaching complete newbs, you should focus on what mistakes they make and avoid it.

Anton Kreil v2

Anton Kreil v3

Anton Kreil v4 watch the whole series- 3 1hour videos of lex vandam and anton kreil turning noobs to pros, spoiler noobs end up outperforming their own hedge fund

Warren Buffet tons of gain and nothing to lose by hearing the thoughts of one of the greatest investors of our time, he did what we do now in crypto, find undervalued assets (hodlers relate but dont ill talk about it later)

Robert Kiyosaki more of an offtopic but dude’s gained wealth by being beneficial to others and taking smart loans, i reccomend you read all his books too, if you have children teach them what he teaches or give him his books, financial knowledge is absolutely MANDATORY for everybody who doesnt want to stay dirt poor trading or not


Why Zilliqa

Here I’d like to share with you my own thoughts to quickly differentiate Zilliqa from other blockchains as the first line of filters before you raise the comparison questions in our slack channel.

*Scalability does not only mean high throughput but also indicates the large scale of the network.* To compare a blockchain to Zilliqa, you can go through a few questions listed as following.

*1) Is it a permissioned or permissionless blockchain?* As we know, lots of blockchains or new consensus algorithms claim they can process over 100, 000 transactions per second (tps), but they are running in a permissioned setting. This implicates that only registered or privileged nodes are allowed to join their systems, and it does not support open membership. In the real world, lots of banks and big companies are working on this direction to meet their internal requirements, e.g., hyperledger. In contrast, Zilliqa is a public blockchain providing open membership to accept new nodes.

*2) How many nodes do they support?* Another important metric for scalability is the scale of their network. In the permissioned setting, high throughput is relatively easy to achieve, as it only requires a few nodes say a hundred nodes to reach consensus. However, it typically does not scale to a large network, as the underlying consensus protocol does not run effectively when the network size becomes large. The root cause is that different variants of BFT protocols can incur at least O(N^2) communication complexity. For example, assume a message size is 100 bytes, if the network size is 100, at least 1MB (100* 100^2 = 1,000,000 bytes) are transferred, but if network size is 10000, 10,000,000,000 bytes (10 GB) are transmitted to every node, which is unrealistic in the public setting. In contrast, Zilliqa is designed to be scalable. In Zilliqa, we first apply sharding to divide the whole network into relatively small shards say 600 nodes. Then we further employ Schnorr signature and multi-signing schemes to reduce communication complexity from O(N^2) to O(N), which significantly improve the performance of our consensus protocol. Therefore, Zilliqa can survive and scale in the public setting with thousands of nodes in the network.

*3) Does it use PoW or PoS?* PoW is energy-inefficient, but the Nakamoto consensus protocol derived from it can effectively resolve the consensus issue, i.e., choosing the longest chain as the confirmed one with agreement. PoS is energy-efficient and helps the network to elect a consortium of representative nodes. Then these representatives can run consensus protocol like variants of BFT to agree on the same set of valid transactions. Typically the consortium size is small, e.g., 21 in EOS and 100 in Ethereum Casper. We at Zilliqa believe that PoS is still a nascent idea. On the contrary, PoW is a very well understood mechanism which has survived the test of time. Having said that, the use of PoW in Zilliqa is very different from the way it is used in say Bitcoin. This ensures that PoW does not become a bottleneck for scalability in Zilliqa. For the detailed explanation, please refer to Q11 in our FAQ.

LOL Oh Shit!

FreedomPop To-do List

OTT App/Server side => Got rid of main checkout page in flow, replaced with CashPaymentMethod in API call,
Now replacing that with updated PaymentMethod which can be converted to Credit Card with pass through checkout page -> Added the logic so it can be used with our existing mobile checkout page.
Created mobile version of International Plans pages – user either orders directly if they have a credit card payment method, or redirected to checkout page.
Some tweaks on slide-in display of plans.

Page embedded into WebView instead of kicking user out into browser (mainly because ‘finish’ button can send user back into app instead of leaving user in browser.

Messaging App => Updated token refresh logic in several places, including when sending SMS.

* Merging token refresh logic from Messaging app into OTT for release
* Then merging International stuff into Messaging app.
* Mobilizing regular dataplan pages.
* BYOD web-view funnel, similar to activate funnel.

Uber – delayed to late January. They want payment as part of the process (no free).

Actually in discussions to launch in UK.

Investors coming in this week:
Roshi Mikatana – Coming from Japan. (3rd richest man in Japan)
He has 2 other guys Thursday/Friday.
Guy that just came just bought Vibr ($900 Million)
VP from Sprint coming tomorrow – Wants to do a technical deep-dive to see if there is synergy with Sprint.

– Want to see conversion engine.
– Free users not using enough to go over. Upsell them via SMS to add rollover
– Fres users that are using enough: upsell higher data plan

Charging for porting/number changes.

WMI Calling/Premium voice service for $9.99, includes REAL MMS (carriers charge 5c/message)
WMI – Outgoing calls – on low-quality connection, route call through Sprint’s mobile connection (Sprint charges 1c/minute)
– Incoming calls – more complicated, difficult to tell what connection quality the app has.


Yik Yak Auto Downvote Script

For research purposes… ¯\_(ツ)_/¯

window.scrollBy(0, 10000);

function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
async function downvote() {
var L = document.getElementsByClassName(“downvote”);
var i = 0;
for (i=0; i<L.length; i++) {
await sleep(2000);
window.scrollBy(0, 10000);


First Look at the Chase Sapphire Reserve

Here’s a blurry look at the new Chase Sapphire Reserve card. Design looks Window Vista-esque and it seems slightly brighter than the original CSP.

Chase Sapphire Reserve Visa Infinite card

Here’s some information on the card:

(R)eserve from churning

Source: Reddit



I play the game for the end-game music. True story.

Overwatch OST - Play of the Game     


Redeemed KF Miles

Just redeemed 91375 KF miles for Suites/First Class LAX-SIN trip. At $7862, comes up to around 8.6 cents a mile. Not bad! 😀

Hacking Tech

Installing Hadoop 2.6.X on Raspberry Pi B Raspbian Jessie

Configure Java Environment

With the image Raspbian Jessie image, Java comes pre-installed. Verify by typing:

java -version

java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode)

Prepare Hadoop User Account and Group

sudo addgroup hadoop
sudo adduser --ingroup hadoop hduser
sudo adduser hduser sudo

Configure SSH

Create SSH RSA pair keys with blank password in order for hadoop nodes to be able to talk with each other without prompting for password.

su hduser
mkdir ~/.ssh
ssh-keygen -t rsa -P ""
cat ~/.ssh/ > ~/.ssh/authorized_keys

Verify that hduser can login to SSH

su hduser
ssh localhost

Go back to previous shell (pi/root).

Install Hadoop

Download and install

cd ~/
sudo mkdir /opt
sudo tar -xvzf hadoop-2.6.4.tar.gz -C /opt/
cd /opt
sudo mv hadoop-2.6.4 hadoop
sudo chown -R hduser:hadoop hadoop

Configure Environment Variables

This configuration assumes that you are using the pre-installed version of Java in Raspbian Jessie.

Add hadoop to environment variables by adding the following lines to the end of /etc/bash.bashrc:

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
export HADOOP_INSTALL=/opt/hadoop

Alternative you can add the configuration above to ~/.bashrc in the home directory of hduser.

Exit and reopen hduser shell to verify hadoop executable is accessible outside /opt/hadoop/bin folder:

su hduser
hadoop version

hduser@node1 /home/hduser $ hadoop version
Hadoop 2.6.4
Subversion -r 1503152
Compiled by mattf on Mon Jul 22 15:23:09 PDT 2013
From source with checksum 6923c86528809c4e7e6f493b6b413a9a
This command was run using /opt/hadoop/hadoop-core-2.6.4.jar

Configure Hadoop environment variables

As root/sudo edit /opt/hadoop/conf/, uncomment and change the following lines:

# The java implementation to use. Required.
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

# The maximum amount of heap to use, in MB. Default is 1000.

# Command specific options appended to HADOOP_OPTS when specified

Also, we need to edit “”. Uncomment


and write:
export YARN_NODEMANAGER_OPTS=”-client”

Note 1: If you forget to add the -client option to HADOOP_DATANODE_OPTS and/or YARN_NODEMANAGER_OPTS you will get the following error messge in hadoop-hduser-datanode-node1.out:

Error occurred during initialization of VM
Server VM is only supported on ARMv7+ VFP

Note 2: If you run SSH on a different port than 22 then you need to change the following parameter:

# Extra ssh options. Empty by default.
# export HADOOP_SSH_OPTS="-o ConnectTimeout=1 -o SendEnv=HADOOP_CONF_DIR"

Or you will get the error:

connect to host localhost port 22: Address family not supported by protocol

Configure Hadoop

In /opt/hadoop/conf edit the following configuration files:







Create HDFS file system

sudo mkdir -p /hdfs/tmp
sudo chown hduser:hadoop /hdfs/tmp
sudo chmod 750 /hdfs/tmp
hadoop namenode -format

Start services

Login as hduser. Run:


Run the jps command to checkl that all services started as supposed to:


16640 JobTracker
16832 Jps
16307 NameNode
16550 SecondaryNameNode
16761 TaskTracker
16426 DataNode

If you cannot see all of the processes above review the log files in /opt/hadoop/logs to find the source of the problem.