Message to my future self. For some reason, Unreal Engine thinks my laptop screen is a High DPI screen and makes the UI huge. So, to address this issue, I need to go to the Editor Preferences and disable support for High DPI.
I have always had a hard time understanding why we need antivirus software. There is plenty of code that has bugs, and viruses exploit these bugs to compromise systems. Instead of writing more code to protect us from viruses, why not fix the bugs? Similarly, I do not understand: we have too much bureaucracy and inefficiency in the government, too many departments; let’s create another department to combat that. How about we simply fire people who do nothing?
The neighbors dog 🐕 started barking before 5am 🕔 in the morning. 🤔 not sure what’s wrong with that dog. It may have some PTSD or even worse currently abused.
I am on a quest to find the perfect software for working from my Oculus Quest on my Linux laptop. So far, Immersed is the best option for me. However, I’m looking for more features and better functionality. For instance, audio is broken. I’ve tried different methods to troubleshoot, but it’s challenging without access to the source code.
One of my main wishes is to have a simple 2D app, allowing for easier multitasking—like running YouTube on the side. Unfortunately, I don’t think Immersed will ever focus on this, as the immersive experience is part of its brand and purpose.
The controls in Immersed are also a bit finicky. I feel that what Meta has done with the controls in the Quest’s main lobby is far superior.
Yesterday, I discovered xpra. Setting it up on Linux was frustratingly complex, and my system crashed multiple times. Overall, I wasn’t impressed; the latency in Immersed is significantly better. Like Immersed, xpra also has no audio support on my system. It seems to require PulseAudio, which I switched away from a long time ago in favor of PipeWire. It’s possible that xpra does support PipeWire, but the Debian build appears to be compiled specifically with PulseAudio dependencies.
I even tried building xpra from source, but it required Cython version 3. In the end, I don’t think it’s worth pushing forward with xpra, as the high latency is a definite deal-breaker.
Did you know that if you want to get to ChatGPT, you can just type in the browser chat.com
?
To start Bluetooth pairing on my Logitech OROCHI mouse, I need to press two side buttons and the DPI button simultaneously for 3 seconds until the DPI LED starts blinking.
Snap is an annoying feature when I am moving windows or adjusting guidelines in GIMP; sometimes I need it, but more often it is in my way. Probably invert the behavior and enable snapping by some hotkey (e.g., Shift), but by default never snap.
Standard Apple practice. Make everything suck and then unsuck things one by one and call it innovation.
Apple added a tool to convert DirectX shaders to Metal. 🤯 Metal can be used with C++. 🤯
https://developer.apple.com/games/game-porting-toolkit/
I ended up acquiring Tesla insurance. Had no idea how cheap and convenient it is. Took me about 20 minutes to get it, no waiting for 2 weeks, no talking to representatives, no paperwork; a flat rate of $340/month for two cars and two drivers. I am glad other insurance companies were so cumbersome, otherwise I would not have gotten the Tesla one. So far, my experience with Tesla insurance is A+.
When did auto insurance become such a headache? I got my first and only insurance in 2008, and never had any problems until now. 45 minutes listening to a purely produced MIDI music on the phone waiting for a representative.
There is an issue with connection reusing in curl multi, not sure if I am doing something wrong or if there is a bug in libcurl. Currently, I work around it by just disabling the connection reuse. curl_easy_setopt(curl, CURLOPT_FORBID_REUSE, 1L);
🌸 Fri, Nov 8, 2024 🌸
I am working on a new project, and the default character return for source code files is set to the DOS style. That gave Emacs some measles disease, filling the screen with bright red ^M
symbols. To investigate, I placed the cursor on ^M
, pressed Alt+X
, and ran describe-char
, which gave me the following information:
position: 5358 of 144784 (4%), column: 2
character: RET (displayed as RET) (codepoint 13, #o15, #xd)
charset: ascii (ASCII (ISO646 IRV))
code point in charset: 0x0D
script: latin
syntax: which means: whitespace
to input: type "C-x 8 RET d" or "C-x 8 RET CARRIAGE RETURN (CR)"
buffer code: #x0D
file code: #x0D (encoded by coding system utf-8-unix)
display: no font available
hardcoded face: escape-glyph
Character code properties: customize what to show
old-name: CARRIAGE RETURN (CR)
general-category: Cc (Other, Control)
There are text properties here:
font-lock-face magit-diff-added-highlight
keymap [Show]
magit-section [Show]
[back]
So, the escape-glyph
face was being used. Next, I typed customize-face
, searched for escape-glyph
, changed the color, and clicked on the Apply and Save
button.
🌸 Thu, Nov 7, 2024 🌸
What am I doing with my life? I make AI to write code, and spend tons of time debugging and reviewing the code. And AI also blames me for writing bad code. The world is upside down. What if I write messy code and AI reviews it and fixes bugs? Can we arrange that?
🌸 Wed, Nov 6, 2024 🌸
A Thought Experiment: Simplifying C++ Function Calls with Structs (C++20)
Ever dealt with a C++ function that has too many parameters, most of which are optional? Here’s an example:
auto llm(
ChatCompletionsQuery,
int npredict = 2048,
float temperature = 1.f,
std::vector<std::string> stopTokens = {}
) -> std::string;
In this case, ChatCompletionsQuery
is essential, but the other parameters often use their defaults. If you just want to tweak temperature
, the call can get unwieldy.
So, here’s a thought: what if we refactored to group these optional parameters into a struct? With C++20’s designated initializers, you can do this easily:
struct LlmIn {
int npredict = 2048;
float temperature = 1.f;
std::vector<std::string> stopTokens = {};
};
auto llm(const ChatCompletionsQuery& query, const LlmIn& options = {}) -> std::string;
Now, you can adjust only what you need:
llm(query, {.temperature = 2.f});
Why This Might Work
- Cleaner Calls: Override only the parameters you need, keeping calls concise.
- Future-Friendly: If more options get added, they just go in the struct.
- One-Stop Defaults: Set all defaults in one place for easy updates.
I haven’t tried this yet, but it seems like a clean way to keep code readable and flexible—if you’re working with C++20 or later. Worth a try?
🌸 Wed, Nov 6, 2024 🌸
Donald Trump won.
🌸 Wed, Nov 6, 2024 🌸
Note to future me. I take it back; I realized I have a smaller GPU, and it’s on 7.5. I want to use both. So, the command to build whisper.cpp on my laptop is.
CUDA_DOCKER_ARCH=compute_75 GGML_CUDA=1 make -j
🌸 Mon, Nov 4, 2024 🌸
Command to build whisper.cpp on my laptop. Note for future me.
CUDA_DOCKER_ARCH=compute_86 GGML_CUDA=1 make -j
🌸 Mon, Nov 4, 2024 🌸
Why do we call things headless, usually there is a head, but no body. Like headless Git, it has everything except the working tree. Or a headless VM, it has the brains but no visual representation. Maybe ‘faceless’ would be a more appropriate term?
🌸 Mon, Nov 4, 2024 🌸
Do you remember that I complained about Bank of America about a month ago? They sent an email that looked suspiciously scammy. And I needed to double-check if it was a legitimate email. They asked me to verify my personal data, my name, date of birth, and so on. I did it a month ago, and they still froze my credit cards. LUL
🌸 Fri, Nov 1, 2024 🌸
Not fond of that: std::numbers::pi_v<float>
. Too long for simple humble π.
Time is hard. My approach to the problem. Internally, time is always in the UnixTime format, which might be a number of seconds, or if more resolution is needed, it might be in milliseconds, microseconds, or even nanoseconds. Sometimes we may have an integer overflow, so we can go to monotonic time, but first, try UnixTime. And carry it everywhere, and convert it to a human-readable format as close to the user, probably on the frontend side. Try to avoid saving HH, MM, SS and convert them immediately to UnixTime. Still hard, though. For example, scheduling a meeting at 10AM every day - daylight saving - BOOM! - problems.
I set tabs to be 3 spaces, so I can relatively easily detect if we have source code with mixed-up spaces vs tabs.
Yesterday, I pulled my back.
It took one week and one day without long COVID symptoms from last Friday until today, Saturday. Chest pain is starting now.
Previous - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - 21 - 22 - 23 - 24 - 25 - 26 - 27 - 28 - 29 - 30 - 31 - 32 - 33 - 34 - 35 - 36 - 37 - 38 - 39 - 40 - 41 - 42 - 43 - 44 - 45 - 46 - 47 - 48 - 49 - 50 - 51 - 52 - Next