Martin's website/blog thingy

Systems Engineer · HPC · AI · Ramblings on whatever

Posts written in Gemini text/gemini format, rendered to HTML. For the best experience, view through a Gemini browser (like Lagrange). Atom feed available.
2023-05-26

Subsystems in GNUnet and using them in GNUnet++

I'm back working on GNUnet++ after months of not knowing what to do with it! Now I've a fun project that I'm working on. In the mean time I have fixed and added a lot of things to GNUnet++. I think it's a good time to write a blog post about what each GNUnet subsystem does and how to use it in GNU...

Read more →
2023-05-09

Converting repeated callbacks into C++20 coroutines

C++20 introduced coroutines. Which drastically simplifies the implementation of asynchronous code. However, converting existing callback-based code to coroutines is not always easy. The simple case, where the callback is guarenteed to be called only once is covered by the fillowing question on Sta...

Read more →
2023-05-04

Stop Comparing Rust to C and C-with-classes!

Quick rant. **Stop comparing Rust to C!** I saw too much comparsion on the internet about why C is unsafe and Rust is safe. True. But they are NOT even the same class of language. C is minimal. The compiler is easiy to write. And nicknamed "portible assembler" for how low level it is. Rust on the...

Read more →
2023-04-24

Armchair Philosopher on Definition of Creativity

Recently, I got into a debate with a friend of mine about whether AI art is.. art and whether is should be allowed in commercial projects. He is on the position that it is not as it can only mix and replicate existing works. Thus not art. While I'm on the team calming that it can be and we don't kn...

Read more →
2023-04-14

Bypassing Indonesia's Internet Censorship

Short post. I've traveled to Indonesia for a few weeks and I've found sites like Reddit is blocked. Although I come prepared with my own WireGuard VPN to bypass it. It's still annoyning. Mostly because the added latency. First I tried some low skill bypasses After messing around. I find that Blz...

Read more →
2023-04-08

Trantor's new TLS backend, CSPRNG and improvements

I've spent a few months rewriting Trantor's TLS infrastructure. The old one was purely based on OpenSSL and messy. It's hacked together and not very well documented. Over time we added more and more features to it. And it's getting harder and harder to even understand what's going on. This and my ...

Read more →
2023-03-30

Install The KDE Konsole terminal emulator on macOS

My work machine is a 2019 MBP. The machine is nice and UI,, ok, I still like Gnome a lot better. But I miss a good and fast terminal emulator. To be specific, I want the following features For the longest of time, I've tried and used several options. Non of them are as good as Konsole. I've trie...

Read more →
2023-03-25

Oddball Technologies

One of my core principle to IT: Try to use different stuff. Don't be afraid of the _weird_ things. In a lot of cases, the weirdness is your friend. Usually the weird is a deisgn or feature to solve a need that is not met by the mainstream. Even if not, there's a lot to learn from the weird. This ...

Read more →
2023-03-18

Setting up vits-models to generate Waifu voices on demand

I got my hands on LLaMA and I'm trying to build an automatic translation bot and throw it into VRChat for assist in language exchange (credit to my friend Pichu for the idea). Thinking about it. Why not make the voice as quite as possible? It fits the weeb colture there. The standard TTS tools, e...

Read more →
2023-03-09

Hypocrisy of enterprise IT security

Quick rant. In work I've been debuging issue with some customers. Recently we updated how our virtual camera works on MacOS. Before we use the DAL interface and now switched to the more secure system extension. DAL works more like how Windows implements virtual camera using Direct Show. The system ...

Read more →
2023-02-19

Running SteamVR and VRChat on Arch Linux (2023 Feb guide)

I'vm a heavy VRChat player. I've friends on there. I can talk about supporting CVR and the entire EAC debacle, but I'm not here to talk about that - I use Linux as my daily OS. It respects my privacy, I can do full customization, I just got VRChat and SteamVR to work at a usable state on my Arch...

Read more →
2023-01-28

Validate email address using Regex in C++

Qucik one. Something I want to write down before I forget. Validating email addresses have been a constant pain for software developers. The RFC spec for a valid email is complex. No, it's not simply `^\S+@\S+\.\S+$`. For example. The spec prohibits email addresses on TLD. Thus `bob@example` is no...

Read more →
2023-01-25

First time messing with Sway

