<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="en">
    <title>Kheoh Yee Wei&#39;s personal website</title>
    <subtitle>Where I write about stuff that have become somewhat coherant in its breath and depth at that moment. Also other stuff worth adding to the internet.</subtitle>
    <link href="https://personal-website-bpf.pages.dev/feed/feed.xml" rel="self"/>
    <link href="https://personal-website-bpf.pages.dev/"/>
    <updated>2025-02-13T00:00:00Z</updated>
    <id>https://personal-website-bpf.pages.dev</id>
    <author>
        <name></name>
        <email></email>
    </author>
    
    <entry>
        <title>Don&#39;t blame human nature</title>
        <link href="https://personal-website-bpf.pages.dev/blog/keystone-species/"/>
        <updated>2025-02-13T00:00:00Z</updated>
        <id>https://personal-website-bpf.pages.dev/blog/keystone-species/</id>
        <content type="html">&lt;p&gt;&amp;quot;Human nature&amp;quot;—that is a blanket answer after &amp;quot;Capitalism&amp;quot; we often hear from disillusioned environmentalists and self-serving sociopaths to explain all the shits that are happening in this world right now.&lt;/p&gt;
&lt;p&gt;I&#39;m guilty of this too. My &lt;a href=&quot;https://personal-website-bpf.pages.dev/blog/status-quo/&quot;&gt;blog&lt;/a&gt; &lt;a href=&quot;https://personal-website-bpf.pages.dev/blog/against-scale/&quot;&gt;posts&lt;/a&gt; say to that effect. This misanthropic view not only attracts me to the ideas along the vein of authoritarianism and benovolent dictators in order to cut all the bullshit impediments to addressing the root causes of our current predicaments for so long, but also shuts off all possibilities, responsibilities and discourse on alternative connection and relationship between humans, other life, and nature.&lt;/p&gt;
&lt;p&gt;This &lt;a href=&quot;https://www.goodreads.com/en/book/show/125082585-breaking-together&quot;&gt;book&lt;/a&gt; corrected my misanthropic view. Human can be, and was, an intentional force of good for all life and nature. The book highlighted a few examples: In Amazon, human carefully cultivated the soils for over 8,000 years,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Amazon ecosystem would not be what it is today if not for human stewardship&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In California, indigenous people practiced land management techniques that promote soil health, create habitat for game, and minimise the risk of large fires.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Salish nations intentionally created favourable conditions for buffalo and other grazers by periodically burning forests and grasslands&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;They enhanced fish habitat by planting kelp forests in the sea to help herring to lay their eggs. Both those eggs and the herring provide food for other life, including bear, salmon and birds. Consequently, the ecosystem became more abundant and also provided more nutrition for the Salish people.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The book also cites the work of David Graeber, probably from &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Dawn_of_Everything&quot;&gt;The Dawn of Everything&lt;/a&gt; book, in which they conclude that ancient societies had&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;fluid ecological arrangements-combining garden cultivation, flood-retreat framing on the margins of lakes or springs, small-scale landscape management(e.g. by burning, pruning and terracing) and the corralling or keeping of animals in semi-wild states, combined with a spectrum of hunting, fishing and collecting activities-were once typical of human societies in many parts of the world. Often these activities were sustained for thousands of years, and not infrequently supported large populations.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And we were free and wiser than we modern humans are:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;the proclivity of human societies to move (freely) in and out of farming; to farm without fully becoming farmers; raise crops and animals without surrendering too much of one&#39;s existence to the logistical rigours of agriculture; and retain a food web sufficiently broad as to prevent cultivation from becoming a matter of life and death. It is just this sort of ecological flexibility that tends to be excluded from conventional narratives of world history, which present the planting of a single seed as a point of no return.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The book also introduced me to the work of Lyla June, particularly this talk&lt;/p&gt;
&lt;p&gt;&lt;lite-youtube videoid=&quot;eH5zJxQETl4&quot;&gt;&lt;/lite-youtube&gt;&lt;/p&gt;
&lt;p&gt;Before I&#39;m accused of romanticizing the past, I want to acknowledge, as Lyla June said, &amp;quot;we weren&#39;t just born this cool.&amp;quot; Ancient societies did cause the loss of African, Eurasian and American megafauna over thousands of years, or deforestation during the stone age. This can be attributed to &amp;quot;human nature&amp;quot;. But to then prematurely conclude that humans are the root cause(and hence should be curtailed and controlled) is to dismiss our capacity to be wise and good as illustrated above.&lt;/p&gt;
&lt;p&gt;Human nature is not the root cause. The root cause is cultural and systemic. It&#39;s perpetuated by a man-made system that accentuate destructive ideologies of infinite economic growth, human supremacy over nature, imperialism, globalisation, modernity, bureaucracy, way-in-over-our-head(i.e. &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Master_and_His_Emissary&quot;&gt;left-hemisphere&lt;/a&gt;) rationality, delusional techno-optimism, and debt-based monetary system.&lt;/p&gt;
&lt;p&gt;To soften the ongoing collapse of this global techno industrial consumer societies, we must start by willing to be honest and face-to-face with an open heart to our ideologies we hold dear for our identity, self-interest, and worldview—against the structural force of the current system we are living in and benefiting from. Only then we can be truly free and begin to imagine and experiment alternative ways of being that are aligned with who we really are and how we are really connected to other life and nature, all as a whole, as our ancestors did for thousands of years.&lt;/p&gt;
&lt;p&gt;Or we can continue to be apathic, nihilist, solipsist, and individualistic to defend our worldview from a privileged and comfort position while the world burns. In that case, I don&#39;t know why we are even talking about anything at all. ☘&lt;/p&gt;
</content>
    </entry>
    
    <entry>
        <title>Send transactional emails with AWS SES</title>
        <link href="https://personal-website-bpf.pages.dev/blog/send-transactional-emails-with-aws-ses/"/>
        <updated>2024-11-26T00:00:00Z</updated>
        <id>https://personal-website-bpf.pages.dev/blog/send-transactional-emails-with-aws-ses/</id>
        <content type="html">&lt;h2&gt;Background&lt;/h2&gt;
&lt;p&gt;I used to &lt;a href=&quot;https://www.freecodecamp.org/news/how-to-build-your-first-saas/#heading-email&quot;&gt;recommend Mailgun&lt;/a&gt; for a &lt;a href=&quot;https://kudos.wiki&quot;&gt;personal project&lt;/a&gt;. But as with any commercial products that is generous with free stuff, there&#39;s always a catch and it will &lt;a href=&quot;https://support.mailchannels.com/hc/en-us/articles/4565898358413-Sending-Email-from-Cloudflare-Workers-using-MailChannels-Email-API&quot;&gt;come back and bite you&lt;/a&gt; one way or another, and Mailgun is no exception. Now their free-tier offer is very similar to ALL other email services such as &lt;a href=&quot;https://postmarkapp.com/pricing&quot;&gt;Postmark&lt;/a&gt;, &lt;a href=&quot;https://sendgrid.com/en-us/pricing&quot;&gt;Sendgrid&lt;/a&gt; and &lt;a href=&quot;https://resend.com/pricing&quot;&gt;Resend&lt;/a&gt; that allows only hundreds of free emails per day and gets really expensive in their PRO plans.&lt;/p&gt;
&lt;p&gt;Screw all that.&lt;/p&gt;
&lt;p&gt;Enter AWS SES. Now, I really hate working in AWS world. But when it comes to emails, they keep it real. Once you exhausted your free credits, you will be charged at &lt;code&gt;$0.10/1000 emails&lt;/code&gt; sent. I know that is not free but $0.10 for sending 1,000 emails can be free if you picked up all the 1 cent coins you ignored on the street. And this path breaks you free from being psychologically manipulated by tricks pulled by all email platforms which led you to constantly hopping and migrating.&lt;/p&gt;
&lt;p&gt;Notice there are no screenshots or videos in this guide because they get stale quickly and misleading as AWS changes UI frequently. The goal here is to present all the landmarks you need to navigate the complications of even getting one thing up running in AWS, and start sending transactional emails without bother with other noises from AWS.&lt;/p&gt;
&lt;h2&gt;Create AWS SES identities&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Create AWS account.&lt;/li&gt;
&lt;li&gt;Choose your region at top bar.&lt;/li&gt;
&lt;li&gt;In left sidebar, &lt;strong&gt;Configuration&lt;/strong&gt; → &lt;strong&gt;Identities&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create identity&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Domain&lt;/strong&gt; → Enter domain(Note: you should already have your website online behind a domain) → &lt;strong&gt;Advanced DKIM settings&lt;/strong&gt; → &lt;strong&gt;Easy DKIM&lt;/strong&gt; → Click &lt;strong&gt;Create identity&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Create another identiy: Choose &lt;strong&gt;Email address&lt;/strong&gt; → Enter sender email address e.g. &lt;em&gt;human@kudos.wiki&lt;/em&gt; → Check &lt;strong&gt;Assign a default configuration set&lt;/strong&gt; → Select &lt;strong&gt;my-first-configuration-set&lt;/strong&gt; from dropdown → Click &lt;strong&gt;Create identity&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;To test sending email to a recipient email address, create an identity for the recipient email address too by repeating Step-6.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Add DKIM and DMARC DNS records in your DNS provider&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;In left sidebar, &lt;strong&gt;Configuration&lt;/strong&gt; → Click &lt;strong&gt;Identities&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Click the identity of &lt;em&gt;Domain&lt;/em&gt; type you just created.&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;DomainKeys Identified Mail (DKIM)&lt;/strong&gt; panel → &lt;strong&gt;Authentication&lt;/strong&gt; tab → Click &lt;strong&gt;Publish DNS record&lt;/strong&gt; → Create all three CNAME records in your DNS. Note: &lt;em&gt;Name&lt;/em&gt; and &lt;em&gt;Value&lt;/em&gt; is &lt;em&gt;Name&lt;/em&gt; and &lt;em&gt;Target&lt;/em&gt; in Cloudflare DNS respectively.&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;Domain-based Message Authentication, Reporting, and Conformance (DMARC)&lt;/strong&gt; panel → Click &lt;strong&gt;Publish DNS record&lt;/strong&gt; → Create the &lt;code&gt;TXT&lt;/code&gt; record in your DNS.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Note&lt;/strong&gt;: AWS has &lt;a href=&quot;https://docs.aws.amazon.com/ses/latest/dg/send-email-authentication-spf.html&quot;&gt;already setup&lt;/a&gt; the &amp;quot;SPF record&amp;quot; for you. The &amp;quot;MAIL FROM&amp;quot; field of your email will mention &amp;quot;amazonses.com&amp;quot;, but this field is out of user&#39;s sight. If this still bothers you, you can &lt;a href=&quot;https://docs.aws.amazon.com/ses/latest/dg/mail-from.html&quot;&gt;go down this path&lt;/a&gt;. But we just want to send legit emails at practically no cost here, so let&#39;s just move on.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Setup configuration set&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;In left sidebar, &lt;strong&gt;Configuration&lt;/strong&gt; → Click &lt;strong&gt;Configuration sets&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;my-first-configuration-set&lt;/strong&gt;. This has been created for you.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Event destinations&lt;/strong&gt; tab&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add destination&lt;/strong&gt; button&lt;/li&gt;
&lt;li&gt;Check boxes for &lt;code&gt;Hard bounces&lt;/code&gt;, &lt;code&gt;Complaints&lt;/code&gt;, &lt;code&gt;Deliveries&lt;/code&gt; and &lt;code&gt;Delivery delays&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt; button.&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;Destination options&lt;/strong&gt;, choose &lt;strong&gt;Amazon Cloudwatch&lt;/strong&gt; as the destination type. Put &lt;strong&gt;Name&lt;/strong&gt; as &lt;code&gt;tracking_per_domain&lt;/code&gt;. Check &lt;strong&gt;Enabled&lt;/strong&gt; box under &lt;strong&gt;Event publishing&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;Amazon CloudWatch dimensions&lt;/strong&gt;, select &lt;strong&gt;Value source&lt;/strong&gt; as &lt;code&gt;Message tag&lt;/code&gt;. &lt;strong&gt;Dimension name&lt;/strong&gt; as &lt;code&gt;ses:from-domain&lt;/code&gt;. &lt;strong&gt;Default value&lt;/strong&gt; as &lt;code&gt;kudos.wiki&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt; button.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add destination&lt;/strong&gt; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Setup IAM&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In left side bar, &lt;strong&gt;Access management&lt;/strong&gt; → &lt;strong&gt;Users&lt;/strong&gt; → Click &lt;strong&gt;Create user&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Do not check &lt;strong&gt;Provide user access to the AWS Management Console&lt;/strong&gt; → Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Choose &lt;strong&gt;Add user to group&lt;/strong&gt; → &lt;strong&gt;Create group&lt;/strong&gt; → &lt;strong&gt;Create policy&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Copy paste below JSON to the policy&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;Version&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;2012-10-17&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;Statement&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token property&quot;&gt;&quot;Effect&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Allow&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token property&quot;&gt;&quot;Action&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;ses:SendEmail&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token property&quot;&gt;&quot;Resource&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;*&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token property&quot;&gt;&quot;Condition&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
                &lt;span class=&quot;token property&quot;&gt;&quot;StringEquals&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;token property&quot;&gt;&quot;ses:FromAddress&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;human@kudos.wiki&quot;&lt;/span&gt;
                &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select that policy back in the Create Group step.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;strong&gt;Create user&lt;/strong&gt; button.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Request AWS SES production access out of sandbox&lt;/h2&gt;
&lt;p&gt;If they replied with this message:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Hello,

Thank you for submitting your request to increase your sending limits. We would like to gather more information about your use case.

If you can provide additional information about how you plan to use Amazon SES, we will review the information to understand how you are sending and we can recommend best practices to improve your sending experience. In your response, include as much detail as you can about your email-sending processes and procedures.

For example, tell us how often you send email, how you maintain your recipient lists, and how you manage bounces, complaints, and unsubscribe requests. It is also helpful to provide examples of the email you plan to send so we can ensure that you are sending high-quality content that recipients will want to receive.

...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Make sure you give them exactly all that even if you think they mostly don&#39;t make sense for your transactional email or whatever you might think.&lt;/p&gt;
&lt;p&gt;Here is what worked for me in my second reply after I reopened my case after they rejected me in my first hasty reply:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;I realize I didn&#39;t provide all the information expected from your end. My apologies for the hasty reply.

Here are the details of my email-sending processes and procedures:

1. Purpose of Emails:
   - I will be sending transactional emails containing license keys to users who have completed a one-time purchase of our product.
   - These are critical, time-sensitive emails that users expect to receive immediately after their purchase.

2. Frequency of Sending:
   - Emails are sent on-demand, triggered only by completed purchases.
   - The frequency directly correlates with our sales volume(i.e. one sale equal to one email is sent), which we anticipate to be less than 5(if at all) emails per day on average, with potential spikes during promotions or launches.

3. Recipient List Maintenance:
   - Our recipient list is maintained using Cloudflare Workers KV storage.
   - Each email address is collected at the point of purchase through our payment provider, Paddle.
   - We only send emails to addresses provided during the purchase process, ensuring high relevance and low bounce rates.

4. Handling Bounces, Complaints, and Unsubscribes:
   - As these are one-time transactional emails, we don&#39;t anticipate a high volume of bounces or complaints, because we only send a transactional email to the specific user who has just made a purchase.
   - However, we plan to implement the following measures:
     a. Bounces: We will monitor bounce notifications from AWS SES and remove invalid email addresses from our KV storage to prevent future sending attempts.
     b. Complaints: Although rare for transactional emails, we will honor any complaints by immediately removing the email address in our Cloudflare Workers KV dashboard.
     c. Unsubscribes: While not typically applicable to one-time transactional emails, as seen in the attachment of our sample email, it&#39;s stated that user can reply to the email for help.

5. Compliance and Security:
   - We send emails only to verified purchasers, minimizing the risk of unsolicited emails.

Please find below an attachment of the transactional email we would like to send.

Lastly, I have reviewed the AWS Acceptable Use Policy and I can confirm that kudos.wiki doesn&#39;t violate it as it&#39;s doesn&#39;t facilitate or even exchange any physical or virtual goods as mentioned in the FAQ section of the landing page kudos.wiki. It&#39;s also worth mentioning that merchant of record Paddle has approved my application and domain to start selling on their platform. For this, I have attached the evidence as well.

I look forward to your review and feedback.


