The Great Gatsby is the third novel of Fitzgerald, published in 1925 after This Side of Paradise (1920) and The Beautiful and the Damned (1922).

Introduction

It is a turning point in Fitzgerald literary career because it was to improve on his previous works: he tested new techniques and insisted on the novelty of his enterprise: ‘I want to write something new, something extraordinary and beautiful and simple and ‘intricately patterned’ (letter to Perkins, agent at Scribners).

Indeed, Fitzgerald devoted a lot of care and attention to pruning unnecessary passages and tried to introduce editing methods (just like a film-maker) to re-arrange his story in movie sequences.

In The Great Gatsby, Fitzgerald’s main innovation was to introduce a first person narrator and protagonist whose consciousness filters the story’s events.

This device was not a total invention since a character through whose eyes and mind the central protagonist is discovered is to be found in two of Conrad’s books: Heart of Darkness and Lord Jim.

As usual with this device, the main protagonist remains strange and shady. This technique reinforces the mystery of the characters.

The second advantage is that the mediation of a character-witness permits a play between the real and the imaginary.

This indirect approach is inherited from Nathaniel Hawthorne. Hence, it is difficult to distinguish between true representation and fantasizing. For Emerson, the vision was more important than the real world.

Structure and Narration in "The Great Gatsby" photo

I. Nick’s vision: the ‘modified’ first-person technique

The story is narrated through a ‘modified’ first-person viewpoint.

It is not the main protagonist (Gatsby) who recounts his own story but a secondary character, Nick Carraway, who is successively suspicious, wary and eventually fascinated by Gatsby. Nick is not trustworthy, not fully reliable: he oscillates.

Whenever Nick cannot obtain a first-hand version of facts, he does not hesitate to quote other sources. For instance, Gatsby’s love affair is told by Jordan Baker (chap.4 p80). Nick reports her words but the problem is that she is said to be a liar: how far can she be trusted?

Nick is obliged to reconstruct an event through the collage of different testimonies. Nick uses his logical mind to come up with a definitive story, a result of words that have been filtered by different minds.

That is why this first-person viewpoint is modified: Nick can only rely on what he has been told.

II. Nick Carraway: a privileged witness

Nick is not a random choice, it is very well calculated. He was the best possible witness to let the reader discover Gatsby. Indeed, through coincidence, he happens to be Gatsby’s next-door neighbor (p11).

Besides, Nick has not vested interest in hobnobbing Gatsby. He has no axe to grind. Yet, without being acquainted with Gatsby, Nick is nonetheless a relative of Daisy and consequently introduced to the Buchanans and to Gatsby’s story.

A. An eye-witness account

Nick witnesses some of the events of Gatsby’s last summer and sometimes participates in them. He has two functions: seeing and acting. The emphasis is put on visual perception. The act of seeing creates mystery instead of providing information.

A lot about Gatsby’s life is bound to remain unfathomable: there is more in Gatsby’s life than Nick’s eyes can meet. Nick’s scope of vision is limited. Yet, Nick is a good observer and can draw his own conclusions. He can analyze Gatsby’s facial expressions and put a meaning on his gestures. See chapter 5 with the re-union between Gatsby and Daisy.

He is sometimes over-informed. When Gatsby dashes into the kitchen, Nick is made privy of his companion’s feelings. Through Nick’s agency, the reader is provided with the real feelings of Gatsby: ‘this is a terrible mistake‘.

This tends to suggest that Fitzgerald tried to favor the sentimental dimension of his character at the expense of his ‘business’.

B. The accounts of other people

Nick picks up most information about Gatsby and Daisy through other people’s accounts -mainly gossip and public rumors. The accounts repeated may be unreliable and called into question.

Through the gossip of the beginning, Gatsby is almost all the time presented with a mixture of awe and dread, making him an outsider. Nick is just echoing: ‘German spy during the war’, ‘he killed a man once’. Nick almost believes it: ‘he looked as if he had killed a man’.

