Not All CR2023 Cells Are Equal

“You get what you pay for” is well known and when it comes to batteries, specifically CR2023, it’s a significant difference I experienced. Look at those battery graphs for my 3 BLE temperature/humidity monitors:

3 LYWSD03MMC and their battery status

In 2021 I got myself some Xiaomi LYWSD03MMC and I upgraded/replaced their firmware via this to send out the data via BLE. While they were supposed to last about a year, I was very pleasantly surprised that the included batteries indeed lasted about a year.

I replaced them all in January 2022 with retail Panasonic CR2023 I bought in the local retail electrics shop (Yamada Denki). Price was about 1100 Yen for 4 (275 Yen per piece). As you can see, they lasted even longer: after 1.5 years I replaced two in August 2023 (yellow and green graph) and in November 2023 the 3rd one (blue graph).

I had no spare Panasonic CR2023 in August 2023, so I got some off-brand CR2023. How bad could they be, right? 5 in a blister pack for about half costs per coin cell. The actual brand I forgot. Either OEM, or simply faked brands, or just cheap quality no-name.

Generic off-brand CR2023. Not recommended.

As you can see in the graphs the 2 cells I replaced in August lasted 6 resp. 7 months and their discharge rate was significantly higher.

The 3rd one (the blue one) I replaced it with another retail Panasonic coin cell. And as you can see, the discharge curve is considerably nicer to look at compared to the off-brand ones. It certainly looks like it’ll last well over one year.

I expected minor differences in quality, but it seems that cost cutting (engineering or quality of material) can be done at expenses of the overall quality.

My conclusion: for coin cells, the retail Panasonics are best value for money. While they may be twice as expensive as cheap ones, they also last twice as long. And for me, that’s a good thing.

Yan Cui on Better Writing

Taken from https://twitter.com/theburningmonk/status/1714159389496479856?s=20 and worth a summary in not-so-Twitter-format.

𝗦𝗲𝗹𝗹 𝘁𝗵𝗲 𝗽𝗿𝗼𝗯𝗹𝗲𝗺, 𝗻𝗼𝘁 𝘁𝗵𝗲 𝘀𝗼𝗹𝘂𝘁𝗶𝗼𝗻

Like that scene in The Wolf of Wall Street where Di Caprio asked Jon Bernthal to sell him a pen. First, create the demand, then supply the solution.

Sell the problem to the reader. Help them understand why it’s a problem worth solving. If the readers are not interested in the problem you’re solving, they won’t care about whatever solution you propose, no matter how good the solution is.

Be explicit about what “good” looks like

Explain what a “good” solution means to you and your rationale before diving into describing your solution.

Finish off with the 𝘁𝗿𝗮𝗱𝗲-𝗼𝗳𝗳𝘀 and what context your solution worked in (e.g. high throughput API).

Everyone’s mileage is different and your readers likely care about different qualities to you. Communicating WHY you think a solution is good and WHEN it’s a good fit helps readers understand your way of thinking and judge whether or not it’s also a good fit for them.

Also, it’s important to define this “goodness” up front. It helps combat cognitive biases that we all have, such as confirmation bias. Defining “good” ahead of time helps keep us honest with ourselves.

𝗞𝗲𝗲𝗽 𝗶𝘁 𝘀𝗵𝗼𝗿𝘁, 𝗸𝗲𝗲𝗽 𝗶𝘁 𝗰𝗼𝗻𝗰𝗶𝘀𝗲

Don’t linger with your words, remove paddings and fluffs. Attention spans are short and precious

𝗣𝘂𝘁 𝘁𝗵𝗲 𝗯𝗶𝗴 𝗶𝗱𝗲𝗮 𝘂𝗽𝗳𝗿𝗼𝗻𝘁

Eric Evans once told me that he regretted introducing ubiquitous language and other big DDD ideas in the 2nd half of his book. Most people only read the 1st half and think DDD is all about the repository & entity patterns.

Another reason for putting the good stuff out first is to help you start strong and grab 𝗲𝗮𝗿𝗻 the reader’s attention so you can spend them on the nitty-gritty technical details later. The reader’s attention is a currency, and you do have to earn it first.

𝗣𝗶𝗰𝘁𝘂𝗿𝗲 𝘀𝗮𝘆𝘀 𝗮 𝘁𝗵𝗼𝘂𝘀𝗮𝗻𝗱 𝘄𝗼𝗿𝗱𝘀

But not all pictures are created equally, so choose them wisely. And don’t overdo it

Mind the “curse of expertise”

