My Rambling Thoughts

Electric bill 2024

YearMthTariff (cents/kWh)Usage (kWh)AvgEff
May* 587504302
Mar* 406399252
2024Jan29.89* 464444272
Nov* 546425260
Sep* 634475284
Jul27.74* 705506291
May* 495423-
Mar* 467--
2023Jan28.95* 486--
Nov* 581--

* Estimated.

My electrical usage is around 550 to 600 kWh, although there are surges to 650 kWh. It remains mostly the same from two years ago.

I can tell the efficient neighbours don't use air-con. It is difficult to match them, but is it possible to catch up to average neighbours?

(Efficient refers to the average of the lower 50% of neighbours.)

Who are the big power users? Air-con alone contributes 150 to 200 kWh. The fridge is always on 24/7. There are several 24/7 devices too.

Revisit QuickBASIC?

QuickBASIC 4.5 holds a lot of nostalgia for me. But I am unlikely to revisit it. The language has too many issues and limitations.

  • Limited operator precedence
  • No short-circuit logical operators (VB added AndAlso and OrElse)
  • SUBs and FUNCTIONs are separate
  • Parameters are passed by reference (BYVAL was added later)
  • No data pointers (not needed for most part)
  • No function pointers (limits flexibility)
  • TYPEs (structures) cannot contain arrays

Some QuickBASIC enthusiasts have brought it to modern times: QB64 and FreeBASIC.

The pinnacle of BASIC in DOS

Microsoft released QuickBASIC 1.00 in 1985. This was BASIC brought up to modern times — compiler, proper SUB-routines and no more line numbers. It was the successor to their BASIC Compiler (v5.36 released in 1984).

QuickBASIC 2.00 (1986) introduced multi-line IF statement, supported far arrays and had an IDE.

QuickBASIC 3.00 (1987) introduced SELECT CASE, DO-UNTIL, and CONST.

QuickBASIC 4.00 (1987) introduced user-defined TYPEs, recursive subroutines and supported CALLs to subroutines written in other languages. The IDE intepreter uses p-code.

QuickBASIC 4.5 (1988) was the last release.

Microsoft continued to work on their BASIC compiler. BASIC Compiler 6.0 was released in 1988. It supported OS/2 and bundled QB 4.0 as its IDE. (It is not known if this was called BASIC PDS 6.0.)

BASIC PDS 7.0 [Professional Development System] (1989) was the "ultimate" BASIC on DOS. It supported far strings, overlays, expanded memory (EMS), ISAM (database) and tons of "professional" libraries. It has limited OS/2 support. 7.1 (1990) added full OS/2 support.

