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

 

Sujet(s) à lire :
    - Who's who@Programmation
 

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  25979  25980  25981  ..  26143  26144  26145  26146  26147  26148
Auteur Sujet :

[blabla@hosto] Le topic des vieux

n°2470512
___alt
Posté le 29-05-2024 à 11:52:59  profilanswer
 

Reprise du message précédent :

Flaie a écrit :

Ce sont des députés qui reconnaissent la hamas comme un groupe de resistance ?
T'as un lien, j'ai pas vu cette histoire :o ?


 
Le fait que le Hamas soit effectivement un groupe de résistance et qu'il soit un groupe terroriste ne sont pas mutuellement exclusifs (les atermoiements de LFI sur la qualification terroriste des actes du Hamas est parfaitement navrante d'ailleurs).
Le Hamas n'est pas apparu spontanément par fluctuation du vide quantique, mais c'est une conséquence directe de l'occupation par Israël de territoires palestiniens.


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
mood
Publicité
Posté le 29-05-2024 à 11:52:59  profilanswer
 

n°2470513
___alt
Posté le 29-05-2024 à 11:54:45  profilanswer
 

Dion a écrit :

En effet une enquête est nécessaire pour comprendre comment un plombier a accès à des bombes utilisables, c'est un coup à se les faire chourave par le Hamas ou le Jihad islamique


 
Tu ne voudrais quand même pas jeter l'opprobre sur l'armée la plus morale du monde, qui est tellement morale qu'elle emploie le contre-espionnage israélien pour faire pression sur les juges de la CPI pour éviter des inculpations depuis 9ans alors que tout le monde sait que le conflit israélo-palestinien a commencé le 7 octobre avec l'attaque du Hamas [:dawa]


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2470514
Dion
Acceuil
Posté le 29-05-2024 à 12:07:59  profilanswer
 

___alt a écrit :


 
Tu ne voudrais quand même pas jeter l'opprobre sur l'armée la plus morale du monde, qui est tellement morale qu'elle emploie le contre-espionnage israélien pour faire pression sur les juges de la CPI pour éviter des inculpations depuis 9ans alors que tout le monde sait que le conflit israélo-palestinien a commencé le 7 octobre avec l'attaque du Hamas [:dawa]


Ah non je pense que presque tout le monde en Israël est d'accord pour dire que cela a commencé en 48 par des attaques arabes [:spamafote]
Le 7 octobre ca a juste permis à Bibi d'exprimer tout son potentiel pour le classement de chef d'état le plus incompétent du XXIème siècle, ce qui est particulièrement notable car il évolue, pour le moment, dans une démocratie.


---------------
When it comes to business/legal topics, just assume almost everyone commenting has no idea what they’re taking about and have no background in these subjects because that’s how it really is. Harkonnen 8-> Elmoricq 8====>
n°2470515
sligor
Posté le 29-05-2024 à 12:13:32  profilanswer
 

j'ai du mal avec dion je sais jamais s'il est premier ou second degré


---------------
qwerty-fr
n°2470516
Dion
Acceuil
Posté le 29-05-2024 à 12:18:12  profilanswer
 

merci !


---------------
When it comes to business/legal topics, just assume almost everyone commenting has no idea what they’re taking about and have no background in these subjects because that’s how it really is. Harkonnen 8-> Elmoricq 8====>
n°2470517
Flaie
No it's necessary
Posté le 29-05-2024 à 12:23:55  profilanswer
 

sligor a écrit :

j'ai du mal avec dion je sais jamais s'il est premier ou second degré


Les plaies c'est au 3ème degré


---------------
Always wear a camera!
n°2470518
el_barbone
too old for this shit ...
Posté le 29-05-2024 à 13:58:00  profilanswer
 

Les recruteurs [:sadnoir] ... ça faisait longtemps :fou:
 

Citation :


Hello Elby
 
I hope this message finds you well.  
 
I recently came across your profile on LinkedIn and was impressed by your extensive experience and skills in software engineering. Your background seems to align perfectly with an exciting opportunity we have at ****** for the position of ********
 
****** is a dynamic and innovative company committed to pushing the boundaries of technology and driving meaningful change. We are currently seeking talented individuals like yourself to join our team in advancing our mission.
 
 
If you're interested or have any questions, I would be more than happy to provide further information or facilitate the application process.
 
Have a lovely day!  


 
 

Spoiler :

donc là en fait, on touche le fond du bocal, il s'agit d'un recruteur propre à la boite (pas de RPO ou cabinet).
 
 
Et donc, d'une, dejà mon profil ne correspond pas au poste (qui a vraiment une techno bien spécifique) ... un classique.
et de deux  [:loom the gloom] il s'agit de la boite que je viens de quitter au mois de decembre ...


 
 

Spoiler :

j'ai eu la flemme de repondre ... un truc du genre  
 
If you've browsed my profile, I think you've seen which company I've just left.


---------------
En théorie, la théorie et la pratique sont identiques, en pratique, non.
n°2470519
depart
Posté le 29-05-2024 à 14:01:23  profilanswer
 

On peut parler dev ?
 