Nick has a varying attitude towards Gatsby. He passes on to the reader a lot of rumors which might prove later to be contradictory. Nick plays the role of the chorus in ancient tragedy and is the link between the reader and Gatsby.

C. Nick’s reconstruction of events

Nick is a self-conscious narrator; he is aware of the difficulties of writing a report that would approach the truth. He uses his critical judgement to form an opinion not only on the events but on himself writing these events. For instance, p62: ‘reading over what I have written so far, I’ve given the impression that the events of three nights several weeks apart were all that absorbed me’.

There is a sense in which the The Great Gatsby would concern Nick. Through the events of the summer of 1922 and his writing, Nick has changed. When he is involved in the action, he is a belated adolescent but he is an adult when writing back after two years.
Chap7: ‘I was 30. Before me stretched the portent menacing road of a new decade‘ (p142).

In a way, he has gained knowledge, passing from innocence to the consciousness of the complexity of the world.

III. Nick Carraway: an unreliable narrator

All the characters are not depicted with the same clarity. Those described with most lucidity are those for whom Nick feels indifferent: Catherine, Myrtle Wilson and Mc Kee.

In contrast, the closer the characters get to Nick and the more blurred they prove to be: Gatsby and Daisy, as if Nick was afraid to jump to conclusions concerning Gatsby. Because Nick participates vicariously in Gatsby’s adventures, he finds it difficult to come to a clear cut picture of the man.

A. Nick’s subjective account

Nick is unreliable: he has a romantic turn of mind pushing him to idealize certain characters. He is bewitched by Daisy’s voice, which he compared to a nightingale. He is in love with Daisy himself but remains aware of her selfishness and is not shocked by her carelessness.

Nick is influenced by his upbringing in the MidWest and stands for certain moral principles: ‘I am one of the few honest people that I have ever known’ (p66). He is a prig, smug and self-righteous MidWesterner. He is spineless (not very brave) and easily influenced. He is lured to the glittering false world of appearances.

Nick is like all men looking for glory and high hopes (dream of making lots of money in a short while) provided they find out how it is possible. We cannot expect Nick to be totally objective -he is taken in by all those fake appearances.

B. Nick’s distorted vision

Fitzgerald’s novel emphasizes the difficulties of getting a clear picture of reality and it also underscores the impossibility of adjusting one’s eyes to obtain a faithful reflection of the ‘outside world’.

From Dr. Eckleburg’s gigantic spectacles on the advertisement to the Owl-Eyed man’s thick glasses, the eyesight is a recurrent motif, a metonymic allusion to the possibility of getting a distorted representation of reality.

It is often suggested that Nick is unable to get a clear picture of whatever goes on. Myrtle’s party in Chapter 3 offers a good example of the narrator’s distorted vision. There are several instances of misperceptions.

First Nick does not see properly an over-enlarged photograph because he is standing too close to it: he sees ‘a hen sitting on a blurred rock’ but then taking a few steps backwards the sight changes into ‘a bonnet, and the countenance of a stout old lady’.

The lesson could not be clearer; namely, it is indispensable for the narrator to bring the ‘outside reality’ into focus. Indeed Nick’s vision is too often distorted either because he was overdrunk: ‘everything that happened had a dim, hazy cast over it…the whisky distorted things.'(chap2, p35) or because he is in a dream-like state: half awake, half asleep as if sedated: ‘I think I walked into a deep sleep as I entered my front door’ (90).

Nick is also haunted by nightmarish visions. After the scene of the accident, in chapter nine he tells a fantastic dream reminiscent of a painting by El Greco (p183), which duplicates through its odd, baroque and surreal aspect the scene in chapter 3 at the end of Gatsby’s party when a car loses a wheel. (p61)

C. Nick’s own process of initiation

Even if Gatsby is the novel’s main protagonist, the novel bears witness to the process of initiation undergone by Nick. Gatsby, after all, does not change in the course of the story, he is and remains a static figure until the very end before being murdered when it finally dawns upon him that the Daisy he worshipped was no more than an illusory creation.

