Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3181 connectés 

 


Sujet auquel vous répondez
Sujet : [blabla@olympe] Le topic du modo, dieu de la fibre et du monde
hephaestos Quel enfer la verbosité des std::regex en C++...
 
Et l'absence d'utilitaires de manipulation de strings dans la lib standard est relou, j'ai craqué aujourd'hui j'ai importé absl::string.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
flo850 Désolé de vous interrompre je reviens sur mes hashs pour valider les données

 

Est ce que , si je comprends bien, un bloc de donnees chiffrées par un algo "authenticated" , en l'occurrence aes-256-gcm est garanti de ne pas être dechiffrable s'il a subi la moindre modif , vu qu'il faut la clé privée pour recalculer un nouvel auth tag en cas de modif ?

 

Le fichier résultant est stocké de cette manière :
[Initialisation vector][données chiffrées ][paddingcpour aligner][auth tag]

 

Un attaquant a donc tout, sauf la clé privée

 

La conséquence est que si les fichiers sont dechiffrables alors ils sont forcément non modifiées , il me restera a garantie que la liste de ces fichier n'aient pas été modifiée aussi

sligor

masklinn a écrit :

Day 2: https://topaz.github.io/paste/#XQAA [...] f/ROVWAA==
 
Pas compliqué, mais comme souvent parser un format string-based à la main en rust c'est un peu bof (beaucoup d'unwrap). Faudrait vraiment que je passe du temps sur nom & co histoire de pouvoir l'utiliser de manière naturelle.
 
Par contre au final tout est faisable sans allocs et ça c'est cool.


Citation :

Code :
  1. Some((n, "red" )) => (n.parse().unwrap(), g, b),
  2. Some((n, "green" )) => (r, n.parse().unwrap(), b),
  3. Some((n, "blue" )) => (r, g, n.parse().unwrap()),



C'est dégueulasse ça  :fou:  
 
 
comme ça c'est propre :o

Code :
  1. Some((n, "red".  )) => (n.parse().unwrap(), g, b),
  2. Some((n, "green" )) => (r, n.parse().unwrap(), b),
  3. Some((n, "blue"  )) => (r, g, n.parse().unwrap()),


 

___alt

masklinn a écrit :

Par contre au final tout est faisable sans allocs et ça c'est cool.


 
 [:kolombin:6]

masklinn Day 2: https://topaz.github.io/paste/#XQAA [...] f/ROVWAA==
 
Pas compliqué, mais comme souvent parser un format string-based à la main en rust c'est un peu bof (beaucoup d'unwrap). Faudrait vraiment que je passe du temps sur nom & co histoire de pouvoir l'utiliser de manière naturelle.
 
Par contre au final tout est faisable sans allocs et ça c'est cool.
___alt

gatsu35 a écrit :


AOC Java Enterprise Edition


 
Je pense que s'il avait juste déclaré ses variables avec val ça passait crème, parce que personne aime lire des lignes où la déclaration du type prend la moitié de la place, quand on n'a pas fondamentalement besoin de lire le type explicite pour comprendre le code :o

Elmoricq Jour 2 terminé, c'était trivial.
 
https://github.com/scottinet/aoc2023/tree/main/day2
micky78

Elmoricq a écrit :


 
Si tu parles de Array.map, c'est facile : d'une part, le lancement n'est jamais conditionnel, ça parcourt toujours tout le tableau. D'autre part, c'est synchrone : tout ce que tu récolteras à l'utiliser avec des méthodes async, ce sont des valeurs de type Promise<T>.
 
 
Array.map est une méthode de transformation d'un tableau en un autre tableau, de même taille.  
 
Si tu veux faire des lancements conditionnels et utiliser des méthodes async, il faut utiliser d'autres moyens, Array.map n'est tout simplement pas fait pour cet usage.


 
Merci pour les retours
Je vais revoir la méthode et faire comme masklinn le suggère, je vais vérifier le statut du call avant de lancer le traitement et partir du principe de ne faire la vérification qu'en amont.
Du coup je peux garder map même en utilisant une fonction async tant qu'elle ne conditionne pas les autres itérations, grâce à promise.all
Pour la proposition d'utiliser un registre là c'est trop high level pour moi encore. Par contre je vais utiliser le module cache dans la fonction c'était prévu du coup si ça se trouve je vais réussir à faire quelque chose d'équivalent.  