It's Chinese New Year (or Lunar New Year), whatever and I have a long vocation with my family, being lazy and whatnot. I decided to today I'm too bored to do anything scrious. I ended up trying to use a tiling window manager for once. Why? Because they feels very cool the first time I saw somone u...

Read more →
2023-01-14

RE: DNS oddity

Saw JBanana's gemlog yesterday about a weird phenomenon with DNS. Namely in the logs, the IP address 127.0.0.1 got logs as some Brazillian domain name. And the resolver runs in a NAT so no external entity could access it. Thus there mush be some issue somewhere. I hope I can provide some insight...

Read more →
2023-01-03

Long Rambling about Artist Reaction to AI

Ok, this is going to be an long rambling post. But I feel it has to be done. I see too much artist talking like they know how AI works. They talk about how AI is "stealing" their work, creating what looks like art but without any life in it. I DO agree that the current way we use AI will become a...

Read more →
2022-12-31

Deisgn of a war time civilian network

If you are watching news, you might see that especially recently, Taiwan and China isn't having a great relation. And unfortunately I live in Taiwan. I'm not going into the politics of it, but I'm going to talk about my plains of keeping my surroundings to have access to important information. Thu...

Read more →
2022-12-24

Christmas update: GNUnet++

Two weeks ago I announced GNUnet++, my C++ wrapper for common GNUnet functions. It's christmas time and I'm happy to share that I've made progress. The last version of GNUnet++ purely runs on callbacks. Which makes advanced usage cumbersome. Now there's full support for coroutines. This means th...

Read more →
2022-12-23

Counting accumulated changes in Git

It's almost christmas and our team is tasked with sharing some highlights this year. We thought sharing how much code we've written is a good idea. Sure it's not a good metric for measuring productivity, but good enough for bragging rights. But.. how? `git diff --shortstat` works but I don't exact...

Read more →
2022-12-18

Introduction to P2P messaging using CADET and GNUnet++

GNUnet is GNU's (yes, that GNU in GNU/Linux) framework for p2p applications. CADET (Confidential Ad-hoc Decentralized End-to-end Transport) is GNUnet's transport layer protocol. Think it like a replacement of TCP/IP. Practically it provides the following some over plain TCP/IP: This post explain...

Read more →
2022-12-15

Echo Server using gnunet-cadet command

I just want to write down this before I forget. I have been working on CADET support for GNUnet++ in the past few days. CADET is not very well documented. The doxygen and comment in headers are really helpful. But a lot of times in order to understand how to use a function, I have to read the sour...

Read more →
2022-12-11

Announcing GNUnet++, experimental high level GNUnet C++ wrapper

Today I'm announcing GNUnet++. An experimentable yet sensable C++ wrapper for GNUnet services. You can find my introduction to GNUnet in my older articles [1][2]. TL;DR GNUnet is GNU's version of IPFS and libp2p. It has some pros and cons over `libp2p`. Like built-in trafic covering, firewall bypa...

Read more →
2022-11-26

Language levels problems with Rust while learning day 1

I started learning Rust recently as on of the other maintainers of Drogon tries and likes it. And C++ have it's own pile of problems. Not saying I don't like C++ anymore just that I'm trying to learn something new. In the process I found a few places I dislike about Rust. Especially from the point...

Read more →
2022-11-19

Complaining about Trantor's SSL code and my plains to fix it

Just some quick rant about how Trantor does it's SSL stuff. For thoes who don't know. Trantor is a TCP library that I also maintain as a part of the Drogon web application framework. Personally, I think trantor is easier then boost::asio to use, and it's also more efficient. It also comes with int...

Read more →
2022-11-07

Mental Barrier and Culture of Gemini

I've saw may posts on Cosmos replying to the "Mayan and Gemini priests" post in the past week. And I want to add a points to the discussion. Hopefully not disrupting the flow of the conversation. I mostly want to add points from a (non-tech) user and user support perspective. Also, to avoid furth...

Read more →
2022-11-01

[EO] Jes, mi parolas Esperanton

Malmulte da homoj scias ke mi parolas esperanton. Kial? Mi lerin esperanton ĉar mia gepatroj demandu min "Vi paroras la anglan bone. Lernu novan lingvon". Sed mi ne ŝatas lerni lingvon. Mi lernis japana malsukcese. Estas malfacila lerni vortprovizon kaj gramatikon. Do mi serĉas la interreto por la...

Read more →