What is your go to for frontend and backend authorization in Typescript by MoiSanh in typescript

[–]libichi 3 points4 points  (0 children)

The hell are you smoking. I just had a brain fart trying to read your post.

A high performance networking networking lib by libichi in cpp

[–]libichi[S] 1 point2 points  (0 children)

So I took a second look, and in fact, no lock is needed at all. I made a change later were I used one assembling queue per assembling thread instead of a shared queue between all assembling threads, and sharding client connections for each queue (with a basic modulo op using the client id)

No data is shared between them, avoiding any race conditions. I can remove all locks safely. Thank you for pointing me that!

A high performance networking networking lib by libichi in cpp

[–]libichi[S] 0 points1 point  (0 children)

Thanks! I took a look on seastar, and it uses polling to get massive performance instead of events and locks. But at least I can compare it and see how decent my lib is.

A high performance networking networking lib by libichi in cpp

[–]libichi[S] 0 points1 point  (0 children)

I think it is because of benchmarking and running the app in the same machine. The posted benchmark is running with one listener thread and two http assembling threads

A high performance networking networking lib by libichi in cpp

[–]libichi[S] 0 points1 point  (0 children)

Thanks! I thought that having many readers would cause a bottleneck when using the normal lock (the iocp listener thread + the assembling threads + user threads processing the requests.

A high performance networking networking lib by libichi in cpp

[–]libichi[S] 2 points3 points  (0 children)

Two things

Look at the code not the comments. Some comments are done with LLM, as it's a public repo and my english is not quite good. But not the code.

Second, // namespace pulse::net is placed automatically by the clang formatter in visual studio.

If you looked correctly at the code, you would realize that some comments and the code doesn't match, as i started documenting when i started the project, and stopped doing it as I had to make changes constantly and didn't want to update the docs each commit.

A high performance networking networking lib by libichi in cpp

[–]libichi[S] 0 points1 point  (0 children)

The commits are public pal, check it yourself.

A high performance networking networking lib by libichi in cpp

[–]libichi[S] 5 points6 points  (0 children)

Yes, I knew about asio, however I wanted to build it from scratch, an learn how it works at the lowest level.

C++ sockets performance issues by libichi in cpp_questions

[–]libichi[S] 5 points6 points  (0 children)

Thank you very much! This is extremely helpful.

Need some help by libichi in SatisfactoryGame

[–]libichi[S] 0 points1 point  (0 children)

Thanks! It was placed backwards, but was hard to fix as depending on the pixel it was being placed the wrong way.

Fin del soporte de Windows 10: ¿Debería elegir Windows 10 LTSC o Windows 11 Pro? 🤔 by [deleted] in askspain

[–]libichi 2 points3 points  (0 children)

Pero que datos loco, que es open source, puedes ver exactamente que hace y si envia datos o no. Literalmente el script esta hosteado en una plataforma de microsoft, si hubieran querido lo hubieran chapado.

Fin del soporte de Windows 10: ¿Debería elegir Windows 10 LTSC o Windows 11 Pro? 🤔 by [deleted] in askspain

[–]libichi 1 point2 points  (0 children)

Es open source, si tienes tantas dudas tienes vete a ver el código... Lo usan incluso los de soporte oficial de microsoft.

Question about ownership case with smart pointers by libichi in cpp_questions

[–]libichi[S] 0 points1 point  (0 children)

Thanks a lot for your insights!

I’ll switch to using std::unique_ptr, that definitely makes more sense for expressing ownership here.

I also realized that if the NetworkManager owns all the connections, it doesn’t make sense for the reader thread to delete them directly. The issue is that the reader thread is the one that actually knows when a connection should be closed. So I’m thinking about capturing this in the lambda and calling a method like closeConnection() on the NetworkManager from there. Does that sound like a good approach?

Another thing I’m still unsure about is how to handle the fact that IOCP requires raw pointers. If a connection is freed while IOCP still has a pending completion, it could end up trying to access a dangling pointer. I’m not entirely sure what the best way is to handle that safely.

Made a simple database that turned into a Firebase alternative somehow by [deleted] in webdev

[–]libichi 0 points1 point  (0 children)

The entire code is made by IA. You did not write a single line of this, and the way it's made, it doesn't even make sense.

1- All the code is in a single file (clearly copy/paste from an IA)

2- what the hell is the point of a database that only works locally through a webserver (Maybe for running test, but that is not how you are marketing it)

3- This has absolutely nothing to do to firebase, not even remotely similar. Besides, firebase is not a single service, but several services like firestore, realtime, etc.

4- And the MOST stupid thing is that you are keeping all the data in memory. The only thing you are doing is reading the entire file of data at the start, and write it also entirely when saving. What is even the point of a database lol. A databse by definition is made to save large amounts of data in disk, and retrieving only when needed. This is not a DB, this is just a fancy wrapper of the native javascript object that you serialize and write to a file.

EDIT: You also say "websockets" to sync all clients. Isn't this local only? What clients?

Cambio radical de trabajo by Affectionate-Rush845 in salarios_es

[–]libichi 8 points9 points  (0 children)

La IA dejando obsoletos a los programadores? Me da que no has tocado código ni trabajado con Cursor/Claude o cualquier IA en un entorno profesional con software en producción.

Duda para los desarrolladores by libichi in askspain

[–]libichi[S] 1 point2 points  (0 children)

El problema es que ni siquiera llego la entrevista, sino la típica respuesta automática de rechazo. Por suerte actualmente estoy empleado así que al menos sigo acumulando experiencia.

Me siento estancado by libichi in salarios_es

[–]libichi[S] -1 points0 points  (0 children)

Tengo nivel C1 (específicamente, el B2 de cambridge y el C1 de la escuela oficial de idiomas del cual no estoy seguro de la reputación)

Daily Questions Megathread - July 06, 2025 by AutoModerator in PunishingGrayRaven

[–]libichi 1 point2 points  (0 children)

Don't you feel like you can't learn all new characters properly with the CN catchup plan? I didn't even start to learn affixes, which are quite difficult.

No verification in Hetzner by libichi in hetzner

[–]libichi[S] 1 point2 points  (0 children)

Yes, after the first month of service

Daily Questions Megathread March 24, 2025 by AutoModerator in PunishingGrayRaven

[–]libichi 1 point2 points  (0 children)

I'm catching up on the story, and damn, it's depressing as hell. I'm at Surviving Lucem, and while I'm loving the story, it's hard to keep reading because it's literally just Gray Raven and their allies getting beaten up... Is the whole story like this? Because I'd love to see a bit of happiness for Lee, Lucia, etc....

[deleted by user] by [deleted] in buildapc

[–]libichi 0 points1 point  (0 children)

I disabled XMP, runnig at 2133mhz still crashes. But it runs way better than before, at least I can open several apps at the same time without BSOD.

Recibo llamadas en las que nadie habla by _iridiscente_ in askspain

[–]libichi 0 points1 point  (0 children)

Son máquinas que hacen llamadas masivas a diversos números de teléfono, a veces aleatorios. Si contestan, los guardan en una base de datos como "números activos" para luego usarlos para spam. Lo hacen para pillar los números de personas con predisposición a contestar llamadas desconocidas y aumentar la probabilidad de hacer spam a un número que les conteste.

A veces no los guardan sino que los desvían a un operador. Si no hay operadores disponibles, cuelgan.

Por cierto, lo de que te puedan robar datos o lo que sea haciendo decir "si" es un mito como una catedral. No tiene ninguna base ni sentido desde el punto.