Skip to content

Commit

Permalink
fix: broken links and images and tutorial previous button (#1117)
Browse files Browse the repository at this point in the history
  • Loading branch information
seinhorn committed Apr 25, 2024
1 parent 9e3e8ab commit 52525ed
Show file tree
Hide file tree
Showing 25 changed files with 35 additions and 33 deletions.
Expand Up @@ -267,6 +267,6 @@ Test
```

Varnish will recognize the use of an ESI and will therefore cache two objects, one for the full page with the cache data of the page and one for ESI with other cache data. You can then uncache the ESI only and Varnish will update a single object (only one request to the server); the user has all the pages updated just the same.
For further information, I suggest you look at a previous [article]({BASE_URL}/symfony-2-cache-http-esi/), which explains an implementation for Symfony.
For further information, I suggest you look at a previous [article]({BASE_URL}/fr/symfony-2-cache-http-esi/), which explains an implementation for Symfony.
You can also find a presentation about HTTP caches and Symfony [ici](https://docs.google.com/presentation/d/1RVr_JfpFKVRXdg4hy6war3OfiSJtdeYzFsdxhn2t0NY/edit?usp=sharing).
.
2 changes: 1 addition & 1 deletion _articles/en/2017-10-12-react-ssr.md
Expand Up @@ -19,7 +19,7 @@ keywords:
- webpack
---

Five weeks ago, our friend [Vincent Composieux]({BASE_URL}/authors/vcomposieux/) wrote an [awesome article]({BASE_URL}/fr/migrate-a-react-client-side-application-to-server-side-with-nextjs/) about migrating a React client-side application to server-side with [Next.JS](https://zeit.co/blog/next4). But, sometimes you want to do it the plain vanilla way in order to take control over your workflow. Therefore, this article's purpose is to climb up the steps of developing an SSR React app from scratch.
Five weeks ago, our friend [Vincent Composieux]({BASE_URL}/en/authors/vcomposieux/) wrote an [awesome article]({BASE_URL}/en/migrate-a-react-client-side-application-to-server-side-with-nextjs/) about migrating a React client-side application to server-side with [Next.JS](https://zeit.co/blog/next4). But, sometimes you want to do it the plain vanilla way in order to take control over your workflow. Therefore, this article's purpose is to climb up the steps of developing an SSR React app from scratch.

## A Reminder of SSR's benefits

Expand Down
2 changes: 1 addition & 1 deletion _articles/en/2020-01-29-react-i18next.md
Expand Up @@ -285,7 +285,7 @@ Note that the path specified in `loadPath` is in the `public` folder at the root

#### Loading remote files

We have presented [in a previous article]({BASE_URL}/en/manage-translations-with-localise.biz/) that we use Localise.biz service and save translation files on a server in the cloud. Hence, we need to recover the files hosted on a remote server:
We have presented [in a previous article]({BASE_URL}/en/manage-translations-with-localise-biz/) that we use Localise.biz service and save translation files on a server in the cloud. Hence, we need to recover the files hosted on a remote server:

```js
import i18n from 'i18next';
Expand Down
2 changes: 1 addition & 1 deletion _articles/en/2020-05-13-php-serverless-part-2.md
Expand Up @@ -16,7 +16,7 @@ keywords:
- lambda
---

This article is a follow-up to this [first part]({BASE_URL}/en/en/php-serverless-part-1/) which introduces serverless computing. In this second part, we will first see what the *layers* are in AWS Lambda and how to implement them. Then we will see how to use the Bref framework.
This article is a follow-up to this [first part]({BASE_URL}/en/php-serverless-part-1/) which introduces serverless computing. In this second part, we will first see what the *layers* are in AWS Lambda and how to implement them. Then we will see how to use the Bref framework.

## AWS Lambda

Expand Down
2 changes: 1 addition & 1 deletion _articles/fr/2015-05-11-microdata-ou-microdonnees.md
Expand Up @@ -130,7 +130,7 @@ dans les locaux de

### Autre exemple

Voici un exemple d’offre d’emploi issu du site [eleven-labs.com](http://www.eleven-labs.com) :
Voici un exemple d’offre d’emploi issu du site [eleven-labs.com](https://eleven-labs.com/) :

Version HTML

Expand Down
2 changes: 1 addition & 1 deletion _articles/fr/2015-05-29-ncrafts-2015.md
Expand Up @@ -70,6 +70,6 @@ J'ai aimé la façon qu'il a eu de parler du besoin derrière les microservices,

## Bilan

Ce que je préfère dans les conférences, ce sont les rencontres que l'on fait via des discussions avec des personnes que l'on ne connait pas, ou que via internet. J'ai ainsi pu discuté avec certains *speakers* tels que Sandro Mancuso, Mathias Verraes, Paul Stack et Christian Horsdal notamment. Sandro m'a donné quelques conseils pour apporter du changement chez des clients réticents, j'ai discuté legos (nos enfants ont le même âge) et [CQRS]({BASE_URL}/cqrs-pattern/) avec Mathias, comment était perçu l'évolution de l'écosystème PHP du point de vue d'un ancien dev .Net devenu Ops, et le fait de sensibiliser les devs à la prise de recul.
Ce que je préfère dans les conférences, ce sont les rencontres que l'on fait via des discussions avec des personnes que l'on ne connait pas, ou que via internet. J'ai ainsi pu discuté avec certains *speakers* tels que Sandro Mancuso, Mathias Verraes, Paul Stack et Christian Horsdal notamment. Sandro m'a donné quelques conseils pour apporter du changement chez des clients réticents, j'ai discuté legos (nos enfants ont le même âge) et [CQRS]({BASE_URL}/fr/cqrs-pattern/) avec Mathias, comment était perçu l'évolution de l'écosystème PHP du point de vue d'un ancien dev .Net devenu Ops, et le fait de sensibiliser les devs à la prise de recul.

Je n'ai croisé que 2/3 devs PHP, mais ça n'a pas vraiment eu d'importance, les talks n'étaient pas vraiment orientés outils et technique, mais plutôt orientés sur des pratiques qui méritent peut être plus d'attention, en tout cas dans la communauté PHP.
2 changes: 0 additions & 2 deletions _articles/fr/2015-12-09-symfonycon-2015-birthday-party.md
Expand Up @@ -24,8 +24,6 @@ keywords:
- routing
---

![](http://pariscon2015.symfony.com/bundles/sensiosymfonylive/images/pariscon2015/assets/header.jpg)

Pour la troisième édition de la SymfonyCon (conférence internationale sur Symfony), SensioLabs a fait les choses en grand aux Folies Bergère à Paris, la ville natale de Symfony. Les conférences ont eu lieu pendant deux jours en deux tracks.

------------------------------------------------------------------------
Expand Down
8 changes: 4 additions & 4 deletions _articles/fr/2015-12-22-dotjs-2015-on-y-etait-encore.md
Expand Up @@ -35,7 +35,7 @@ Alors oui, mais la dotJS c’est quoi déjà ?

Il s’agit ni plus ni moins de la plus grande conférence Javascript d’Europe. Le but étant de se rassembler afin de présenter l’avenir du Javascript, de voir l’avancement de certaines technologies ou fonctionnalités, et de troller tous ensemble.

dotJS fait partie des dotConferences, dont mon collègue astronaute Martin Cadoux nous explique très clairement le concept dans [son article sur dotCSS]({BASE_URL}/les-dotcss-2015-cetait-bien/) :
dotJS fait partie des dotConferences, dont mon collègue astronaute Martin Cadoux nous explique très clairement le concept dans [son article sur dotCSS]({BASE_URL}/fr/les-dotcss-2015-cetait-bien/) :

> "dotConference une série de conférences qui vise à proposer des présentations de haute volée en lien avec des technologies ou des sujets particuliers. On en recense six aujourd’hui, dont les dotJS qui se sont déroulés lundi dernier, mais aussi les dotGo, et bientôt les dotScale. Ces rassemblements ont lieu exclusivement à Paris, mais attirent néanmoins une audience venue en large partie de l’étranger."
Expand Down Expand Up @@ -90,7 +90,7 @@ Constat sur HTTP/2 aujourd’hui: Ça à l’air cool, mais on ne s’en sert pa

**LUNCH BREAK !**

![](https://c2.staticflickr.com/6/5725/23359640130_8bff265e02_h.jpg) ![](http://i.giphy.com/3GCLlNvCg61ji.gif)
![](https://c2.staticflickr.com/6/5725/23359640130_8bff265e02_h.jpg) ![](https://i.giphy.com/3GCLlNvCg61ji.gif)

## Lightning talks

Expand Down Expand Up @@ -138,7 +138,7 @@ Après avoir travaillé sur la compatibilité sur chaque navigateur (y compris I
En bonus: Eric postule également au poste de maire de San Francisco...

![](http://i.giphy.com/KTHFxuEtrVoGI.gif)
![](https://i.giphy.com/KTHFxuEtrVoGI.gif)

## Jade > Pug par [*Forbes Lindesay*](https://twitter.com/forbeslindesay)

Expand Down Expand Up @@ -181,7 +181,7 @@ Pas de réelle révolution cependant, le but de ce rassemblement semblait plus d
Petite frustration tout de même sur le fait de ne pas pouvoir poser de questions directement en fin de présentation, mais cela est sûrement dû à un souci de logistique.
L’objectif de ce post étant de survoler le large panel de sujets abordés, je vous laisse approfondir les plus intéressants.

![](http://i.giphy.com/kRWFIgO75okHm.gif)
![](https://i.giphy.com/kRWFIgO75okHm.gif)

Les photos de l’événement sont disponibles sur le [compte Flickr](https://www.flickr.com/photos/97226415@N08/sets/72157661549425069/)

Expand Down
Expand Up @@ -19,7 +19,7 @@ Connaissez-vous le "git workflow" ? Si ce n'est pas le cas, je vous invite à li

Je vais mettre ci-dessous l'image pour bien l'avoir en tête :

![Git workflow](http://nvie.com/img/git-model@2x.png)
![Git workflow](https://nvie.com/img/git-model@2x.png)

> "Git workflow. source: http://nvie.com/posts/a-successful-git-branching-model"
Expand Down
Expand Up @@ -272,5 +272,5 @@ Test

Varnish va reconnaître l'utilisation d'un ESI et va donc cacher deux objets, l'un pour la page complète avec les informations de cache de la page et l'un pour ESI avec d'autres informations de cache. Vous pouvez alors décacher seulement l'ESI et varnish va mettre à jour un seul objet (une seule demande au serveur), l'utilisateur a tout de même toutes les pages mises à jour.

Pour plus d'informations, je vous invite à aller voir un ancien [article]({BASE_URL}/symfony-2-cache-http-esi/) , qui explique une implémentation pour Symfony.
Pour plus d'informations, je vous invite à aller voir un ancien [article]({BASE_URL}/fr/symfony-2-cache-http-esi/) , qui explique une implémentation pour Symfony.
Vous pouvez aussi retrouver une présentation sur le cache HTTP et Symfony [ici](https://docs.google.com/presentation/d/1RVr_JfpFKVRXdg4hy6war3OfiSJtdeYzFsdxhn2t0NY/edit?usp=sharing).
2 changes: 1 addition & 1 deletion _articles/fr/2016-11-28-tutoriel-ci-detector.md
Expand Up @@ -30,4 +30,4 @@ Nous allons voir ensemble un cas pratique d'utilisation afin de mieux comprendre
Et bien sûr, si vous avez des remarques et/ou questions, n'hésitez pas à écrire un commentaire !
Je me ferai un plaisir d'échanger avec vous.

<iframe width="820" height="315" src="http://www.youtube.com/embed/lMETVJSr9R4" frameborder="0" allowfullscreen></iframe>
<iframe width="820" height="315" src="https://www.youtube.com/embed/lMETVJSr9R4" frameborder="0" allowfullscreen></iframe>
2 changes: 1 addition & 1 deletion _articles/fr/2017-12-22-optimiser-son-application-react.md
Expand Up @@ -374,4 +374,4 @@ React-Developer-Tools, disponible pour [Chrome](https://chrome.google.com/websto
## Conclusion

L'ensemble des techniques présentées dans cet article sont indispensables à la réalisation d'une application React rapide et réactive.
[Redux](https://redux.js.org/) ou encore [reselect](https://github.com/reactjs/reselect) sont aussi des pistes que vous pouvez explorer afin d'améliorer encore cette optimisation. Mais n'oubliez pas que nous n'avons optimisé que la partie "update" de votre application, c'est-à-dire uniquement lorsque l'application est déjà chargée. Le premier chargement est tout aussi important si ce n'est plus, et la solution à ce problème est le SSR (Server Side Rendering). Je vous redirige donc vers l'excellent article de [Vincent](/authors/vcomposieux/) sur ce sujet : ["Migrer une application React Client-Side en Server-Side avec NextJS"]({BASE_URL}/fr/migrer-une-application-react-client-side-en-server-side-avec-nextjs/).
[Redux](https://redux.js.org/) ou encore [reselect](https://github.com/reactjs/reselect) sont aussi des pistes que vous pouvez explorer afin d'améliorer encore cette optimisation. Mais n'oubliez pas que nous n'avons optimisé que la partie "update" de votre application, c'est-à-dire uniquement lorsque l'application est déjà chargée. Le premier chargement est tout aussi important si ce n'est plus, et la solution à ce problème est le SSR (Server Side Rendering). Je vous redirige donc vers l'excellent article de [Vincent]({BASE_URL}/fr/authors/vcomposieux/) sur ce sujet : ["Migrer une application React Client-Side en Server-Side avec NextJS"]({BASE_URL}/fr/migrer-une-application-react-client-side-en-server-side-avec-nextjs/).
2 changes: 1 addition & 1 deletion _articles/fr/2018-01-17-blog-bandeau-cookie.md
Expand Up @@ -313,6 +313,6 @@ function onGaCancelButtonClick(event) {

Si vous avez bien suivi cet article et si vous l'avez adapté aux besoins de votre site, vous avez maintenant un bandeau cookie parfaitement fonctionnel et respectant les recommandations de la CNIL !
Évidemment un site comme celui-ci (un simple blog) est un cas simple où il y a peu voire pas de cookies posés du tout. En réalité, votre site est déjà quasiment prêt pour la future mise en application de la RGPD à quelques ajustements près.
Si vous ne savez pas ce qu'est la RGPD, c'est en gros une évolution de la directive européenne dont nous avons parlé précédemment vers une version XXL. Pour de plus amples informations, je vous invite à lire l'excellent article de mon collègue [Pouzor](/authors/pouzor/) : [RGPD - Ce qu'il va changer]({BASE_URL}/fr/rgpd-ce-qu-il-va-changer/).
Si vous ne savez pas ce qu'est la RGPD, c'est en gros une évolution de la directive européenne dont nous avons parlé précédemment vers une version XXL. Pour de plus amples informations, je vous invite à lire l'excellent article de mon collègue [Pouzor]({BASE_URL}/fr/authors/pouzor/) : [RGPD - Ce qu'il va changer]({BASE_URL}/fr/rgpd-ce-qu-il-va-changer/).

![Cookie Monster]({BASE_URL}/imgs/articles/2018-01-17-cookie-banner/cookie-monster.jpg)
2 changes: 1 addition & 1 deletion _articles/fr/2018-02-11-throwable-error-exception.md
Expand Up @@ -385,7 +385,7 @@ Les points négatifs

## Autres articles intéressants

* [Bien gérer ses exceptions]({BASE_URL}/fr/php_bien-gerer-ses-exceptions/)
* [Bien gérer ses exceptions]({BASE_URL}/fr/php-bien-gerer-ses-exceptions/)
* [Errors in PHP 7](http://php.net/manual/fr/language.errors.php7.php)
* [Example](https://3v4l.org/sDMsv)
* [Throwable Exceptions and Errors in PHP 7](https://trowski.com/2015/06/24/throwable-exceptions-and-errors-in-php7/)
2 changes: 1 addition & 1 deletion _articles/fr/2018-10-03-introduction-gitlab-ci.md
Expand Up @@ -516,7 +516,7 @@ Le code coverage sera visible dans les informations du `job` dans l'interface we

![CI Coverage]({BASE_URL}/imgs/articles/2018-09-19-introduction-gitlab-ci/ci-coverage.png)

> Si vous le souhaitez voici un autre article de notre blog écrit par l'astronaute [Pouzor]({BASE_URL}/authors/pouzor/) sur le code coverage : [Ajouter le code coverage sur les MR avec avec GitLab-CI]({BASE_URL}/fr/ajouter-le-code-coverage-sur-les-pr-avec-gitlab-ci/)
> Si vous le souhaitez voici un autre article de notre blog écrit par l'astronaute [Pouzor]({BASE_URL}/fr/authors/pouzor/) sur le code coverage : [Ajouter le code coverage sur les MR avec avec GitLab-CI]({BASE_URL}/fr/ajouter-le-code-coverage-sur-les-pr-avec-gitlab-ci/)
### retry
Cette déclaration permet de ré-exécuter le `job` en cas d'échec. Il faut indiquer le nombre de fois où vous voulez ré-exécuter le `job`
Expand Down
2 changes: 1 addition & 1 deletion _articles/fr/2019-03-06-un-an-de-webperformance.md
Expand Up @@ -127,4 +127,4 @@ Après un an de mission et grâce au travail des équipes MCD et France24, nous
![bilan]({BASE_URL}/imgs/articles/2019-02-28-un-an-de-webperformance/image8.png)


Si vous aussi vous souhaitez améliorer votre webperformance, renseignez-vous [ici](https://eleven-labs.com/accompagnement-sur-mesure/audit-et-expertise)
Si vous aussi vous souhaitez améliorer votre webperformance, renseignez-vous [ici](https://eleven-labs.com/audit-systeme-information/)
2 changes: 1 addition & 1 deletion _articles/fr/2019-05-09-react-i18next.md
Expand Up @@ -286,7 +286,7 @@ Notez que le chemin indiqué dans `loadPath` est dans le dossier `public` à la

#### Fichiers hébergés sur un serveur distant

Nous avons présenté [dans un article précédent]({BASE_URL}/fr/gestion-des-traductions-avec-localise.biz/) que nous utilisons le service Localise.biz et enregistrons les fichiers de traduction sur un serveur dans le cloud. Ainsi, nous avons besoin de récupérer les fichiers hébergés sur un serveur distant :
Nous avons présenté [dans un article précédent]({BASE_URL}/fr/gestion-des-traductions-avec-localise-biz/) que nous utilisons le service Localise.biz et enregistrons les fichiers de traduction sur un serveur dans le cloud. Ainsi, nous avons besoin de récupérer les fichiers hébergés sur un serveur distant :

```js
import i18n from 'i18next';
Expand Down
2 changes: 1 addition & 1 deletion _articles/fr/2020-09-30-meilleurs-outils-js-2020.md
Expand Up @@ -127,7 +127,7 @@ En parlant de render, ne vous êtes vous jamais demandé pourquoi vos composants

![]({BASE_URL}/imgs/articles/2020-09-30-meilleurs-outils-js-2020/storybook.png)

Si comme moi vous avez adopté la méthodologie [BEM]({BASE_URL}/fr/retour-d-experience-sur-bem/), alors vous connaissez la nécessité d’avoir des composants unitaires, avec un affichage et un comportement uniforme à chaque utilisation. Pour aider à travailler dans ce sens il existe l’outil open source [Storybook](https://storybook.js.org/), qui est disponible pour React, Vue et Angular et qui permet de facilement créer et maintenir vos composants pour une meilleure réutilisabilité. Pour en savoir plus une suite d’articles est disponible sur notre [blog]({BASE_URL}/fr/Storybook-creer-son-premier-composant/).
Si comme moi vous avez adopté la méthodologie [BEM]({BASE_URL}/fr/retour-d-experience-sur-bem/), alors vous connaissez la nécessité d’avoir des composants unitaires, avec un affichage et un comportement uniforme à chaque utilisation. Pour aider à travailler dans ce sens il existe l’outil open source [Storybook](https://storybook.js.org/), qui est disponible pour React, Vue et Angular et qui permet de facilement créer et maintenir vos composants pour une meilleure réutilisabilité. Pour en savoir plus une suite d’articles est disponible sur notre [blog]({BASE_URL}/fr/storybook-creer-son-premier-composant/).

## Bit

Expand Down
4 changes: 2 additions & 2 deletions _articles/fr/2021-05-24-leco-conception.md
Expand Up @@ -87,7 +87,7 @@ On pourra réfléchir à optimiser le design et le parcours sur l’interface av
- Opter pour un design épuré pour une meilleure lisibilité et accessibilité de votre site. Privilégier par exemple les icônes aux images, limiter les images lourdes et utiliser les formats webs pour améliorer les temps de chargement, éviter au maximum les animations, vidéos, GIF.
Réutiliser les images : vous n’avez pas forcément besoin d’une nouvelle image pour chaque page ou contenu !

- Bien penser le contenu et le découpage des encarts de texte pour faciliter la lecture et encore une fois l’accessibilité (plus d’infos dans l’article [UX WRITING : INTRODUCTION ET BONNES PRATIQUES]({BASE_URL}/fr/UX-Writing-Introduction-et-bonnes-pratiques/))
- Bien penser le contenu et le découpage des encarts de texte pour faciliter la lecture et encore une fois l’accessibilité (plus d’infos dans l’article [UX WRITING : INTRODUCTION ET BONNES PRATIQUES]({BASE_URL}/fr/ux-writing-introduction-et-bonnes-pratiques/))

- Limiter le nombre de polices et de couleurs utilisées

Expand All @@ -97,7 +97,7 @@ Il conviendra de challenger régulièrement, avec l’équipe de développement,
Qualifier la donnée allégera votre UX et vos bases de données.

- A-t-on besoin que la fonctionnalité soit en temps réel ?
Si ce n’est pas le cas, traiter la demande quand les serveurs sont le moins sous pression ou, si vous le pouvez, lancer une instance serveur pour traiter toutes les demandes en même temps permettra de réduire la consommation de votre infrastructure. Cela passe par de l’asynchrone, avec [RabbitMQ]({BASE_URL}/tag/rabbitmq.html) par exemple.
Si ce n’est pas le cas, traiter la demande quand les serveurs sont le moins sous pression ou, si vous le pouvez, lancer une instance serveur pour traiter toutes les demandes en même temps permettra de réduire la consommation de votre infrastructure. Cela passe par de l’asynchrone, avec RabbitMQ par exemple.

- Peut-on favoriser un moteur de recherche performant ou des filtres pour que l’utilisateur puisse affiner une recherche par exemple et accéder plus rapidement à l’information ?

Expand Down

0 comments on commit 52525ed

Please sign in to comment.