Moving Blog Again

This blog is moving to a new home:


Canon's Zink Printer

Reading about Zink (not the chemical element, but the printing technology) made me wonder how well this can work. It seems to be incredible to get proper colors out of this method:

The yellow layer is the topmost one, sensitive to short heat pulses of high temperature. The magenta layer is in the middle, sensitive to longer pulses of moderate temperature. The cyan layer is at the bottom, sensitive to long pulses of lower temperature. The layers are separated by thin interlayers, acting as heat insulation, moderating the heat throughput.

This is radically different from normal printing technologies and thus it's worth checking out in more details.

So I got myself one of those Zink printers: a Canon iNSPIC (AKA Canon Ivy in US AKA Canon Zoemini in Europe). Canon seems to like to change product names depending on the region. Weird. Confusing. But once identified which one is which, I can get an English driver/manual for a Japanese product. And of course the opposite too.

Reason for the Canon as opposed to the many other Zink printers: the quality of the software, the availability, and the price of the Zink media: About 2000 Yen for 50 photos. For HP Sprocket I'd have to pay 2700 Yen for 50. For Polaroid Zip I'd pay 2800 Yen for 30.

A quick run-down: Charge printer for 30min, install the Canon app on my phone, connect via Bluetooth, pick a photo, adjust it (zoom, crop, add text), and print. I see why the Canon app is popular: it works and most buttons do what you think they do. So far some prints showed that the resolution and colors are ok. Black is solid black. Photos look ok. Of course colors are not calibrated, but neither is my phone nor my computer monitor.

I'll use this printer mainly as full color label printer. I got quite some boxes of unknown content. Well, unknown until I open them. Maybe with this thing I can create more expressive labels.


Sony Wena Wrist Battery Replacement

Replacing a battery from a normal watch is not that difficult with the right tools. The problem is: do you have the right tools? That was the question when I wanted to replace the battery of my Sony Wena Wrist (3 Hands).

Turned out to be easier than expected.

Simple Instructions

First flip the watch over and use a small flat screw driver to open the 4 screws visible in the back. They are not hard to open, so no excessive force needed.

Flip the watch back and carefully pull of the watch part from the strap part.

I was surprised how empty the watch actually is. Mechanical watches are full of stuff. Non-mechanical ones are full of...air and plastic spacer.

There is a thin black O-ring which is either attached to the top (watch) part of the bottom (base). It's supposed to be in the groove in the bottom base. If you lose or break it, the watch is no longer water proof...In my case it was stuck to the top part, so I had to take it and put back on the base bottom into its groove.

You can pull out the white plastic space lifting it from the knob side. Note the notch on the white plastic spacer. That side goes out last.

Then loosen the marked screw a bit. Then you can push out the old battery with a screw driver. Just push it gently from the direction of the center of the watch outwards. Put back a new battery. SR626. Once the new batter is in, tighten the marked screw again. And re-insert the spacer.

Flip it back on the base and screw it back with the 4 screws in the back. Done! 2.5 years no need to change the battery again.


Comparing JPEG, x265, AV1 and RAW

Here a nice link where you can compare visually the differences in JPEG, x265, AV1 and RAW image format:


Updating Lambda Functions for this Blog

This blog has a neat surprisingly monolothic install procedure. I like that it works when it works. It's not good at updating specific items though and I find myself updating some Lambda functions several times a day. One reason is to try to use Node.js 6.10 instead of the original 4.3 environment. Or reducing memory to 256MB instead of 512MB. Or adding webpack with tree-shaking (AKA dead-code elimination) to make those Lambda functions not 40k lines long (but 'only' 2k lines).

Anyway, doing this by deleting everything and re-installing everything is fine until the day there are blog entries and re-installing might unexpectedly wipe our your blag articles. Thus I'd rather be able to refresh the Lambda functions knowing that nothing else will be modified.

So here the simple steps for a more granular update procedure, mainly for for Lambda functions:

List them all

aws --region us-east-1 lambda list-functions \
| jq -r '.Functions[] | select( .FunctionName | startswith("blog_")) | .FunctionName'

Delete them all

aws --region us-east-1 lambda list-functions \
| jq -r '.Functions[] | select( .FunctionName | startswith("blog_")) | .FunctionName' \
| xargs -n 1 --replace={} aws --region us-east-1 lambda delete-function --function-name={}

Redeploy them all

Actually deploy what's missing.

node upload_lambda.js

A good way would be to have two different releases which would make a roll-back very simple too.