J'aimerai quelques conseils pour la problématique suivante : code basique en php/mysql, pour faire un genre d'application d'agenda en ligne.
Il y a des plages récurrentes (disponibilités / indisponibilités), et là dedans des rendez-vous.
forcément pour l'affichage (c'est une vue par semaine), ça fait des boucles dans les boucles, des tests dans tous les sens, et plus il y a de rdv plus les perfs s'effondrent.
J'ai optimisé les requêtes autant que je pouvais (index, union...) mais il y a aussi de l'incompressible. Par exemple sur les récurrences (plage de disponibilité de telle heure à telle heure tous les lundi par ex) ça dépasse la centaine de ms dès qu'il y en a 7 ou 8, donc  pour quelqu'un qui a une semaine chargée j'aboutis à un temps total de génération de page de l'ordre de 2 secondes.  
Certes le serveur sur lequel ça tourne est une bouse (atom n2800) mais toujours est-il que je réfléchis à essayer de faire de la mise en cache un peu plus intelligente.
Le problème est donc qu'à tout moment un rendez-vous peut être ajouté par un élément extérieur à cet affichage (d'autres personnes via une autre source viennent ajouter un rdv dans l'agenda de l'utilisateur).
 
Donc ma question c'est, dans quelle direction aller pour essayer de faire du cache ?
Une idée comme ça qui m'est venue, c'est un genre de flag "date derniere modif" qui serait mis à jour dès qu'une action touche à l'agenda et me baser là dessus pour stocker par exemple l'intégralité du html généré pour l'agenda d'une semaine donnée. Si la date de modif est plus récente que celle associée au cache hop je regénère.
En même temps j'ai l'impression de réinventer la roue.
Des idées ? C'est du PHP de papa/maman, 1 clic 1 page, génération de tout en html direct, très peu de JS...
 
Sur le même principe, sur chaque page j'ai un petit encart qui affiche (basé sur l'heure courante) le rendez-vous actuel s'il existe et les 2 suivants. Comme ça peut changer à chaque rafraichissement de page, ça veut dire qu'il faut que je refasse la requête (un peu costaud, avec un left join...) et comme il y a NOW() dedans, 0 mise en cache...

Message cité 1 fois
Message édité par depart le 29-05-2024 à 14:17:22
n°2470520
___alt
Posté le 29-05-2024 à 14:28:11  profilanswer
 

Puisqu'on parlait nostalgie et culture récemment, petit article du WaPo qui dissèque ça aux USA

 

https://www.washingtonpost.com/busi [...] ding-data/


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2470521
skeye
Posté le 29-05-2024 à 14:40:38  profilanswer
 

depart a écrit :

On peut parler dev ?
 
J'aimerai quelques conseils pour la problématique suivante : code basique en php/mysql, pour faire un genre d'application d'agenda en ligne.
Il y a des plages récurrentes (disponibilités / indisponibilités), et là dedans des rendez-vous.
forcément pour l'affichage (c'est une vue par semaine), ça fait des boucles dans les boucles, des tests dans tous les sens, et plus il y a de rdv plus les perfs s'effondrent.
J'ai optimisé les requêtes autant que je pouvais (index, union...) mais il y a aussi de l'incompressible. Par exemple sur les récurrences (plage de disponibilité de telle heure à telle heure tous les lundi par ex) ça dépasse la centaine de ms dès qu'il y en a 7 ou 8, donc  pour quelqu'un qui a une semaine chargée j'aboutis à un temps total de génération de page de l'ordre de 2 secondes.  
Certes le serveur sur lequel ça tourne est une bouse (atom n2800) mais toujours est-il que je réfléchis à essayer de faire de la mise en cache un peu plus intelligente.
Le problème est donc qu'à tout moment un rendez-vous peut être ajouté par un élément extérieur à cet affichage (d'autres personnes via une autre source viennent ajouter un rdv dans l'agenda de l'utilisateur).
 
Donc ma question c'est, dans quelle direction aller pour essayer de faire du cache ?
Une idée comme ça qui m'est venue, c'est un genre de flag "date derniere modif" qui serait mis à jour dès qu'une action touche à l'agenda et me baser là dessus pour stocker par exemple l'intégralité du html généré pour l'agenda d'une semaine donnée. Si la date de modif est plus récente que celle associée au cache hop je regénère.
En même temps j'ai l'impression de réinventer la roue.
Des idées ? C'est du PHP de papa/maman, 1 clic 1 page, génération de tout en html direct, très peu de JS...
 
Sur le même principe, sur chaque page j'ai un petit encart qui affiche (basé sur l'heure courante) le rendez-vous actuel s'il existe et les 2 suivants. Comme ça peut changer à chaque rafraichissement de page, ça veut dire qu'il faut que je refasse la requête (un peu costaud, avec un left join...) et comme il y a NOW() dedans, 0 mise en cache...


 
Tu as une manière fiable de détecter les modifs pour invalider ton cache? Perso je mettrais du cache sur le résultat des requêtes, pas sur le html généré. Une approche qui marche bien c'est d'avoir du cache avec des tags sur tes éléments, qui te permettent lors de modifs d'aller invalider tous les éléments impactés par les tags concernés par les modifs en cours.
Et quitte à pas réinventer la roue tu dois pouvoir utiliser directement symfony/cache : https://symfony.com/doc/current/components/cache.html


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 29-05-2024 à 14:40:38  profilanswer
 