(Some of the above may be wrong because I don't have direct experience with them.)

As a language, QuickBASIC 4.5 is about as good as it gets. PDS 7.0 adds icing on the cake by "breaking" memory limits:

  • Far strings so that they are not constrained to 64 kB (strings are big memory users)
  • Overlays to save code space and allow more memory to be used for data
  • EMS so that up to 16 MB of memory is available (practically means "infinite" in those days)


We cannot talk about QuickBASIC without mentioning P.D.Q. (Pretty Darn Quick). It poses itself as a "revolutionary concept" and claims to make QuickBASIC both smaller and faster than C.

It is a replacement library — you link to it instead of the default QuickBASIC library. It achieves its claim by omitting "bloated" functionality and by being written in assembly language.

Is it smaller and faster than C? Only if you pick the correct benchmarks.

P.D.Q. is very ambitious and does accomplish what it promises. It is able to do so because all functionality in QuickBASIC are provided by functions — though you need to reverse-engineer to some extent.

In 2018, Gene Buckle bought the software assets of P.D.Q. and released it as public domain. P.D.Q. was something I read in a magazine. Now I can finally see it for myself!

QBasic takes over

GW-BASIC was getting long in the tooth by the late 80s. Line numbers were long out of vogue. GW-BASIC also has only rudimentary flow control and does not support structured programming.

QBasic replaced GW-BASIC in MS-DOS 4.00.


QBasic 1.1 is smaller because it is compressed using PKLite. Its uncompressed size is 257,824 bytes.

It is not known what's the difference between them.

QBasic is a stripped down version of QuickBASIC 4.5 (released in 1988). The main differences:

  • QBasic is interpreter only. QuickBASIC 4.5 is both an interpreter and compiler
  • QBasic interpreter is slowed down (about half as fast?)
  • Single source file
  • No external library support

Still, it has the same state-of-the-art structured BASIC language as QuickBASIC 4.5.

QBasic is mostly limited to 64 kB data except for dynamic arrays, just like QuickBASIC.

QBasic was last released with Windows 98. It still runs on Windows XP, but not Windows Vista as it dropped support for 16-bit DOS programs.

Unfortunately, QBasic came out when the world was transiting to Windows. GUI became the default after Windows 95 came out in 1995 — no one booted to DOS anymore.

A brief history of GW-BASIC

BASIC stands for Beginners' All-purpose Symbolic Instruction Code. But what does GW stand for? Although it is probably someone's initials, the semi-authoritative answer from Microsoft is Gee-Whiz.


These are generic versions from Microsoft. (Unsure about 2.00.)

The first version is 2.00, released with MS-DOS 2.00. The predecessor of GW-BASIC is BASIC-86.

3.20 supports EGA graphics modes (screen 7 to 10). None supports VGA graphics mode.

It is easy to find 3.23, the last version. Earlier versions are rarer. It is not known what's the difference between them. Judging by the file size, there should not be much difference.

Microsoft open-sourced GW-BASIC in May 2020. It is the first version from 1983.

The open-sourced code is 8086 assembly code. It is generated from a master meta-assembly source (not open-sourced) that can be cross-assembled for several CPU architectures. This should be from earlier BASIC that is ported to 6502 and Z80 (among others). I'm not aware of GW-BASIC on anything other than the IBM PC.

os2museum managed to assemble the code (only works with MASM 1.06) and got a size of ~50 kB. He found two close matches, one older and one newer. The newer one was 55.5 kiB and was version 1.20. It had over 6,000 bytes of OEM code.

GW-BASIC 2.00 at 80 kB is pretty large, considering it is written in assembly language. Granted, it is not optimized assembly (since it is translated from a meta-assembly source), but 80 kB is still large.

To reduce run-time code footprint, GW-BASIC could have been modularized: graphics, high-level graphics (LINE, CIRCLE, PAINT, DRAW), floating point math (single, double precision), high-level math functions (SIN, COS, TAN) and even the interactive editor.

But it does not really matter because GW-BASIC programs are "tiny": the code, data and stack fit in one 64 kiB segment.

Soft limits

To run bigger programs, they can be split into parts and CHAIN'ed together. This is effectively the overlay technique.

GW-BASIC supports calling subroutines written in machine code. They can be outside of GW-BASIC 64 kiB memory — by running a TSR (Terminate-and-Stay-Resident) beforehand. They can add new functionality missing in GW-BASIC. They are also blazing fast — so don't complain GW-BASIC is slow! :lol:

Unfortunately, this technique is extremely unportable.

GW-BASIC supports only 16-bit integers. This is a big limitation. Single-precision floating point numbers has 23-bit significand (and 1 sign bit), so they can be used as 24-bit integers. This is usually sufficient.

Hard limits

GW-BASIC has some limitations that are difficult to work around:

  • Only near arrays (arrays can be very large)
  • Strings can only be up to 255 in length (not an issue usually)
  • Only near strings (another big memory user)

Old school Gundam model

RX-78-2 1/144 Best Mecha Collection Revival

Coming Oct 2024, 1,320 yen (S$11.50).

Bandai Spirits has announced a magnificent rebirth to mark the 45th anniversary of both the iconic Gundam series and the GunPla model kit. Fans of the franchise may be interested in the revival of the 1980s RX-78-2 Gundam model kit under the "Best Mecha Collection" GunPla lineup, which has been updated to meet the needs of modern builders. This time it requires no glue, paint, or tools to assemble, as opposed to the original version, which required all three.

Color me interested... until I realize the legs are not very articulated. Basically it can only be in a standing/walking pose.

Pilot Juice them Up!

I have used Pilot G-Tec-C4 pens for a long time. However, I switched to Pilot Juice Up 04 last year.

I originally bought this pen for my son. I decided that G-Tec-C4 was too fragile for him. But this pen worked so well that I ended up using it for myself. One downside is that the ink does not seem to last long. The pen casing is robust and can last 3 or more refills.

Prior to this, I let my son use Pilot Juice 5. I started with the 0.38mm version and it seemed to spoil easily. 0.5mm worked well.

Juice 5 was okay, but Juice Up 04 was better — and looked more classy. :lol:

FansToys Ultra Magnus is eye-catching

I said I was not going to buy FansToys Ultra Magnus and probably not their Optimus Prime either.

I'm going to take that back. They look so gorgeous!

I already have four Optimus Prime. Looks like I'll have a fifth. :lol:

FansToys Ultra Magnus (Margh), despite being a white Optimus Prime wearing armour, does not look blocky at all.

I almost got XTB Ultra Magnus (Commander Stack) previously — it was an impressive figure too — but its arms were rather long.

I sold my MP-22, but got THF-04 (KO of MP-22). I'm wondering to keep it or sell it.

But I have to be careful. FansToys is master at photography. Some of their products look fantastic in photos, but turn out to have some limitations in actual products.

Last upgrader to Ubuntu 22.04

Why do my HDDs like to fail in March? Ubuntu 24.04 is coming out next month. This means I got to install 22.04, then upgrade to 24.04.

It was the same case 12 years ago — I had to install 10.04 and then upgrade to 12.04 later.

My file server was "stuck" at 18.04 because I started with 12.04 and at that time, while 64-bit OS exist, I expected them to co-exist "forever" and I could just use 32-bit with PAE. I also didn't expect to use more than 4 GB of memory.

But the switch flipped around 2015. Every major OS started to obsolete their 32-bit version. Ubuntu 18.04 would be the last 32-bit version — with no upgrade path.

Since U18.04 would be supported for 5 years, I could put off upgrading until 23.04. That time had come and gone.

There is a tutorial to convert 32-bit Ubuntu to 64-bit. I thought of trying it on a cloned HDD, but never did.

I always put off installing from scratch because of the additional setup I needed to do. Now that my HDD died, I no longer have a choice. It turns out my worries were overblown.

As usual, I installed the server-only edition, then ubuntu-desktop. However, this time I forgot to use the --no-install-recommends parameter.

After that:

  • Installed VNC. vncserver no longer exists, I use TigerVNC instead.
  • Installed samba. The existing conf files can be used almost as-is.
  • Installed apache2. Enable ssl and rewrite. The existing conf files can be used as-is.
  • Installed PHP (now 8.1.2) and extensions (php-curl, php-gd, php-mbstring, php-sqlite3, php-xml).
  • Installed SVN. The existing conf files can be used as-is. The existing SVN repos appear to work as-is (after changing its user and group id).
  • Installed Deluge (bittorrent). Copied .config/deluge. The torrents don't show up. It turns out U18.04 is using Deluge 1.3.15, U22.04 is using 2.0.3. Deluge 1.3 torrent.state file must be converted to 2.0 format. Luckily someone provided a Python script online.
  • Thunderbird is working fine once I copied .thunderbird.
  • Fixed the Ethernet network name as eth0.
  • Enable crontab one by one after checking they still work.
  • And some minor touchups.

It's easier than I expected.

Versions of key packages:

Tiger VNC1.

Using snapped version is Ubuntu's new strategy to keep frequently updated apps (with large dependencies) up-to-date.

Rethinking the file server

My file server is using the Asrock N3150-ITX m/b and resides physically in a In Win BK 644 Micro ATX tower (300W).

The m/b supports four SATA3 ports. It also has a PCIe 2.0 x1 slot and a half-size mPCIe slot. Half-size = 26.8x30 mm.

The casing has room for two 3.5" HDDs and one 5.25" drive bay.

I'm wondering if I can boot from the mPCIe slot. First, it is not a mSATA slot. It is also a good thing that it is not, otherwise it would share one of the SATA controllers. I want mPCIe + 4 SATA ports, not mSATA + 3 SATA ports.

From what I google, there are almost no mPCIe SSDs. Even if there were, they were long obsolete (i.e. too small). mPCIe is now replaced with M.2, specifically type M for NVMe SSDs. (Type B for mSATA.)

There are mPCIe to M.2 type M adapters. Due to space constraint (only half-size, remember), I need the adapter to have a flex cable. Typical M.2 SSDs are 2260 or 2280 (meaning 22x60 mm or 22x80 mm). Shorter ones exist, but I prefer lower chip density.

One concern is that mPCIe is only x1. I'm guessing the version is 2.0, so x1 is 500 MB/s, which is plenty fast.

NVMe SSDs use x4 (since M.2 provides it), they are said to work with x1 too — though slower.

The most important unknown is, will the system boot from it? Some say it will if we enable network boot.

If it works, I can use a small SSD (say 1 TB) to be the boot drive and put /home on it. The spinning HDDs will store purely data.

File server disk allocation 2024

Changes over the years:

HDD size1 TB2 TB (pri)4 TB (pri2)
/20 GB10 GB15 GB15 GB80 GB
/var2 GB2 GB3 GB3 GB
/var/log1 GB1.5 GB1.5 GB
/var/tmp1 GB1.5 GB1.5 GB
/tmp2 GB2 GB3 GB3 GB30 GB
swap2 GB2 GB2 GB2 GB8 GB
Reserved8 GB8 GB
/home900+ GBThe restThe rest300 GB300 GB
/dataThe rest1.14 TB
/data22.08 TB

I decided to simplify the partitioning and do away with /var, /var/log and /var/tmp.

The partitions were laughably small in the past. :lol: They are now sized to be inline with modern expectations.

I'm not sure if I should have two data partitions or not. The intent is to separate short-term and small data (e.g. downloads, manga, music) and big-and-mostly-static-data (e.g. pics, shows).

Signs of a dying HDD

Mechnical HDDs seldom fail outright. Ignore the warning signs at your own peril.

Clicking sound. This is the most obvious sign. If you hear this, copy the data out asap. The HDD is on its last legs.

The HDD is running hotter than usual. We don't normally feel the HDD physically, but the OS should report abnormally high temperature using SMART. The reason for the increased temperature is that the HDD is retrying its operations.

Abnormal slowdowns, like super-long pauses when loading or saving a file when it used to be instantaneous.

General slowdown, as in it takes longer to copy files. Read speed drops from 100 MB/s to 40 MB/s. The OS drops the SATA link speed from 6 Gbps to 1.5 Gbps.

SMART attributes such as Reallocated_Sector_Ct, Current_Pending_Sector, Offline_Uncorrectable and Multi_Zone_Error_Rate are non-zero and rising.

HDD SMART data 2024

DriveSizeDatePower On HoursPower CyclesLoad CyclesMZER
pri2 TB2014/417,61249771,793806
data22 TB2014/416752910
infplus16 TB2016/11389141180
omega26 TB2018/8456220
bignum6 TB2020/1181200
pri24 TB2024/352123090

pri and omega2 have to be replaced because they are failing.

omega2 started to fail first. I was unable to copy some files into it. A few days later, I observed the same for pri. Both drives failing within days of each other, so coincidental?

pri has been in use for almost 12 years! I wanted to retire it in 2019. The original plan was to clone pri to data2 and use the latter as the primary drive. I never got around to doing it. I ended up not using data2 at all.

omega2 failing is somewhat of a surprise. It is only 3.5 years! Can it be used if I mask out the "bad sectors"? But its high MZER (Multi Zone Error Rate) is giving me pause.

I bought pri2 back in 2021 but didn't get to use it. I finally put it into use.

bignum is a SMR drive. When I bought it, I didn't know about SMR drives. It is fine for archival data, but not as a general-purpose drive.

New 65W USB chargers

I got 4 new chargers recently:

  • Samsung 25W PD 3.0 travel charger (USB-C), $12.00
  • Samsung 65W 3-port charger (2x C, 1x A), $15.06
  • Lencent GaN3 65W travel adapter (3x C, 2x A), $32.73
  • Baseus GaN5 65W 3-port charger (2x C, 1x A), $29.26

I have enough chargers already, just "itchy hands" to "modernize" some of my older ones.

Notice a trend? All but one are multi-port 65W. The power is split 45W+20W when charging multiple devices. 45W is bare minimum for charging notebooks.

These compact chargers have a simple power splitter. When multiple ports are used, one port will get most of the power (e.g. 45W), other ports will share the remaining 20W. You don't get 35W+30W or 25W+25W+15W. Always check how power is distributed for multi-port chargers.

On the left are two Baseus GaN chargers. The one on top is a GaN2 Pro Quick Charger that I bought in 2022. The one at the bottom is a GaN5 Pro Fast Charger. The old one works well, except it has US-style plug head and is very loose as a result. The new one supports more quick charging protocols as well (e.g. PPS).

The Baseus 65W charger is pretty expensive. I saw another brand selling at $21 (at its lowest point)!

The Samsung 65W charger is surprisingly cheap and compact, but there is a catch — it charges at 65W with PPS only, otherwise it is limited to 35W (20V 1.75A). Hence, it is not suitable for notebooks as most don't support PPS.

The Lencent travel adapter has 3 USB-C ports and two USB-A ports. Only one USB-C port supports 65W. When used together, the power output is 45W (C1), 15W (C2+C3) and 12W (A1+A2). It's not clear, but I believe C2+C3+A1+A2 add up to either 15W or 20W.

I may get another 65W travel adapter if it costs around $30. The usual price is $40+. I have 3 multi-port travel chargers, but they are all 28W only (with one USB-C port at 15W).

With these, I have enough 65W chargers! :lol:

(I also have four 65W notebook chargers, but they are rather big.)

Will I get 100W chargers? They are big, heavy and expensive.

The answer is, maybe. ;-)

