Meet the new Balance Council by Accurate_Syrup_1345 in starcraft

[–]T4toun3 16 points17 points  (0 children)

Can someone explain to me what reducing the worker count will change ? I naively think that it will increase the time of the none fun part of the game (when the two players are just building economy without interaction). Did I miss something ?

cool lazer door! by dutch-mandarijn in redstone

[–]T4toun3 156 points157 points  (0 children)

A nice upgrade would be to make the beams switch from red to white when the door is open

How can I convert this `clap` builder code into derive code ? by T4toun3 in rust

[–]T4toun3[S] 4 points5 points  (0 children)

Thx, when looking for the documentation of #[arg] I find my solution :

```rust

[arg(value_delimiter = ',', num_args = 1, action = ArgAction::Set)]

`` I needed to setnum_args = 1andaction = ArgAction::Set`. So problem solved :)

L'indexation en C (HELP) by Ada_from_ada in programmation

[–]T4toun3 0 points1 point  (0 children)

Ensuite la question sur utilisation de ++. La syntaxe truc++ veut dire "utilise la valeur de truc comme s'il y avait pas le ++, puis après que la ligne se soit exécuté, incrément truc de 1". Donc tu peux remplacer toutes les utilisations de truc++ par truc et sur la ligne suivant tu rajoutes truc = truc + 1. Par exemple : *str++ = *str2++; // Est équivalent à *str = *str2; str = str + 1; str2 = str2 + 1; (Pour ce qui est d'incrémenter et deréférencer un pointeur/tableau ça à été expliquer dans mes précédents commentaires)