Regards,
Kheoh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To provide the &amp;quot;examples of the email I plan to send&amp;quot;, I used &lt;a href=&quot;https://maily.to/playground&quot;&gt;https://maily.to/playground&lt;/a&gt; to create the email content. Then I simply take a screenshot of it, save it in &lt;code&gt;.png&lt;/code&gt; file and attach it.&lt;/p&gt;
&lt;h2&gt;Sending email with AWS SES API&lt;/h2&gt;
&lt;p&gt;Once you setup AWS SES stuff, to send email in Nodejs or Cloudflare Workers, here is all you need:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// https://github.com/mhart/aws4fetch/&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; AwsClient &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;aws4fetch&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; aws &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;AwsClient&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;accessKeyId&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;/** Enter access key of the IAM user you just created */&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;secretAccessKey&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;/** Enter secret access key of the IAM user you just created */&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;region&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;/** Follow the AWS region of your AWS SES. It&#39;s shown on the top-right of AWS SES dashbaord */&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// &quot;email.ap-southeast-2.amazonaws.com&quot; reference: https://docs.aws.amazon.com/general/latest/gr/ses.html#ses_region&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// &quot;/v2/email/outbound-emails&quot; reference: https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html#API_SendEmail_RequestSyntax&lt;/span&gt;
aws&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;fetch&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;https://email.ap-southeast-2.amazonaws.com/v2/email/outbound-emails&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;method&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;POST&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token string-property property&quot;&gt;&#39;content-type&#39;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;application/json&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token constant&quot;&gt;JSON&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;stringify&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token literal-property property&quot;&gt;Destination&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;ToAddresses&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;hellomyfriend@gmail.com&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token literal-property property&quot;&gt;FromEmailAddress&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;kudos.wiki &amp;lt;human@kudos.wiki&gt;&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token literal-property property&quot;&gt;Content&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;Simple&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
                &lt;span class=&quot;token literal-property property&quot;&gt;Subject&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;token literal-property property&quot;&gt;Data&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;Thanks for your purchase&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;token literal-property property&quot;&gt;Body&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;token literal-property property&quot;&gt;Html&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
                        &lt;span class=&quot;token literal-property property&quot;&gt;Data&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;/** STRING OF HTML CODE OF YOUR EMAIL */&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
                    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
    </entry>
    
    <entry>
        <title>Against scale</title>
        <link href="https://personal-website-bpf.pages.dev/blog/against-scale/"/>
        <updated>2024-06-01T00:00:00Z</updated>
        <id>https://personal-website-bpf.pages.dev/blog/against-scale/</id>
        <content type="html">&lt;p&gt;To scale is to go big; it&#39;s to reach an &lt;em&gt;economies of scale&lt;/em&gt; where your enterprise will be profitable; it&#39;s to dominate the market; it&#39;s to win; it&#39;s to crush your competitors. This is music to the ears of those who are accustomed to the internal logic of today&#39;s system that obsesses for growth and competition at all levels in the world. Why is it the way it is?&lt;/p&gt;
&lt;p&gt;For 97% of human history, we&#39;d lived as hunter-gatherer tribes. This had shaped our mind and body with which we operate the world today. This was also when our innate propensity to cooperate evolved and natural selection exerts pressure at group-level, in addition to the innate drives to compete at individual-level for mates.&lt;/p&gt;
&lt;p&gt;But although our innate drive to cooperate sounds reassuring, all of our innate drives evolved to serve one purpose: to exploit available resources and convert them for &lt;a href=&quot;https://en.wikipedia.org/wiki/Maximum_power_principle&quot;&gt;maximum power&lt;/a&gt; to grow, reproduce, and expand. And our capacity to do that had been limited by energy and technology - until the advent of fossil fuels propped up by scientific revolution.&lt;/p&gt;
&lt;p&gt;When we let all this run for mere decades, the results are what we are seeing today: overshoot (we consume natural capital faster than it can replenish and assimilate our waste i.e. climate change), overpopulation, overconsumption, overleveraged, overfishing, and etc.&lt;/p&gt;
&lt;p&gt;At individual-level, to scale means increasing your productivity, increase your network beyond the size of our ancient tribes, increase your workout, increase your skillsets to continue serving the current system. At group-level, to scale means sending business analytics events to Google Analytics and Mixpanel, replace customer support with AI agent that completely lack humanity and ethics, promote renewable energies and green policies and technology in the interest of business-as-usual without questioning for root cause and reimagining alternative futures. Once at country-level, everything would have been deprived of humanity and reduced to statistics, so to scale at this level means building up a nuclear arsenal in a cold game-theory calculus, sign treaties so all of us can keep growing and raping the Mother Nature, globalization to outsource resources extraction and pollution, subscribe to ideologies of &amp;quot;competitive advantage&amp;quot; and other economic notions to justify the means and ends to scale infinitely.&lt;/p&gt;
&lt;p&gt;Scaling makes individuals sick in body and mind. Scaling deprives societies of humanity and unscripted authenticity. Scaling means a sure path to an inhabitable earth and a possible global total annihilation from nuclear war.&lt;/p&gt;
&lt;p&gt;Scaling is easy with our smart brain and fossil fuels. NOT scaling, on the other hand, may be an intractable problem that can only be learned(i.e. wisdom) by personally experiencing disasters that are close to home and self. ☘&lt;/p&gt;
</content>
    </entry>
    
    <entry>
        <title>Are we really disrupting status quo?</title>
        <link href="https://personal-website-bpf.pages.dev/blog/status-quo/"/>
        <updated>2024-04-01T00:00:00Z</updated>
        <id>https://personal-website-bpf.pages.dev/blog/status-quo/</id>
        <content type="html">&lt;p&gt;We often hear about tech startups disrupting the status quo. Are they really though?&lt;/p&gt;
&lt;p&gt;What was the status quo in dispute? It was the old-economy, how it was inefficient, slow, bogged down by red tapes - all in all, an environment not ripe for: innovation, creativity, progress and growth. These are words we hear all the times. We can&#39;t stop thinking, talking, and acting upon them, because: We are them.&lt;/p&gt;
&lt;p&gt;Human is a species. And a species has innate propensity to exploit available resources in order to grow, reproduce and expand. Human is also smart. We figure things out via cause-and-effect and trial-and-errors. We construct cognitive models of reality, narrate them to each other, and organize based on them. We cooperate and share because we were better off as a result. These in turn fuel our prior biological drives. It&#39;s a positive feedback loop limited only by energy provided by photosynthesis, diseases, environment disasters and resource depletion. This was how we lived 97% of human history, shaping the body and mind in which we operate now.&lt;/p&gt;
&lt;p&gt;With every increase surplus of energy, human enterprise became more complex, abstract, instrumental, and utilitarian. We start to view nature as a means to our ends. We got emotionally disconnected from it and disrespectful of it.&lt;/p&gt;
&lt;p&gt;Then fossil fuel came by.&lt;/p&gt;
&lt;p&gt;As a smart species still operating out of a stone-age brain, we went absolutely ape-shit for this. They allow us to express the individualistic and selfish sides of our selves: Everyone gets their own washing machine and toys; Everyone runs their own same-y businesss and dodgy wasteful marketing to reach the same audience; Everyone got their own car; Everyone got a todo-list to conquer; Everyone got to hustle one way or another or die starving; We don&#39;t share and cooperate outside of work. This was the beginning of the old-economy.&lt;/p&gt;
&lt;p&gt;To satisfy our urge to grow, old-economy had got rid of the things we used to live by for 97% of human history. This already had deep and wide consequences on our health, environment, and psyche. However, it had a problem - it was not efficient enough. This is where tech startups swoop in.&lt;/p&gt;
&lt;p&gt;Tech startups solve the inefficiencies in the old-economy. They fixed its symptoms while exacerbating its consequences. They - and their famous perks - execute the old-economy&#39;s(in turns, human) imperatives more efficiently, while having no patience for nuances, diversity, and localized contexts.&lt;/p&gt;
&lt;p&gt;OK, let&#39;s do examples. &lt;strong&gt;Airbnb&lt;/strong&gt; saw abundant real estate built with abundant cheap energy and money. Those properties were just sitting there. That&#39;s not efficient. But they are smart. So they made an app. Now everyone got their own throw-away place. &lt;strong&gt;Uber&lt;/strong&gt; saw abundant cars on roads fueled by non-renewable energy. Those were just sitting idle most of the times. Not efficient! But we are smart! So now even more oil burned with everyone doing throw-away rides. Smart people at &lt;strong&gt;Amazon&lt;/strong&gt; connected the dots of delivery vehicles, distribution and shipping, and a website, all of which runs on cheap money that buys non-renewable energy and toxic extraction of materials with their &lt;a href=&quot;https://en.wikipedia.org/wiki/Externality&quot;&gt;costs externalized&lt;/a&gt;. Now everyone orders shits they don&#39;t need from thousands miles away. &lt;strong&gt;OpenAI&lt;/strong&gt; is doing nothing but making the rapacious status quo even more efficient. &lt;strong&gt;Tesla&lt;/strong&gt; is not challenging the status quo of car-dependent urbanization; that electricity is only 20% of our energy usage(80% is dependent on fossil fuel for things like cargo transport, fertilizer, and steel. And we don&#39;t know how to make them with sparse renewable-energy); that renewable is actually rebuildable such that we have to build them again once their limited life-span is up which gets us back to material extraction and burning fossil fuel again.&lt;/p&gt;
&lt;p&gt;And the rest of enterprising folks who don&#39;t have access to cheap energy, money and talents fill the cracks of inefficiencies left behind by previous wake-Think of all the SEO optimizing tools out there and now the AI applications that build on top of OpenAI&#39;s API.&lt;/p&gt;
&lt;p&gt;Notice so far we have only heard of &#39;growth&#39; and &#39;smarts&#39;, but not a single &#39;wisdom&#39;. We don&#39;t become wiser until we hit a low point or worst, disaster struck. Native people are known to be wise but they got wise by tragedies. As part of human species, they &lt;a href=&quot;https://www.australiangeographic.com.au/news/2017/01/humans-killed-most-of-australias-megafauna-study/&quot;&gt;exploited natural resources too&lt;/a&gt; until they collapsed. Only then did they shift their cultural values and aspirations.&lt;/p&gt;
&lt;p&gt;All the conferences, scientific breakthroughs, startups, elections, policies, and rationalizations have only brought us to the global-scale catastrophe that&#39;s underway right now.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/-7HHlxfSE7-900.webp&quot; width=&quot;900&quot; alt=&quot;undefined&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;(&lt;a href=&quot;https://www.4qf.org/values/age-of-limits/economics-for-the-future&quot;&gt;Image credit&lt;/a&gt;)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Because they all didn&#39;t address the core reality, which is: &lt;em&gt;We are blindly executing our innate imperatives abetted by rapacious cultural values and rapidly depleting fossil energy in a finite biosphere&lt;/em&gt;. Every &#39;progress&#39; had been an interation to be more efficient than the before did, while using up more energy and material than ever(&lt;a href=&quot;https://en.wikipedia.org/wiki/Jevons_paradox&quot;&gt;Jevons paradox&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;How can we exercise &lt;em&gt;wisdom&lt;/em&gt; while being a fulfilled human being that doesn&#39;t eat everything up in its path? I don&#39;t know. ☘&lt;/p&gt;
</content>
    </entry>
    
    <entry>
        <title>The day I hiked around the crater of Mount Bromo volcano</title>
        <link href="https://personal-website-bpf.pages.dev/hike-mount-bromo-crater/"/>
        <updated>2023-12-12T00:00:00Z</updated>
        <id>https://personal-website-bpf.pages.dev/hike-mount-bromo-crater/</id>
        <content type="html">&lt;p&gt;On 16th June 2022, I paid Mount Bromo a visit. I got into the caldera free via this tip I got from this &lt;a href=&quot;https://en.wikivoyage.org/wiki/Bromo-Tengger-Semeru_National_Park#Hiking&quot;&gt;WikiVoyage article&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You can hike down the jeep trail, but you will be charged the steep entrance fee. &amp;quot;Secret&amp;quot; hiking trails exist that bypass this entrance. The main path is well marked on Maps.me and Gaia. At Cemera Indiah Hotel, find the narrow dirt alley along a fence that leads to the back of the hotel and the caldera rim. Go down a steep, muddy, switchbacked trail until you emerge on the caldera floor. You can then walk across the Sea of Sand to the Poten Temple and the Bromo crater. The walk from Cemoro Lawang to the crater will take about 60 minutes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;full-width&quot;&gt;
    &lt;div class=&quot;flex-container&quot;&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/4xiclSQXhB-4576.webp&quot; width=&quot;4576&quot; alt=&quot;a trail surrounded with bushes while Mount bromo in the background&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
        &lt;/div&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/4S90qH-2Pg-4576.webp&quot; width=&quot;4576&quot; alt=&quot;Savannah-like environment at the edge of caldera&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
    &lt;video id=&quot;caldera&quot; controls=&quot;&quot; width=&quot;(min-width: 30em) 50vw, 100vw&quot;&gt;
      &lt;source src=&quot;https://personal-website-bpf.pages.dev/video/caldera.mp4&quot; type=&quot;video/mp4&quot;&gt;
      &lt;p&gt;
        Your browser doesn&#39;t support HTML video. Here is a
        &lt;a href=&quot;https://personal-website-bpf.pages.dev/video/caldera.mp4&quot;&gt;link to the video&lt;/a&gt; instead.
      &lt;/p&gt;
    &lt;/video&gt;
    &lt;label for=&quot;caldera&quot;&gt;Made it to the caldera!&lt;/label&gt;
&lt;/div&gt;
&lt;p&gt;There&#39;s a stair case to reach the top of Mount Bromo. That&#39;s the official and safest way. Parallel to it is a loose sandy trail to the top as well. Both were crowded and I took the sandy route. It was exhausting. Every step I made sets me back by one and half steps back. However, I was super exited to reach the top to finally witness and viscerally experience a live volcano for the first time in my life!&lt;/p&gt;
&lt;div class=&quot;full-width&quot;&gt;
    &lt;div class=&quot;flex-container&quot;&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/CVaU1fJBoz-3432.webp&quot; width=&quot;3432&quot; alt=&quot;Trail of tourist going the same way to the top&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
        &lt;/div&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;figure class=&quot;full-width&quot;&gt;
            &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/nTi_ZV9b28-3432.webp&quot; width=&quot;3432&quot; alt=&quot;Someone standing on top of a giant volcano lava rock&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
            &lt;figcaption&gt;Ancient lava turned to rocks or something&lt;/figcaption&gt;
            &lt;/figure&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;And the top I reached I did! First thing that hit my senses was the relentless roaring hellish sound from the volcano! Second thing was the smoke and the sulfuric smell to it. Third thing was the heck people were throwing stuff towards the crater AND on the other side, which is the rugged slope towards the abyss, there were people trying to catch them with butterfly net. I was so confused and fascinated. I learned much later that it was actually a &lt;a href=&quot;https://www.thejakartapost.com/indonesia/2022/06/17/thousands-flock-to-mount-bromo-volcano-for-hindu-ritual-sacrifice-.html&quot;&gt;Hindu ritual sacrifice&lt;/a&gt; that went on &lt;a href=&quot;https://www.gettyimages.es/fotos/yadnya-kasada-festival-in-mount-bromo&quot;&gt;on that day&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;full-width&quot;&gt;
    &lt;div class=&quot;flex-container&quot;&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/vqz2rzxM67-4576.webp&quot; width=&quot;4576&quot; alt=&quot;Mount bromo crater lined with people paying tributes in a festival&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
        &lt;/div&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;lite-youtube videoid=&quot;3WXoNbCRGrU&quot;&gt;&lt;/lite-youtube&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;full-width&quot;&gt;
    &lt;div class=&quot;flex-container&quot;&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;figure class=&quot;full-width&quot;&gt;
                &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/TiHoztx472-3432.webp&quot; width=&quot;3432&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
                &lt;figcaption&gt;Totally didn&#39;t occur to me of the ominous clouds...&lt;/figcaption&gt;
            &lt;/figure&gt;
        &lt;/div&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/qY_IoI5Czk-4576.webp&quot; width=&quot;4576&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
        &lt;/div&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;figure class=&quot;full-width&quot;&gt;
                &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/iZr3EtGItt-4576.webp&quot; width=&quot;4576&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
                &lt;figcaption&gt;Yea the same sandals I&#39;d use to &lt;a href=&quot;https://personal-website-bpf.pages.dev/an-idiot-guide-to-hiking-annapurna-circuit-trek&quot;&gt;hike ACT&lt;/a&gt; few months later&lt;/figcaption&gt;
            &lt;/figure&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;So now I started to walk clockwise around the crater. I didn&#39;t set out to do a round trip. I just wanted to walk away from the crowd to experience the volcano more deeply. Ahead of me I noticed one or two people. That gives me the confidence to walk further.&lt;/p&gt;