n°2470522
depart
Posté le 29-05-2024 à 15:04:20  profilanswer
 

skeye a écrit :


 
Tu as une manière fiable de détecter les modifs pour invalider ton cache? Perso je mettrais du cache sur le résultat des requêtes, pas sur le html généré. Une approche qui marche bien c'est d'avoir du cache avec des tags sur tes éléments, qui te permettent lors de modifs d'aller invalider tous les éléments impactés par les tags concernés par les modifs en cours.
Et quitte à pas réinventer la roue tu dois pouvoir utiliser directement symfony/cache : https://symfony.com/doc/current/components/cache.html


 
Alors pour l'instant je n'ai rien en place, donc tout est possible.
Je pensais à 1 niveau de cache, genre dès qu'il y a la moindre modif de rendez-vous ça invalide tout l'agenda.
Ca pourrait s'affiner à la semaine, mais ça devient plus complexe, notamment à cause des récurrence (typiquement une zone d'indisponibilité c'est comme un rendez-vous mais qui aurait été créé il y a 2 ans, pour le lundi de 12 à 14h avec une récurrence "toutes les 1 semaine" ), donc une modif d'un rdv récurrent d'il y a 2 ans peut impacter la semaine courante.
Après la mise en cache à proprement parler, je ne sais pas trop la forme que ça pourrait prendre (memcached, mysql, fichier...), mais l'idée du html c'est de zapper le maximum de calculs et d'être au plus proche du résultat. Comme je le disais, pour le calcul des récurrences (est-ce que ce rdv d'il y a 2 ans impacte la semaine courante), j'utilise une librairie en php, et donc ce truc est lent (et pourtant c'est une version optimisée d'une autre lib que j'utilisais avant). Donc si je ne cache que les requêtes sql, je me coupe d'une partie d'optimisation.
J'ai aussi constaté que par exemple sur un agenda chargé, j'ai 1500ms d'écoulés pour faire tous mes calculs et appeler mon template d'affichage (smarty), et au final la page prend 2150ms. Donc la génération de tout le html (plein de boucles et de div dans tous les sens) ça prend visiblement beaucoup de temps (genre ça peut générer 250 div sans souci).
Bref si je pouvais court-circuiter le plus gros de tout ça ça me semble le plus efficace non ?

Message cité 1 fois
Message édité par depart le 29-05-2024 à 15:05:52
n°2470523
SekYo
Posté le 29-05-2024 à 15:17:41  profilanswer
 

Question à 100 balles et peut être que c'est une très mauvaise idée (jamais vraiment eu à implémenter un agenda), tu pourrais pas juste dénormaliser ton bousin ?
 