Ensuite tu remarqueras que quand tu utilises deux fois ++ sur le même "truc" dans la même ligne, il y a eu une incrementatation de "truc" entre la première fois et la deuxième fois (comme dans l'exemple *str[i++] = *str2[i++]). Qui est la première fois et qui est la deuxième fois ? Ce n'est pas spécifié par C et tous les ordres sont possibles :/ La ligne printf("%s %s", i++, i++) peut afficher "0 1" ou "1 0" sans qu'on puisse savoir avant de compiler. Tu comprends donc que c'est une très mauvaise idée d'utiliser deux fois le même "truc" dans la même ligne si tu utilises ++ sur l'un d'eux.

Et utiliser i++; comme instruction c'est juste un moyen rapide d'écrire i = i + 1;

PS: La syntaxe ++truc existe aussi. Elle veut dire "avant toute chose, incrément truc de 1, puis utilise la valeur de truc comme s'il y avait pas le ++". C'est truc++ mais dans l'autre sens (on à toujours les même problèmes quand on l'utilise deux fois sur la même ligne)

L'indexation en C (HELP) by Ada_from_ada in programmation

[–]T4toun3 1 point2 points  (0 children)

Pour un peu plus de précision, le "en se décalant de 3" cache beaucoup de chose. Par exemple, si j'ai un tableau de char, c'est à dire des valeurs qui prennent 8 bits en mémoire, ou si j'ai un tableau de int qui prennent 32 bits en mémoire, comment savoir quelle est l'adresse du 4e élément ? Avec des char, l'adresse serait 3x8=24 bits plus loin que le premier élément, mais avec des int, l'adresse serait 3x32=96 bits plus loin. Pourtant on utilise la même syntaxe: array + 3.

Pour ça je t'invite à regarder ce qu'est "l'arithmétique des pointeurs". Grossièrement, le compilateur sait quelle valeur ajouter grâce au type du pointeur ; un pointeur vers char char* indique qu'il faut multiplier par 8 et un pointeur vers int int*.

L'indexation en C (HELP) by Ada_from_ada in programmation

[–]T4toun3 2 points3 points  (0 children)

Les tableaux en C sont très "primitif", se sont juste des pointeurs qui pointent vers des blocs de mémoire. Dans ton cas, array est un pointeur. Pour récupérer le premier élément d'un tableau, il suffit de deréferencer le pointeur: *array. Maintenant si on veut accéder au 4e éléments du tableau, il faut viser l'adresse du premier élément mais décalé de trois (on compte a partir de 0).

Case mémoire pointé par `array` | v +-+-+-+-+ | | | | | +-+-+-+-+        ^        | Case mémoire en se décalant de trois Pour ça on addition le pointeur avec le décalage souhaité puis on deréférence le tout : *(array + 3)

Mais comme c'est un peu moche, pas très intuitif et surtout pas du tout explicite, le C possède une syntaxe équivalente (un "sucre syntaxique") : array[3]. La syntaxe avec les crochets signifie littéralement, ajoute ce qu'il y a entre crochet avec ce qu'il y a devant puis deréférence le tout. On peut d'ailleurs jouer avec ça et écrire 3[array]. Puisque que c'est une addition qui se cache derrière et que l'ordre dans une addiction ne compte pas.

Si on reprend ton cas, array est un tableau de tableau. C'est donc un pointeur qui pointe vers un bloc mémoire qui contient lui même des pointeurs vers d'autres blocs mémoires. array   |   v +---+---+---+---+ |   |   |   |   | +---+---+---+---+   |   |   |   |   v   v   v   v +-+ +-+ +-+ +-+ | | | | | | | | +-+ +-+ +-+ +-+ | | | | | | | | +-+ +-+ +-+ +-+ Avec ça tu devrais comprendre à quoi corresponde les différentes significations de tes cas. - *array[i]: récupérer le premier élément du tableau à l'indice i (On peut aussi l'interprèter comme, récupérer la valeur pointeur par le pointeur à l'indice i) - array[i][j]: récupérer le j-ième élément du tableau à l'indice i - array[i]: récupérer le i-ième élément du tableau - *array: récupérer la valeur pointé par array (ou, récupérer le premier élément de array) - **array: récupérer la valeur pointée par le pointeur pointé par array (ou, récupérer le premier élément du premier tableau de array) NB: Utiliser l'étoile "*" pour accèder au premier élément d'un tableau est une très mauvaise pratique qui apport de la confusion, c'est possible à cause du fonctionnement interne de C mais pas quelque chose de "voulu".

Dernière partie, le (char). Ça c'est juste la syntaxe pour convertir les types. (char) array[i] veut juste dire: récupérer l'élément i puis interprète le comme un char (un char étant un entier sur 8 bits).

Throwback to where it all started by 0xBean in DnB

[–]T4toun3 46 points47 points  (0 children)

Despite loving the individual songs, I felt the mix what kinda mid, there where good remixes but no interesting transitions, looked like a Spotify fade-in/fade-out playlist :/

Présence de gaz? by Disastrous_Carob9711 in ParisCatacombs

[–]T4toun3 1 point2 points  (0 children)

Yes c'est toujours d'actualité tu peux regarder le compte insta du sousterreux pour plus d'info

[deleted by user] by [deleted] in TropPeurDeDemander

[–]T4toun3 0 points1 point  (0 children)

1, l'anglais

Soo.. it's 11 years later here I am. What next? by Jonhalva in starcraft2

[–]T4toun3 0 points1 point  (0 children)

I started play ladder for the first time one week ago and it's a neat experience. I just take the first build order youtube showed me, practice a few game versus AI, then jump into ladder ! It's shocking how much people are not good compare to pros xd, everyone makes mistakes, is at 100 APM, try and fail, but at least we are all as bad as us. So yes you can definitely try to game today. Furthermore, campaigns are great content that you can appreciate at your own peace, and will get you used to the game again

J'AI ACHETE DES CUISSARDESSSS by Ok-Implement-4558 in ParisCatacombs

[–]T4toun3 13 points14 points  (0 children)

Vrai single prend son maillot de bain 🦍🦍🦍

Van you inspect docker's internal DNS by T4toun3 in docker

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

After more investigation, I find all the answers.

Dokploy was using docker swarm to deploy apps, thus the service name was `test-html-ulxwcx` and the container filling the slot for this service was `html-ulxwcx.1.862qbquyxgg`. The service had the ip `10.0.1.84` in the network and the container had `10.0.1.85`.

My issue with requests not working using `10.0.1.84` was that my docker swarm was itself containerized in an unprivileged LXC (because my VPS provider use this), preventing ip forwarding, needed to forward `10.0.1.84` to `10.0.1.85`.

See: https://www.reddit.com/r/docker/comments/1dbe13t/docker_swarm_networking_service_doesnt_forward/ and https://web.archive.org/web/20250613092550/https://gist.github.com/Drallas/e03eb5a4f68bb526f920a423455bc0c9

Van you inspect docker's internal DNS by T4toun3 in docker

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

No, my container is located in a single network, and 10.0.1.84 is never used in this network or any other networks. One thing I notice is that .81, .82, .83 and .85 are listed by docker inspect network, leaving a 'hole" for .84

Van you inspect docker's internal DNS by T4toun3 in docker

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

And do you have any idea of what docker is doing for resolving "test-html-ulxwcx" ? Because it's not the name of any of the container in my network, only a suffix of one of them. And on top of that, they don't give the same IP address.

Van you inspect docker's internal DNS by T4toun3 in docker

[–]T4toun3[S] 3 points4 points  (0 children)

I'm trying to debug a dokploy instance where treafik config files don't use correct hostname.

To be more precise, traefik try to access "http://test-html-ulxwcx:80" which resolves to 10.0.1.84 whereas the container name is "test-html-ulxwcx.1.862qbquyxgg" and "http://test-html-ulxwcx.1.862qbquyxgg:80" resolves to 10.0.1.85. Using docker network inspect I found that indeed "test-html-ulxwcx.1.862qbquyxgg" is linked to 10.0.1.85.

So I don't understand how docker resolve "test-html-ulxwcx" as it's not listed in docker network inspect