Transformers buying roadmap

My collection has shifted from Masterpiece to Legends. I'm not abandoning Masterpiece entirely, but I will be much more selective.

I still plan to get these:

  • FT-21 Berserk (Blitzwing)
  • FT-30D Viper (Fireflight)
  • FT-30E Jester (Slingshot) + combiner parts (Superion)
  • FT-31E Bandit (Deadend) + combiner parts (Menasor)
  • FT-61 Inquisitor (Scourge)
  • FT-62 (Chromedome)
  • XTB Constructicons (1/5 completed)

I plan to complete FansToys Aerialbots. It'll be my one and only Superion unless there is a much better one — which I doubt will happen.

I'm not that interested to complete FansToys Stunticons. I already have DX9 Menasor — one is enough. It may seem like a waste with 4/5 completed, but that 1/5 costs ~S$350.

I may not continue with XTB Protectobots — it is 2/5 completed. XTB took their own sweet time that I'm not really interested anymore.

I don't plan to get FansToys Constructicons (much less MMC) — hey it is Devastator Wars again. There was a time I couldn't imagine not getting a FansToys figure if it existed. Times have changed.

Will I buy Masterpiece Combaticons? Let's see.

Buying FT-62 implies I'm interested in the other 3 Autobot Headmasters. I doubt I'll be interested in Autobot Targetmasters, though.