skeye Bon, aujourd'hui j'étais parti sur le bon calcul dès la partie 1, du coup la partie 2 était triviale [:jar jar]
 
https://github.com/mrossard/aoc2023 [...] 2/day2.php
Flaie

hephaestos a écrit :


Pourquoi la fonction s'appelle replaceDigits  [:spiderban:3]


un bon replaceDigits, il remplace les spelled digits, mais de la bonne façon  [:xqwzts:1]  
le mauvais replaceDigits, il remplace les spelled digits, mais pas de la bonne façon  [:xqwzts:1]

gatsu35

gfive a écrit :


 
Bah pourquoi? Enfin je trouve ça pas trop dégueu. Un peu galère a lire avec les fonctions mais bon.


je déconne, car quand j'ai vu ton truc en java je pensais à ça : https://github.com/EnterpriseQualit [...] iseEdition

hephaestos

Flaie a écrit :


Je ne remplace pas.


Pourquoi la fonction s'appelle replaceDigits  [:spiderban:3]

gfive

gatsu35 a écrit :


AOC Java Enterprise Edition

 

Bah pourquoi? Enfin je trouve ça pas trop dégueu. Un peu galère a lire avec les fonctions mais bon.

Flaie

hephaestos a écrit :


Ah oui mais on a dit à gatsu de pas remplacer. Ça foire si le dernier chiffre se télescope avec un autre je pense, genre "eighthree". Après c'est je genre de truc qui arrive que dans les chiffres du milieu dans les exemples mais bon...


Je ne remplace pas.
 
Jour 2:

hephaestos

Flaie a écrit :


en kotlin aussi cette année, pour pas changer.  
Mais je me tâte à tester un langage genre zig.
 



Ah oui mais on a dit à gatsu de pas remplacer. Ça foire si le dernier chiffre se télescope avec un autre je pense, genre "eighthree". Après c'est je genre de truc qui arrive que dans les chiffres du milieu dans les exemples mais bon...

Ydalb

SekYo a écrit :

Je devrai passer a Montreal le week end prochain, je me souviens plus si y a des gens du topic sur place pour une éventuelle kimousse ?


 
J’ai mon meilleur pote la bas, c’est tout :o

hephaestos Quel enfer la verbosité des std::regex en C++...
 
Et l'absence d'utilitaires de manipulation de strings dans la lib standard est relou, j'ai craqué aujourd'hui j'ai importé absl::string.
gatsu35


AOC Java Enterprise Edition

Elmoricq

micky78 a écrit :

Interrogation de noob en node.js
J'ai l'impression que l'utilisation de .map devient vite galère, plus complexe voir impossible dès qu on veut utiliser des fonctions asynchrones dedans et plus encore si on a besoin de conditionner le traitement de l itération suivante à une réponse d'une fonction asynchrone comme un call API
Et qu'au final on a un code plus simple, voir même tout simplement fonctionnel, avec un bon vieux for ?

 

Si tu parles de Array.map, c'est facile : d'une part, le lancement n'est jamais conditionnel, ça parcourt toujours tout le tableau. D'autre part, c'est synchrone : tout ce que tu récolteras à l'utiliser avec des méthodes async, ce sont des valeurs de type Promise<T>.

 


Array.map est une méthode de transformation d'un tableau en un autre tableau, de même taille.

 

Si tu veux faire des lancements conditionnels et utiliser des méthodes async, il faut utiliser d'autres moyens, Array.map n'est tout simplement pas fait pour cet usage.

gfive Bon finalement j'ai refait propre.

 

https://github.com/elacazed/aoc2023 [...] 3/D01.java

beel1

Elmoricq a écrit :


 
Moi j'ai juste  
 

Spoiler :

remplacé les mots par leur première lettre, le digit correspondant, et la dernière lettre
 
exemple : oneight => o1e8t
 
https://github.com/scottinet/aoc202 [...] dex.ts#L24


 
edit : welp, je me rends compte que y a plus propre en reprenant pas le boulot de la partie 1, mais bon


