Due to the limitation of renpy in rendering dynamic screen ,
due the the black border it gives in different UI scale resolution , finally choosed to migrate to Godot.
Starting point, is to understand anchor and offset to recreate the different screen in renpy.
Enjoy every bit
Saturday, April 4, 2026
Migrating from Renpy to Godot
Thursday, December 18, 2025
Next year SF migration plan : moving out customer account to AWS , and call SF data with service account
👀 The most challenging part is about those function with user verification.
My service cloud with MIAW chat , nearly redo due to the user verification function of UV channel.
Learnt legacy chat migration to MIAW 2025 ,
Customize the MIAW with AWS 2026.
Understood why people are moving out from SF , not just price , is they don't put focus on their core cloud core technology anymore.
The debug of LWC still like a mess ( the syntax is super ugly ).
Not to mention still not able to make change of it in the platform , still rely on IDE deployment which super annoying. Oh the Flow is much not user friendly in compare to workflow rules and process builder. Super heavy as well .
The NEW things to replace the old are worse than those old things.
Lightning loading slower than classic , MIAW worse than legacy-chat which is very hard to persuade customer to "upgrade" .
Will I still recommend people to use SF ? yes for core cloud ONLY to be honest.
The rest new clouds are "horrible" , not to mention the Agentforce which looks like a semi-product .
Tuesday, June 24, 2025
Something about Renpy For loop error : expected statement.
It takes me over hour to debug.
The simple fact is that under label, we cannot use For loop.
One while is valid to be used under label.
To use For loop, must go with python:
Another Finding is about call screen and show screen.
In past, it seems the second one is more appropriate for my case .
With Screen A and button A, to open Screen B.
Thursday, May 8, 2025
Colab naifu , AI read model error
Change
File "/content/naifu/hydra_node/models.py", line 215, in __init__
from ckpt=torch.load(self.config.vae_path, map_location="cpu")
to ckpt=torch.load(self.config.vae_path, map_location="cpu" , weights_only=False)
Saturday, April 26, 2025
The JWK file specification , something about the public exponent : AQAB
I need to configure Salesforce JWT (JSON Web Token) user verification recently.
And there is a file JWK (JSON Web Key) required .The sample document from Salesforce shown as below :
Salesforce Reference
{
"kid":"123456",
"alg":"RS256",
"use":"sig",
"kty":"RSA",
"x5c":["<Your public certificate>"],
"y":"y",
"n":"<Base64-encoded modulus>",
"e":"<Base64-encoded public exponent>",
"crv":"crv",
"d":"d",
"k":"k"
}In order to know more about the values , I do another search online do know more about each parameters.
Detail RFC specification
And to know more about the Salesforce sample document, I get a search about the Salesforce specific file format as well.
Medium Reference
The public exponent now become a fix value "AQAB".
{
"kid": "{A unique value that identifies the end user}",
"alg": "RS256",
"use": "sig",
"kty": "RSA",
"x5c": [
"{Paste the public certificate value here}"
],
"y": "y",
"n": "{modulus of the public key in Base64 format}",
"e": "AQAB",
"crv": "crv",
"d": "d",
"k": "k"
}Isn't it a variable, why it can be fixed ?
The answer is related to the kty (Key Type) parameter.
When "RSA" is used as key type, then the public exponent of it is 65537.
Convert 65537 to hexadecimal , we got 0x01000. Then we encode the 0x01000 to Base64 , we got "AQAB".
In short, the base64 format public exponent of RSA is "AQAB".
And this value is came from conversion of public exponent of RSA key type.
Quoted from Wiki
"65537 is commonly used as a public exponent in the RSA cryptosystem".
Sunday, January 26, 2025
Salesforce Tricks : Add line break to Tool tips or field-level help in Lightning Experience.
A tool tip of a field can be difficult to read when there is no line break.
In formula , we can use "BR()" , but in tool tip, there is no formal method
The idea is still in Idea Exchange .
And a user posted a workaround here , using the "Japanese full width space" (\u3000).
Copy this : [ ]
And put above bracket into the Help text where you need the line break.
For example:
My line 1 [ ] My line 2
Magic is done.
Wednesday, January 15, 2025
Great free tools for System Integration : Inspecting the HTTP-based request for API testing 免費好用的API測試工具
In order to setup a HTTP-based API successfully, it is necessary to check request and response.
Postman is a great tool to check the response, how about the request ?
It can be trouble that if we cannot access a 3rd party system's request log while we have to send request to them . How can we verify the request we made is valid ? If the request will be altered by some middleware we may not able to touch ?
Here is one of the solution , make a mock server to capture the final request to the endpoint.
In past , it may takes time to setup a mock server , now , it becomes super easy.
The great tool here is beeceptor !!! No registration needed , no installation needed.
Just need one browser tab ~
Steps as simple as below :
- Create an endpoint at https://beeceptor.com/ and leave this browser tab open.
The endpoint will be like :
https://{your_input_name}.free.beeceptor.com
- Change the endpoint used in code to the endpoint you just created .
- Execute the request in code from your IDE or other place , just execute your callout code.
- Refresh your https://beeceptor.com/ browser tab .
- Now you can check the request and header you just send, and you may create any response in the mock server .
Reference : https://help.salesforce.com/s/articleView?id=000384720&type=1
Thanks for reading.
Migrating from Renpy to Godot
Due to the limitation of renpy in rendering dynamic screen , due the the black border it gives in different UI scale resolution , finally ...
-
It takes me over hour to debug. The simple fact is that under label, we cannot use For loop. One while is valid to be used under label. To ...
-
Change File "/content/naifu/hydra_node/models.py", line 215, in __init__ from ckpt=torch.load(self.config.vae_path, map_location...
-
When I am trying to use Colab for stable diffusion , I met error below today : ImportError cannot import name 'rank_zero_only' from ...
