2023-05-26
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
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
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
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
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
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
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
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-19
I've been working on upgrading TLS code for TLGS. One of the improvments is that besides OpenSSL, Botan can also be used as the underlying TLS library. In the process I discovered one thing. According to RFC, a TLS 1.3 server must send X509 v3 certificates unless explicitly negotiated.
And Bota...
Read more →
2023-03-18
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
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-26
I've been thinking more about what can I build with GNUnet. To be particular I started by thinking about how I can replicate existing service on GNUnet. See my previous post about properties I think a decentralized service needs in order to be useful and somewhat robust. After more mind storming. ...
Read more →
2023-02-19
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-02-08
A while ago, I announced my plan to rewrite how Trantor does TLS. I finally found the motivation to do it. The plan was quite in the right direction and I'm at the point where I can start testing the new code. To test in a real world environment, I think it's easier and better to use my capsule as...
Read more →
2023-01-28
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-27
It's mostly bugfixes and extending GNUnet++ to handel multithreaded enviroments. Last month I started working on peerinfo support. But ended up focusing on other stuff.
GNUnet in of itself is single threaded and runs on it's own event loop. But to support more complex applications, GNUnet++ nee...
Read more →
2023-01-25
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
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
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
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
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
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
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
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
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
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
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
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-05
Took me a while to understand how GNUnet File Share is able to encrypt and store data on the decentralized network. While making nodes unable to decrypt it. The answer is in the GNUnet whitepaper published in 2002. Like any technical documentation, you need some background knowledge to understand ...
Read more →
2022-11-01
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 →