Spoiler :

bravo, ça permet de garder Excel dans la course :D

SekYo Je devrai passer a Montreal le week end prochain, je me souviens plus si y a des gens du topic sur place pour une éventuelle kimousse ?
masklinn

micky78 a écrit :

Bah un exemple je dois retraiter des données, pour le faire j'ai besoin sur une colonne de faire un call API, si l API est en error je veux utiliser une valeur par défaut pour les itérations suivantes sans relancer à chaque fois le call API. Donc je renvoie une valeur qui dans la fonction appellee me renvoie une valeur fixe plutôt que faire un call API


Tu fais ton appel avant [:michel_cymerde:7]  
 
Ou un appel différent qui te sert à avoir cette info spécifique.
 
Ou bien tu partages un registre pour que la première requête puisse bloquer ou invalider toutes les autres. Tu peux même utiliser ça comme un cache si les appels sont différents mais qu'il y a des duplicatas.

micky78 Bah un exemple je dois retraiter des données, pour le faire j'ai besoin sur une colonne de faire un call API, si l API est en error je veux utiliser une valeur par défaut pour les itérations suivantes sans relancer à chaque fois le call API. Donc je renvoie une valeur qui dans la fonction appellee me renvoie une valeur fixe plutôt que faire un call API
masklinn

micky78 a écrit :

Interrogation de noob en node.js
J'ai l'impression que l'utilisation de .map devient vite galère, plus complexe voir impossible dès qu on veut utiliser des fonctions asynchrones dedans et plus encore si on a besoin de conditionner le traitement de l itération suivante à une réponse d'une fonction asynchrone comme un call API
Et qu'au final on a un code plus simple, voir même tout simplement fonctionnel, avec un bon vieux for ?


Si tes itérations ne sont pas indépendantes, utiliser `map` n'a aucun sens.

micky78 Interrogation de noob en node.js
J'ai l'impression que l'utilisation de .map devient vite galère, plus complexe voir impossible dès qu on veut utiliser des fonctions asynchrones dedans et plus encore si on a besoin de conditionner le traitement de l itération suivante à une réponse d'une fonction asynchrone comme un call API
Et qu'au final on a un code plus simple, voir même tout simplement fonctionnel, avec un bon vieux for ?
masklinn Bruteforcé en rust, parce qu'il y a pas de raison: https://topaz.github.io/paste/#XQAA [...] f/qGMJgA==
 
Après manger j'vais (enfin) regarder aho corasick pour tester, c'est 100% applicable.
 

Flaie a écrit :


en kotlin aussi cette année, pour pas changer.  
Mais je me tâte à tester un langage genre zig.
 



Uh, TIL que tu peux utiliser les lookahead assertions pour les match qui overlap [:implosion du tibia]
 
edit: avec aho corasick (et itertools) c'est assez cool, même si la conversion match -> digit est un peu trash https://topaz.github.io/paste/#XQAA [...] 3/8f3J2A==
 
Par contre j'ai perdu plein de temps parce que j'ai pas lu la doc (juste regardé l'exemple) donc je suis parti du principe que aho-corasick allait faire de l'overlapping par défaut dans la mesure où c'est le comportement standard de l'algo, mais en fait non:

Citation :

Returns an iterator of non-overlapping matches


:fou:

gfive haha, j'ai fait un truc dégueu! :D

 

Un indice chez vous :

 
Spoiler :

 

   int getLastDigitOrSpelledDigit(String line) {
        String enil = new StringBuilder(line).reverse().toString();
        Map<String, Integer> stnemecalper = new HashMap<>();
        replacements.forEach((k, v) -> stnemecalper.put(new StringBuilder(k).reverse().toString(), v));
        return getFirstDigitOrSpelledDigit(enil, stnemecalper);
    }

Jubijub

Flaie a écrit :


en kotlin aussi cette année, pour pas changer.  
Mais je me tâte à tester un langage genre zig.
 



 
toujours hyper concis et expressif :jap:

Jubijub en quoi ce serait deloyal ? le statut "edu" est conditionné au fait d'etre étudiant ou personnel enseignant, donc c'est pas tout le monde.
Si tu parles des incubateurs de startups (dont certains beneficient de ce genre de statut) alors oui, mais si tu vas par là c'est pareil pour les projets open source (pas mal de trucs sont gratos si t'as un projet connu)
XaTriX Tiens je me demandais en étant aux chiottes :o  
Est-ce que les prix proposés par Google (par exemple :o) à des société "Edu" n'apportent pas un avantage concurrentiel déloyal ?
A ça tu ajoutes GitHub gratos en Edu, etc etc. Personne n'a encore intenté des procès ? :o
Flaie