&lt;div class=&quot;full-width&quot;&gt;
    &lt;div class=&quot;flex-container&quot;&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;figure class=&quot;full-width&quot;&gt;
                &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/CSKqNEh7I_-4618.webp&quot; width=&quot;4618&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
                &lt;figcaption&gt;Going clockwise around the crater&lt;/figcaption&gt;
            &lt;/figure&gt;
        &lt;/div&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;figure class=&quot;full-width&quot;&gt;
                &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/bupnEhYY2N-4618.webp&quot; width=&quot;4618&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
                &lt;figcaption&gt;Looking back&lt;/figcaption&gt;
            &lt;/figure&gt;
        &lt;/div&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;figure class=&quot;full-width&quot;&gt;
                &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/2JdJIwrDJ9-3463.webp&quot; width=&quot;3463&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
                &lt;figcaption&gt;Always a relieve to know I&#39;m not completely alone. And one of them wears slippers...&lt;/figcaption&gt;
            &lt;/figure&gt;
        &lt;/div&gt;
        &lt;div style=&quot;flex: 1 1 200px&quot;&gt;
            &lt;figure&gt;
                &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/aYFrEWiXp0-400.webp&quot; width=&quot;400&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
                &lt;figcaption&gt;I wore this thin bandana to protect from the sulfuric smoke...&lt;/figcaption&gt;
            &lt;/figure&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;lite-youtube videoid=&quot;bS3pyeIKI6s&quot;&gt;&lt;/lite-youtube&gt;&lt;/p&gt;
&lt;p&gt;This is where it gets increasingly dodgy. I mean fuck! If I would have checked Maps.me like I normally would, I would have seen &lt;a href=&quot;https://www.openstreetmap.org/note/1995479&quot;&gt;this warning&lt;/a&gt; and wouldn&#39;t have gone further!&lt;/p&gt;
&lt;figure class=&quot;full-width&quot;&gt;
    &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/cWrTBaPgtv-1919.webp&quot; width=&quot;1919&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;opps...😨😟&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The trail gets increasingly rugged too. It&#39;s no longer a walk in the park. It involves some climbing, apparently - coz I sure as hell can&#39;t recall doing this bit!&lt;/p&gt;
 &lt;figure&gt;
    &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/7AMNCUvF83-3463.webp&quot; width=&quot;3463&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;notice the two figures above...what was i thinking...&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Also increasingly, I had to be super - I repeat: SUPER - careful where I place each of my steps. The trail starts to get narrow to the width of as if two feets closed together with steep drop offs on both sides. And(fuck!) on top of that, likely due to foot traffic, tiny sandy pebbles had been swept till they cover half of the trail - the half away from the crater. That means...I&#39;m walking one foot in front of another(fuck!)...directly on the edge to the crater...(FUCK!)...(btw I&#39;m going literally &amp;quot;FUCK!&amp;quot; constantly over here as I write this.)&lt;/p&gt;
&lt;div class=&quot;full-width&quot;&gt;
    &lt;div class=&quot;flex-container&quot;&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
             &lt;figure&gt;
                &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/mxT1HGtIYk-3463.webp&quot; width=&quot;3463&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
                &lt;figcaption&gt;narrow ridge around crater of a living volcano...&lt;/figcaption&gt;
            &lt;/figure&gt;
        &lt;/div&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/ZSSkuMSAHe-3463.webp&quot; width=&quot;3463&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;It gets worse: it starts to...rain...drizzling with sparse droplets(FUCK!), not pouring rain just yet but its gonna come down hard soon.&lt;/p&gt;
&lt;p&gt;And it gets even better: My foot starts to cramp a little....(FUCK!FUCK!).&lt;/p&gt;
&lt;p&gt;So all this is happening while the crater is timelessly roaring like a biblical hell eager for me to join them; thick smoke blowing up and over me and the trail; the sulfurs from the smoke that gets me a little light-headed from inhaling it...(FUCK!)&lt;/p&gt;
&lt;div class=&quot;full-width&quot;&gt;
    &lt;div class=&quot;flex-container&quot;&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/aAYMlcjquI-3463.webp&quot; width=&quot;3463&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
        &lt;/div&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/dOM-Rd9p0N-3463.webp&quot; width=&quot;3463&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
        &lt;/div&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/vbJIA7QzZS-3463.webp&quot; width=&quot;3463&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;full-width&quot;&gt;
    &lt;div class=&quot;flex-container&quot;&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;lite-youtube videoid=&quot;OE12aZQ38rw&quot;&gt;&lt;/lite-youtube&gt;
        &lt;/div&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;lite-youtube videoid=&quot;ZOefvyf_GaQ&quot;&gt;&lt;/lite-youtube&gt;
        &lt;/div&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;lite-youtube videoid=&quot;EJvjeJfKfx0&quot;&gt;&lt;/lite-youtube&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;At this point, I knew I had to keep moving and pick up my pace a little to finish this trail which ends where the stair case at. Then one group of local passed me by. I tried to follow closely behind them. Then -&lt;/p&gt;
&lt;p&gt;&lt;em&gt;I step on a loose trail and slide for like 4 feets...(FUCKKKKK!)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Luckily, it happens on the opposite side of the crater...&lt;/p&gt;
&lt;p&gt;While I&#39;m sliding, miraculously my extended right arm comes to wrap around a boulder. That stops the slide. And I was hanging there and I holler at the local group ahead of me &amp;quot;Tolong!!!&amp;quot;(help!!!). And they tell me to somehow fling myself to the trail below on my right side. And I did and landed well and I&#39;m like &amp;quot;holy shit, yea fuck this, i&#39;m done, gotta keep moving and get the fuck out of here&amp;quot;. (Note: This incident wasn&#39;t captured with my phone.)&lt;/p&gt;
&lt;p&gt;This was the broken part of the trail that&#39;s warned earlier.&lt;/p&gt;
&lt;p&gt;Past this point, I am traversing tangentially on the loose slope opposite the crater. I felt much safer here coz it&#39;s not as steep, and since the surface is loose, you sink your feet into it and have a solid hold. Plus, if you do slide, it won&#39;t be into the fucking cooking crater.&lt;/p&gt;
&lt;div class=&quot;full-width&quot;&gt;
    &lt;div class=&quot;flex-container&quot;&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
             &lt;figure class=&quot;full-width&quot;&gt;
                &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/Qej126N6-6-4618.webp&quot; width=&quot;4618&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
                &lt;figcaption&gt;looking back at loose slope opposite crater&lt;/figcaption&gt;
            &lt;/figure&gt;
        &lt;/div&gt;
        &lt;div style=&quot;flex: 1 1 400px&quot;&gt;
            &lt;figure class=&quot;full-width&quot;&gt;
                &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/7mhtr7T5Ih-4618.webp&quot; width=&quot;4618&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
                &lt;figcaption&gt;See the cluster of people there? Yeah that&#39;s where you want to be - alive&lt;/figcaption&gt;
            &lt;/figure&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The final stretch was dodgy as fuck too. The path was 2-feets narrow and its on the edge of a steep slope towards the crater. And the surface was slightly slated towards the crater(fuck...), so I slightly lean myself to the left side away from the crater coz I thought it&#39;d add some safety. I don&#39;t fucking know.&lt;/p&gt;
&lt;p&gt;Few minutes after I made it to the stair case, heavy rains and thunders came down in earnest.&lt;/p&gt;
&lt;h2&gt;Last words&lt;/h2&gt;
&lt;p&gt;This whole thing still gets to me to this date. Sometime I pinch myself to make sure I&#39;m still alive. I shudder and let out a &amp;quot;FUCK&amp;quot; when I flash back to it.&lt;/p&gt;
&lt;p&gt;I wonder what drove me ever deeper into the trail when at many points I could have decided to turn back and walk away. The few local people I encountered definitely gave me the confidence and comforts to forge on. I think these played a role too: hubris, adrenaline, sunk-cost fallacy, identity, up for challenge, curiosity, fun, and etc.&lt;/p&gt;
&lt;p&gt;The visceral reaction to this experience has since served to remind me to be risk-adverse. It&#39;s enough to observe, experience, listen, learn, and be humbled so as not to take part in whatever my personal history up to that point has motivated me to do so. The handful of local people I met in the treacherous part of the trail probably had different nature of motivation and connection to the same reality. They were taking part in a sacrificial and tribunal exercise by doing a trip around the Mount Bromo crater on that festive day. I am not - To me, it was yet another stage on which to flex and from which to gain.&lt;/p&gt;
&lt;p&gt;Be respectful to the mountains and be humbled by the local, if for no other reasons than your fucking live could be depended on it. ☘&lt;/p&gt;
</content>
    </entry>
    
    <entry>
        <title>How to make pandan chiffon cake</title>
        <link href="https://personal-website-bpf.pages.dev/how-to-make-pandan-chiffon-cake/"/>
        <updated>2023-09-20T00:00:00Z</updated>
        <id>https://personal-website-bpf.pages.dev/how-to-make-pandan-chiffon-cake/</id>
        <content type="html">&lt;p&gt;Today I&#39;m going to show you how to make my mom&#39;s favourite cake - Pandan Chiffon Cake. My mom would buy this for us growing up in Taiping. To make this cake again - and taking a bite of it - is a way for me to relive a past that&#39;s simpler, happier, and most importantly and paradoxically, present.&lt;/p&gt;
&lt;p&gt;This is &lt;a href=&quot;https://www.foodelicacy.com/wprm_print/30489&quot;&gt;the original recipe&lt;/a&gt; I googled to begin with. And this post adds to that in terms of visual instructions, lessons and intuitions from me making over 10 of them to date.&lt;/p&gt;
&lt;p&gt;So hang on to your shorts and let me show you how I make my Pandan Chiffon Cake.&lt;/p&gt;
&lt;h2&gt;Pandan juice&lt;/h2&gt;
&lt;p&gt;First, we need to get ourselves some fresh pandan leaves. They are easy to plant and grow.&lt;/p&gt;
&lt;p&gt;Then cut them into chunks of 3cm each - or any length at which they can start blending.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/0RQ-zPcOFY-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;Cut pandan leaves into pieces into a blender&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/8RORyLeXGj-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;Once they are all cut, pour some water just enough to get the blending going.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;div&gt;
    &lt;video id=&quot;blending-pandan-video&quot; controls=&quot;&quot; width=&quot;450&quot;&gt;
      &lt;source src=&quot;https://personal-website-bpf.pages.dev/video/pandan-3.mp4&quot; type=&quot;video/mp4&quot;&gt;
      &lt;p&gt;
        Your browser doesn&#39;t support HTML video. Here is a
        &lt;a href=&quot;https://personal-website-bpf.pages.dev/video/pandan-3.mp4&quot;&gt;link to the video&lt;/a&gt; instead.
      &lt;/p&gt;
    &lt;/video&gt;
    &lt;label for=&quot;blending-pandan-video&quot;&gt;If it struggles to blend, give it tiny bit more water. Not too much though(juuuust enoughh to get the ball rolling) coz we want a kinda concentrated pandan juice coz I&#39;m not using artifical pandan paste like suggested in the OG receipe.&lt;/label&gt;