FansToys showed off their Ultra Magnus. I'm not certain if I will get it. Their UM is a white "Optimus Prime" wearing armour, so it implies they will do OP too. Will I get it? I'm not sure — I already have 4 Optimus Prime!

I'm also getting more selective with Legends figures. I'll skip them if they are not up to expectations. No placeholders! :lol:

Some recent examples:

  • NewAge H55 Hughes (Powerglide)
  • Dr Wu MS-36 Sand Leopard (Sandstorm)
  • XTB-mini Fuzz (Streetwise)
  • DX9-mini Vasili (Doubledealer)
  • DX9-mini Murphy (Chromedome)

NewAge Powerglide was too panel-ly.

Dr Wu Sandstorm had a disappointing buggy mode and was a little too short. Dr Wu is coming out with Broadside, another long-wished-for Autobot triple changer. Let's hope it is better.

XTB is releasing Protectobots in Legends size — even though they have not finished it in Masterpiece scale. I'll take a wait-and-see approach and see what Magic Square and NewAge come up with first. I don't intend to get more than one set.

DX9 is coming back! Their first release was Doubledealer. I skipped it because it was post-S3 and most post-S3 designs don't appeal to me.

Their second release Chromedome is decent in bot mode, but the car mode is terrible. I still prefer the age-old MFT Chromedome. There is also a preview image of Brainstorm in plane mode and it looks very stylized. This implies I will skip the entire series. Sorry, DX9!