Always remember that you are the expert in your domain. When you share knowledge & experience, you need to be mindful of what assumptions you’re making of the reader. In the immortal words of Simon Sinek, always start with why (see tip no. 1 

Be honest

Goes without saying.

Use simple language

The goal is not to look smart, the goal is to convey your big idea to the reader with minimal loss of precision. Complex sentence structure gets in the way of absorption. Hemingway is a great tool to help with this. https://hemingwayapp.com

Scam Ahead!

The Start: Cold Call on WhatsApp

Last week Specialized Group (another recruiting company) sent out emails to their customers that there’s scammers who claim to be from Specialized Group or other well known recruiting companies. And few days later I got Jenny from Indeed asking me on WhatsApp if I’d like to work. Indeed is a well known (and legit) recruiting company in Japan. Here the initial contact from Jenny:

Jenny from Indeed wants to give me a job to earn 20k Yen per hour!

I checked the Constant Contact web page and they seem to be a legal company doing marketing. But so many red flags here nonetheless:

  • Jenny lives in Indonesia (country code 62)
  • Jenny works for Indeed, which is a Japanese company
  • Being contacted in English via WhatsApp for a Japanese company…that’s just wrong
  • Jenny assumes I read/write English
  • Jenny does not address me by name at all
  • Jenny has no family name
  • 20,000 Yen/hour for a job without any experience…when the minimum salary is about 1000 Yen/hour in Tokyo. Checks the “Too good to be true” box.

I did not expect a link on the Indeed job pages from Jenny, and I got none:

Jenny’s qualification requirements: have a name, be of an age, and have a Japanese bank account

And we have the classical handover from the cold-calling first-contact person, to one a level higher in their hierarchy:

Scammer No. 2

My quick observations:

  • Different country code (+44 = UK)
  • No name at all
  • Never addressed me by name either
  • It’s re-iterating Constant Contact as the company
  • and it looks like it’s marketing related

I wonder what “product optimization tasks” are.

Naturally I am interested! I am a bit confused what “our mobile phone network 4G/5G or WIFI” is. Their 4G/5G? A VPN maybe? A special app I need to install? But no app:

No app. Good, because it probably would be a ad-click-fraud app or worse.

And finally I got something: a web page!

constantcontact.com this is not

So now I know they miss-use a well-known and (probably) legit company, create a similar domain name (adding a “s” here and there), and then run a scam operation. The web page of the fake constantscontacts.com uses the same logo as the real Constant Contact and it refers to it in the FAQ and other document.

On the fake page’s FAQ are the terms and conditions, and section 2 is already fishy:

2.4 is odd. 2.5 is worse.

It certainly makes the impression that paying out users is not a priority. It also looks like a game with the “very small chance”. Let’s see how my “training” goes…

The “Training”

After being asked to log in via a “training account” to the same page on constantscontacts.com, I got some money in it (270k Yen) to be trained with. Some incoherent explanations about ordinary tasks and combination tasks later, I do my first “trades”:

Click on “automatic matching”

Click on “automatic matching”

Click on “start trading”

Done.

Repeat 50 times clicking on the same 3 buttons. And that “earned” me 3578.25 Yen which was transferred to my non-training account.

Back in my account, I saw the 1000 Yen I had before, plus the 3578.25 Yen. Doing 45 “trades” myself, I earned 520.62 Yen by clicking 135 times (45*3). I clearly did nothing of any value since the trades are very fast and there’s nothing to decide at all. Why anyone would pay for clicking I would not know, but I “earned” 5158 Yen in total.

Give me your Bank Account Information!

I can get the money by entering my bank account information.

Note the liberal use of lower and upper case.

And they transfer the money within an hour or so. My trainer received his/her money (confirmed by a WhatsApp message). I guess that’s supposed to make me believe that this actually works.

I guess that bank account information is what they are after. A 2nd way to get my money is “for this combination trade, you need to recharge your account, so please transfer money to us”:

Send me your money!

This is as good as throwing away money. I’m not sure how this would work since you do not send the money yourself and in most countries a withdrawal request initiated from a 3rd person can be canceled, but you have to cancel it in time (within 30 days I think) and since you wanted them to take your money, you’ll not cancel it early enough. So there goes your money.

Initially I expected this to the well known Money Mule scams which would require a local bank account when defrauding Japanese citizens. And maybe that would come later. If I had a spare bank account, I could try to receive my 5158 Yen and see how long it takes for them to ask me for “To continue to trade, you need to have at least 10k Yen, please send your money to us” or alternatively “To send you your 1M Yen, you need to cover the fees of 20%, so send us 200k Yen and we’ll send you your 1M Yen” AKA Advanced Fee Fraud, but since I have no spare bank account, I entered some fake data instead. Thus I’ll never see my 5158 Yen.

It would be fun to defraud scammers of 5158 Yen, but they can do much worse with my bank account information and I won’t risk that.

Summary

Of course it’s a scam: no one will pay anyone 5000 Yen for 10min clicking on a web page which has copied the logo from an actual company with almost the same name. It has “SCAM” written all over it. The question I wanted to solve is: How do they plan to get my money?

They either play on greed (“I earn a ton of money by clicking, but I can earn even more if I increase my deposits!”), it’s a pyramid scheme (they have level 1, 2 and 3 with progressively more commission rates) or it’s money laundering, or they just want my bank account information and then they will plunder it. Or all of it.

Whichever it is, I stop here. I like my bank account untouched by scammers.

Update 2023-09-16: My scammer (“trainer”) really cares that I put in the correct bank information so that I can receive the money I earned. He’s worried that I might have put in wrong information, although I told him I cannot check my bank account until Monday. It seems he doesn’t like the fake one I put in.

Update 2023-09-17: My scammer reminded me that I need to input my name in the Bank information field not in English. I wonder how he knew I put it in English.

Unrelated: the web server is a AliCloud server in Japan:

❯ nslookup ashop-kai-001.oss-accelerate.aliyuncs.com
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
ashop-kai-001.oss-accelerate.aliyuncs.com canonical name = oss-acc-allline.aliyuncs.com.
oss-acc-allline.aliyuncs.com canonical name = oss-acc-allline.aliyuncs.com.gds.alibabadns.com.
oss-acc-allline.aliyuncs.com.gds.alibabadns.com canonical name = ap-northeast-1.oss-acc.aliyuncs.com.
Name: ap-northeast-1.oss-acc.aliyuncs.com
Address: 47.245.16.251

At this time it feels like flogging a dead horse: I keep on finding suspicious parts, but I already know it’s a scam operation. So I’ll stop here and stop wasting my time. I might reply to the next unsolicited WhatsApp message though…

Update 2023-09-18: They really care that my bank information is correct. Must be an integral part of their plan. After some haggling and updating my not-so-real bank information, I got some more information about the 2nd type of “trades”:

Send me money first, then get it all back plus extra!

The 2nd type of trades is as I expected: I send in money, click some buttons (AKA do “trading”) and get my money plus extra back. Neat and totally not suspicious. And the contact person/team for that is on Line. I have to contact them to start the work. I’ll definitely not do that.

Final update: This is called a Task Scam: make you do some pointless work, earn you money, and then to withdraw, they create fees, account upgrade requirements etc. I found a lot more information on Reddit: https://www.reddit.com/r/Scams/

Leben und Tod

Am Freitag vor 2 Tagen ist ein langjähriger Freund von mir gestorben. Er war etwa so alt wie ich, und er schien kerngesund zu sein vor ein paar Jahren als wir uns zuletzt getroffen haben. Er hatte eine neue Lebensgefährtin gefunden und sie planten im nächsten Jahr zu heiraten. Beim letzten Telefongespräch hörte er sich sehr glücklich an und ich hätte mich sehr gefreut beide beim nächsten Besuch in Deutschland zu treffen.

Daraus wird aber leider nichts mehr.

Man kann die Vergangenheit nicht ändern, aber in der Zukunft werde ich weniger Sachen auf das nächste Jahr verschieben. Manchmal gibt es eben kein “nächstes Jahr”.

Fake Webpages And How To Detect Them

Being in Japan and knowing how much good knifes cost, when I saw an advertising of hand made Japanese knifes…let’s say that it looked suspicious from the start. Their web page did look good though. But still…suspicious. Starting with the name “Huusk” which is as much non-Japanese as I can imagine.

Then the commonly seen signs to create some time pressure:

70% discount!

and the popups about sales happening right now:

Someone in Kyoyo Kita-ku Minamimitakamine bought it!

and yet that number of knifes left does not change:

7 left. Always.

Typical scammer stuff of creating a sense of “Buy it now! Before you start to think about it!”

I looked once up a countdown on another web page which counted from about 3h down to zero…so I let it run out. 3h later it showed negative time. And if you reload the page, it goes back to about 3h! This one is less obvious, but I was curious how the popup gets populated as it tries to imply a “Someone near you bought something, so it must be good!” Is it hard-coded like the timer, or dynamically pulled from somewhere? Turns out it is statically populated:

initPopup({
  "orders": [{
    "first_name": "hidetaka",
    "city": "funakosityo yokosuka",
    "country": "JP",
    "topText": "hidetaka from Funakosityo yokosuka, JP made a purchase.",
    "bottomText": "X1 Huusk Knife Sold!",
  }, {
    "first_name": "Indrajith",
    "city": "Itakoshi,Hinode",
    "country": "JP",
    "topText": "Indrajith from Itakoshi,Hinode, JP made a purchase.",
    "bottomText": "X1 Huusk Knife Sold!",
  }, {
    "first_name": "YOICHI",
    "city": "Nagano inaba",
    "country": "JP",
    "topText": "YOICHI from Nagano inaba, JP made a purchase.",
    "bottomText": "X1 Huusk Knife Sold!",
  }, {
    "first_name": "TAKASHIGE",
    "city": "OOSIMAGUNN SETOUTITYOU KONIYA  SEKUIHIGASHI",
    "country": "JP",
    "topText":
      "TAKASHIGE from OOSIMAGUNN SETOUTITYOU KONIYA  SEKUIHIGASHI, JP made a purchase.",
    "bottomText": "X3 Huusk Knives Sold!",
  }, {
    "first_name": "YASUHIRO",
    "city": "Ootaku SINKAMATA",
    "country": "JP",
    "topText": "YASUHIRO from Ootaku SINKAMATA, JP made a purchase.",
    "bottomText": "X3 Huusk Knives Sold!",
  }, {
    "first_name": "hiroshi",
    "city": "nakagawashimatsunoki",
    "country": "JP",
    "topText": "hiroshi from Nakagawashimatsunoki, JP made a purchase.",
    "bottomText": "X4 Huusk Knives Sold!",
  }, {
    "first_name": "EIJI",
    "city": "MATUBARACITY",
    "country": "JP",
    "topText": "EIJI from MATUBARACITY, JP made a purchase.",
    "bottomText": "X4 Huusk Knives Sold!",
  }, {
    "first_name": "Kyle",
    "city": "Okayama",
    "country": "JP",
    "topText": "Kyle from Okayama, JP made a purchase.",
    "bottomText": "X3 Huusk Knives Sold!",
  }, {
    "first_name": "Syouji",
    "city": "Yokohamasi",
    "country": "JP",
    "topText": "Syouji from Yokohamasi, JP made a purchase.",
    "bottomText": "X4 Huusk Knives Sold!",
  }, {
    "first_name": "Toshio",
    "city": "hamamatsu",
    "country": "JP",
    "topText": "Toshio from Hamamatsu, JP made a purchase.",
    "bottomText": "X3 Huusk Knives Sold!",
  }],
  "image": "https://huusk.com/theme/images/huusk.png?1",
});

The Terms and Conditions page is suspicious too:

Hand-made knifes and they create a single size? Why would anyone limit themselves to a single size if they are hand-made anyway? Japanese love to have different knifes for different jobs, but this Japanese company does not?

If you look up the text of some of the user testimonials you’ll find another knife company “Kaitomi” which looks just the same. But their web page is not yet ready: Still references to Huusk. Oops! At least it sounds a bit more (fake) Japanese…

Oops…forgot to remove the Huusk stuff

And I even found the popular Lorem Ipsum text filler:

So it’s pretty clear that this is a scam.

Enter fakewebsitebuster.com

I looked up Huusk expecting reviews like “Those knifes are not as good as the advertising suggested”, but I found something even better! And https://fakewebsitebuster.com/ confirmed my findings. And there’s many more such pages are discussed! E.g. fake investment web pages who’ll take your money and predictably disappear.

The most interesting part of that web page however is that they basically explain what to look for:

  • DNS and company registration, country and date. Recently registered and claiming to be 20 years in business?
  • Actual location of the business: Japan? US? UK? Lithuania? Nigeria? Claiming or suggesting that they are from somewhere else?
  • Use of stock photos for “user testimonials”. Reverse image search can find stock photos.
  • Copy&paste user testimonials used in other places too.
  • Selling a “unique” product which is also sold on other places (eBay, Aliexpress, Taobao).
  • The intense attempt of creating a sense of urgency.

Very educational and I wish more people would be aware of those scam tricks.

LED Growth Light

Looking into hydroponics, vertical hydroponics, or vertical farming in general, a common problem is the light source: you need extra light unless the plants are directly at a window.

While a complete system would be nice to have, I wanted to start as small as possible which means to skip all the water stuff and use the existing plants we have. The plants we have look sad and are neglected quite a bit, so it’s a perfect specimen to “fix”. All I needed was a light source, and I found one:

Bottom of the LED light
Top with the constant current driver

For about $30 that was hard to beat: no fan and thus no noise, not too big but not too small, plenty LEDs, and should be bright enough to make a difference.

I was pleased when I got it! But not all is perfect:

  • The sticker on the aluminium plate claims “2x10W”. Not sure what it means. The LEDs are organized in 9 parallel rows of 25 LEDs each, and the LEDs can either handle 150mA (Samsung LM281B1 can handle that) or they are getting about 70mA as the driver implies. In no way I can split 9 rows by 2.
  • The LED driver is 50-80V 600mA constant current. The board inside is plastic dipped.
  • Voltage seems to be around 55V (measured at the LEDs when in use). At 600mA that would be 33W. That quite a bit more than “2x10W”.
  • The LED driver gets quite warm (60°C I’d say), but the aluminium plate gets slightly warm. Nice. I expect no heat problems for the LEDs.
  • The light is…bright. More than I expected.
  • The one UV and one IR LED…I wonder if they make a difference.
  • When you try to photograph it, it flickers a lot though:
Recording this lamp is not fun

So the quick fix is to get a new LED driver. I hope that fixes the flicker problem and maybe it gets less hot too. The 600mA might be at the brightness peak only to drop to 0mA when the LEDs are off, so the average might be more at 380mA. Let’s see how those LEDs handle 500mA from the new driver: It would be about 56mA/LED which would be well within the typical 60mA for those type of LEDs.

2022-04-08 update: Got a Mean Well APC-35-500 (up to 70V, 500mA) and while the total brightness went slightly down from 3500 to 3000 lx (measured via physbox app), there’s zero flicker.

More Baking: Cupcakes

As a reminder: this is not a baking blog. Now that this is out of the way, I was looking for non-cookies for a change, and cupcakes would fit the bill. I checked several recipes and settle to use this. Here the result:

Very tasty cupcakes

I recommend to read the well made web page above, but the summary of the recipe:

  • 150 g plain / all purpose flour
  • 1 1/4 tsp baking powder
  • 1/8 tsp salt
  • 2 large eggs at room temp
  • 150 g caster / superfine sugar
  • 60g  unsalted butter
  • 125 ml milk
  • 2 tsp vanilla extract
  • 1 1/2 tsp vegetable or canola oil

The only change I did was to replace the superfine sugar with the fine brown sugar.

Time was spot on 22 minutes. The result was 11 small cupcakes which probably should have been 9 slightly larger ones.

More Baking: Coconut Cookies

Coconut cookies – Simple and very tasty

Since I had dried coconut left over (see here), I was searching for a recipe for cookies with coconuts. There’s plenty, so I picked one and it worked really well. The biggest problem was converting cups into something I can use, so here the metric translation of that recipe:

  • 150g flour (= 1 1/4 c)
  • 1/2 tsp baking soda
  • 1/4 tsp salt
  • 110g butter (= 1/2 c)
  • 200g sugar (brown only as I had no white sugar) (= 1 c in total)
  • 1 egg
  • 1/2 tsp vanilla extract
  • 120g coconut shredding (= 1 1/3 c)

Don’t let me rant about the use of tsp. That is pure insanity. Luckily those don’t need to be exact anyway.

  1. Preheat oven to 175°C
  2. In one bowl mix flour, baking soda and salt
  3. In a larger bowl add butter and sugar and mix well
  4. Add egg and vanilla
  5. Add flour little by little (sieving it in)
  6. Mix in the coconut shreddings
  7. Form small balls (about 2-3cm diameter) and put them on baking paper
  8. Bake about 12-14min. Move to wire rack to cool.

The result was as good as I expected. Crispy outside, a bit chewy inside. Perfect on the first try!

Steel-Cut Oats for Breakfast

My whole life I have mostly cereals for breakfast: cornflakes and Müsli. There are so many variations of the latter, that it never gets boring: with dried fruits, with chocolate or nuts, crunchy or not, just add with milk or like Bircher keep it soaking for some hours…

But this is all rolled oats and until recently I didn’t even know there’s non-rolled oats, namely “steel-cut oats”. I followed this recipe with 60g (2oz for the metrically challenged) of oats and it reminded me a lot of Griessbrei which I had when I was a kid. Ah, good old memories! It was surprisingly nice. Not a big fan of the 25min cooking time though, but it’s a nice variation which is especially nice in cold winter days.