Genre si t'as un event qui se répète tous les lundi du mois, bin au moment de la création tu vas générer tous les lundis sur les N prochaines années un event "normal" qui correspond à ça et basta. Tu gardes un trace que ces events sont issues d'une récurrence (pour pouvoir les edit/supprimer tous d'un coup si besoin).  
Même pour les 5 prochaines années, 10 events recurrents par semaine, ça fait 2500 lignes dans ta BDD, autant dire rien du tout aujourd'hui si t'as pas 1M d'users.
 
Du coup au moment de l'affichage t'as plus que à gérer que des event "normaux" ce qui me parait beaucoup plus simple.
Note que ça part du principe que tu vas avoir beaucoup plus de lectures que d'écritures sur ton agenda, ce qui a priori me parait pas déconnant.

n°2470524
depart
Posté le 29-05-2024 à 15:39:18  profilanswer
 

SekYo a écrit :

Question à 100 balles et peut être que c'est une très mauvaise idée (jamais vraiment eu à implémenter un agenda), tu pourrais pas juste dénormaliser ton bousin ?
 
Genre si t'as un event qui se répète tous les lundi du mois, bin au moment de la création tu vas générer tous les lundis sur les N prochaines années un event "normal" qui correspond à ça et basta. Tu gardes un trace que ces events sont issues d'une récurrence (pour pouvoir les edit/supprimer tous d'un coup si besoin).  
Même pour les 5 prochaines années, 10 events recurrents par semaine, ça fait 2500 lignes dans ta BDD, autant dire rien du tout aujourd'hui si t'as pas 1M d'users.
 
Du coup au moment de l'affichage t'as plus que à gérer que des event "normaux" ce qui me parait beaucoup plus simple.
Note que ça part du principe que tu vas avoir beaucoup plus de lectures que d'écritures sur ton agenda, ce qui a priori me parait pas déconnant.


Ca me semble une usine à gaz à maintenir, genre régulièrement il faut voir s'il ne faut pas "prolonger" la récurrence en ajoutant des nouveaux évènements, tout en les maintenant liés à l'évènement original, éventuellement supprimer les anciens si on veut faire un peu de place...
Mais l'idée est intéressante. Bon après à première vue ça me permettrait de gagner 100-150ms sur 2 secondes... il y a encore de la marge.
 
Tu as raison sur le côté ratio lecture/écriture. Ca doit être de l'ordre de 100 ou 1000 lectures pour 1 écriture.

Message cité 2 fois
Message édité par depart le 29-05-2024 à 15:43:30
n°2470526
skeye
Posté le 29-05-2024 à 16:21:30  profilanswer
 

depart a écrit :


Je pensais à 1 niveau de cache, genre dès qu'il y a la moindre modif de rendez-vous ça invalide tout l'agenda.


ca parait brutal, mais difficile de savoir ce qui est pertinent pour ton besoin :D
 

depart a écrit :

si je ne cache que les requêtes sql, je me coupe d'une partie d'optimisation.


 
...mais ton cache peut avoir plusieurs usages, et changer une virgule dans ta mise en page ne shoote pas le cache pour rien.
 

depart a écrit :


J'ai aussi constaté que par exemple sur un agenda chargé, j'ai 1500ms d'écoulés pour faire tous mes calculs et appeler mon template d'affichage (smarty), et au final la page prend 2150ms. Donc la génération de tout le html (plein de boucles et de div dans tous les sens) ça prend visiblement beaucoup de temps (genre ça peut générer 250 div sans souci).
Bref si je pouvais court-circuiter le plus gros de tout ça ça me semble le plus efficace non ?


 
Pour le coup si tu fais du smarty (fichtre, ça existe encore?), dans mes souvenirs il y a des méthodes de cache prévues si mes souvenirs sont bons...mais je sais pas si tu peux invalider les choses finement avec ça.


Message édité par skeye le 29-05-2024 à 16:22:01

---------------
Can't buy what I want because it's free -
n°2470528
masklinn
í dag viðrar vel til loftárása
Posté le 29-05-2024 à 16:32:14  profilanswer
 

depart a écrit :


Ca me semble une usine à gaz à maintenir, genre régulièrement il faut voir s'il ne faut pas "prolonger" la récurrence en ajoutant des nouveaux évènements, tout en les maintenant liés à l'évènement original, éventuellement supprimer les anciens si on veut faire un peu de place...


IME c’est infiniment plus simple que des événements virtuels qui sont une merde noire, d’autant plus qu’un cas fréquent est de vouloir modifier certaines récurrences (genre t’as un 1:1 à 10h toutes les semaines mais une semaine c’est retardé d’1h pq ton boss a un empêchement ou quoi), ou toutes après une certaine date.  


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2470529
masklinn
í dag viðrar vel til loftárása
Posté le 29-05-2024 à 16:57:17  profilanswer
 

À noter aussi l’élément fun du planning / calendaring: tu peux pas bosser en UTC [:dawa]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2470530
flo850
moi je
Posté le 29-05-2024 à 17:07:36  profilanswer
 

masklinn a écrit :


IME c’est infiniment plus simple que des événements virtuels qui sont une merde noire, d’autant plus qu’un cas fréquent est de vouloir modifier certaines récurrences (genre t’as un 1:1 à 10h toutes les semaines mais une semaine c’est retardé d’1h pq ton boss a un empêchement ou quoi), ou toutes après une certaine date.  


this
 


---------------

n°2470531
gfive
Posté le 29-05-2024 à 17:21:59  profilanswer
 

D'accord avec Mask et Flo.
 
Tu appliques ton algo compliqué (parce que les cas de reccurence, genre "tous les premiers lundis du mois mais décalé au mardi si le lundi est ferié", c'est compliqué), une seule fois à la création au lieu de le faire à chaque consultation. Tu va gagner du temps.  
 
(et après rien ne t'oblige non plus à stocker chaque événement dans l'agenda de chaque personne : tu peux avoir des événements reccurents à part, et une table de jointure pour y ajouter des participants, plus une table d'occurences.
 
Les occurences sont calculées à l'avance sur une période donnée (genre t'as un trigger qui te calcule ça sur les X prochaines semaines/mois/années),  
 
Quand un participant veut afficher son agenda sur une semaine, tu fais un join entre ses événements reccurents et les occurences filtrées sur la période.
 


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2470532
SekYo
Posté le 29-05-2024 à 17:22:41  profilanswer
 

depart a écrit :

Ca me semble une usine à gaz à maintenir, genre régulièrement il faut voir s'il ne faut pas "prolonger" la récurrence en ajoutant des nouveaux évènements, tout en les maintenant liés à l'évènement original, éventuellement supprimer les anciens si on veut faire un peu de place...
Mais l'idée est intéressante. Bon après à première vue ça me permettrait de gagner 100-150ms sur 2 secondes... il y a encore de la marge.


La prolongation, c'est un cron a faire une fois tous les X semaines/mois (en fonction de jusque quand dans le future tu génères les events) et qui appelle le même bout de code que quand une nouvelle récurrence est ajoutée, modulo le début et la fin de jusqu’à quand tu génères tes events récurrents (mais donc t'as déjà normalement 80% du code en commun).
Le lien a l'event "original", tu dois de toutes manières l'avoir vu que tu veux pas forcer les users a delete les 2000+ events des 10 prochaines années s'ils suppriment une récurrence :D
 
Et comme dit masklinn, c'est a mon avis infiniment plus simple pour gérer les cas particuliers. Autre cas par exemple, l'event toutes les semaines que tu veux mettre en pause pendant 2 semaines de vacances ? Tu fais comment avec des event virtuels sans que ça devienne usine a gaz ? Avec la denormalisation, t'as juste a delete les 2 events crées pour cette semaine.
 
Note aussi que l'invalidation de cache, c'est notoirement un problème pas simple en informatique en général: tu sembles partir sur une invalidation totale a chaque écriture, mais pas sur que cette solution simple tienne dans la durée. Et si si ca se complexifie un peu, je pense que ca deviendra rapidement plus complexe que la denormalisation.
 
 
 
Après j'ai peut être mal compris ton problème de performance initial, parce que j'ai du mal a voir comment afficher sur une semaine même 100+ events pourraient prendre 1.5 sec. Si t'as que des events "standards" (et pas virtuels avec donc l'algo complexe qui va avec derrière) avec un jour, une date et heure de fin, générer 100+ divs bien places ça devrait pas prendre autant de temps.


Message édité par SekYo le 29-05-2024 à 17:25:34
n°2470533
depart
Posté le 29-05-2024 à 17:26:43  profilanswer
 

Pour les suppressions ponctuelles, j'ai prévu le cas, ça pose la question de ce qu'on veut faire (tout supprimer, supprimer que cette occurrence, supprimer celle là et toutes les suivantes), et en effet la suppression ponctuelle = modif de date de fin de l'ancienne occurrence + création d'une nouvelle. Mais ça marche.
 
Bon je viens de brute forcer le calcul des récurrences  ($data c'est ce qui vient des rdv récurrents en bdd) :


$startDate   = new \DateTime($data['date'], new \DateTimeZone($timezone));
       
switch ($data['recurrence']) {
 case 'DAILY':   $intervalType = 'day'; break;
 case 'WEEKLY':  $intervalType = 'week'; break;
 case 'MONTHLY': $intervalType = 'month'; break;
 case 'YEARLY':  $intervalType = 'year'; break;
}
while ($startDate < $dateAgendaDebut) {
 $startDate->modify('+' . $data['intervalle'] . $intervalType);
}
// PHP-RRULE
$rrule = new RRule([
 'FREQ' => $data['recurrence'],
 'INTERVAL' => $data['intervalle'],
 'DTSTART' => $startDate,
 'UNTIL' => $until
]);


Comme ça ça génère une date de début au plus proche de la plage de l'agenda à afficher.
Vous apprécierez le mélange franglais, et encore je vous épargne le bordel des variables avec des underscores, le camelCase, ...
 
En tout cas ça a bien réduit le temps de calcul. En fait j'ai 2 endroits où ça utilise ce système, donc c'est sur 2x 150ms que je peux gratter. Edit : en pratique la 2e utilisation était encore pire que la premère, donc il y a plus à gratter encore.


Message édité par depart le 29-05-2024 à 17:41:31
n°2470534
depart
Posté le 29-05-2024 à 17:40:58  profilanswer
 

Merci pour les autres réponses.
Mes récurrences sont simples : l'utilisateur créé une pause déjeuner tous les lundis par exemple, donc le jour où il s'en est occupé, imaginons le 1er janvier 2020, il a mis lundi de 12 à 14 c'est indispo, récurrence tous les 1 semaine (ou 7 jours s'il préfère) et basta.
Donc pour afficher cette plage la 1ère semaine de mai 2024, il faut que le calculateur PHP-RRULE calcule toutes les récurrences existantes depuis le 1er janvier 2020, donc le 7 janvier 2020, le 14 janvier 2020... donc plus le temps passe, plus ce truc prend du temps.
 
Pour l'idée de crééer autant d'évents physiquements en bdd, ok, pourquoi pas, je garde ça dans un coin de ma tête. Dans l'immédiat, mon petit hack a déjà bien calmé le problème, faut que je m'attaque à la suite, comment je passe de 300-350ms (vs quasi 1 seconde au départ, en fait ça a carrément mieux marché que prévu mon hack) pour tout calculer, à 800-900 ms en fin de page (après avoir généré le html.

n°2470535
LeRiton
Posté le 29-05-2024 à 17:45:19  profilanswer
 

depart a écrit :

Merci pour les autres réponses.
Mes récurrences sont simples : l'utilisateur créé une pause déjeuner tous les lundis par exemple, donc le jour où il s'en est occupé, imaginons le 1er janvier 2020, il a mis lundi de 12 à 14 c'est indispo, récurrence tous les 1 semaine (ou 7 jours s'il préfère) et basta.
Donc pour afficher cette plage la 1ère semaine de mai 2024, il faut que le calculateur PHP-RRULE calcule toutes les récurrences existantes depuis le 1er janvier 2020, donc le 7 janvier 2020, le 14 janvier 2020... donc plus le temps passe, plus ce truc prend du temps.
 
Pour l'idée de crééer autant d'évents physiquements en bdd, ok, pourquoi pas, je garde ça dans un coin de ma tête. Dans l'immédiat, mon petit hack a déjà bien calmé le problème, faut que je m'attaque à la suite, comment je passe de 300-350ms (vs quasi 1 seconde au départ, en fait ça a carrément mieux marché que prévu mon hack) pour tout calculer, à 800-900 ms en fin de page (après avoir généré le html.


J'ai tout de suite pensé à https://zachholman.com/talk/utc-is- [...] ing-events
Bon courage :o

n°2470536
depart
Posté le 29-05-2024 à 18:12:58  profilanswer
 


lol c'est tout à fait ça... enfin quand j'ai codé le truc des récurrences il y a une dizaine d'années.
Il y a un truc relou en développement : programmer avec les dates. Mais quand tu ajoutes la récurrence, ça n'est plus juste pénible, ça devient un cauchemar.
D'où le fait que j'avais rapidement délégué le gros du truc à php-rrule, qui utilise le format évoqué dans l'article ("daily","weekly"...)
Ça marche plutôt très bien, sauf en terme de performances quand la date courante s'éloigne de la date de création.
 
Bon sinon j'ai fait un petit tour de mon code de template html (oui smarty ça existe encore, surtout parce que c'est une vieille appli codée au départ en 2005). Il y avait énormément de "vide" généré dans le template, mais tout compacter (il y a un tag {strip} pour ça, n'a pas changé grand chose. Certes le html passe de genre 20 000 lignes à 500, mais en perfs pures ça ne change rien.

Message cité 2 fois
Message édité par depart le 29-05-2024 à 18:13:30
n°2470537
masklinn
í dag viðrar vel til loftárása
Posté le 29-05-2024 à 18:18:32  profilanswer
 

depart a écrit :


Il y avait énormément de "vide" généré dans le template, mais tout compacter (il y a un tag {strip} pour ça, n'a pas changé grand chose. Certes le html passe de genre 20 000 lignes à 500, mais en perfs pures ça ne change rien.


Bah non, c’est encore plus de travail, c’est pas envoyer le html qui coûte généralement, et il est peu probable qu’un éventuel compresseur gzip soit plus lent que le php.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2470538
depart
Posté le 29-05-2024 à 18:21:39  profilanswer
 

masklinn a écrit :


Bah non, c’est encore plus de travail, c’est pas envoyer le html qui coûte généralement, et il est peu probable qu’un éventuel compresseur gzip soit plus lent que le php.


Ce que je voulais dire c'est qu'on pourrait imaginer que manipuler un objet "template" de 20 000 lignes ça pouvait ralentir le binz, mais même en compactant ça n'a rien changé.
Sachant qu'on peut en effet imaginer que l'usage de {strip} rajouter du travail à php.
Après c'est quand même plus propre: )

n°2470539
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 29-05-2024 à 18:40:48  profilanswer
 

https://www.service-public.fr/parti [...] roits/F987
 
Il y a des experts en indemnités de licenciement ici ?  
 
Visiblement le montant de l'indemnité se calcule assez simplement en fonction du salaire brut lors de la dernière année, et après ya pas mal d'exonérations (impôts, csg) mais du coup j'ai du mal à savoir ce qu'on touche à la fin  :??: J'imagine que c'est proche du montant brut du coup.


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°2470540
masklinn
í dag viðrar vel til loftárása
Posté le 29-05-2024 à 18:51:45  profilanswer
 

depart a écrit :


Ce que je voulais dire c'est qu'on pourrait imaginer que manipuler un objet "template" de 20 000 lignes ça pouvait ralentir le binz


Si tu fais que le balader c’est un gros buffer derrière un pointeur, la taille du buffer joue pas vraiment si tu rajoutes pas du post-processing supplémentaire.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2470541
ratibus
Posté le 29-05-2024 à 18:56:34  profilanswer
 

depart a écrit :


lol c'est tout à fait ça... enfin quand j'ai codé le truc des récurrences il y a une dizaine d'années.
Il y a un truc relou en développement : programmer avec les dates. Mais quand tu ajoutes la récurrence, ça n'est plus juste pénible, ça devient un cauchemar.
D'où le fait que j'avais rapidement délégué le gros du truc à php-rrule, qui utilise le format évoqué dans l'article ("daily","weekly"...)
Ça marche plutôt très bien, sauf en terme de performances quand la date courante s'éloigne de la date de création.
 
Bon sinon j'ai fait un petit tour de mon code de template html (oui smarty ça existe encore, surtout parce que c'est une vieille appli codée au départ en 2005). Il y avait énormément de "vide" généré dans le template, mais tout compacter (il y a un tag {strip} pour ça, n'a pas changé grand chose. Certes le html passe de genre 20 000 lignes à 500, mais en perfs pures ça ne change rien.


Pourquoi tu ne décales pas la date de création à une date liée à la période que tu affiches (idem pour la date de fin) ?
Visiblement la lib php-rrule se vante d'être rapide. Donc je penche pour une implémentation de ta part perfectible :o
T'as passé un coup de profiler type Blackfire sur ton code ?


Message édité par ratibus le 29-05-2024 à 18:58:22
n°2470544
Ydalb
In Crêpes n' Cidre I Trust!
Posté le 29-05-2024 à 19:34:49  profilanswer
 

Je comprends pas trop ta problématique, si tu utilises le format la RFC  RRULE avec des sets, ça devrait rouler tout seul ?
 
https://github.com/rlanvin/php-rrule/wiki/RSet


---------------
:o
n°2470545
verdoux
And I'm still waiting
Posté le 29-05-2024 à 20:30:20  profilanswer
 

Y a des vieux pas trop rouillés qui se sont mis au Rust ?
 
Ca m'a l'air un peu compliqué et le curseur est pas trop évident à mettre entre se hazarder dans les recoins un peu sombres (et même pas forcément stables) ou bien faire confiance aux composants dispos au risque de choisir des trucs pas forcément adaptés à son besoin.

n°2470546
Dion
Acceuil
Posté le 29-05-2024 à 20:34:33  profilanswer
 

Citation :

May 15, 2024
Cloud Source Repositories is scheduled for end of sale on June 17, 2024. Starting June 17, 2024, if your organization hasn't previously used Cloud Source Repositories, you cannot enable the API or use Cloud Source Repositories. New projects not connected to an organization can't enable the Cloud Source Repositories API after June 17, 2024. Customers who have already enabled the API prior to this date will not be affected and can continue to use Cloud Source Repositories.


Citation :

replacing it with secure source manager.


Citation :

Secure Source Manager is generally available (GA) by invitation only. To use Secure Source Manager, contact your Google Account team.


Ya pas à dire, on a beau le savoir depuis des années et recevoir fréquemment des rappels, on ne peux qu'être admiratif devant ce savoir faire unique au monde  [:implosion du tibia]

Message cité 3 fois
Message édité par Dion le 29-05-2024 à 20:35:01

---------------
When it comes to business/legal topics, just assume almost everyone commenting has no idea what they’re taking about and have no background in these subjects because that’s how it really is. Harkonnen 8-> Elmoricq 8====>
n°2470547
masklinn
í dag viðrar vel til loftárása
Posté le 29-05-2024 à 20:49:11  profilanswer
 

verdoux a écrit :

Y a des vieux pas trop rouillés qui se sont mis au Rust ?


Oui.

verdoux a écrit :

Ca m'a l'air un peu compliqué et le curseur est pas trop évident à mettre entre se hazarder dans les recoins un peu sombres (et même pas forcément stables) ou bien faire confiance aux composants dispos au risque de choisir des trucs pas forcément adaptés à son besoin.


 [:lectrodz]


Message édité par masklinn le 29-05-2024 à 20:49:45

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2470548
gfive
Posté le 29-05-2024 à 21:03:18  profilanswer
 

Bon ben Paul a eu son troisième cycle de conservatoire avec mention très bien a l'unanimité du jury, plus les félicitations.

 

Ça consistait à monter entièrement un spectacle avec sa promo (14 ados de 15 à 17 ans).

 

Ça c'est fait, demain c'est parcoursup.


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2470549
nraynaud
lol
Posté le 29-05-2024 à 21:12:35  profilanswer
 

Dion a écrit :

Citation :

May 15, 2024
Cloud Source Repositories is scheduled for end of sale on June 17, 2024. Starting June 17, 2024, if your organization hasn't previously used Cloud Source Repositories, you cannot enable the API or use Cloud Source Repositories. New projects not connected to an organization can't enable the Cloud Source Repositories API after June 17, 2024. Customers who have already enabled the API prior to this date will not be affected and can continue to use Cloud Source Repositories.


Citation :

replacing it with secure source manager.


Citation :

Secure Source Manager is generally available (GA) by invitation only. To use Secure Source Manager, contact your Google Account team.


Ya pas à dire, on a beau le savoir depuis des années et recevoir fréquemment des rappels, on ne peux qu'être admiratif devant ce savoir faire unique au monde  [:implosion du tibia]


Ça permet à tout le monde de de-culpabiliser un peu


---------------
trainoo.com, c'est fini
n°2470550
Jubijub
Parce que je le VD bien
Posté le 29-05-2024 à 21:15:34  profilanswer
 

verdoux a écrit :

Y a des vieux pas trop rouillés qui se sont mis au Rust ?
 
Ca m'a l'air un peu compliqué et le curseur est pas trop évident à mettre entre se hazarder dans les recoins un peu sombres (et même pas forcément stables) ou bien faire confiance aux composants dispos au risque de choisir des trucs pas forcément adaptés à son besoin.


 
J’ai essayé.
 
C’est très intéressant pour moi qui ait jamais fait de langage bas niveau, ça oblige à se poser des questions que je me pose pas normalement en Python.
Le langage est bien foutu, par contre il est psychorigide (c’est aussi ce qui fait sa force). Le dicton “si ça compile c’est que ça marche” est très vrai.
 
Pourquoi tu veux te mettre à Rust ?


---------------
Jubi Photos : Flickr - 500px
n°2470553
beel1
Posté le 29-05-2024 à 21:57:21  profilanswer
 

gfive a écrit :

Bon ben Paul a eu son troisième cycle de conservatoire avec mention très bien a l'unanimité du jury, plus les félicitations.
 
Ça consistait à monter entièrement un spectacle avec sa promo (14 ados de 15 à 17 ans).
 
Ça c'est fait, demain c'est parcoursup.


[:implosion du tibia]
 
nous le nôtre il nous a fait des cœurs avec les doigts sur la scène aujourd'hui [:atsuko]
bon ça l'a tellement occupé qu'il a quasiment fait que ça [:fing fang fung]

n°2470554
ratibus
Posté le 29-05-2024 à 22:02:44  profilanswer
 

Dion a écrit :

Citation :

May 15, 2024
Cloud Source Repositories is scheduled for end of sale on June 17, 2024. Starting June 17, 2024, if your organization hasn't previously used Cloud Source Repositories, you cannot enable the API or use Cloud Source Repositories. New projects not connected to an organization can't enable the Cloud Source Repositories API after June 17, 2024. Customers who have already enabled the API prior to this date will not be affected and can continue to use Cloud Source Repositories.


Citation :

replacing it with secure source manager.


Citation :

Secure Source Manager is generally available (GA) by invitation only. To use Secure Source Manager, contact your Google Account team.


Ya pas à dire, on a beau le savoir depuis des années et recevoir fréquemment des rappels, on ne peux qu'être admiratif devant ce savoir faire unique au monde  [:implosion du tibia]


Je ne connais pas ces technologies, c'est grave ?
 
Edit : effectivement j'ai jamais regardé Google Cloud :d

gfive a écrit :

Bon ben Paul a eu son troisième cycle de conservatoire avec mention très bien a l'unanimité du jury, plus les félicitations.
 
Ça consistait à monter entièrement un spectacle avec sa promo (14 ados de 15 à 17 ans).
 
Ça c'est fait, demain c'est parcoursup.


Félicitations  :jap:


Message édité par ratibus le 29-05-2024 à 22:03:59
n°2470555
DDT
Few understand
Posté le 29-05-2024 à 22:07:26  profilanswer
 

verdoux a écrit :

Y a des vieux pas trop rouillés qui se sont mis au Rust ?

 

Ca m'a l'air un peu compliqué et le curseur est pas trop évident à mettre entre se hazarder dans les recoins un peu sombres (et même pas forcément stables) ou bien faire confiance aux composants dispos au risque de choisir des trucs pas forcément adaptés à son besoin.


Dans les trucs qui m'intéressent (web et data processing) l'écosystème me semble assez robuste bien que parfois un peu immature.

 

J'étais dans une équipe avec des gros jobs distribués où Spark est vraiment dur à battre, mais là les pipelines sont plus raisonnables et j'espère avoir l'occasion de récrire certains composants, mes juniors sont motivés en tout cas. :D


Message édité par DDT le 29-05-2024 à 22:07:50

---------------
click clack clunka thunk
n°2470557
Jubijub
Parce que je le VD bien
Posté le 29-05-2024 à 22:29:46  profilanswer
 

Dion a écrit :

Citation :

May 15, 2024
Cloud Source Repositories is scheduled for end of sale on June 17, 2024. Starting June 17, 2024, if your organization hasn't previously used Cloud Source Repositories, you cannot enable the API or use Cloud Source Repositories. New projects not connected to an organization can't enable the Cloud Source Repositories API after June 17, 2024. Customers who have already enabled the API prior to this date will not be affected and can continue to use Cloud Source Repositories.


Citation :

replacing it with secure source manager.


Citation :

Secure Source Manager is generally available (GA) by invitation only. To use Secure Source Manager, contact your Google Account team.


Ya pas à dire, on a beau le savoir depuis des années et recevoir fréquemment des rappels, on ne peux qu'être admiratif devant ce savoir faire unique au monde  [:implosion du tibia]


 
Alors si je peux te rassurer, c’est exactement pareil en interne. A tel point qu’il y a un meme interne qui représente une autoroute qui se sépare avec d’un côté deprecated, et de l’autre “not ready yet” qu’on sort chaque fois que ça arrive.
 
J’ai vécu ça de toute les manières : en tant que client B2B, B2C (perso), en tant que consultant technique sales qui se fait poudrer par un client que ça amuse moyen, et même côté Eng quand ça déprécie des trucs qui marchent pour les remplacer par des trucs pas secs.
 
Vous reprendrez bien un peu de colle avec votre pizza ?


---------------
Jubi Photos : Flickr - 500px
n°2470559
Hermes le ​Messager
Breton Quiétiste
Posté le 30-05-2024 à 07:01:05  profilanswer
 

gfive a écrit :

Bon ben Paul a eu son troisième cycle de conservatoire avec mention très bien a l'unanimité du jury, plus les félicitations.
 
Ça consistait à monter entièrement un spectacle avec sa promo (14 ados de 15 à 17 ans).
 
Ça c'est fait, demain c'est parcoursup.


 
Feloches.
 
Il est dans un conservatoire national de région ? Il va tenter le sup de Paris et/ou de Lyon ?

Message cité 1 fois
Message édité par Hermes le Messager le 30-05-2024 à 08:01:55

---------------
Expert en expertises
n°2470560
rufo
Pas me confondre avec Lycos!
Posté le 30-05-2024 à 07:58:11  profilanswer
 

gfive a écrit :

Bon ben Paul a eu son troisième cycle de conservatoire avec mention très bien a l'unanimité du jury, plus les félicitations.
 
Ça consistait à monter entièrement un spectacle avec sa promo (14 ados de 15 à 17 ans).
 
Ça c'est fait, demain c'est parcoursup.


Bravo. :jap:
 
Parcoursup où comment remplacer un outil (APB) qui avait le bon algo mais qui n'a pas été expliqué aux parents par un truc moins bon mais qu'il comprennent : https://www.youtube.com/watch?v=dO1pLi2Dedw


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  25979  25980  25981  ..  26143  26144  26145  26146  26147  26148

Aller à :
Ajouter une réponse
 

Sujets relatifs
Plus de sujets relatifs à : [blabla@hosto] Le topic des vieux


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR