-
Put aside 6 * monthly spend as your emergency fund. Keep as cash in your high-yield savings account with a bank, or in things that can be quickly converted to cash such as money-market funds. This piggy bank will keep you alive in emergencies such as unforseen retrenchments.
-
Get term hospitalisation/critical illness and/or MediShield. DO NOT INVEST USING INSURANCE IT'S A SCAM
-
Decide on your goals (eg, HDB in 5 years, early retirement in 10). This is the hard part and determines how much you save and invest and your asset allocation.
-
Find your investing ratio. Monthly salary - monthly expenses - some fun money. Eg, if you earn $1000, spend $300 on food and bills, and spend $200 on gacha, you can invest $500 (50%) of your monthly income.
- Modify
startDate
andendDate
- Paste this into your browser while logged in to Google
- Manually open each URL in the browser: it should download the KML for the day
Notes
- Google's API only returns a maximum of one day's of data
- You have to merge the resulting KML yourself
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# AirGradient ONE - Board v9 | |
# https://www.airgradient.com/open-airgradient/instructions/overview/ | |
# | |
# This configuration was blatantly yoinked from: | |
# https://github.com/MallocArray/airgradient_esphome/blob/main/airgradient-one.yaml | |
# | |
# (see https://github.com/geerlingguy/airgradient-prometheus/issues/39) | |
# Needs ESPHome 2023.7.0 or later |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Install ssh if needed: eg, Ubuntu: https://ubuntu.com/server/docs/service-openssh
On the server: sudo vi /etc/ssh/sshd_config
AllowTcpForwarding yes
PasswordAuthentication no
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
twitter.com##article div[aria-describedby="tweet-education-header"][role=button] > div > span > span:has-text(/^Follow Topic$/):upward(article):upward(3) | |
twitter.com##[data-testid="tweet"]:has-text(Follow Topic):upward(3) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Dummiesman; | |
using System.IO; | |
using System.Text; | |
using UnityEngine; | |
using UnityEngine.Networking; | |
using System.Collections; | |
public class OBJGenerator : MonoBehaviour | |
{ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import debugpy | |
try: | |
debugpy.listen(("0.0.0.0", 5678)) | |
debugpy.wait_for_client() | |
except RuntimeError: | |
pass | |
breakpoint() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
declare module "*.svg" { | |
import * as React from "react"; | |
const ReactComponent: React.FunctionComponent<React.SVGProps<SVGSVGElement>>; | |
export { ReactComponent }; | |
export default ReactComponent; | |
} |
NewerOlder