___alt a écrit :

Après quelques allers-retours, j'ai fini par commettre ça pour la AoC jour 1.
 

Spoiler :


https://i.imgur.com/Pw78vUe.png
 
La réutilisation entre les deux parties est artificielle : il y a beaucoup plus simple et efficace pour la partie 1 sans se préoccuper de la partie 2.



en kotlin aussi cette année, pour pas changer.  
Mais je me tâte à tester un langage genre zig.
 

koskoz

flo850 a écrit :


bon ben c'est pas top :/
3 mois après l'opéraiton , on est toujours au même niveau, moyennant la variabilité entre chaque prise de sang :/
donc on en fait quelque sunes ou on gagne des dixièmes et on se it que c'est bon, et puis en arrive une qui efface tout ces faux gains


 
Arf :/

Kenshineuh

Devil'sTiger a écrit :


Autant coder en francais a ce niveau  [:baragor]


 
C'est un mauvais replace c'est bon, faut s'en remettre.

Devil'sTiger

Flaie a écrit :


J'ai hâte d'en croiser ça va avoir de la gueule, ça changera des C4 air cross hein


 
Quelqu'un de chez Citroën sur le topic pour expliquer ce qu'il s'est passé peut etre :o
 

___alt a écrit :


 

Spoiler :

"founded"  [:mike hoksbiger:3]



 
Autant coder en francais a ce niveau  [:baragor]

Kenshineuh

___alt a écrit :

 
Spoiler :

"founded"  [:mike hoksbiger:3]


 


 [:roxelay]

 

et le foundedNumber2 aussi.  [:chrisbk]

 

J'ai corrigé. :o

gatsu35

Elmoricq a écrit :


 
Moi j'ai juste  
 

Spoiler :

remplacé les mots par leur première lettre, le digit correspondant, et la dernière lettre
 
exemple : oneight => o1e8t
 
https://github.com/scottinet/aoc202 [...] dex.ts#L24


 
edit : welp, je me rends compte que y a plus propre en reprenant pas le boulot de la partie 1, mais bon


putain c'est intelligent ça

___alt

Kenshineuh a écrit :


 
Je t'annonce que ma deuxième partie est beaucoup plus dégueu du coup. https://pastebin.com/9dMUpyGZ :D


 

Spoiler :

"founded"  [:mike hoksbiger:3]

flo850

ratibus a écrit :

Flo : c'est quoi les suites prévues ? Vous continuez à observer l'évolution pendant quelques mois ?


je sais pas trop en fait :/

___alt Après quelques allers-retours, j'ai fini par commettre ça pour la AoC jour 1.
 

Spoiler :


https://i.imgur.com/Pw78vUe.png  
 
La réutilisation entre les deux parties est artificielle : il y a beaucoup plus simple et efficace pour la partie 1 sans se préoccuper de la partie 2.

el_barbone

flo850 a écrit :


bon ben c'est pas top :/
3 mois après l'opéraiton , on est toujours au même niveau, moyennant la variabilité entre chaque prise de sang :/
donc on en fait quelque sunes ou on gagne des dixièmes et on se it que c'est bon, et puis en arrive une qui efface tout ces faux gains


 
:(
 

Spoiler :

[:zedlefou:3]

el_barbone
 
 
Ca fait deja 1 semaine que ca a été annoncé.L'equipe est impressionante (surtout Laurent Mazare) https://github.com/LaurentMazare/ocaml-torch[/quotemsg]
 
c'est much, 1 semaine de retard, c'est bien :D
 


 
ah ben ça aussi, ça fait deja quelques jours [:ddr555]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)