&lt;/div&gt;
&lt;p&gt;Blend it like 5 minutes. Or until you feel like it&#39;s got some super green liquid going in there.&lt;/p&gt;
&lt;p&gt;Then use a steel filter and a spoon to squeeze the juice out of the pandan mess.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/YBb9zfvX4H-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;(I took this photo after-the-fact. I forgot. sorry. but you get the idea yah?)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;OK we are done with pandan juice. What I do next is lay some groundworks.&lt;/p&gt;
&lt;h2&gt;Heat the Oven&lt;/h2&gt;
&lt;p&gt;Yeah you need an oven...sorry :(&lt;/p&gt;
&lt;p&gt;Oven settings:&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/FwAuTFD7Oe-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;My current settings. You can start with OG receipe&#39;s and trial-and-error from there.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;Don&#39;t turn on the fan. It dries out the moisture and prevent it from rising(i think).&lt;/li&gt;
&lt;li&gt;No need set the timer yet. Set it once you have put the pan in. Timer is &lt;strong&gt;50 minutes&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Temperature is &lt;strong&gt;170 - 175 Celcius&lt;/strong&gt;. I like to go the higher end lately coz I think it makes the end result more aromatic probably because the top layer is more baked. If I do go higher, I would shorten the timer proportionally. That&#39;s how I feel about it and so far it&#39;s working great for me :)&lt;/li&gt;
&lt;li&gt;You gonna place it at the lowest rack.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Bring out &#39;chiffon tube pan&#39;&lt;/h2&gt;
&lt;p&gt;No need oil or water here. Leave it alone as it is. Dry.&lt;/p&gt;
&lt;p&gt;Also, notice the 3 protruding &#39;legs&#39;. They will support the pan when you tip over for cooling after you took it out of oven.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/cvcN7MVnOH-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;A pan where the final batter will go&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;Get ready to measure with spoon units&lt;/h2&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/Snv_PqNe-p-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;Four of these different &#39;spoon metrics&#39; is all you gonna need&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;OK now we can play with flour!&lt;/p&gt;
&lt;h2&gt;Cake flour, baking powder, and salt&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;100g of cake flour&lt;/li&gt;
&lt;li&gt;1 tsp baking powder&lt;/li&gt;
&lt;li&gt;¼ tsp salt&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Get a bowl.&lt;/p&gt;
&lt;p&gt;Measure each of the 3 items above and throw them all in that bowl.&lt;/p&gt;
&lt;p&gt;Mix them with a whisk or whatever you got.&lt;/p&gt;
&lt;div class=&quot;full-width&quot;&gt;
    &lt;div class=&quot;flex-container&quot;&gt;
        &lt;figure class=&quot;full-width&quot; style=&quot;flex: 1 1 300px&quot;&gt;
            &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/q19NCBl5dz-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
            &lt;figcaption&gt;100g-ish of cake flour&lt;/figcaption&gt;
        &lt;/figure&gt;
        &lt;div style=&quot;flex: 1 1 300px&quot;&gt;
            &lt;video id=&quot;1-tsp-baking-powder&quot; controls=&quot;&quot;&gt;
              &lt;source src=&quot;https://personal-website-bpf.pages.dev/video/pandan-7.mp4&quot; type=&quot;video/mp4&quot;&gt;
              &lt;p&gt;
                Your browser doesn&#39;t support HTML video. Here is a
                &lt;a href=&quot;https://personal-website-bpf.pages.dev/video/pandan-7.mp4&quot;&gt;link to the video&lt;/a&gt; instead.
              &lt;/p&gt;
            &lt;/video&gt;
            &lt;label for=&quot;1-tsp-baking-powder&quot;&gt;1 tsp of baking powder&lt;/label&gt;
        &lt;/div&gt;
        &lt;div style=&quot;flex: 1 1 300px&quot;&gt;
            &lt;video id=&quot;quarter-tsp-salt&quot; controls=&quot;&quot;&gt;
              &lt;source src=&quot;https://personal-website-bpf.pages.dev/video/pandan-8.mp4&quot; type=&quot;video/mp4&quot;&gt;
              &lt;p&gt;
                Your browser doesn&#39;t support HTML video. Here is a
                &lt;a href=&quot;https://personal-website-bpf.pages.dev/video/pandan-8.mp4&quot;&gt;link to the video&lt;/a&gt; instead.
              &lt;/p&gt;
            &lt;/video&gt;
            &lt;label for=&quot;quarter-tsp-salt&quot;&gt;¼ tsp salt&lt;/label&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
    &lt;video id=&quot;whisk-flour-salt-baking-powder&quot; controls=&quot;&quot; width=&quot;450&quot;&gt;
      &lt;source src=&quot;https://personal-website-bpf.pages.dev/video/pandan-9.mp4&quot; type=&quot;video/mp4&quot;&gt;
      &lt;p&gt;
        Your browser doesn&#39;t support HTML video. Here is a
        &lt;a href=&quot;https://personal-website-bpf.pages.dev/video/pandan-9.mp4&quot;&gt;link to the video&lt;/a&gt; instead.
      &lt;/p&gt;
    &lt;/video&gt;
    &lt;label for=&quot;whisk-flour-salt-baking-powder&quot;&gt;Now whisk them up&lt;/label&gt;
&lt;/div&gt;
&lt;p&gt;OK we are done with this bowl! It will come into play again later. Put it aside first.&lt;/p&gt;
&lt;p&gt;Next we are going to work with eggs.&lt;/p&gt;
&lt;p&gt;Before we do that, we need to get another two bowls(ya im just gonna keep calling them bowls).&lt;/p&gt;
&lt;h2&gt;One big bowl and one smaller bowl&lt;/h2&gt;
&lt;p&gt;I said we are going to work with eggs. Specifically, we are gonna separate egg yolk and egg white - the egg white will be in the big bowl, and the egg yolk will be in the smaller bowl. I will show you how to separate them. For now, just get the bowls.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/8KeQCcZmg7-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;1 big bowl and 1 smaller bowl&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Ok now just another tiny small step before we do the eggs - let&#39;s put some sugar in the smaller bowl.&lt;/p&gt;
&lt;h2&gt;45g sugar in the small bowl&lt;/h2&gt;
&lt;p&gt;Put 45 grams sugar in the smaller bowl in which the egg yolks are going to end up.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/y01sv9iqbv-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;45g-ish sugar in the smaller bowl&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;OK! Now let&#39;s smash some eggs!&lt;/p&gt;
&lt;h2&gt;Separate egg yolk and egg white&lt;/h2&gt;
&lt;p&gt;Get 5 eggs with decent size. Small eggs won&#39;t give you good amount of egg white which as we will see is where most of the volume of the cake comes from.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/tLaeNRHT6g-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;5 eggs&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Ok, time to separate egg whites and egg yolk! The reason we are doing this is that we will blend the egg whites till they become super fluffy(you will see later). And only with egg whites! So you want to be very careful here: &lt;strong&gt;DO NOT CONTAMINATE THE BOWL THAT CONTAINS EGG WHITES WITH ANY - I repeat ANY - EGG YOLK&lt;/strong&gt;. If somehow a egg yolk breaks and contaminated the egg whites, forget it - it won&#39;t work. It won&#39;t get fluffy. Happened to me once.&lt;/p&gt;
&lt;div class=&quot;full-width&quot;&gt;
    &lt;div class=&quot;flex-container&quot;&gt;
        &lt;div style=&quot;flex: 1 1 300px&quot;&gt;
            &lt;video id=&quot;separate-eggs-white-yolk&quot; controls=&quot;&quot;&gt;
              &lt;source src=&quot;https://personal-website-bpf.pages.dev/video/pandan-13.mp4&quot; type=&quot;video/mp4&quot;&gt;
              &lt;p&gt;
                Your browser doesn&#39;t support HTML video. Here is a
                &lt;a href=&quot;https://personal-website-bpf.pages.dev/video/pandan-13.mp4&quot;&gt;link to the video&lt;/a&gt; instead.
              &lt;/p&gt;
            &lt;/video&gt;
            &lt;label for=&quot;separate-eggs-white-yolk&quot;&gt;(I apologize for the camera work coz I can&#39;t crack and separate eggs while one hand is holding my phone recording. also, the phone was blocking my view, so i had to move it out of the way for few moments in this video)&lt;/label&gt;
        &lt;/div&gt;
        &lt;figure style=&quot;flex: 1 1 300px&quot;&gt;
            &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/FA3rzzfqXL-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
            &lt;figcaption&gt;All done! No egg yolk contamination! phew&lt;/figcaption&gt;
        &lt;/figure&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Next we are going to work on the egg yolk bowl.&lt;/p&gt;
&lt;h2&gt;Work on the bowl that has egg yolks&lt;/h2&gt;
&lt;p&gt;First, whisk the egg yolk and sugar till they become kinda bubbly, or color looks like lighter color of egg yolk, or the sugar is completely melted.&lt;/p&gt;
&lt;div class=&quot;full-width&quot;&gt;
    &lt;div class=&quot;flex-container&quot;&gt;
        &lt;div style=&quot;flex: 1 1 300px&quot;&gt;
            &lt;video id=&quot;whisk-egg-yolk&quot; controls=&quot;&quot;&gt;
              &lt;source src=&quot;https://personal-website-bpf.pages.dev/video/pandan-15.mp4&quot; type=&quot;video/mp4&quot;&gt;
              &lt;p&gt;
                Your browser doesn&#39;t support HTML video. Here is a
                &lt;a href=&quot;https://personal-website-bpf.pages.dev/video/pandan-15.mp4&quot;&gt;link to the video&lt;/a&gt; instead.
              &lt;/p&gt;
            &lt;/video&gt;
            &lt;label for=&quot;whisk-egg-yolk&quot;&gt;Whisk well egg yolk and sugar.&lt;/label&gt;
        &lt;/div&gt;
        &lt;figure style=&quot;flex: 1 1 300px&quot;&gt;
            &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/nVdoGd6HiO-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
            &lt;figcaption&gt;This is when I stop whisking&lt;/figcaption&gt;
        &lt;/figure&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;OK next add &lt;strong&gt;85 - 90 ml of coconut milk&lt;/strong&gt; into the bowl. I go for 90ml now to increase the coconut aroma.&lt;/p&gt;
&lt;div&gt;
    &lt;video id=&quot;add-coconut-milk&quot; controls=&quot;&quot;&gt;
      &lt;source src=&quot;https://personal-website-bpf.pages.dev/video/pandan-19.mp4&quot; type=&quot;video/mp4&quot;&gt;
      &lt;p&gt;
        Your browser doesn&#39;t support HTML video. Here is a
        &lt;a href=&quot;https://personal-website-bpf.pages.dev/video/pandan-19.mp4&quot;&gt;link to the video&lt;/a&gt; instead.
      &lt;/p&gt;
    &lt;/video&gt;
    &lt;label for=&quot;add-coconut-milk&quot;&gt;85 - 90 ml of coconut milk&lt;/label&gt;
&lt;/div&gt;
&lt;p&gt;Next, take a everyday normal spoon, and &lt;strong&gt;add 9 spoonful of the pandan juice&lt;/strong&gt;. It has increased from 4 spoons since I started whipping the egg whites abit longer(this will become clearer later).&lt;/p&gt;
&lt;div&gt;
    &lt;video id=&quot;add-pandan-juice&quot; controls=&quot;&quot;&gt;
      &lt;source src=&quot;https://personal-website-bpf.pages.dev/video/pandan-20.mp4&quot; type=&quot;video/mp4&quot;&gt;
      &lt;p&gt;
        Your browser doesn&#39;t support HTML video. Here is a
        &lt;a href=&quot;https://personal-website-bpf.pages.dev/video/pandan-20.mp4&quot;&gt;link to the video&lt;/a&gt; instead.
      &lt;/p&gt;
    &lt;/video&gt;
    &lt;label for=&quot;add-pandan-juice&quot;&gt;9 spoons of pandan juice using a normal dinner spoon.&lt;/label&gt;
&lt;/div&gt;
&lt;p&gt;Next, add &lt;strong&gt;3 tbs of vegetable oil&lt;/strong&gt;.&lt;/p&gt;
 &lt;div&gt;
    &lt;video id=&quot;add-oil&quot; controls=&quot;&quot;&gt;
      &lt;source src=&quot;https://personal-website-bpf.pages.dev/video/pandan-21.mp4&quot; type=&quot;video/mp4&quot;&gt;
      &lt;p&gt;
        Your browser doesn&#39;t support HTML video. Here is a
        &lt;a href=&quot;https://personal-website-bpf.pages.dev/video/pandan-21.mp4&quot;&gt;link to the video&lt;/a&gt; instead.
      &lt;/p&gt;
    &lt;/video&gt;
    &lt;label for=&quot;add-oil&quot;&gt;(I apologize again for the camera work. The hand holding phone is also holding the spoon.)&lt;/label&gt;
&lt;/div&gt;
&lt;p&gt;Ok we are done adding stuff into this bowl! Let&#39;s give them a quick whisk and then add our cake flour that we prepared earlier.&lt;/p&gt;
&lt;div&gt;
    &lt;video id=&quot;whisk-egg-yolk-redux&quot; controls=&quot;&quot;&gt;
      &lt;source src=&quot;https://personal-website-bpf.pages.dev/video/pandan-22.mp4&quot; type=&quot;video/mp4&quot;&gt;
      &lt;p&gt;
        Your browser doesn&#39;t support HTML video. Here is a
        &lt;a href=&quot;https://personal-website-bpf.pages.dev/video/pandan-22.mp4&quot;&gt;link to the video&lt;/a&gt; instead.
      &lt;/p&gt;
    &lt;/video&gt;
    &lt;label for=&quot;whisk-egg-yolk-redux&quot;&gt;A quick whisk followed by half of the cake flour mixture, then whisk until you see no streaks of flour, then add the rest of cake flour, whisk again until flour is completely blended.&lt;/label&gt;
&lt;/div&gt;
&lt;p&gt;OK we are done with this bowl for now. Put it aside. Now we are gonna work on the egg whites bowl. But before that, we need more sugar which we need to add when whipping the egg whites later.&lt;/p&gt;
&lt;h2&gt;55g of sugar&lt;/h2&gt;
&lt;p&gt;Prepare &lt;strong&gt;55g of sugar&lt;/strong&gt; in the bowl that previously contained the cake flour coz its dry(and one less bowl to clean afterwards).&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/Uc8KMevbdG-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;55g of sugar in a dry bowl&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Now bring the egg whites bowl to the forefront coz its about to get some whipping.&lt;/p&gt;
&lt;h2&gt;Work on the bowl that has egg whites&lt;/h2&gt;
&lt;p&gt;Our only goal here is to whip the egg whites until it becomes &lt;a href=&quot;https://www.seriouseats.com/how-to-beat-egg-whites-baking-meringues-chiffon-cakes-souffles-slideshow#mntl-sc-block_2-0-21&quot;&gt;&#39;stiff peak&#39;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To that end, first add &lt;strong&gt;½ tsp cream of tartar&lt;/strong&gt; to the bowl.&lt;/p&gt;
&lt;div&gt;
    &lt;video id=&quot;add-tartar&quot; controls=&quot;&quot;&gt;
      &lt;source src=&quot;https://personal-website-bpf.pages.dev/video/pandan-24.mp4&quot; type=&quot;video/mp4&quot;&gt;
      &lt;p&gt;
        Your browser doesn&#39;t support HTML video. Here is a
        &lt;a href=&quot;https://personal-website-bpf.pages.dev/video/pandan-24.mp4&quot;&gt;link to the video&lt;/a&gt; instead.
      &lt;/p&gt;
    &lt;/video&gt;
    &lt;label for=&quot;add-tartar&quot;&gt;I don&#39;t fully get it but tartar helps the process&lt;/label&gt;
&lt;/div&gt;
&lt;p&gt;Now here comes the whipping. I just use portable hand blender. Start adding the 55g sugar when the thing becomes frothy.&lt;/p&gt;
&lt;p&gt;(Warning: Turn down your audio first because the blender can be too loud)&lt;/p&gt;
&lt;figure&gt;
&lt;lite-youtube videoid=&quot;uKT03Or9z_s&quot;&gt;&lt;/lite-youtube&gt;
&lt;figcaption&gt;Getting to stiff peaks. Whipping forms air pockets hence making it fluffy&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Something I learned recently is you can whip much longer even after you get the stiff peaks. It will get more dense and creamy. And this allows me to increase my dosage of pandan juice and coconut milk(to increase the aroma) without the whole batter get too liquid and leaking out when you pour it into the pan(also happend to me once..)&lt;/p&gt;
&lt;p&gt;Also, this result of this step is what will give chiffon cake its spongy character because of all the air pockets trapped!&lt;/p&gt;
&lt;p&gt;Next! We are going to mix the egg yolk batter with this batter in a manner called &#39;folding&#39;.&lt;/p&gt;
&lt;h2&gt;Folding two batters&lt;/h2&gt;
&lt;p&gt;It sounds technical but &#39;folding&#39; is basically where you &lt;em&gt;gently&lt;/em&gt; mixing two batters with your whisk or spatula from bottom to top. Do it slowly here coz we don&#39;t wanna collapse the air pockets.&lt;/p&gt;
&lt;p&gt;Mix them well until you don&#39;t see pandan green streaks when going from bottom to top.&lt;/p&gt;
&lt;div class=&quot;full-width&quot;&gt;
    &lt;div class=&quot;flex-container&quot;&gt;
        &lt;div style=&quot;flex: 1 1 300px&quot;&gt;
            &lt;video id=&quot;folding&quot; controls=&quot;&quot;&gt;
              &lt;source src=&quot;https://personal-website-bpf.pages.dev/video/pandan-25.mp4&quot; type=&quot;video/mp4&quot;&gt;
              &lt;p&gt;
                Your browser doesn&#39;t support HTML video. Here is a
                &lt;a href=&quot;https://personal-website-bpf.pages.dev/video/pandan-25.mp4&quot;&gt;link to the video&lt;/a&gt; instead.
              &lt;/p&gt;
            &lt;/video&gt;
            &lt;label for=&quot;folding&quot;&gt;Slowly mixing from bottom to top repeatedly&lt;/label&gt;
        &lt;/div&gt;
        &lt;div style=&quot;flex: 1 1 300px&quot;&gt;
            &lt;video id=&quot;folding-2&quot; controls=&quot;&quot;&gt;
              &lt;source src=&quot;https://personal-website-bpf.pages.dev/video/pandan-26.mp4&quot; type=&quot;video/mp4&quot;&gt;
              &lt;p&gt;
                Your browser doesn&#39;t support HTML video. Here is a
                &lt;a href=&quot;https://personal-website-bpf.pages.dev/video/pandan-26.mp4&quot;&gt;link to the video&lt;/a&gt; instead.
              &lt;/p&gt;
            &lt;/video&gt;
            &lt;label for=&quot;folding-2&quot;&gt;Close up view on folding&lt;/label&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;Pour into the pan&lt;/h2&gt;
&lt;p&gt;Pour the batter to the pan and the batter will slowly fill up the entire pan.&lt;/p&gt;
&lt;p&gt;After that, slowly work your whisk through the pan to even it out.&lt;/p&gt;
&lt;div&gt;
    &lt;video id=&quot;pour-to-pan&quot; controls=&quot;&quot;&gt;
      &lt;source src=&quot;https://personal-website-bpf.pages.dev/video/pandan-27.mp4&quot; type=&quot;video/mp4&quot;&gt;
      &lt;p&gt;
        Your browser doesn&#39;t support HTML video. Here is a
        &lt;a href=&quot;https://personal-website-bpf.pages.dev/video/pandan-27.mp4&quot;&gt;link to the video&lt;/a&gt; instead.
      &lt;/p&gt;
    &lt;/video&gt;
    &lt;label for=&quot;pour-to-pan&quot;&gt;Slowly move whisk through the pan to even it out, and shake it a little bit coz it seems effective&lt;/label&gt;
&lt;/div&gt;
&lt;h2&gt;Put it in oven&lt;/h2&gt;
&lt;p&gt;Put it at lowest rank. And set the timer 45 - 50 minutes. I put 50 to get more aroma out of it.&lt;/p&gt;
&lt;p&gt;As much as you are tempted, don&#39;t open the oven to poke it to see if it&#39;s already cooked or not. No, just leave it alone.&lt;/p&gt;
&lt;div&gt;
    &lt;video id=&quot;oven-time&quot; controls=&quot;&quot;&gt;
      &lt;source src=&quot;https://personal-website-bpf.pages.dev/video/pandan-28.mp4&quot; type=&quot;video/mp4&quot;&gt;
      &lt;p&gt;
        Your browser doesn&#39;t support HTML video. Here is a
        &lt;a href=&quot;https://personal-website-bpf.pages.dev/video/pandan-28.mp4&quot;&gt;link to the video&lt;/a&gt; instead.
      &lt;/p&gt;
    &lt;/video&gt;
    &lt;label for=&quot;oven-time&quot;&gt;It&#39;s now in the hands of oven&lt;/label&gt;
&lt;/div&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/kMCFvU-slt-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;Looking good!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;Tip pan over and cool it&lt;/h2&gt;
&lt;p&gt;This is an important step. Once timer is up, you get it out and quickly turn the pan upside down. And let the pan sit on its 3 &#39;legs&#39; and let it cool. Why? Because we don&#39;t want to collapse the structures that have formed around the air pockets.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/AW_zD2BhCh-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;Upside down the pan to cool&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;And we did it!&lt;/h2&gt;
&lt;figure&gt;
    &lt;img src=&quot;https://personal-website-bpf.pages.dev/img/QPlGboSqjh-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;Pandan Chiffon Cake&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;div&gt;
    &lt;video id=&quot;spongy-cake&quot; controls=&quot;&quot;&gt;
      &lt;source src=&quot;https://personal-website-bpf.pages.dev/video/pandan-30.mp4&quot; type=&quot;video/mp4&quot;&gt;
      &lt;p&gt;
        Your browser doesn&#39;t support HTML video. Here is a
        &lt;a href=&quot;https://personal-website-bpf.pages.dev/video/pandan-30.mp4&quot;&gt;link to the video&lt;/a&gt; instead.
      &lt;/p&gt;
    &lt;/video&gt;
    &lt;label for=&quot;spongy-cake&quot;&gt;Can you hear the spongy sounds?&lt;/label&gt;
&lt;/div&gt;
&lt;h2&gt;Storage&lt;/h2&gt;
&lt;p&gt;Once it&#39;s out of oven and cooled, put it in &lt;strong&gt;fridge&lt;/strong&gt;! ☘&lt;/p&gt;
</content>
    </entry>
    
    <entry>
        <title>An Idiot&#39;s Guide to Hiking Annapurna Circuit Trek</title>
        <link href="https://personal-website-bpf.pages.dev/an-idiot-guide-to-hiking-annapurna-circuit-trek/"/>
        <updated>2022-11-15T00:00:00Z</updated>
        <id>https://personal-website-bpf.pages.dev/an-idiot-guide-to-hiking-annapurna-circuit-trek/</id>
        <content type="html">&lt;p&gt;I recently did a solo 10-days Annapurna Circuit Trek(ACT) in Nepal. I went there ill-prepared and didn&#39;t die. So this is an idiot&#39;s guide to hiking ACT along with mistakes I realized I&#39;d made as I walked deeper into the mountains.&lt;/p&gt;
&lt;h2&gt;A bit about ACT&lt;/h2&gt;
&lt;figure class=&quot;full-width&quot;&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/w1rp106ljJ-1400.webp&quot; width=&quot;1400&quot; alt=&quot;Itineray of ACT showing altitude and distance between villages&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;Annapurna Circuit Trek &lt;a href=&quot;https://www.google.com/maps/d/u/0/viewer?mid=1EXigQd6HYpgi42bwqU0nFydVYM8&amp;hl=en&amp;ll=28.532051818693756%2C83.9861295&amp;z=10&quot;&gt;(View on Google Map)&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;ACT trail starts from Besisahar at 820m altitude. Altitude go up as you go, culminating in Thorung Pass at 5416m. It&#39;s this significant altitude changes that you get to experience the various landscapes and ways of life on this trek.&lt;/p&gt;
&lt;p&gt;If you don&#39;t care about all that, you can take a jeep to Manang. Yes, they built a road for vehicles to reach until Manang(90km in). As a consequence of that, when I walk on the road, vehicles kick up dusts as they pass me by. That sucks and I feel like shit.&lt;/p&gt;
&lt;p&gt;However, there are hiking trails that run parallel to the road. Pay attention to them on MAPS.me. I missed many of them. The trails take longer time and involve more ascends and decends, plus some are not well-maintained. So you need to either hire a guide or do your research extensively.&lt;/p&gt;
&lt;p&gt;I mostly favored the road because I could experience the landscapes there too. And honestly, I care less the lower altitude landscapes than the snow-capped mountains that emerge ever so slightly as you go. Still, the dusts really sucks! The bandana helped alot there.&lt;/p&gt;
&lt;p&gt;Also, you will be walking along side the Marsyangdi River most of the times. The river supports villages dotted along the main trail. Its sounds is omnipresent giving you a sense of wilderness.&lt;/p&gt;
&lt;h2&gt;Stuff I Carry&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Tom Bihn Synik 30 backpack&lt;/li&gt;
&lt;li&gt;Klean Kanteen 1.18L water bottle.&lt;/li&gt;
&lt;li&gt;A pair of Bedrock sandals&lt;/li&gt;
&lt;li&gt;2 wool top base layers&lt;/li&gt;
&lt;li&gt;2 Uniqlo bottom base layers&lt;/li&gt;
&lt;li&gt;1 Darn Tough wool socks&lt;/li&gt;
&lt;li&gt;1 Uniqlo cotton toe-socks&lt;/li&gt;
&lt;li&gt;1 Uniqlo office pant&lt;/li&gt;
&lt;li&gt;1 normal hiking pant&lt;/li&gt;
&lt;li&gt;1 running short&lt;/li&gt;
&lt;li&gt;2 Uniqlo underwears&lt;/li&gt;
&lt;li&gt;1 bandana&lt;/li&gt;
&lt;li&gt;1 fleece sweater&lt;/li&gt;
&lt;li&gt;1 linen towel&lt;/li&gt;
&lt;li&gt;1 windbreaker&lt;/li&gt;
&lt;li&gt;1 long sleeve hiking shirt&lt;/li&gt;
&lt;li&gt;1 beanie&lt;/li&gt;
&lt;li&gt;2 cotton t-shirts&lt;/li&gt;
&lt;li&gt;1 boxer&lt;/li&gt;
&lt;li&gt;Thinkpad T480 laptop&lt;/li&gt;
&lt;li&gt;Kindle Paperwhite&lt;/li&gt;
&lt;li&gt;Some plastic bags&lt;/li&gt;
&lt;li&gt;Some normal tissue papers&lt;/li&gt;
&lt;li&gt;1 bag of wet tissue&lt;/li&gt;
&lt;li&gt;1 hand sanitizer&lt;/li&gt;
&lt;li&gt;Passport&lt;/li&gt;
&lt;li&gt;1 universal power adapter&lt;/li&gt;
&lt;li&gt;1 Asus Zenfone 8&lt;/li&gt;
&lt;li&gt;1 toiletry bag&lt;/li&gt;
&lt;li&gt;Medicines for panadol, altitude sickness and food poison&lt;/li&gt;
&lt;li&gt;Water treatment tablets&lt;/li&gt;
&lt;li&gt;1 Mosquito repellent&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All was carried in the one bag weights 9kg. No need for porter. Just carry less shits!&lt;/p&gt;
&lt;h3&gt;Mistakes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Get a proper hiking shoes! At least a trail-running shoes. I wore sandal until Manang. On Day-2, the heel of my foots cracked and hurts if I step heel-first, and I had to walk in tip-toe, barefoot-running style from Day-3 onwards while wearing the Darn Tough socks that wasn&#39;t a split-toe.&lt;/li&gt;
&lt;li&gt;Seriously, get a pair of shoes! Sandal did feel like a perfect idea in several sections of the road where waterfall was flooding over. Beyond that, I couldn&#39;t wait to get to Manang to grab myself shoes.&lt;/li&gt;
&lt;li&gt;My bandana sucks. It&#39;s porous and thin. It helps with the dusts. But my lips completely chapped after Thorung Pass.&lt;/li&gt;
&lt;li&gt;A wool split-toes socks would have been nice for the sandal.&lt;/li&gt;
&lt;li&gt;Get a pair of winter gloves. My jacket was just a wind jacket whose pockets did nothing to protect my hands from the chill.&lt;/li&gt;
&lt;li&gt;Get better fleece jacket.&lt;/li&gt;
&lt;li&gt;Get lip gloss!&lt;/li&gt;
&lt;li&gt;Get merino t-shirts&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/zUrovYi6jz-448.webp&quot; width=&quot;448&quot; alt=&quot;My sandals and backpack&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;My sandals and backpack&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;Day 0&lt;/h2&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/tHXHO92dA3-448.webp&quot; width=&quot;448&quot; alt=&quot;Street view of Thamel, Kathmandu packed with overhead cables and motor bikes.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;Thamel, Kathmandu&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I spent the previous week working my day job in a hostel in Thamel. On 21st Oct Friday morning, I took a 10-hours public bus from Gongabu Bus park to Besisahar(0km. This is the default place to start ACT). From there, I took another bus to Bulbule as I&#39;d read the journey in between wouldn&#39;t be spectacular. But I ended up in lower Ngadi(10km) like an idiot thinking the bus&#39;s final stop was Bulbule.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/hssC7iAiNy-448.webp&quot; width=&quot;448&quot; alt=&quot;Khaja food&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;Khaja&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;Mistakes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Don&#39;t take public bus! Just pay for jeep or tourist bus that directly take you there. Public bus makes MANY stops and loads and unloads huge bags of stuff along the way. Regardless, the journey is hell. Roads in mountainous area are really bad. Dusty and bumpy pretty much the whole way. Pay for comforts and save time if they don&#39;t marginally cost too much for you.&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/9IeOh8dDNS-448.webp&quot; width=&quot;448&quot; alt=&quot;Bus aisle filled with bags&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;Packed bus&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;Shop around for guest house! Ignore owners that hard sell you. When I got off the bus in Ngadi, I was confused about everything. Here comes an owner sees me and pull me to her property. Like an idiot, I follow her. Sure enough, I got ripped off. I paid 2700 Nepali Rupee for a night here(room, dinner and breakfast, and bad drinking water).&lt;/li&gt;
&lt;li&gt;It&#39;s at this tea house I realized I didn&#39;t bring enough cash for this trek. You need at least 2500NRP per day. My estimate was NRP 600 per day. One dal bhat already cost NRP 600. I&#39;d read from several sources that the next ATM won&#39;t be until Jomsom(140km). I panicked about this until Timang(50km).&lt;/li&gt;
&lt;li&gt;But Manang has ATM now!&lt;/li&gt;
&lt;li&gt;Room can be free if you agree to eat their dinner and breakfast. Room rate is negotiable. Apparently dal bhat&#39;s prices are standardized.&lt;/li&gt;
&lt;li&gt;Don&#39;t drink the tap water at lower altitude. I look for drinking water station with water that&#39;s continuously flowing from the tap. I never treated my water.&lt;/li&gt;
&lt;li&gt;Don&#39;t bring laptop. I brought it in case I couldn&#39;t make it back before my leaves are up.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Day 1&lt;/h2&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/xzBsJIU_21-448.webp&quot; width=&quot;448&quot; alt=&quot;View of Ngadi&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;Ngadi&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;First day of walking! From Ngadi(10km, 890m altitude) to Jagat(25km, 1300m altitude).&lt;/p&gt;
&lt;p&gt;I took the hiking trail to stop by Syange to check out the water falls. They were breathtaking. I&#39;d never seen anything like this before.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/fL_5XdAts_-448.webp&quot; width=&quot;448&quot; alt=&quot;View of Syange and waterfalls&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;Viewing the waterfalls at Syange from Hotel Rainbow while eating a plate of boiled potatoes coz it&#39;s cheap coz I thought I was running out of cash&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/MqwweLt1po-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;Jagat&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;Mistakes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Don&#39;t jump on the first guest house you see when entering a village. Walk further in. The view and prices can be better and less crowded too.&lt;/li&gt;
&lt;li&gt;In Jagat, &#39;North face teahouse&#39; at the far end has a great view.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Day 2&lt;/h2&gt;
&lt;p&gt;Jagat(25km, 1300m) to Karte(38km, 1870m).&lt;/p&gt;
&lt;p&gt;Today I came across several waterfalls flowing over the road down to the Marsyangdi river. They were pretty cool but be careful, particularly one of them had caused a fatal accident.&lt;/p&gt;
&lt;figure&gt;
&lt;lite-youtube videoid=&quot;cQUdA5UsxAI&quot;&gt;&lt;/lite-youtube&gt;
&lt;figcaption&gt;Dodgy waterfall&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I skipped Tal which seemed like a recent touristy trap built there to capitalize on the surroundings. The river seems completely reconfigured in the process too.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/l5pEMDkQxK-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;Tal&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;My heels also started to deteriorate here. I originally aimed for Dharapani(40km) but decided to call it at Karte which turned out to be a blessing. It&#39;s a very small and quiet village. The owners of the tea house(New World hotel) I stayed at treated me like a family member. The lady owner was amazing - Her Tibetan bread with honey was the first I ever tried and couldn&#39;t stop ordering it down the road; She treated my cracked heels with oil; She agreed to exchange a 100USD note I had for Nepali Rupee but I nullified the agreement on last day coz I could tell she was rightfully worried about the authenticity of the note.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/BpcynIUrrh-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;Karte&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;It was also on this day that I realized I should skip the villages that most hikers flock to rest for the day. Instead, opt for the smaller villages like Karte. In other words, avoid cookie-cutter hiking itineraries.&lt;/p&gt;
&lt;h3&gt;Mistakes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Consider taking the hiking trail although it appeared to come to a dead end after Tal.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Day 3&lt;/h2&gt;
&lt;p&gt;Karte(38km, 1870m) to Timang(49km, 2615m).&lt;/p&gt;
&lt;p&gt;Saved lots of time by taking the hiking trails that cut through the winded road.&lt;/p&gt;
&lt;p&gt;I stopped by Odar. Steep climb. In hindsight, I would skip it. There&#39;s a view point with ok view. I read before this village was worth a visit for its medieval atmosphere, but they&#39;d modernized the roof to steel material and things like that. Though, I saw ladders made of tree trunk which was cool - those are the kind of things I want to see.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/7BswtPOq7T-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;Odar&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/_ybTHRyTur-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;Ladder out of tree trunk&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;From Timang onwards, snow-capped mountains become very prominent around me. From the tea house I stayed at called &#39;Prasanna hotel&#39;, I could see the Manaslu and Himchuli mountains.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/Z1EdHrUqiN-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;Manaslu and Himchuli from Prasanna Hotel&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I tried searching on internet if really only Jomsom has the ATM. To my delight, Manang has one too very recently. I was relieved. I start to loosen my belt on foods and teas now.&lt;/p&gt;
&lt;h3&gt;Mistakes&lt;/h3&gt;
&lt;p&gt;Today nothing struck me as mistakes!&lt;/p&gt;
&lt;h2&gt;Day 4&lt;/h2&gt;
&lt;p&gt;Timang(49km, 2615m) to Dhukur Pokhari(69km, 3240m).&lt;/p&gt;
&lt;p&gt;This was a tough journey. Walking on sandal with non-split-toes sock is bothering me. Amazing mountains surround me past Bhratang.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/wgJV6Fb3p_-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;View past Bhratang &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;lite-youtube videoid=&quot;IUTpwPlVReU&quot;&gt;&lt;/lite-youtube&gt;
&lt;figcaption&gt;Donkeys&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I couldn&#39;t make it to Upper Pisang. I stayed the night at Dhukur Pokhari.&lt;/p&gt;
&lt;p&gt;Also the night here is freezing and mountains are turning arid and snowy.&lt;/p&gt;
&lt;h3&gt;Mistakes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Don&#39;t wash clothes and hang them out overnight starting here! They will be frozen the next morning!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Day 5&lt;/h2&gt;
&lt;p&gt;Dhukur Pokhari(69km, 3240m) to Manang(90km, 3540m).&lt;/p&gt;
&lt;p&gt;Turns out Upper Pisang wasn&#39;t so far away. This would have been nice place for a overnight: old houses made of earth raw materials on hills; ancient tibetan temple overlooking panoramic view of snowy mountain range opposite; vast yellow-ish grazing fields all surround; yak, chicken, donkeys; a cow desperately finding its way down a steep slope to answer a mating call... - Feels like I have time-traveled to the ancient past at its natural unperturbed state.&lt;/p&gt;
&lt;p&gt;I skipped the side trails to Ghyaru and Ngawal to arrive in Manang sooner to sort out my logistical woes - draw much needed cash, get gloves and shoes.&lt;/p&gt;
&lt;figure&gt;
&lt;lite-youtube videoid=&quot;lpmiVoBtEgA&quot;&gt;&lt;/lite-youtube&gt;
&lt;figcaption&gt;Manang&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Manang is a big milestone in almost everyone&#39;s mind. It&#39;s a traditional place to acclimatize for 2 days because past this place, it&#39;s non-stop steep altitude gains until Thorung Pass.&lt;/p&gt;
&lt;p&gt;I only stayed one night coz I didn&#39;t feel anything like altitude sickness the next morning.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/n-Zhpk68hZ-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;Got the shoes! But gonna regret this - Look how slippery the sole is!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;Day 6&lt;/h2&gt;
&lt;p&gt;Manang(90km, 3540m) to Gunsang(96km, 3900m)&lt;/p&gt;
&lt;p&gt;Today I put on my new shoes and continue my journey with renewed spirits. I was wrong. My cracked heels are not jiving with the shoes. It hurts every step I take. I also start to feel dizzy and breathless from the altitude. I could only make it to Gunsang which turned out to be a hidden gem!&lt;/p&gt;
&lt;figure&gt;
&lt;lite-youtube videoid=&quot;GGL3IFjx3Uw&quot;&gt;&lt;/lite-youtube&gt;
&lt;figcaption&gt;Gunsang from my room&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;lite-youtube videoid=&quot;q7wHBOJdZ64&quot;&gt;&lt;/lite-youtube&gt;
&lt;figcaption&gt;Gunsang at the tea house&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Lots of good memories made at this place. There was only one tea house operational. It&#39;s called Chulu West Hotel. It&#39;s entirely run by a lady(with a man from Manang working the potato fields and walk back once he finishes). It was inspiring to watch her work. After I told her about my predicament with my heels, she prepared me a bucket of warm water plus salt to sooth and hopefully heal my cracked heels. That&#39;s when I decided I will heal and acclimatize for few nights here.&lt;/p&gt;
&lt;p&gt;Another most amazing thing about this place is the &lt;em&gt;perfect&lt;/em&gt; breath taking panorama of Annapurna Himal right next to the tea house - And I got the perfect room for it.&lt;/p&gt;
&lt;p&gt;I stayed two nights here. The first night I stayed all by myself because the lady owner had to be in Manang and carry some stocks back up by herself the next morning. The night was eerily lonely, quiet only to be interspersed by strong winds whistling against my window. It was dark, cold, with nothing but me, mountains, creatures, and the stars. I also experienced the altitude headache and breathlessness for the first time.&lt;/p&gt;
&lt;p&gt;I was relieved when the day breaks. I remember sitting on a bench on the roof marveling at the himal while anticipating the lady&#39;s return. I saw her slowly making her way around the mountains from afar. I knew things were going to be ok soon.&lt;/p&gt;
&lt;p&gt;On my second day here, it&#39;s busy in the kitchen. Many hikers would stop by for tea. I helped her out where I can in the kitchen mainly watch the fire to prepare hot water and wash the dishes. At one point, she offered me foods(a plate of boiled potatoes and half of an extra spring roll). I felt I was part of her operation now.&lt;/p&gt;
&lt;p&gt;I spent the second night with the lady owner, a hiker couple, a Nepali researcher and his partner passing by as part of their study about snow leopard in this region. Also, my heels had healed alot and altitude sickness had subsided.&lt;/p&gt;
&lt;p&gt;I can&#39;t recommend enough to stay in this tea house.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/Ggtf5YBz2I-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;Me and the lady owner&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;Mistakes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Didn&#39;t know there weren&#39;t Wi-Fi service beyond Manang until Muktinath since two years ago. Also power charging and hot shower are hard to come by. I stopped showering here.&lt;/li&gt;
&lt;li&gt;NCell mobile coverage sucks beyond Manang. Look into &#39;Ntc&#39;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Day 8&lt;/h2&gt;
&lt;p&gt;Gunsang(96km, 3900m) to Ledar(100km, 4200m).&lt;/p&gt;
&lt;p&gt;I figured this would be a good altitude increment. Remember to listen to your body. General rule is not more than 500m climb per day.&lt;/p&gt;
&lt;h2&gt;Day 9&lt;/h2&gt;
&lt;p&gt;Ledar(100km, 4200m) to High Camp(107km, 4850m).&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/B50EU7Ot8q-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;To High Camp&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I saw power lines getting setup on this stretch. I didn&#39;t like the sight of them.&lt;/p&gt;
&lt;p&gt;High Camp(or Thorung Phedi) is the last stop where people rest before making the push to Thorung Pass at around 4 - 5am next morning.&lt;/p&gt;
&lt;p&gt;Steep and slow climb here. I constantly catch for breaths after few steps due to the altitude.&lt;/p&gt;
&lt;figure&gt;
&lt;lite-youtube videoid=&quot;xr19N_AQg1c&quot;&gt;&lt;/lite-youtube&gt;
&lt;figcaption&gt;High Camp&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I shared a dorm with 2 seasoned solo travellers. Couldn&#39;t fall asleep here. Altitude headache got to me big time.&lt;/p&gt;
&lt;h3&gt;Mistakes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Get a pair of sunglasses. Combination of snow and sun will fuck up your eyes.&lt;/li&gt;
&lt;li&gt;Get a headlamp! You will regret not having one when going to toilet at night and the ground is icy.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Day 10&lt;/h2&gt;
&lt;p&gt;High Camp(107km, 4850m) - Thorung Pass(111km, 5416m) - Muktinath(121km, 3800m) - Taxi to Kagbeni.&lt;/p&gt;
&lt;p&gt;High Camp comes to life at 4am with people waking up, coming out of their room with backpack, heading to kitchen for breakfast, and hiking guides busy sorting out things for their client.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/KbwnLy5vB1-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;To Thorung Pass before dawn&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Now, Thorung Pass is completely covered with snows. The trail is snowy, icy, rocky, slippery. Before the trip, I saw a snowy photo with clear flat dirt path outlining the trail, and somehow that&#39;d dominated my entire notion of this place. I couldn&#39;t be more wrong. Since I didn&#39;t have a headlamp, initially I held my phone to light the way. I&#39;m glad I did - the path in the very beginning was abit dodgy with steep slope on the other side. But then I stopped because my hand was freezing(gloves from Manang sucks) and I wanted to save battery since I heard today was by far the longest day on ACT. So I started walk closely behind someone with lights. Even then, I barely could see the path. This whole time I was super alert to not make a wrong step and got myself into trouble.&lt;/p&gt;
&lt;p&gt;Needless to say, I was relieved when the dawn breaks.&lt;/p&gt;
&lt;figure&gt;
&lt;lite-youtube videoid=&quot;j6cTDgZCvRM&quot;&gt;&lt;/lite-youtube&gt;
&lt;figcaption&gt;Made it to Thorung Pass&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Coming down from Thorung Pass, I realized I didn&#39;t have another thing most people had: crampon!&lt;/p&gt;
&lt;figure&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;https://upload.wikimedia.org/wikipedia/commons/thumb/3/36/Aa_walking_crampons.jpg/1024px-Aa_walking_crampons.jpg&quot;&gt;
&lt;figcaption&gt;(Image credit: &lt;a href=&quot;https://en.wikipedia.org/wiki/Crampons#/media/File:Aa_walking_crampons.jpg&quot;&gt;Wikipedia&lt;/a&gt;) Wear your shoes on top of this. It eats into the ice. No more slipping.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The surface of most parts of this trail was frozen probably due to friction heat from foot traffic. So without crampon, I keep slipping left and right. I had to scootch down and push myself to avoid slipping over to the slope on other side or sliding down the trail adjoined by multiple slopes and risk hitting my foot and butt into the rocks underneath; I had to step few feets to the side of trail that&#39;s still snow and constantly bang my toes on the rocks underneath; intentional and accidental butt slide, and ended up destroying my hiking pant and slightly got my wrists cut when trying to brake and maneuver. My journey here progresses at a snail rate while others with crampon breezely walk past me. I start to worry if it&#39;s going to be like this for much further before it gets dark and even more chilly. What if I come to a cliff and my silly maneuvers won&#39;t cut it? Others can&#39;t borrow me theirs. I would need a helicopter rescue that costs a fortune.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/E7mKXTriDA-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;Broke my pant from butt slides&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Luckily, the snowy part of the mountain ends at some point. The trail becomes a dirt path. I was relieved - again. I&#39;m exhausted. But it is over. I changed back to my sandal to relieve my blistered and banged up toes, and continued my way to Muktinath in relative comforts.&lt;/p&gt;
&lt;p&gt;Then I took a taxi to Kagbeni village and spent a night there. Kagbeni is amazing - Medieval, tibetan, fresh apple juice, food, mystical.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/oRD1ew2qMl-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;Kagbeni&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;img src=&quot;https://personal-website-bpf.pages.dev/img/FiFRWBSdya-448.webp&quot; width=&quot;448&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;figcaption&gt;Mystical Kagbeni&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3&gt;Mistakes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Get headlamp!&lt;/li&gt;
&lt;li&gt;Get crampon! And maybe hiking poles.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Last words&lt;/h2&gt;
&lt;p&gt;I know I could have prepared myself for everything this trek could possibly have up its sleeve. But wouldn&#39;t that deprive me of all surprises and serendipities? Because if I did, I would have missed out on unique experiences like those I had in quaint villages such as Karte and Gunsang.&lt;/p&gt;
&lt;p&gt;My approach to this trek was to both research and pack the bare minimum, then go out there and listen to my body and wisdom of the local people - and comport accordingly to the reality. When the natives - who have stayed there for generations - say this tap water is safe to drink, their words should weigh more than what you might have gathered from the internet. Up to the point I cracked my heels, I&#39;d asked several locals whether my sandals were enough. All of them said I need shoes. Still, I was adamant. It took me few villages of wisdom and unignoreable pain to accept I was wrong. I wasn&#39;t listening as much and sincerely as I thought I would.&lt;/p&gt;
&lt;p&gt;Similar to how microplastic has tainted our blood stream, from peak of Mount Everest to bottom of Mariana Trench, we carry the responsible ethos with us to the mountains as well. We see the mountains as a beast. We tame them with technologies: Water treatment technologies are deployed, branded high-tech gears stomped the grounds leaving clouds of dust in its wake, and on High Camp, portable solar panel charger was used to charge our mobiles. We leave no wiggle room for uncertainties and discomfort, when in fact, they can be catalyst for groundedness and growth.&lt;/p&gt;
&lt;p&gt;Honed and domesticated by the logics of global industrial civilization, hiking has become a mission, a conquest - to be performed efficiently in order to fulfill personal agenda. And once that&#39;s accomplished, we happily return to the bosom of the state and grease its wheels that will continue to deface the mountains where we just came back from.&lt;/p&gt;
&lt;p&gt;I wonder: Am I really there for the mountains and to listen and learn, or just to check something off my bucket list? ☘&lt;/p&gt;
</content>
    </entry>
    
    <entry>
        <title>Unlearning</title>
        <link href="https://personal-website-bpf.pages.dev/blog/unlearning/"/>
        <updated>2021-01-28T00:00:00Z</updated>
        <id>https://personal-website-bpf.pages.dev/blog/unlearning/</id>
        <content type="html">&lt;p&gt;My &lt;a href=&quot;https://personal-website-bpf.pages.dev/posts/be-less-efficient/&quot;&gt;last post&lt;/a&gt; was about unlearning the gospel of &#39;efficiency&#39; while remaining &#39;civilized&#39;. This post is about unlearning the &#39;civilized&#39; part itself in a global industrialized civilization that&#39;s imbued with colonialistic force against all life on earth.&lt;/p&gt;
&lt;p&gt;Human activities in recent decades have egregiously &lt;a href=&quot;https://guymcpherson.com/climate-chaos/climate-change-summary-and-update/&quot;&gt;disrupted&lt;/a&gt; the earth&#39;s life-supporting systems from which all forms of life—including human—had evolved. The rapid change we have caused drives hundreds of species to extinction every day, and at this rate, human species too. Everything used to exist in perfect harmony in their own niche within natural constraints until the invention of technology particularly agriculture which has led to the cycle of boom and bust of human civilizations.&lt;/p&gt;
&lt;p&gt;From reading a book called &lt;a href=&quot;https://en.wikipedia.org/wiki/A_Short_History_of_Progress&quot;&gt;&#39;The Short History of Progress&#39;&lt;/a&gt;, I learned that all ancient empires and civilizations collapsed under the weight of their own ingenuity, intractable complexity, desecrated surrounding environment, moral decay, and warring social classes. This predicament drove colonization to new territories, and history repeats again.&lt;/p&gt;
&lt;p&gt;Then capitalist economy and morality emerged.&lt;/p&gt;
&lt;p&gt;Capitalism led to the monetization of all life on earth, treating nature as &#39;resources&#39; to be exploited and traded for human&#39;s interest. It led to the &#39;Enlightenment&#39;, &#39;rationality movement&#39;, &#39;scientific methods&#39;, which led to the mechanization of nature and human body in a reductionistic manner by which we can break and study in pieces in order to bend to our will.&lt;/p&gt;
&lt;p&gt;We can see such hubris being flaunted in the rise of green energy, green technology, and green economic policies. We haven&#39;t realized that it was our sheer arrogance with respect to nature that got us in this predicament. We still believe we can invent and deploy new technologies to fix, do, and tinker things in order to perpetuate our current destructive social-economic paradigm that is all about infinite growth. But infinite growth is impossible in a finite world.&lt;/p&gt;
&lt;p&gt;Building solar panels and electric cars at scale is not possible without burning even more fossil fuels, hence accelerate us to the ground off the cliff. The reason is that new technologies often necessitate new network of infrastructures to support them. For example, the introduction of automobiles accelerated burning fuels and led to the sprawling interstate highways and suburb, all of which require encroaching environment and non-human habitats, creating secondary consequences such as novel diseases that shouldn&#39;t be interpreted as an anomaly but a logical progression of a rapacious global industrial civilization.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Even if people sense that something is not quite right—civilization has gotten too big, too complex, too hard to manage—they may still not see that the problems are caused in large part by exponential growth, not in programs or technologies designed to allow it to continue. For if you remove one constraint, renewed growth quickly pushes the civilization up against the next one, and so on, until it buckles under the strain.
- &lt;strong&gt;&lt;em&gt;Excerpt from &lt;a href=&quot;https://www.amazon.com/Immoderate-Greatness-Why-Civilizations-Fail/dp/1479243140&quot;&gt;Immoderate Greatness&lt;/a&gt; book&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It didn&#39;t used to be this way.&lt;/p&gt;
&lt;p&gt;A book called &lt;a href=&quot;https://en.m.wikipedia.org/wiki/Ancient_Futures&quot;&gt;&#39;Ancient futures&#39;&lt;/a&gt; shows the lives of the Ladahk folks being turned upside down by the introduction of capitalism and its proselytizing of &#39;modern development&#39;. Flourishing intimate relationship between the people, environment and animals that had been cultivated for thousands of years were written off as &#39;backward&#39;, &#39;inefficient&#39;, and &#39;unproductive&#39; from the ethnocentric lens of a Western civilization. The consequences were all too familiar: the destruction of environment, population boom, income and social inequality, disintegrating of support network between families, urban migration of the youths leaving behind the elders fending for themselves, and uptick of psychological illness and identity crisis.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;https://nwpermacultureinstitute.files.wordpress.com/2017/03/two_girls-c1-copy.jpg&quot;&gt;
&lt;figcaption&gt;Learning from Ladakh&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The Ladahk people didn&#39;t need western cultures and intervention. Until the onset of &#39;development&#39;, they were happier and well-balanced physically and psychologically than people in developed countries will ever be. They didn&#39;t need to be &#39;civilized&#39; and &#39;educated&#39;. They didn&#39;t need to purposely read &#39;self-help&#39; books or watch TED talks like we do. They were respectful to all beings around them. They knew the limits and not to cross them. They already practiced &lt;a href=&quot;https://en.wikipedia.org/wiki/Precautionary_principle&quot;&gt;&#39;precautionary principle&#39;&lt;/a&gt; without having to learn about it. Because as a follower of Buddhism, they realized—as did other indigenous people—everything is interconnected. They didn&#39;t need science and opaque rationality to realize that as we have.&lt;/p&gt;
&lt;p&gt;Modern history has shown that being &#39;civilized&#39; means being subjected to western social, economic, and political hegemony. Those who didn&#39;t tow the line were considered &#39;savages&#39; to be exterminated as happened to the Native Americans, and brutalized as in many parts of the world. (Read &lt;a href=&quot;https://www.amazon.com/Rules-World-American-Empire-Project/dp/1250131081&quot;&gt;&#39;Who rules the world&#39;&lt;/a&gt; by Noam Chomsky). Whereas, those who were on the &#39;right&#39; side—subscribing to and producing the &#39;right&#39; values—have benefited immensely.&lt;/p&gt;
&lt;p&gt;I would like to think our predicament couldn&#39;t have been attributed to malice. But reading &lt;a href=&quot;https://en.wikipedia.org/wiki/Caliban_and_the_Witch&quot;&gt;&#39;Caliban and the Witch&#39;&lt;/a&gt; tells me there was a long history of struggles between, on one hand, the mercantilist, Church, noble class, and on the other, the poor, peasants, vagabond, slaves, and woman. Needless to say, the former group prevailed. Profits, financialization, individualism, competition, unscrupulous innovation, globalization, population growth, efficiency, productivity, mass media, advertising and consumption are aberrations exalted to grease this rapacious growth engine, while we forget that majority of human existence was communal, cooperative, localized and subsistence-based.&lt;/p&gt;
&lt;p&gt;Was our current predicament inevitable? Perhaps any intelligent being like Homo sapiens inexorably end up in ruins and extinction. Perhaps that&#39;s the answer to the &lt;a href=&quot;https://en.wikipedia.org/wiki/Fermi_paradox&quot;&gt;Fermi Paradox&lt;/a&gt;. Is it too late to imagine an alternative outcome? Alternative to capitalism(not socialism, which is just another way to exploit and distribute resources)?&lt;/p&gt;
&lt;p&gt;Well, we know we are going to have an &lt;a href=&quot;https://en.wikipedia.org/wiki/Arctic_sea_ice_decline&quot;&gt;ice-free arctic&lt;/a&gt; with so much heat already baked in the system(read also &lt;a href=&quot;https://www.dahrjamail.net/the-end-of-ice/&quot;&gt;&#39;The End of Ice&#39;&lt;/a&gt;). And when that happens, &lt;a href=&quot;https://www.amazon.com/This-Civilisation-Finished-Conversations-Empire/dp/0994282834&quot;&gt;this civilization is finished&lt;/a&gt;. Only then, unfortunately, will we rekindle our ancestral kinship with the earth and sky, again living harmoniously with all beings on this planet.&lt;/p&gt;
&lt;p&gt;It may be that it&#39;s already too late to change the course of this titanic. But for those of us who are clearly looking at this from a big picture perspective: &amp;quot;Action is the antidote to despair&amp;quot;. We can take right action and not be attached to the outcome. Or simply do nothing. Because it was all this doing that got us to the abyss. And now we want to do even more to geo-engineer the atmosphere to undo our doings so we can keep doing!&lt;/p&gt;
&lt;p&gt;I know this is all quite a handful to unlearn. It&#39;s not easy for me. Like many others, I was born into this set of living arrangements and trained to its internal logic.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I am part of this culture and have benefited from the profits of this past and still live in the privilege of its actions and its relentless procession. &lt;a href=&quot;https://www.youtube.com/watch?v=TvzmPyY08ck&quot;&gt;source&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The previous decade of my life has been dotted by unapologetic actions that were human-centric and arrogant—I fancy myself with entrepreneurship; I hustle; I hack my life and got on soylent-like diet; I learn everything I can about the universe; I strive to be rational and skeptical but ended up a cynic that&#39;s just all talks; I am a disappointed idealist; I pride myself for having the higher moral ground; I expect Singularity to save us from mortality and &#39;stupidity&#39;; I learn all the cognitive &#39;biases&#39;; I look up to western iconoclasts and read their books; The world is my oyster; I teach myself programming for one year because I wanted to be in one of the success stories that&#39;d &#39;changed the world&#39;; I work low-paid and long hours in local tech startups; In my free time, I continue learning to help them reach IPO sooner; Everything else is considered a waste of my time; I deal with my depression alone; I keep telling myself: &amp;quot;This is the way&amp;quot;; I forge on with my stringent exercise routine and time management; I measure and optimize everything; I only work in tech startups to &#39;hit the jackpot&#39;; I quit them all the time; The salary increment and being a part of a new &#39;mission&#39; again placate my ego, high identity and narrative on the world .&lt;/p&gt;
&lt;p&gt;I believe we have gotten it all wrong.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dance. Play. Love. You. Me. Us. Now. Here.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;And that&#39;s it.&lt;/p&gt;
&lt;p&gt;And that&#39;s enough. ☘&lt;/p&gt;
</content>
    </entry>
    
    <entry>
        <title>Be less efficient, but more civilized</title>
        <link href="https://personal-website-bpf.pages.dev/blog/be-less-efficient/"/>
        <updated>2019-11-10T00:00:00Z</updated>
        <id>https://personal-website-bpf.pages.dev/blog/be-less-efficient/</id>
        <content type="html">&lt;p&gt;The world is out of control. Humanity — from individual to groups to nation-state level — is doing all sorts of preternatural activities in the name of ‘innovation’, ‘competitive disruption’, ‘economic growth’, ‘self-help’ etc.&lt;/p&gt;
&lt;p&gt;They are not natural from the perspective of our millions years of evolutionary history. Since the industrial revolution almost 200 years ago, our biological and psychological makeup have been turned on their head at an unprecedented accelerating rate. We have extended our evolved propensity to an uncharted but extremely profitable territory. Throughput — in terms of market share, quarterly reports, GDP, sales funnels, paper market-value — had become the measure of success. To that end, all means are justified, all converging to the goal of being &lt;strong&gt;E.F.F.I.C.I.E.N.T&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Because by not being efficient yourself while everybody else is, you run the risk of losing ground socio-economically. This is a powerful narrative particularly in an unequal and corrupted social environment.&lt;/p&gt;
&lt;p&gt;And so, the unlucky of us reluctantly, or unwittingly, embraced the mission to be ever more efficient in many aspects of daily lives. We feed ourselves all sorts of new stuff— ready-made foods, iconoclast, fads, sound bites, diets, life-hacks, affiliation, religion, shiny jobs, virtue signaling. They constitute individual identity and ego that give life to any narrative that would help us to efficiently make sense of the world. And many of us who were unable to cope, plunged to a very dark corner of our mental landscape.&lt;/p&gt;
&lt;p&gt;On the other hand, the privileged of us took it as an opportunity to further our gains. In the name of efficiency, we espouse free-market economy logic across the globe. Raging on our rich-get-richer momentum, we proceed to capture regulatory, democratic, and financial apparatus. The most glaring example of this is the gig-economy startups operating in a winners-take-all market — That the only way to win the game is to derive war chest from dubious financial engineering, giving artificial life-support to their business model that wouldn’t otherwise have survived in a natural environment with limited resources. They desire to be an aggregator that acts as a gatekeeper that small businesses and the rest of us have no choice but to play by their book because they say it’s efficient and therefore good for their business too.&lt;/p&gt;
&lt;p&gt;Ironically, the novel things that modern humans do today are in a sense natural and rational. Humans have evolved to be equipped to reproduce. To reproduce with an optimal mate, you not only need to be naturally selected, but sexually selected. If you are alive and born healthy today, you had already been naturally selected barring medical intervention. It’s the sexual selection process that will largely determine whether you will get to pass on your genes in your lifetime. And that means gaining status, money, power, and other modern manifestations— such as hustler, gym rats, entrepreneur, careerist, politicking— that act as a proxy which will signal your fitness to the desirable mates. So, if you refuse to do any of that stuff while everybody else does, you risk losing access to the limited desirable mates. So you do it. And you gotta do it…efficiently. Because that’s the way to win the ‘game’ — one of the many games in different disguises of the one and only game: the mating game. It’s just that in recent decades we have brought on a whole load of novel DLCs that accentuate our inherent propensity to mate and gain status.&lt;/p&gt;
&lt;p&gt;So, I’m not saying that striving to be efficient in things that we do is wrong and irrational. I’m saying that we need to be very careful when introducing novel activities to a setting inhabited by humans still operating in an archaic biological and psychological makeup. In a broader sense, we need to recognize the potential negative secondary effects when doing so. In the case of food delivery startups, surely they are delivering good values to consumers and giving access to an audience for small businesses that they otherwise wouldn’t have. But they come with secondary effects which we need to scrutinize— Drivers and riders are driven to precarious and dangerous jobs without next to non-existent safety nets; Small restaurant businesses are forced to shut their business due to the aggregators eating up their already small margin; Consolidation of gig-economy startups leads to unbalanced power socially and politically who only have their private stakeholders to answer to; Workers are reduced to ratings and reviews; Social interaction becomes overtly transactional.&lt;/p&gt;
&lt;p&gt;So there are unintended secondary consequences resulting from being a servant to efficiency in market, business, lifestyle, governance. We run into the free-riders and tragedy of the commons problems whose participants are just being efficient to their own interests. Shackled by human nature, we will always be tempted to be efficient in a winners-take-all environment.&lt;/p&gt;
&lt;p&gt;Ultimately, we lose the social intuitions because we have stopped reinventing the wheels. At the end of this efficiency bandwagon, we are faced with the inevitable outcome which is the outright destruction of global environment and social fabrics. Humans were never evolved to be concerned about the global environments, let alone those alien looking people in a foreign land. We are too preoccupied by our lifetime achievements and relative social standing in our local environment.&lt;/p&gt;
&lt;p&gt;The solutions to stop the contagiousness of this efficiency narrative are, ironically, an unnatural one. We need to start holding our actions accountable to ethics and sustainability. Tech startups need to dial back on their scaling and their bogus narratives abetted by cheap money. Grow slowly. Bound the spill-over of your repercussions. Work with the government and communities. It’s a frustrating, inefficient process but a responsible process. And contrary to the free-market zealot, we need more government regulation. They might be wasteful and inefficient, but at least the system is &lt;strong&gt;robust&lt;/strong&gt; and &lt;strong&gt;just&lt;/strong&gt;. We need more taxes. Taxes on generational wealth. Carbon taxes. Start putting a price on externalities. We need inefficient and slow enforcement. GDP will go down. We will see less iteration of iPhones. We will become poorer. But we trade all that for a breathable, robust and just world until humans become interstellar species.&lt;/p&gt;
&lt;p&gt;Thinking along these ideals won’t be palatable to us because we are largely not wired for that. But it is our only chance to really have a better world. If we refused to do so, we need to rightly tell it like it is — We don’t really buy into our whole narrative of building a better world, and instead, what we really ever believed in was our selfish personal achievements, in our own lifetime, at all costs, by any means necessary — That would be what all that really was. Period. ☘&lt;/p&gt;
&lt;h2&gt;Related articles&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.tbray.org/ongoing/When/202x/2020/07/05/Too-Efficient&quot;&gt;https://www.tbray.org/ongoing/When/202x/2020/07/05/Too-Efficient&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.schneier.com/blog/archives/2020/07/the_security_va.html&quot;&gt;https://www.schneier.com/blog/archives/2020/07/the_security_va.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://psyche.co/ideas/why-efficiency-is-dangerous-and-slowing-down-makes-life-better&quot;&gt;https://psyche.co/ideas/why-efficiency-is-dangerous-and-slowing-down-makes-life-better&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.theguardian.com/technology/2016/dec/22/why-time-management-is-ruining-our-lives&quot;&gt;https://www.theguardian.com/technology/2016/dec/22/why-time-management-is-ruining-our-lives&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
    </entry>
    
    <entry>
        <title>Slower web development</title>
        <link href="https://personal-website-bpf.pages.dev/blog/slower-web-development/"/>
        <updated>2019-02-26T00:00:00Z</updated>
        <id>https://personal-website-bpf.pages.dev/blog/slower-web-development/</id>
        <content type="html">&lt;p&gt;Lately, I have read stuff that have made web development a lot more of a nuanced craft for me. It mostly concerns ethics, sustainability, web standards, and the open web platform itself.&lt;/p&gt;
&lt;p&gt;From surveillance capitalism to impending global climate collapse, questions of &lt;strong&gt;ethics&lt;/strong&gt; and &lt;strong&gt;sustainability&lt;/strong&gt; have become more prominent in public consciousness lately. Increasingly, they need to be taken into account in our decision-making process. And that includes web development!&lt;/p&gt;
&lt;p&gt;Caring about web performances, bundle sizes, semantic, accessibility to people with different genetic makeup and circumstances — these things affect &lt;a href=&quot;https://timkadlec.com/remembers/2019-01-09-the-ethics-of-performance/&quot;&gt;lives&lt;/a&gt; and &lt;a href=&quot;https://serving.green/&quot;&gt;environment&lt;/a&gt;. Admittedly, they are not easy — or even realistic given the current pervasive break-neck culture — to carry out, but learning, advocating and doing them in the daily live as a developer would be, in my opinion, a good practice to build the character, attitude and sensibility that would prove to be useful when we impact the world outside of our job.&lt;/p&gt;
&lt;p&gt;The following sections are the few areas in front-end development that I think currently violate ethics and sustainability, and how they were due to eschewing the web standards and platform itself, largely in favor of developer’s experience(DX) rather than user’s experience(UX). I should also add that much of this was written from the perspective of a ‘&lt;a href=&quot;https://www.indiehackers.com/&quot;&gt;indie hacker&lt;/a&gt;’/designer; I&#39;m most likely missing something and you might disagree with the technicalities, but please try to consider their implications in terms of ethics and sustainability &lt;strong&gt;in a broader context&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;CSS&lt;/h2&gt;
&lt;p&gt;The first big one that I don’t see more people talking about is the ubiquitous usage and butchering of CSS &lt;strong&gt;classes&lt;/strong&gt;. Do you know that classes were never really meant for styling in the markup level? Classes should be used mainly for grouping elements, doing layout, and the occasional styling of element’s states — if you must — for example giving a button red background color.&lt;/p&gt;
&lt;p&gt;Here is what the web standard body W3C have to &lt;a href=&quot;https://www.w3.org/TR/WD-css2-971104/selector.html#h-6.3.2&quot;&gt;say in that regard&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;CSS gives so much power to the “class” attribute, that in many cases it doesn’t matter what HTML element the class is set on — you can make any element emulate almost any other. Relying on this power is not recommended, since it removes the level of structure that has a universal meaning (HTML elements). A structure based on “class” is only useful within a restricted domain, where the meaning of a class has been mutually agreed upon.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Here are two instrumental articles that upended my worldview on front-end development:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://alistapart.com/article/meaningful-css-style-like-you-mean-it&quot;&gt;Meaningful CSS: Style Like You Mean It&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.smashingmagazine.com/2016/11/css-inheritance-cascade-global-scope-new-old-worst-best-friends/&quot;&gt;CSS Inheritance, The Cascade And Global Scope: Your New Old Worst Best Friends&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My takeaway from those two articles was: you know those cutting edge CSS practices and tools like the &lt;strong&gt;BEM&lt;/strong&gt;, &lt;strong&gt;OOCSS&lt;/strong&gt;, &lt;strong&gt;Tailwind CSS&lt;/strong&gt;, and &lt;strong&gt;CSS-in-JS&lt;/strong&gt; libraries? Well, you don’t need them! Here are the reasons: they bloat web pages, make pages less semantic, make front-end development less accessible to HTML/CSS trained designer/developer folks, and dramatically increase the learning curve and barrier of entry for new people. Always try to leverage CSS’s built-in mechanism! Read the articles!&lt;/p&gt;
&lt;p&gt;We don’t need more CSS frameworks too. They bloat. Think twice before throwing in Bootstrap’s massive load of classes. If you have read the two articles shared above, you would have an idea styling your UI components. You don’t have to do it all in one huge index.css file either; you can break it up into individual[component_name].css files, then put them together with webpack.&lt;/p&gt;
&lt;p&gt;Also avoid any frameworks for CSS Flexbox and CSS grid because themselves &lt;a href=&quot;https://youtu.be/0Gr1XSyxZy0?t=508&quot;&gt;are the framework&lt;/a&gt; already! And to complete this crusade, hell, avoid &lt;strong&gt;SCSS&lt;/strong&gt; too! Instead, opt for &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/calc&quot;&gt;calc&lt;/a&gt; and &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables&quot;&gt;custom variables&lt;/a&gt;. Lots of people fancy the nesting capability in SCSS. I get it, I loved it too — it’s convenient and it just seemed so…logical. But if you nest according to the markup, it quickly gets out of hand, producing long chained selectors, bloating CSS files and reduces CSS parsing performance in the browser.&lt;/p&gt;
&lt;p&gt;However, I do realize that SCSS would help maintainability in some use cases, such as &lt;a href=&quot;https://codepen.io/MadeByMike/pen/bEEGvv&quot;&gt;building a fluid typography&lt;/a&gt; system. And if I do use it, I would remind myself not to add too many abstractions(that reminds me of the &lt;a href=&quot;https://kentcdodds.com/blog/aha-programming&quot;&gt;AHA programming&lt;/a&gt; principle); keep it readable for entry-level programmers. 💌&lt;/p&gt;
&lt;h2&gt;Javascript&lt;/h2&gt;
&lt;p&gt;I have also started weighing rigorously the merits of &lt;strong&gt;front-end frameworks&lt;/strong&gt;, specifically &lt;strong&gt;React&lt;/strong&gt;, before using one in my projects.&lt;/p&gt;
&lt;p&gt;Until recently, I had always been a big believer in React and its popular tool chain &#39;create-react-app&#39; that makes bootstrapping a React app a breeze for developers, for no reasons other than their popularity and convenience afforded to developers in terms of shorter development time and its entrenched ecosystem— useful community’s guides, support, and libraries.&lt;/p&gt;
&lt;p&gt;However, I have come to accept that these frameworks bloat, big time at that, to the detriment of end users, especially those with low-end devices(You ever used Typeform on a Moto G? Yeah it wasn&#39;t great I can tell you that). It gets worse when you throw in those ready-made libraries in the ecosystem, passing down the &lt;a href=&quot;https://medium.com/@addyosmani/the-cost-of-javascript-in-2018-7d8950fbb5d4&quot;&gt;cost of Javascript&lt;/a&gt; to end users. Bottom line is, the wellness afforded to developers doesn’t necessarily trickle down to the end users.&lt;/p&gt;
&lt;p&gt;We need to be more careful about this.&lt;/p&gt;
&lt;p&gt;Further, there is a more pernicious effect of being a major user of a particular web framework: My whole intellect had been unwittingly locked into their walled-garden ecosystem: I spent so many hours doubled down on React, reading tons of articles on best practices and the ever changing suite of libraries that have gained traction in the community, to a point that I had forgotten about the existence of web standards and how much they had advanced since the peak of jQuery boom. If React and create-react-app were to disappear or fallen out of favor one day(and they will), I would have to start the learning process all over again, but this time dictated by a new throne and the influential thoughtleaders.&lt;/p&gt;
&lt;p&gt;Well, guess what, now I have changed my ways.&lt;/p&gt;
&lt;p&gt;I have gotten into the habit of looking for frameworks that are ‘closer to the metal’; those that are &lt;strong&gt;lightweight&lt;/strong&gt; and respect the web standards, in this context, the native &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/Web_Components&quot;&gt;Web Component&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here is a good place to start on Web component:
&lt;a href=&quot;https://open-wc.org/&quot;&gt;open-wc&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Other promising alternatives to React that are both lightweight and performant are &lt;a href=&quot;https://github.com/jorgebucaran/hyperapp&quot;&gt;hyperapp&lt;/a&gt; and &lt;a href=&quot;https://preactjs.com/&quot;&gt;preact&lt;/a&gt; although they are not exactly web standard compliant, plus, due to their implementation of Virtual DOM, they won’t be exactly kind to the precious resources of billions of users who happened to be born outside of the &lt;a href=&quot;https://www.smashingmagazine.com/2017/03/world-wide-web-not-wealthy-western-web-part-1/&quot;&gt;Western Wealthy Web&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;VDOM diffing is just one of many examples of a framework choosing developer experience or simplicity of implementation over being frugal with their end-user’s resources. — &lt;a href=&quot;https://dassur.ma/things/when-workers/&quot;&gt;source&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I have also stopped using ‘create-react-app’ to bootstrap my projects. I choose to learn to wire things up to solve my specific immediate needs. However, I need to be careful that I &lt;strong&gt;don’t fall to the temptation&lt;/strong&gt; of ‘reinventing the wheels’. I would search for narrow-focused, utilitarian, nano-size, framework-agnostic libraries as those utilized by the &lt;a href=&quot;https://github.com/choojs/choo&quot;&gt;choojs&lt;/a&gt; framework. If the libraries are actively maintained, perfect. Otherwise, due to their small footprint in codes, I would be able to study their arts before I fork them. Though, should I failed to wrap my head around their codes, then I would be forced whipping one up myself.&lt;/p&gt;
&lt;p&gt;For example, I most likely wouldn’t reinvent another state management solution like Redux even though I think I can pull it off myself, because Redux is already best at that without sacrificing extensibility. Another wheel you shouldn’t re-invent is authentication and encryption even though you &lt;em&gt;think&lt;/em&gt; you can unless you are an expert in those particular domains.&lt;/p&gt;
&lt;h2&gt;Finding the Balance 🌄&lt;/h2&gt;
&lt;p&gt;So how do we find a balance that meets our criterion for ethics, sustainability, and respects for web standards in this culture of relentless growth?&lt;/p&gt;
&lt;p&gt;Although resourceful companies have been making their own strides in recognition of these issues, for budding businesses, I don’t see how we can meet halfway in the current climate of obsession for rocket-ship/hockey stick growth and “&lt;a href=&quot;https://medium.com/@nateliason/no-more-struggle-porn-202153a01108&quot;&gt;struggle porn&lt;/a&gt;” where the “move fast and break things” ethos is deeply entrenched.&lt;/p&gt;
&lt;p&gt;How do we adapt our business and personal aspiration with respect to these new expectations while taking care of everyone’s mental health well-being?&lt;/p&gt;
&lt;p&gt;Because let’s face it, doing things right and ethical from the very beginning won’t fit into the time frame of today’s sprints.&lt;/p&gt;
&lt;p&gt;In the face of perilous state of the world that&#39;s been incurring debts from the future for a very long time, those today who are in a privileged position— designers, developers, policy makers, entrepreneurs and capitalists— has a chance to accept that the growth process need to be &lt;a href=&quot;https://jackcheng.com/the-slow-web/&quot;&gt;slow&lt;/a&gt;, introspective and culturally meaningful rather than reckless, pompous, and presumptuous. And only then, will we ever be able to be proud of our works in every sense of the word. ☘&lt;/p&gt;
</content>
    </entry>
    
    <entry>
        <title>Humane personal finance guide</title>
        <link href="https://personal-website-bpf.pages.dev/blog/personal-finance/"/>
        <updated>2018-11-20T00:00:00Z</updated>
        <id>https://personal-website-bpf.pages.dev/blog/personal-finance/</id>
        <content type="html">&lt;p&gt;This article doesn’t contain any ‘pro-tips’ or ‘methods’ or ‘analysis’ on gaining from the stock market quickly. No, rather, this is an investment guide for average people who don’t — or won’t or can’t — participate actively and emotionally in the stock markets.&lt;/p&gt;
&lt;p&gt;I will try to articulate few of my &lt;em&gt;current&lt;/em&gt; thought patterns that have guided me on managing and thinking about my personal finance. So please tread carefully with &lt;em&gt;open-minded&lt;/em&gt; skepticism. 🌈&lt;/p&gt;
&lt;h2&gt;The world is insanely complex&lt;/h2&gt;
&lt;p&gt;You will find academic papers, pundit blog posts, articles, smackdown on Bloomberg etc. that ostensibly came to a conclusion on a financial affair. Now &lt;em&gt;ideally&lt;/em&gt;, you would want to review their accuracy yourself or refer to a trusted journal. But, can you trust yourself or even the journalists being completely infallible at all times?&lt;/p&gt;
&lt;p&gt;If the answer was as ‘Nope’ as mine was, then what I tend to do now is to remind myself of the possibilities that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The studies were conducted in a sanitized lab environment that was fed with idealized parameters in order to fit a running narrative.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The pundit and authors did not have your personal finance best-interest in mind. Why would they? They have no ‘skin in the game’ with respect to your money. They are more interested in &lt;strong&gt;selling&lt;/strong&gt; in general, be it advertisement with their click-bait headline, or commission they would earn.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The media needed to dramatize their show to increase viewership and hence advertisement.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You might think that modeling methods like the &lt;strong&gt;Monte Carlo simulation&lt;/strong&gt; or &lt;strong&gt;backtesting&lt;/strong&gt; could guide our financial decision making. Yes, in a broad sense, modeling is really the best tool we have at our disposal to &lt;em&gt;approximate&lt;/em&gt; the complex reality.&lt;/p&gt;
&lt;p&gt;However, we need to be aware of its potential pitfalls:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The issue of &lt;strong&gt;overfitting&lt;/strong&gt;—Having a model that seemingly traces the historical data points nicely, but extremely unreliable to predict the future.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Determination of the &lt;strong&gt;complexity sweet spot&lt;/strong&gt; — for example, the number of relevant factors that we need to take into account of to make a confident prediction.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;How &lt;strong&gt;trustworthy&lt;/strong&gt; were the relevant factors, and how &lt;strong&gt;error-prone&lt;/strong&gt; we are when estimating them? Mistakes made here will unpredictably increase risk.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mainstream modeling also tend to ignore the main dynamic in our economics which is the &lt;strong&gt;human psychology&lt;/strong&gt; or what Robert Shiller would call ‘&lt;a href=&quot;https://www.amazon.com/Animal-Spirits-Psychology-Economy-Capitalism-ebook/dp/B0037YLBMM/ref=redir_mobile_desktop?_encoding=UTF8&amp;amp;dpID=9194jWyr0JL&amp;amp;dpPl=1&amp;amp;psc=1&amp;amp;refRID=ZXRRDW8ZKYBNDTP1JA3E&amp;amp;ref_=pd_aw_sbs_351_3&quot;&gt;animal spirit&lt;/a&gt;’. Until then, I would treat them as an exercise of theoretical purity that lacks bearing on the physical world.&lt;/p&gt;
&lt;p&gt;Now, we have seen the following proverb commonly found in the fine print of funds’ prospectus:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Fund’s past performance (before and after taxes) is not necessarily an indication of how the Fund will perform in the future.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But we tend to think along these lines instead:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;“i swear, this time it will be different! i just know it!”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;“damn! it’s been going up since last Friday! I want in on this before it’s too late!”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;“oh look, this fund has had great performances year after year! I mean look at the chart, you see?!”&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To understand how those thought patterns came about, we need to now shed light on our human nature that are often taken advantage by today’s special interest groups. 😧&lt;/p&gt;
&lt;h2&gt;We are born with cognitive biases&lt;/h2&gt;
&lt;p&gt;It has been &lt;a href=&quot;https://betterhumans.coach.me/cognitive-bias-cheat-sheet-55a472476b18&quot;&gt;well-documented&lt;/a&gt; that humans are prone to perceive and make judgements that are, in hindsight, irrational.&lt;/p&gt;
&lt;p&gt;In a blink of an eye on our evolutionary timeline, we have constructed a world that is conducive to amplifying our instincts to our own detriments.&lt;/p&gt;
&lt;p&gt;For example, the mutual fund industry has been largely &lt;a href=&quot;http://johncbogle.com/wordpress/wp-content/uploads/2007/05/FIASI_4-07.pdf&quot;&gt;driven by salesmanship&lt;/a&gt;, ever more so steering away from the spirit and duty of stewardship in serving investors’ best interest. And one surefire way to increase sales of fund’s shares is to trip up our emotions, perception, and fears of uncertainty. For example, &lt;a href=&quot;https://www.investopedia.com/articles/02/013002.asp&quot;&gt;a fund would commit the Survivalship Bias&lt;/a&gt; by removing, merging, and even renaming their under-performing funds in their report, giving the impression to potential investors that ‘wow! next year gonna be a good year too!’, thus making us well primed to buy into the fund.&lt;/p&gt;
&lt;p&gt;Another sign of the time screaming salesmanship in the fund industry is the niche industry sector like clean-energy funds, or personality targeted ‘I wanna signal I have a moral high ground’ funds, or beta whatever it means funds. All of these products were designed to aid and abet to our worst instincts — and, we know that selling often go hand in hand with advertising, and guess who ends up paying for all that initiatives? Yes, you! The fund’s investor.&lt;/p&gt;
&lt;p&gt;Another way our brain can play tricks on us is evident when we are looking at data like P/E ratio or uptick charts expecting it’s telling us a story or insight.&lt;/p&gt;
&lt;p&gt;As &#39;big data’ and machine learning has become increasingly popular, we are now led to believe to have our decision and insights driven by the data. But &lt;a href=&quot;https://medium.com/microsoft-design/if-you-want-to-be-creative-dont-be-data-driven-55db74078eda&quot;&gt;&#39;data&#39; alone without context is just meaningless information&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We might then be tempted to provide it context, trying to give it a &#39;body’, a &#39;persona’, a trained model that fits a data set, in short, a story that we can all rally behind to. However, during that process, we need to be extremely careful that we don’t fall for our biases to look for stories that never existed.&lt;/p&gt;
&lt;p&gt;Now, for argument’s sake, let’s pretend we weren’t susceptible to cognitive biases at all. Which brings us to luck…&lt;/p&gt;
&lt;h2&gt;Luck&lt;/h2&gt;
&lt;p&gt;Luck is an underestimated factor in many aspects of human affair — From being born with great or average looks, savant or mediocre intellectual capacity and ability, into good or abusive family, into stimulating or slummy places, to the resultant extent of exploration or exploitation of an environment that will shape who you are and position in society, and to finally, the performances of a mutual fund manager.&lt;/p&gt;
&lt;p&gt;It’s well known that the majority — &lt;a href=&quot;https://us.spindices.com/documents/spiva/spiva-us-mid-year-2017.pdf&quot;&gt;in the ballpark of 80–90%&lt;/a&gt; — of  actively managed funds will &lt;a href=&quot;https://www.ft.com/content/6b2d5490-d9bb-11e6-944b-e7eb37a6aa8e&quot;&gt;under-perform their benchmarks&lt;/a&gt; over a 5 to 10 years period. Mutual fund managers are humans too, and as discussed, they are undoubtedly shackled to their human nature in responding to fears, uncertainty, and incentives, all of which are culminated in timing the markets and huge portfolio turnover, and thereby incurring unnecessary costs and taxes on us!&lt;/p&gt;
&lt;p&gt;Mutual fund managers, like Peter Lynch, who can consistently out-perform benchmark over the long term is &lt;em&gt;extremely&lt;/em&gt; rare. Not only you need to pick the right manager, the manager herself would need to be picking stocks at the right time and place, be able to digest tons of information to build an accurate narrative consistently, and pull it off year after year. This is not something a mere mortal with 9–5 job is capable of even though for no reason they ended up on the right side of luck!&lt;/p&gt;
&lt;h2&gt;Financial planning&lt;/h2&gt;
&lt;p&gt;OK, so far, things are looking really bleak.&lt;/p&gt;
&lt;p&gt;What are we going to do about it? How would an average person build her wealth and go on live her life in a world where we can’t trust ourselves and the financial charlatans out there?&lt;/p&gt;
&lt;p&gt;Well, the answer is to just don’t play the &lt;a href=&quot;https://www.businessinsider.com/finally-some-excellent-investment-advice-2011-12/?IR=T&quot;&gt;loser’s game&lt;/a&gt; while keeping it extremely simple — buy and hold broad index stock and bond funds and just stay the course! That’s it. That way it keeps biases, temptation and whispers at bay while giving you the best shot at faring better than more than 80% of the mutual fund managers.&lt;/p&gt;
&lt;p&gt;Alright, here is how we are going to do it.&lt;/p&gt;
&lt;h2&gt;Split your money into stocks and bonds&lt;/h2&gt;
&lt;p&gt;First of all, you would find some people advocating for exercising asset allocation as a first step to your investment journey. There is a few school of thoughts on how to go about it.&lt;/p&gt;
&lt;p&gt;One popular approach is to split your fund allocation percentages based on which life stages you are on. The theory is that, each life stages could mean different level of risk capacity and risk willingness. For example, if you are in your 20s, then you might want to put more money in risky and volatile assets like stocks because of 2 reasons — one is that you would have more time to recover from mistakes and market downturns, and second, you wouldn’t have much funds to invest anyway so you don’t have much to lose.&lt;/p&gt;
&lt;p&gt;Another popular approach is allocate a percentage of whatever your current age is into bonds, and the rest goes to stocks. For example, if you are 25 years old, then you will invest 25% into bonds and 75% into stocks.&lt;/p&gt;
&lt;p&gt;However, I would just do 50% in bonds and 50% in stocks. You might be thinking “wut, fiddy-fiddy?? you serious?!”. But a simple heuristic like that is actually one of the few best strategies to coping in a complex world. Harry Markowitz, pioneer of the ‘modern porfolio theory’ that won him Nobel prize , alluded to this effect &lt;a href=&quot;http://jasonzweig.com/what-harry-markowitz-meant/&quot;&gt;as well&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I should have computed the historical co-variances of the asset classes and drawn an efficient frontier. Instead, I visualized my grief if the stock market went way up and I wasn’t in it–or if it went way down and I was completely in it. My intention was to minimize my future regret. So I split my contributions 50/50 between bonds and equities.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But, you know, you could always tilt towards stocks if it doesn’t prevent you from a sound sleep at night.&lt;/p&gt;
&lt;h2&gt;Choose a cheap broker&lt;/h2&gt;
&lt;p&gt;Now you are going to need a funds provider or broker to invest your money.&lt;/p&gt;
&lt;p&gt;If you are lucky to have Vanguard operating in where you live, then go for it! Otherwise, choose a broker with no hidden but transparent fees.&lt;/p&gt;
&lt;p&gt;Personally, I don’t have access to Vanguard, so I went with TD Ameritrade which charges only for a fee of 6.95USD per trade. That’s it. No inactivity fees or fees that incentivize active trading of your portfolio.&lt;/p&gt;
&lt;h2&gt;Buy broad-market index funds or ETF&lt;/h2&gt;
&lt;p&gt;OK, now you have found a place to put your money in. But whatever it is that I need to buy now?&lt;/p&gt;
&lt;p&gt;Well, one central tenet in passive investing is to earn as closest to &lt;strong&gt;total&lt;/strong&gt; stock market returns before costs. And investing in index funds or broad-market based ETF is a perfect tool to not only achieve whatever market returns to us, they also increase your net gain with their &lt;strong&gt;low expense ratio and tax costs.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;At risk of committing the &lt;a href=&quot;https://en.wikipedia.org/wiki/Authority_bias&quot;&gt;Authority Bias,&lt;/a&gt; here is &lt;a href=&quot;https://www.marketwatch.com/story/the-5-times-warren-buffett-talked-about-index-fund-investing-2017-04-28&quot;&gt;a quote&lt;/a&gt; from Warren Buffett about index fund:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A low-cost fund is the most sensible equity investment for the great majority of investors. My mentor, Ben Graham, took this position many years ago, and everything I have seen since convinces me of its truth.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A great selection of ETF you can buy from TD Ameritrade &lt;a href=&quot;https://www.bogleheads.org/wiki/TD_Ameritrade&quot;&gt;can be found here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Personally, here is how I have allocated all my investment money:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;35%&lt;/strong&gt; in total stock market — SPDR Portfolio Total Stock Market ETF &lt;strong&gt;(SPTM)&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;35%&lt;/strong&gt; in total international market — SPDR Portfolio Developed World ex-US ETF &lt;strong&gt;(SPDW)&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;30%&lt;/strong&gt; in total bond market — SPDR Portfolio Aggregate Bond ETF &lt;strong&gt;(SPAB)&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Having built your total market portfolio, you could have a less than 5% as your ‘play money’ betting on stocks but no more than that!&lt;/p&gt;
&lt;h2&gt;Stay the course&lt;/h2&gt;
&lt;p&gt;Once you have your total market portfolio, now all you need to do is to **stay the course **and contribute a lump sum once in a while to avoid incurring broker trade fees.&lt;/p&gt;
&lt;p&gt;It’s important to note that if you were not investing in the ‘index funds’ like those found in Vanguard, you would most likely be buying ETF, which behaves like a stock, from a broker, in which case, it’s important never to succumb to actively buying and selling them.&lt;/p&gt;
&lt;p&gt;You could re-balance yearly or quarterly or do the tax-loss harvesting, but their benefits are, if not significant, debatable.&lt;/p&gt;
&lt;p&gt;You are supposed to hold your market portfolio forever, only withdrawing it when you are retired. Don’t sell or buy it. Don’t touch it! 🌄&lt;/p&gt;
&lt;h2&gt;Some other advises&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Pay yourself first to build a 6-month worth of ‘emergency fund’.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Put money in fixed-deposit or certificate of deposit that you might need in less than 5 years.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Maximize your EPF or employer 401k match.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Spend within your means.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Limit spending on vanity stuff.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It’s never too early or too little to start investing thanks to the power of compounding interest, which is also the reason why it beats investing late but in larger amount.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reduce screen time and social media consumption.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Our limited capacity for ‘attention’ is the new commodity. &lt;a href=&quot;https://www.youtube.com/watch?v=C74amJRp730&quot;&gt;Spend it wisely&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Stay away from debt except when buying a family house if you must.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Pay all your debts first.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Buy second-hand cars.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Save more than you spend.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Explore cheaper leisure activities like picnic or flying kite or walk in the park.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Keep learning to level up your marketable skills for higher salary(higher investment contribution too) and options in life.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Stay healthy. Eat well. Exercise regularly. Good quantity and quality of sleep. Drink more water.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Good luck and take care. ☘&lt;/p&gt;
</content>
    </entry>
</feed>