On the opposite, Nick goes through different stages as he tells the story. Nick’s viewpoint evolves and his changing outlook bestows a further dimension on the novel.

First Nick overcomes his moral prejudices and strikes up a personal relationship with Gatsby (chap. 4). He stops being a Middle West prig with too simple a notion of right and wrong.

Then he is given access to Gatsby’s past and Gatsby’s love quest; he is thus made alive to the power of illusion: ‘the unreality of reality’ (p106) to give life a sense of purpose.

Nick, it should not be forgotten, had up until the novel’s beginning, led an aimless existence, he was unmotivated by his work as a bondman and used to let himself be carried along by events. In this respect, his encounter with Gatsby proves a decisive step forward.

With Gatsby’s death, Nick is made aware of the barrenness and sterility of the East, of a world that is ‘material without being real’. As Gatsby’s former acquaintances each in their turn finds an excuse for not attending his funeral, Nick realizes that the spree has ended once and for all. The show is over and the actors have made their exits. Nick’s process of initiation ends with his sudden realization that his fascination for a gleaming, dazzling East was unfounded.

After Gatsby’s death there remains nothing in the East but void and emptiness: the only music and laughter that Nick can hear are imaginary, hallucinatory: ‘I spent my Saturday nights in New York because those gleaming, dazzling parties of his were with me so vividly that I could still hear the music and the laughter’ (p187).

Conclusion

The introduction of a first-person narrator who reflects the main protagonist’s personality is the best way to conjure up a sense of mystery that cannot be solved. When all has been said and done the fact is that Gatsby remains elusive, indiscernible and unfathomable. Therefore the character’s myth is never ever broken up.

Nick’s encounter with Gatsby is a decisive step in the narrator’s progress towards adulthood. Writing retrospectively this biographical fragment is for Nick one way of consolidating his adulthood.

Ultimately the memory of Gatsby is the only treasured possession that Nick may bring back to his native Middle West.

C’est assez rare comme demande mais je me suis exécuté: comment faire pour retirer le lien qui permet de supprimer les plugins désactivés dans l’interface d’administration, même si l’on est administrateur ?

Et bien c’est assez simple, il suffit de filtrer le tableau des liens. Voici deux exemples simple pour mettre cela en place.

Retirer le lien de suppression pour toutes les extensions

Voici le code qui vous permet de retirer le lien “Supprimer” qui se trouve en dessous de chaque extension sur la page Extensions:

<?php
/*
Plugin Name: Disable Plugin Deletion
Plugin URI: https://www.skyminds.net/?p=32830
Description: Disable all plugins' deletion links on the plugins page.
Version: 1.0
Author: Matt Biscay
Author URI: https://mattbiscay.com
*/
add_filter( 'plugin_action_links', 'sky_disable_plugin_deletion', 10, 4 );
function sky_disable_plugin_deletion( $actions, $plugin_file, $plugin_data, $context ) {
  // Remove delete link for all installed plugins         
  unset( $actions['delete'] );     
  return $actions;
} 

Retirer le lien de suppression pour des extensions spécifiques

Voici le code qui vous permet de retirer le lien “Supprimer” qui se trouve en dessous des extensions dont vous spécifiez le chemin (dossier et nom du fichier de l’extension à charger) sur la page Extensions:

<?php
 /*
 Plugin Name: Disable Plugin Deletion
 Plugin URI: https://www.skyminds.net/?p=32830
 Description: Disable all plugins' deletion links on the plugins page.
 Version: 1.0
 Author: Matt Biscay
 Author URI: https://mattbiscay.com
 */
 add_filter( 'plugin_action_links', 'sky_disable_plugin_deletion_selected', 10, 4 );
 function sky_disable_plugin_deletion_selected( $actions, $plugin_file, $plugin_data, $context ) {
   // Remove delete link for specific plugins
   if ( array_key_exists( 'delete', $actions ) && in_array( $plugin_file,
   [
     'akismet/akismet.php',
     'redirection/redirection.php',
   ]
   ) ) {
     unset( $actions['delete'] );
   }
   return $actions;
 }

