And there is a small bird, moving fast and hard to track. That's the best picture I got before I lost him.
Some bird in the Olympic Forest Park (Beijing). Apparently, winter is colder than I thought.
I put a cheap 10x42 monocular telescope in front of my phone's lens to get those pictures. You may notice the dispersion cause by the telescope.
I'm planning to buy a new telescope with ED lens which claims to fix or reduce the dispersion, but it's pretty expensive after I renewed my domain, dns and other stuff.
One more reason to get a job.
First time using color space other than RGB.
I'm implementing a cli based search function, where I need hightlight the keyword in the result.
I noticed there are several colors are really dark under RGB color space. I don't want hand pick any color palette since I'm bad at doing that. But this will result in a very unpleasant visualization.
Then I remembered OkLab, I randomly know that from the Internet, give it a try and it's amazing. But with `l` controling the brightness, with other two parameters called `a` and `b`, which control the green-red and blue-yellow, to me, totally nonsense. It's not a intuitive way to generate color.
With some unsatisfactory, I found OkLch, which I have no idea what it is. But hey, it can control brightness, chroma and hue. That's what I need exactly! I need random color to distinguish different keywords, but I want all keywords looks equal. With fixed brightness and chroma, I can select whatever hue I want!
Invitation denied.
10 friends? On ActivityPub? What a luxury.
But I do manage to found some (2) screenshots from movies I watched. Normally I don't save screenshots any more. I used to write reviews, until I found out I'm bad at writing.
Got a new temporary tent for long time storage. Don't have a dedicated room, but at least got a tent.
My last tent is an outdoor tent which has been dismantled by wild cats during the last strong cold wave. They cut the tent and make it a wild cat shelter, which makes it unusable anymore.
Also, the Cat Repellents Sprays are totally useless.
Can't believe there is sus C/C++ code mixed in my Kotlin/JVM project 😜
Never though I'm going to dive so deep in this Win32 rabbit hole.
I was originally thinking just wrote a simple wrapper of win32's tape API, but then I realized that the encryption is missing. With Win32's tape api, you can basically implement something like `/dev/st0` (simple read and write) amd `mt` command (rewind, seek, set compression, etc.). I was thinking just use LTOEnc for encryption control.
But that software can only read the encryption key from a file, which, to me, is a big security hole: I can do that in memory, why write to the disk temporarily?
So I start reading LTOEnc's code. I found Microsoft really don't want you to directly talk to SCSI. I read their documents, they never said about IOCTL_SCSI_PASS_THROUGH_DIRECT. They are recommending something like IOCTL_CDROM or something that is not so lower level.
Anyway, thanks to LTOEnc, and Oracle's helpdesk generously providing HPE product's tech ref manual, I now can implement the encryption control in my win32 lib. And soon I can do that in Java.
I would say win32 api is actually not bad. Despite the fact that I don't know how to write C and CPP in a proper way, meaning not just submit the code to get an "AC", but an actual project, where you build something for people to actually use, either lib or executable.
Microsoft did a decent job with the documentation. The cmake side needs a bit of work. Yeah, I don't know how to properly config it. Thanks to Google, I still don't know how, but it's working.
I blame c++ for my degraded sleep quality.
While jextract makes the header translation much easier compared to JNA and JNR, but win32 api still does not work, and c++ support is not good.
The standard header from llama.cpp is working, but other functionalities like grammar parsing and sampling init is not included. They shipped as a common component in the example codes. While I want to compile the example code as a shared lib and invoke them from Java, the jextract has some problems with C++ headers and not happy with it.
For wintun, it uses win32 headers in its header files, which let jextract to process (almost) the whole win32 lib. The pointer size seems to be a problem. One said it should be 32 bits but another said 64 bits.
No wonder it's still in preview stage.
Got my watch fixed. Spent a week and about 75USD.
I know casio's gshock is very tough.It already amazed me when I found the core is still functional after a great crash. I spent two weeks to regain my ability to walk, and until last week my last wound was healed.
Now I'm amazed again by its toughness. There is a huge crack in the front glass, across both XZ plane and Y axis. I assume the front glass is fragile, but guess what? I pushed on it and it still holds! This huge crack even failed to penetrate the whole glass! The inner side of the glass is still one piece.
With additional 2 backups, I guess it's a lifetime guarantee.
Recently I'm thinking about purchasing a new watch. My old watch is destoryed during the bike crash in Oct.
Being hesitated on a metal g-shock square, with a electric coated blue circle, about 500 USD (GMW-B5000PC-1). Still not very like it, the blue is kind of green-ish and the whole watch is silver-ish white. And I hate bluetooth on my watch, I don't need it.
On a second thought, I purchased 2 almost new second hand watch which are the same model as my old one (GW-M5610BA-1JF), costing only 300 USD in total. It's not the flagship model, but I like it :)
Also, after a careful visual check, it appears that my old destoryed watch only have damage on the front glass and the resin strap, the core/movement is totally fine (the button is fine, illuminator is working, beeping sounds loud and clear, the multiband wave function is not test because I can't get the signal here).
Today I'm going visit a caiso repaire shop and see if they can fix this "JF" watch (the casio watch that only sold in Japan) here in China, but if I can, then I'll get 3 identical watches. Based on g-shock's reputation, I think I can rest my whole life on them. No need to buy more watch😋
**I have a job now!**
I'm a Chinese shitizen, but I generally don't post in Chinese to avoid being suffering from other Chinese.
I'm physically a male, but I don't care how people think about my gender. I can be male, or female, or cat. But if you ask, I'd prefer to be referred to as male. Also, I support LGBT+ people, and I'm a copyleft. I don't think I'm too aggressive in arguing things, but sometimes I do. You should handle it with care.
I post about programming (most time is Java and Kotlin, unless I have a new love), and some random things I find interesting. I also post about my mental health, which is in a stable state of instability, thanks to my parents and Chinese society.
Anyway, if you want to follow me, I'm glad to see you. And, have a nice day.
Alt: @skyblond