I'll skip KOs, especially OSKO (Oversized Knockoff). I somewhat regretted getting the OSKO of MST Stunticons, especially at its initial price of 75% the MST set. It later dropped to 50%!

The KOs are cheap (if 50% of the original figure), but their quality is one notch down and their size don't fit in my collection. They are fine as one-off figures.

Masterpiece purge 2024

I managed to sell all the Transformers figures I put up except for two:

  • MakeToys MTRM-11 Meteor (Starscream)
  • MMC PS-01A Sphinx (Mirage)

Selling on Carousell is like fishing. You got to wait for an interested party to come along. Selling cheaply does not help much, unless we are talking about 75% off — everyone loves a deal.

I've re-listed them at rock bottom prices (they were already the lowest in the market). Let's see if they sell this time.

I sold off LG-10 too — I don't need so many Arcee.

I've put these up for sale:

  • MP-28 Hot Rod
  • MP-30 Ratchet
  • DX9 WiP Dinobots set

XTB has announced their version of Ironhide. I may get that. For Ratchet, I may wait for FansToys.

When I got the DX9 Dinobots in 2019, they were "good enough". I thought I would keep them even after MS or NA released their versions. However, the engineering has improved by so much! The DX9 versions look so dated now.

The elephant in the EV

There are three selling points of EVs. First, they are green. No tailpipe emission, so no pollution!