Dans ce dernier snippet, pensez à modifier le nom du répertoire et celui du plugin de manière à ce qu’ils coïncident avec les plugins qui ne doivent pas être supprimés.

A l’origine, c’était pour un de mes clients pour éviter que ses collaborateurs ne suppriment des plugins par inadvertance.

Je m’en sers également sous LocalWP pour éviter de supprimer un plugin en cours de développement – on ne sait jamais!

Chez Codeable, j’ai travaillé sur l’optimisation d’un site e-commerce propulsé par WooCommerce récemment, qui connaissait quelques problèmes de lenteur.

Sous phpMyAdmin, on trouvait également cette erreur:

Current selection does not contain a unique column

Si vous obtenez cette erreur, c’est que la structure de la table wp_options n’est pas à jour donc nous la vérifions avec wp-cli:

wp db query "DESCRIBE $(wp db prefix --allow-root)options" --allow-root

Le résultat obtenu nous montre qu’il n’y a pas de clé primaire (primary key) qui est normalement option_id et qu’il n’y a pas de restriction unique imposée sur la colonne option_name:

+--------------+---------------------+------+-----+---------+-------+
| Field        | Type                | Null | Key | Default | Extra |
+--------------+---------------------+------+-----+---------+-------+
| option_id    | bigint(20) unsigned | NO   |     | NULL    |       |
| option_name  | varchar(191)        | YES  |     | NULL    |       |
| option_value | longtext            | NO   |     | NULL    |       |
| autoload     | varchar(20)         | NO   |     | yes     |       |
+--------------+---------------------+------+-----+---------+-------+

Et c’est là que le bât blesse – voici à quoi ressemble la structure standard de la table wp-options:

+--------------+---------------------+------+-----+---------+----------------+
| Field        | Type                | Null | Key | Default | Extra          |
+--------------+---------------------+------+-----+---------+----------------+
| option_id    | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
| option_name  | varchar(191)        | NO   | UNI | NULL    |                |
| option_value | longtext            | NO   |     | NULL    |                |
| autoload     | varchar(20)         | NO   | MUL | yes     |                |
+--------------+---------------------+------+-----+---------+----------------+

Ajouter la Primary Key manquante à wp_options

On ajoute à la colonne option_id la clé primaire qui lui manque:

wp db query "ALTER TABLE $(wp db prefix --allow-root)options MODIFY option_id INT AUTO_INCREMENT PRIMARY KEY;" --allow-root

Et on vérifie le résultat:

wp db query "DESCRIBE $(wp db prefix --allow-root)options" --allow-root

Ajouter la contrainte Unique qui manque à wp_options

Pour ajouter la contrainte UNIQUE à la colonne option_name, on lance:

wp db query "ALTER TABLE $(wp db prefix --allow-root)options ADD UNIQUE (option_name);" --allow-root

Là, il est possible que cela bloque, suivant ce qui se trouve dans votre table wp_options.

Résoudre le problème des doublons

Si vous obtenez une erreur comme :

ERROR 1062 (23000) at line 1: Duplicate entry 'jetpack_available_modules' for key 'option_name'

alors cela signifie qu’il existe des enregistrements option_name dupliqués, des doublons qui portent le même nom alors que chaque nom option_name devrait être unique.

On peut obtenir la liste des enregistrements option_name doublons avec cette requête:

wp db query "SELECT option_name, COUNT(*) optioncount FROM $(wp db prefix --allow-root)options GROUP BY option_name HAVING optioncount > 1 ORDER BY optioncount DESC;" --allow-root

Par ordre ascendant, voici la liste des doublons:

+---------------------------------------------+-------------+
| option_name                                 | optioncount |
+---------------------------------------------+-------------+
| jetpack_callables_sync_checksum             |       47123 |
| jetpack_sync_full_config                    |          50 |
| jetpack_sync_full_enqueue_status            |          43 |
| jpsq_sync_checkout                          |          10 |
| jetpack_sync_full__params                   |           5 |
| jetpack_sync_settings_sync_via_cron         |           4 |
| jetpack_sync_full__started                  |           4 |
+---------------------------------------------+-------------+

On peut supprimer automatiquement tous les doublons option_name de deux manières différentes, soit en utilisant la plus vieille valeuroption_id(donc la plus petite valeur d’ID), soit en utilisant la valeuroption_id la plus récente (plus grande valeur d’ID).

Garder le doublon option_name le plus ancien

Voici la requête SQL qui montre uniquement le plus ancien enregistrement (MIN) option_id pour chaque doublon de valeur option_name:

SELECT *
FROM wp options
WHERE option_id NOT IN
    (SELECT *
     FROM
       (SELECT MIN(n.option_id)
        FROM wp_options
        GROUP BY n.option_name) x)

Une fois que vous avez vérifié le résultat, on peut passer à la suppression.

Cette requête SQL garde l’enregistrement (MIN) option_id le plus ancien de tous les doublonsoption_name et supprime tous les enregistrements plus récents que la valeur trouvée:

DELETE
FROM wp options
WHERE option_id NOT IN
    (SELECT *
     FROM
       (SELECT MIN(n.option_id)
        FROM wp_options n
        GROUP BY n.option_name) x)

Voici l’équivalent wp-cli:

wp db query "DELETE FROM $(wp db prefix --allow-root)options WHERE option_id NOT IN (SELECT * FROM (SELECT MIN(n.option_id) FROM $(wp db prefix --allow-root)options n GROUP BY n.option_name) x)" --allow-root

Garder le doublon option_name le plus récent

Cette requête SQL ne montre que les enregistrements option_id les plus récents (MAX) pour tous les doublons option_name :

SELECT *
FROM wp_options
WHERE option_id NOT IN
    (SELECT *
     FROM
       (SELECT MAX(n.option_id)
        FROM wp_options n
        GROUP BY n.option_name) x)

Et voici la requête qui permet de garder les enregistrements option_id les plus récents (MAX) pour tous les doublons option_name en supprimant tous les doublons les plus anciens:

DELETE
FROM wp_options
WHERE option_id NOT IN
    (SELECT *
     FROM
       (SELECT MAX(n.option_id)
        FROM wp_options n
        GROUP BY n.option_name) x)

Voici l’équivalent wp-cli pour garder l’enregistrement option_name le plus récent:

wp db query "DELETE FROM $(wp db prefix --allow-root)options WHERE option_id NOT IN (SELECT * FROM (SELECT MAX(n.option_id) FROM $(wp db prefix --allow-root)options n GROUP BY n.option_name) x)" --allow-root

Vérifier les clés et contraintes de la table wp_options

Ajoutons de nouveau la contrainte UNIQUE sur la colonne option_name :

wp db query "ALTER TABLE $(wp db prefix --allow-root)options ADD UNIQUE (option_name);" --allow-root

Si vous n’obtenez pas d’erreur, vérifiez la table une nouvelle fois pour constater les changements:

wp db query "DESCRIBE $(wp db prefix --allow-root)options;" --allow-root

Kaboom! Votre table wp_options possède maintenant une PRIMARY KEY sur la colonne option_id et la contrainte UNIQUE sur la colonne option_name:

+--------------+---------------------+------+-----+---------+----------------+
| Field        | Type                | Null | Key | Default | Extra          |
+--------------+---------------------+------+-----+---------+----------------+
| option_id    | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
| option_name  | varchar(191)        | NO   | UNI |         |                |
| option_value | longtext            | NO   |     | NULL    |                |
| autoload     | varchar(20)         | NO   |     | yes     |                |
+--------------+---------------------+------+-----+---------+----------------+

Je vous conseille de vérifier la structure de la table de temps à autre, notamment si vous constatez une prise de poids anormale en très peu de temps