But that's just one side of it. It turns out it is extremely polluting and hazardous to mine the materials that make up the battery. But that's someone else's problem.

However, even without tailpipe emission, EVs are heavier, so they wear out tyres and road faster.

The second plus point of EV is their simplicity. This is from the point of the manufacturer. No engine, no gearbox, no messy oils and fuels. They just need a motor, a charger and of course a super big battery.

The third plus point is low cost per km! Generally, it costs 25% (per km) if you charge at home, 50% if you use a commerical charger, compared to petrol. But this advantage is negated in Singapore due to the high EV road tax — to make up for the loss of petrol duties.

The cons of EV all come from battery limitation: big, heavy, range, charging.

First, there are just not enough charging points. There will never be enough. If you have a dedicated charger (i.e. landed property), it works great for daily commute. Shared charging? Not so much — you got to move the car after charging.

Second, it takes too long to charge. A super fast charger can charge to 80% in 20 minutes, and that gives you around 300 km. It takes 5 minutes to refuel an ICE car and that gives you 600+ km.

Waiting while charging is one thing. As the EV population grows, waiting to charge will become common. You have to be in the car and cannot go elsewhere.

One thing that is coming up is of course battery lifespan. All batteries degrade. The usual claim is 80% capacity after 10 years. It sounds pretty good, until you realize it does not start at 100% — it starts at 110% or 120%. Yes, manufacturers over-provision. After 10 years, there is no more buffer and battery capacity will seem to drop very fast.

As a result, an old EV (above 5 years) has little second-hand value as the battery needs to be replaced and it is a huge expense (> $10k).

The biggest problem with batteries, specifically lithium batteries: fire.

Lithium battery fire is impossible to put out.

Lithium batteries are susceptible to fire at two times: charging and puncture. It is rare, though never say never, for a battery to ignite on its own.

So there are 3 things to look out for:

  • Don't park near an EV
  • Don't park near an EV charger
  • Accidents may puncture the battery

Even if the battery is not punctured, its structure may be compromised and needs to be changed.

Finally, for EV, it is crucial to learn how to open the car door mechanically — in case power is lost. If not, and a fire breaks out...

A warning for all directors

Goh Jin Hian has been found liable for US$146 million (S$196 million) in losses as director of now-insolvent marine fuel supplying company Inter-Pacific Petroleum (IPP).

Mr Goh JH is the son of ex-PM, Mr GCT.

Generally, directors are not liable for their company losses, but not when they breach their directors' duty.

What happened?

In June - July 2019, IPP drew on its US$156mil trade financing. However, at this time, it was already "insolvent". The claim was that as its Director, Mr Goh should know its financial situation and stop the transaction.

They had to mention two points:

  • Mr Goh showed a lack of knowledge about the business
  • He held 36 concurrent directorships during that time

Why was Mr Goh sued alone? Was he the only director? Did he "sign off" the loan?

Moral of the story: you can be a sleeping director until the company wants to take on more loan!

Crystal gold taels

I saw crystal golden taels for sale at a CNY bazzar. They looked like suitable gifts for my son's class, since I forgot to prepare presents for his birthday.

The problem was, he has 40 classmates, so costs quickly add up.

TaoBao to the rescue!

These taels vary from 1 cm to 12 cm in length. The smallest ones (1 - 2 cm) are normally sold in bulk (say, 100) and are used to fill up crystal treasure bowls for Feng Shui.

If you want a standalone tael, it needs to be at least 4 cm. Too big is also unwieldy, so a good size is 4 - 9 cm.

A quick search shows that they are sold in lots of 10 up to 6 cm only. Bigger ones are sold individually. A single 6 cm tael costs 3.5 yuan (cheapest one that I found), but a lot-of-10 costs 28 yuan.

3 cm7g0.6 yuan (**)
4 cm22g1.2 yuan (*)
5 cm34g1.8 yuan (*)
6 cm63g2.8 yuan (*)
7 cm92g5.5 yuan
8 cm154g8.5 yuan
9 cm205g12.5 yuan
10 cm292g17 yuan
11 cm402g20 yuan
12 cm537g23 yuan

(*) In lot-of-10. (**) In lot-of-50.

There is a sharp jump from 6 cm to 7 cm. It is partially because they are no longer sold in lot-of-10.

Their weight add up quickly — shipping doubled the price. In the end, each 5 cm tael (x40) costs me ~$0.65 and 6 cm tael (x10) ~S$0.85. If I had time, I could have shipped by sea and saved 2/3 on shipping — each 5 cm tael would cost ~$0.50.

Get A Clue books was where I found The Adventures of the Black Hand Gang.

Interestingly, the second entry, Get A Clue, is a series of books written by Julian Press — son of Hans Jurgen Press (author of the above book). Only four books were translated into English.

They were published in 2008 and were long out of print. I managed to find two "new" ones on Amazon and one "very good" one on Amazon UK at sane prices (i.e. ~S$15 each before shipping).

(For the Amazon ones, I should have shipped them to ezbuy warehouse. Shipping doubled the price of the books.)

I didn't manage to get the second book, Operation Golden Scepter. It is available on Amazon, but it is either too ex (> US$100!) or the condition states "Pages can have notes/highlighting".

A long lost book

The Adventures of the Black Hand Gang

How do you find a book you don't know the title of and you don't remember anything about it other than a few illustrations inside?

It's impossible, that's what.

My brother borrowed this book from the library and we liked it very much. This is a "find-the-clue" style book. There is text on one page and an illustration on the other page. The text will ask you to find a clue in the illustration.

The problem with the library book was that someone already marked the clues. I vaguely recall I skipped much of the book to avoid knowing the answers. This book can only be attempted once. Once you know, you know.

I was planning to find a pristine version of the book in the future, I guess? But I quickly forgot the name of the book. :lol:

For a long time I thought I would never be able to find the book.

It turned out I was not the only one looking for "long lost" books. Many people are searching for books they read when they were young, and others offered suggestions. After a few false leads, one of them matched.

The key thing was that most of the books people were looking for were from the 90s (these young punks...). This book is from the 80s at the least. It turns out this book (the English edition) is from 1977.

I managed to buy one in "good condition" from Amazon UK for 28 pounds (~S$49) including shipping. (From experience, 'good condition' for used items on Amazon means acceptable.)

Is the book worth $49? No really. But for nostalgia, yes. It has been a long 40 years... this book is back in my hands once more.

I finished the book in less than an hour. There are 60 puzzles spread over 4 stories. Some are disappointingly obvious, but some are "challenging". I put it in quotes because this book is meant for 8 to 12 years old. Adults will have no problem solving the puzzles — just think logically and take your time. As I went through the puzzles, long lost memories surfaced in me. The puzzles felt familiar. I had gone through the entire book before!

One downside of the book is that if you are stuck, you cannot proceed. The reason is that the answer is written on the next page.

The SimplyGo..stan fiasco

It was so ingrained in me that the Ez-Link card readers do fare deduction that it did not dawn to me that it simply do not work that way for SimplyGo.

SimplyGo simplifies the card readers. They just send the card id and tap location to the backend server. The backend server does all the calculations.

This vastly simplifies deployment, because now you don't need to download the latest fares and logic into all the units — which can take days to roll out.

The problem is that the reader is now unable to show both the fare and remaining amount, because it does not know the fare, nor is the remaining amount on the card!

After a huge public backslash, LTA backtracked and will allow ez-link cards to be used. I believe they are looking for a solution that can show the fare and remaining amount, i.e. match existing functionality.

Of course, they must mention that it costs $40 million to maintain the old systems and is our fault for not embracing new technology.

So, is it possible to display the fare "instantly"?

It changes the game totally. Right now, the taps are sent asynchronously, probably in batches. This can be seen by the fact that it takes a few minutes to update in the app. That is when the server receives the info and processes it.

During peak hours, the server can take 10+ minutes to process. It is not a problem.

To change from an asynchronus batch-mode operation to a synchronus real-time operation? (Real-time as in end-to-end processing must finish in 0.5s or faster.)

It changes the game totally.

A batch-mode server can clear, say, 1k transactions per second. Even if there's a rush of 10k/s for 10 seconds, it'll eventually clear them. For a real-time server, it must handle the peak with some spare capacity, so perhaps 20k transactions per second. The hardware and infrastructure needed is entirely in another league.

I don't think it can be solved with reasonable cost.

One mitigation is to install displays that show the card value as well as the trip history.

Update: someone wrote in the press to ask why he was able to tap out with a different SimplyGo card and that he was charged max fare twice — one for the card he used to tap in and the other for the card he used to tap out.

This shows that there is no local processing for SimplyGo at all. It just captures the card info. All processing is done at the backend. It cannot even tell if the card has been tapped in.