Suite

Pourquoi la fonction python de ma calculatrice de champ renvoie-t-elle toujours Null si des entrées sont Null ?

Pourquoi la fonction python de ma calculatrice de champ renvoie-t-elle toujours Null si des entrées sont Null ?


J'ai écrit une fonction python simple qui génère une liste basée sur des champs oui/non. Il ajoute un mot à une liste s'il a un "oui" dans une autre colonne puis écrit la liste, formatée en fonction du nombre de valeurs qu'elle contient.

Cela ressemble à ceci :

def proctype(prestm, presdm, postm, posdm, beam, wem): mylist = [] if prestm == 'YES': mylist.append("PreSTM") if presdm == 'YES': mylist.append("PreSDM ") if postm == 'YES': mylist.append("PoSTM") if posdm == 'YES': mylist.append("PoSDM") if beam == 'YES': mylist.append("Beam") if wem == 'YES': mylist.append("WEM") if len(mylist) == 1: return mylist[0] if len(mylist) == 2: return mylist [0] + " et " + mylist [1] if len(mylist) == 3: return mylist[0] + ", " + mylist[1] + " et " + mylist[2] if len(mylist) == 4: return mylist[0] + ", " + malist[1] + ", " + malist[2] + " et " + malist[3] if len(mylist) == 5: return mylist[0] + ", " + malist[1] + ", " + malist[2] + ", " + malist[3] + " et " + malist[4] if len(mylist) == 6: return mylist[0] + ", " + malist[1] + ", " + malist[2] + ", " + malist[3] + ", " + malist[4] + " et " + malist[5]

Cela fonctionne exactement comme je le souhaite si les champs qu'il regarde sont "oui" et "non", mais s'il y a des valeurs Null dans les six champs d'entrée, la sortie sera toujours nulle.

Est-ce que quelqu'un sait pourquoi c'est comme ça? La calculatrice de champ ne peut-elle pas gérer les entrées Null, ou list.append a-t-il un problème avec les valeurs Null ?

J'ai essayé de définir les valeurs sur un nombre si elles sont nulles comme ceci :

si prestm est Aucun : prestm = 1

Mais cela n'aide pas.

EDIT : ce problème se produit uniquement lorsque les entrées proviennent d'autres champs de la table. la saisie de "" fonctionne mais

proctype( !PRESTM!, !PRESDM!, !POSTM! , !POSDM! , !BEAM_MIGRATION! , !WEM_RTM! )

pas.

EDIT 2: Le problème n'est pas avec mon code, c'est avec le passage d'autres attributs en tant que paramètres où l'un d'entre eux est Null

def testing(prestm, presdm, postm, posdm, beam, wem): return "test ok"

Renvoie "test ok" lorsque tous les champs sont remplis mais nuls

si l'un des champs de saisie est Null


Concepts de déclencheurs et de liaisons Azure Functions

Dans cet article, vous apprendrez les concepts de haut niveau entourant les déclencheurs et les liaisons de fonctions.

Les déclencheurs sont ce qui provoque l'exécution d'une fonction. Un déclencheur définit comment une fonction est appelée et une fonction doit avoir exactement un déclencheur. Les déclencheurs ont des données associées, qui sont souvent fournies en tant que charge utile de la fonction.

La liaison à une fonction est un moyen de connecter de manière déclarative une autre ressource à la fonction. Les liaisons peuvent être connectées comme liaisons d'entrée, liaisons de sortie, ou les deux. Les données des liaisons sont fournies à la fonction en tant que paramètres.

Vous pouvez mélanger et assortir différentes fixations en fonction de vos besoins. Les liaisons sont facultatives et une fonction peut avoir une ou plusieurs liaisons d'entrée et/ou de sortie.

Les déclencheurs et les liaisons vous permettent d'éviter l'accès codé en dur à d'autres services. Votre fonction reçoit des données (par exemple, le contenu d'un message de file d'attente) dans les paramètres de fonction. Vous envoyez des données (par exemple, pour créer un message de file d'attente) en utilisant la valeur de retour de la fonction.

Considérez les exemples suivants de la façon dont vous pouvez implémenter différentes fonctions.

Exemple de scénario Gâchette Liaison d'entrée Liaison de sortie
Un nouveau message de file d'attente arrive qui exécute une fonction pour écrire dans une autre file d'attente. File d'attente * Rien File d'attente *
Une tâche planifiée lit le contenu du stockage Blob et crée un nouveau document Cosmos DB. Minuteur Stockage de gouttes Base de données Cosmos
La grille d'événements est utilisée pour lire une image de Blob Storage et un document de Cosmos DB pour envoyer un e-mail. Grille d'événements Stockage d'objets blob et Cosmos DB Grille d'envoi
Un webhook qui utilise Microsoft Graph pour mettre à jour une feuille Excel. HTTP Rien Microsoft Graph

* Représente différentes files d'attente

Ces exemples ne sont pas censés être exhaustifs, mais sont fournis pour illustrer comment vous pouvez utiliser des déclencheurs et des liaisons ensemble.

Définitions de déclencheur et de liaison

Les déclencheurs et les liaisons sont définis différemment selon le langage de développement.

Langue Les déclencheurs et les liaisons sont configurés par.
bibliothèque de classes C# méthodes et paramètres de décoration avec des attributs C#
Java méthodes et paramètres de décoration avec des annotations Java
JavaScript/PowerShell/Python/TypeScript mise à jour de function.json (schéma)

Pour les langues qui reposent sur function.json, le portail fournit une interface utilisateur pour ajouter des liaisons dans le L'intégration languette. Vous pouvez également éditer le fichier directement dans le portail dans le Code + essai onglet de votre fonction. Visual Studio Code vous permet d'ajouter facilement une liaison à un fichier function.json en suivant un ensemble pratique d'invites.

Dans .NET et Java, le type de paramètre définit le type de données pour les données d'entrée. Par exemple, utilisez une chaîne pour lier le texte d'un déclencheur de file d'attente, un tableau d'octets à lire en binaire et un type personnalisé pour désérialiser un objet. Étant donné que les fonctions de bibliothèque de classes .NET et les fonctions Java ne reposent pas sur fonction.json pour les définitions de liaison, elles ne peuvent pas être créées et modifiées dans le portail. L'édition du portail C# est basée sur le script C#, qui utilise fonction.json au lieu d'attributs.

Pour en savoir plus sur l'ajout de liaisons à des fonctions existantes, consultez Connecter des fonctions aux services Azure à l'aide de liaisons.

Pour les langages typés dynamiquement tels que JavaScript, utilisez la propriété dataType dans le fonction.json fichier. Par exemple, pour lire le contenu d'une requête HTTP au format binaire, définissez dataType sur binaire :

Les autres options pour dataType sont stream et string .


1 réponse 1

J'ai posté cette question il y a une semaine et avec l'aide de mes pairs, j'ai pu la résoudre. La réponse détaillée est la suivante :

À l'aide de la commande suivante, démarrez votre réseau blockchain privé (modifiez les répertoires de données et d'autres paramètres en fonction de vos paramètres personnalisés)

Laissez ce terminal tel quel (mais ne le fermez pas) après avoir exécuté la commande ci-dessus.

Ouvrez un autre terminal et tapez :

Cela ouvrira la console geth. Maintenant, vous devez avoir créé quelques comptes. Nous allons définir etherbase pour n'importe quel compte et exécuter le script en utilisant son adresse. Entrez donc les commandes suivantes.


Dans les deux cas, votre code renvoie simplement son entrée, c'est presque comme la fonction d'identité, sauf qu'il pourrait y avoir un débordement de pile.

La réponse de Nathan Merrill est correcte, et c'est la manière standard de décrire la situation.

Une autre façon de décrire la situation est d'imaginer qu'à chaque fois qu'une fonction est appelée, une copie de la fonction est faite à ce moment, avec tous les formel remplacés par leurs valeurs. (Ceci ignore le fait tout à fait pertinent que les formels sont des variables. Imaginons un instant qu'ils ne le sont pas.)

De plus, lorsqu'un if est évalué, si la condition est vraie, le if est remplacé par la conséquence, et s'il est faux, alors remplacé par l'alternative.

Vous appelez incrementI(0) pour que ce code apparaisse :

Ce qui se produit? 0 == 5 est faux, cela équivaut donc au code :

Si l'appel revient, alors 0 est renvoyé. Si l'appel se bloque, le programme se bloque. Si l'appel se bloque, le programme se bloque. Supposons que l'appel retourne normalement donc la méthode retourne 0.

Supposons maintenant que vous passiez 5. Cela fait "apparaître comme par magie" ce code

5 == 5 est vrai, donc cela équivaut à

Alors maintenant, il devrait être clair pourquoi votre méthode renvoie ce qu'elle fait étant donné les arguments.

Ce type de "raisonnement équationnel" est plus couramment utilisé dans les langages de programmation fonctionnels comme Haskell ou ML, mais c'est une technique de raisonnement assez décente même dans des langages comme Java, à condition de ne pas muter un formel.


Ce serait bien d'avoir un seul mot concis pour décrire ce comportement afin que les fonctions censées répondre à ce critère puissent être dûment commentées (particulièrement utile lors de la description de fonctions d'interface qui devraient être remplacées)

Ce type de fonction/opération est appelé Idempotent

L'idempotence (Royaume-Uni : /ˌɪdɛmˈpoʊtəns/,[1] États-Unis : /ˌaɪdəm-/)[2] est la propriété de certaines opérations en mathématiques et en informatique par lesquelles elles peuvent être appliquées plusieurs fois sans modifier le résultat au-delà de l'application initiale.

En mathématiques, cela signifie que si F est idempotent, F(F(x)) = F(x), ce qui revient à dire FF = F.

En informatique, cela signifie que si f(x) est idempotent, f(x) est identique à f(x) f(x) .

Noter: Ces significations semblent différentes, mais selon la sémantique dénotationnelle de l'état, le mot « idempotent » a en fait la même signification exacte en mathématiques et en informatique.

Le terme précis pour cela (comme le mentionne Woofas) est idempotence. Je voulais ajouter que même si vous pouviez appeler votre méthode func1 idempotent, vous ne pouviez pas l'appeler un pur une fonction. Les propriétés d'une fonction pure sont au nombre de deux : elle doit être idempotente et elle ne doit pas avoir d'effets secondaires, c'est-à-dire aucune mutation de variables statiques locales, de variables non locales, d'arguments de référence mutables ou de flux d'E/S.

La raison pour laquelle je mentionne cela est qu'une fonction idempotente avec des effets secondaires n'est pas bonne non plus, car techniquement idempotent fait référence à la sortie de retour de la fonction, et non aux effets secondaires. Donc, techniquement, votre méthode func2 est idempotente, car la sortie ne change pas en fonction de l'entrée.

Vous voudrez probablement spécifier que vous voulez une fonction pure. Un exemple de fonction pure pourrait être le suivant :

Le terme est Idempotence. Notez ci-dessous qu'il existe une différence distincte entre une fonction idempotente (appelée récursivement sur elle-même Second bloc de code et la définition mathématique) et l'idempotence fonctionnelle (appelée à plusieurs reprises avec la même entrée séquentiellement Premier bloc de code et souvent le terme signifié en programmation).

Une fonction f avec des effets secondaires est dite idempotente sous une composition séquentielle ff si, lorsqu'elle est appelée deux fois avec la même liste d'arguments, le deuxième appel n'a pas d'effets secondaires et renvoie la même valeur que le premier appel [citation nécessaire] (en supposant qu'aucun d'autres procédures ont été appelées entre la fin du premier appel et le début du deuxième appel).

Par exemple, considérons le code Python suivant :

Ici, setx est idempotent car le deuxième appel à setx (avec le même argument) ne change pas l'état visible du programme : x était déjà mis à 5 dans le premier appel, et est à nouveau mis à 5 dans le deuxième appel, gardant ainsi le même valeur. Notez que ceci est distinct de l'idempotence sous la composition de fonctions f f. Par exemple, la valeur absolue est idempotente sous composition de fonction :


La valeur saisie par l'utilisateur est toujours convertie en chaîne puis affectée à la variable. Confirmons cela en utilisant la fonction type() pour obtenir le type de la variable d'entrée.

Il n'y a aucun moyen d'obtenir un entier ou tout autre type comme entrée utilisateur. Cependant, nous pouvons utiliser les fonctions intégrées pour convertir la chaîne entrée en nombre entier.

Entier d'entrée utilisateur Python

2. Présentation de l'interface du programme d'application GMT C¶

Les utilisateurs qui souhaitent créer leur propre application GMT basée sur l'API doivent s'assurer que leur programme suit les étapes ci-dessous. Les détails de chaque étape seront révélés dans le chapitre suivant. Nous avons gardé l'API simple : en plus des modules GMT, il n'y a que 57 fonctions publiques avec lesquelles se familiariser, mais la plupart des applications n'utiliseront qu'un très petit sous-ensemble de cette sélection. Les fonctions renvoient soit un code d'erreur entier (lorsque les choses tournent mal, sinon il est défini sur GMT_NOERROR (0) ), soit elles renvoient un pointeur void vers une ressource GMT (ou NULL si les choses tournent mal). Dans les deux cas, l'API signalera l'erreur. La disposition ici suppose que vous souhaitez utiliser des fichiers virtuels comme sources d'entrée (c'est-à-dire des données que vous avez déjà en mémoire) si les données doivent être lues à partir de fichiers de données réels, les choses se simplifient considérablement.

Pour garder les choses aussi simples que possible, nous supposerons que vous écrivez une application qui lira des données de table, appellera un module en utilisant les données en mémoire comme entrée, puis enregistrera la sortie du module dans un autre emplacement mémoire. Aucun traitement réel des données ou calcul supplémentaire ne sera effectué ici (donc un programme un peu ennuyeux, mais le but est de développer quelque chose de court que nous pouvons tester). De plus, pour garder le code court, nous ignorons complètement les codes de retour des modules pour le moment. Nous appellerons notre programme example1.c . Voici les étapes :

  1. Initialisez une nouvelle session GMT avec GMT_Create_Session, qui alloue une structure de contrôle API GMT cachée et renvoie un pointeur opaque vers celle-ci. Ce pointeur est un obligatoire argument à tous les appels de fonction API GMT suivants au cours de la session.
  2. Lire un ensemble de données (ou une grille, etc.) en mémoire avec GMT_Read_Data, qui, selon le type de données, renvoie l'une des structures de données décrites précédemment.
  3. Associez vos données à un fichier virtuel en utilisant GMT_Open_VirtualFile. Cette étape renvoie un nom de fichier spécial que vous pouvez utiliser pour indiquer à un module où lire son entrée. Aucun fichier réel n'est créé.
  4. Ouvrez un nouveau fichier virtuel pour conserver la sortie à l'aide de GMT_Open_VirtualFile. Cette étape renvoie également un nom de fichier spécial pour que le module envoie sa sortie.
  5. Préparez les arguments requis (y compris les deux noms de fichiers virtuels) et appelez le module GMT que vous souhaitez utiliser via GMT_Call_Module.
  6. Obtenez l'objet de sortie souhaité via GMT_Read_VirtualFile, qui renvoie une structure de données du type demandé.
  7. Fermez les fichiers virtuels que vous avez utilisés avec GMT_Close_VirtualFile.
  8. Nous terminons la session GMT en appelant GMT_Destroy_Session.

Réponse : Les ensembles et les dictionnaires le prennent en charge. Cependant, les tuples sont immuables et ont
générateurs mais pas compréhensions.
Définir la compréhension :
r= <>
ifnotany(x%y==0foryinrange(2,x))>
Compréhension du dictionnaire :
.items()>
puisque
<1:'a',2:'b'>.items() renvoie une liste de 2-Tuple.iisthefirstelement
oftuplejisthesecond.

Réponse :
Types mutables Types immuables

Numéro de dictionnaire
Liste booléenne
chaîne de caractères
tuple


Reconsidérer()

La fonction reconsider() est similaire au modificateur reconsider sur un bloc de code. Chaque argument à reconsider() doit être un nom de variable, sous forme de texte. Par exemple, reconsider('number_of_fruit', 'number_of_legetables') .

Lorsque reconsider() est exécuté, il annule la définition des variables données, puis recherche leurs définitions. Cependant, il ne le fera qu'une seule fois dans un processus d'assemblage donné (c'est-à-dire une fois à chaque chargement d'un écran). Ainsi, même si votre bloc de code s'exécute plusieurs fois dans un processus d'assemblage donné, chaque variable ne sera recalculée qu'une seule fois.

L'utilisation de cette fonction est plus efficace du point de vue informatique que l'utilisation du modificateur reconsider ou du bloc initial de réinitialisation, car la reconsidération et la réinitialisation entraînent l'exécution du code à chaque chargement de l'écran.

La fonction need() prend une ou plusieurs variables comme arguments et cause docassembler poser des questions pour définir chacune des variables si les variables ne sont pas déjà définies. Notez qu'avec need() , vous faites ne pas mettre des guillemets autour du nom de la variable.

Par exemple, ce bloc de code obligatoire exprime une logique d'entretien exigeant que l'utilisateur se voie d'abord afficher un écran de démarrage, puis qu'il lui pose les questions nécessaires pour arriver à la fin de l'entretien.

Cela équivaut à 100 % à écrire :

Ainsi, la fonction need() ne « fait » rien. Cependant, écrire des fonctions need() dans votre code rend probablement votre code plus lisible car cela vous aide à transmettre en « langage naturel » que votre entretien « a besoin » de ces variables pour être définies.


Exécuter une fonction en arrière-plan en continu

J'ai un clavier connecté à arduino (avec une broche analogique). Dans le code arduino, j'ai créé une file d'attente circulaire qui stocke les entrées en appuyant sur le clavier. Désormais, lorsqu'une touche est enfoncée sur le clavier, elle est stockée en tant que premier élément de la file d'attente. Si une autre touche est enfoncée, elle est stockée comme deuxième élément dans la file d'attente jusqu'à ce que la file d'attente soit pleine. (Les broches du clavier sont connectées à l'aide d'un diviseur de tension pour chaque broche, de sorte que chaque touche enfoncée sur le clavier sera reconnue par arduino basé sous tension pour la clé. Les clés et les tensions sont stockées dans un tableau, comme suit :

Au début du programme, le 1er élément de la file d'attente est chargé avec '1' (dans la fonction de configuration). Lorsque la touche est enfoncée, elle est ajoutée en tant que 2ème élément de la file d'attente.

Il existe une fonction qui doit s'exécuter en arrière-plan dès qu'une touche est enfoncée. La fonction est :

L'élément hold indiqué par la variable front dans la file d'attente est passé en paramètre à la fonction liftStops(). Il y a un moteur dans le circuit et motorClockwise() fait tourner le moteur dans le sens des aiguilles d'une montre, motorStop() arrêtera le moteur.

Lorsque le programme est exécuté pour la première fois, si j'appuie sur '2', il est stocké en tant que deuxième élément dans la file d'attente. La fonction liftStops() commence par '2' comme argument. Maintenant, la fonction liftStops() s'exécute jusqu'à la distance == 30 et le moteur s'arrête. La fonction deQueue() est maintenant appelée et l'élément indiqué par front est éliminé ('1' est éliminé dans le cas ci-dessus). Après cela, si j'appuie sur '3', liftStops () s'exécute jusqu'à la distance == 60 et l'élément indiqué par front est éliminé ('2' dans ce cas).

Si j'appuie sur une touche alors que l'exécution de liftStops() n'est pas terminée, rien n'est ajouté à la file d'attente. Je veux que la fonction liftStops() s'exécute en arrière-plan afin que chaque touche sur laquelle j'appuie à tout moment soit stockée dans la file d'attente et que la fonction liftStops() s'exécute pour chaque élément de la file d'attente l'un après l'autre.


Aveux

Avant de commencer à écrire ceci, je dois dire que c'est probablement la première fois que je traite ce blog comme je veux qu'il soit traité. La plupart du temps, j'ai écrit des choses dont les gens ne se soucient que lorsqu'ils veulent que leur problème soit résolu. Au cours des deux derniers mois ou un an, je n'ai même pas beaucoup écrit. Il semble que les réseaux sociaux aient pris une grande partie de mon temps et maintenant j'essaie de sortir de cette dépendance.

Argent, papiers avec vengeance

Il y a environ 4 ans, j'ai cédé à l'idée de travailler pour de l'argent. L'argent parle, n'est-ce pas ? Il parle plus fort qu'autre chose. Alors, c'était tout pour moi. Je suis sorti avec un peu d'aide de quelqu'un que je connais, je suis allé à un entretien, j'ai pratiquement dit que je ferais n'importe quoi pour gagner de l'argent et j'ai commencé à travailler.

J'ai commencé à travailler sur perl. C'est un joli petit langage (croyez-moi, il m'a fallu beaucoup de temps pour arriver à ce verdict). Agréable et amusant comme c'est, c'était en effet espiègle. Pour un gars qui ne connaît pas grand-chose à Linux ou à n'importe quel Unix à proprement parler, ce fut une période difficile à gérer et à démarrer. Mec, je détestais ça au début. J'avais l'habitude d'envoyer un mail à mon supérieur presque tous les jours pour m'assurer qu'un jour il me porte quelque part où je peux écrire quelque chose en C#.

Le fait que j'aie tellement aimé Windows n'était pas non plus une fête amusante. Internet est en ce moment plein de sages. Les sages qui ont tellement d'opinions sur tout qu'à moins que vous n'acceptiez pas ce qu'ils croient, ils traiteront littéralement cet acte comme un blasphème. Bon sang, j'avais même une page facebook dédiée à moi et à l'un de mes mentors très proches. Des moments amusants, je ne sais toujours pas qui était derrière ça. J'aimerais savoir. Mais c'est une autre histoire pour un autre jour.

Le cadeau est un cadeau, un cadeau déroutant en effet

À ce stade de ma vie, je suis probablement le plus confus que jamais. Quand j'étais enfant, j'ai vu ma mère et mon père travailler, travailler comme un enfer. Ils font juste de leur mieux pour tout mettre en place et joindre les deux bouts. Et le pire, c'est que maintenant j'en comprends la nécessité. Je ne l'ai vraiment pas fait à ce moment-là. Maintenant, je n'ai pas d'excuse pour être cette personne. Maintenant, je ne sais pas ce que je suis censé être.

C'est vraiment drôle. Quand j'étais préadolescent ou adolescent, tout ce que je voulais devenir, c'était un musicien. C'est bien sûr avant que la vie n'arrive et me frappe dans les noix. C'est à ce moment-là que vos rêves s'effondrent et que vous commencez à faire ce pour quoi vous êtes doué et celui qui rapporte de l'argent. Je n'étais pas différent du tout. J'ai de la chance d'en être passionné. Sinon, je ne sais pas ce qui se passerait.

Connais toi toi même

Lorsque vous commencez à comprendre qui vous êtes, deux choses se produisent. Vous connaissez vos limites, vous serez un bon ami pour vous-même. Le pire dans tout cela, c'est que cela vous ferait prendre conscience de tout. Cela enlèverait les ensembles spontanés d'émotions puisque maintenant vous pouvez à peu près prédire ce que ferait votre cerveau.

L'amour et ses bagages

Mec, cette merde m'a troublé plus que tout autre chose dans ma vie. J'ai perdu et gagné beaucoup par amour. Pour moi, je pense que cela a beaucoup à voir avec la recherche de votre propre objectif. Quand une personne devient beaucoup plus importante que n'importe quel objectif que vous avez jamais poursuivi, quand cette personne même devient votre principale directive. Et votre cerveau passe à un hyperdrive. Il commence à calculer tous les souvenirs possibles que vous pourriez faire avec elle. C'est un arbre que votre cerveau aime analyser. Mais attention, il est également livré avec des pièces jointes. Pour moi, c'était encore plus effrayant, mon enfance était incroyablement solitaire et j'ai essentiellement attrapé tous ceux que je voyais et que j'imaginais pouvoir jouer un rôle dans ma vie. Effrayant, hein ? Eh bien, vous n'avez pas encore entendu la partie la plus effrayante. Au moment où vous baissez vos gardes, toutes les insécurités montreront leurs têtes laides. Une personne avec qui vous aimeriez vous voir vous verrait tel que vous êtes vraiment. Cela est parfois mal perçu de l'autre côté. À un moment donné, vous avez peur de vous ouvrir. Parce que vous ne savez pas ce que cela vous coûtera. Cela vous ferait seulement sentir que personne ne veut être autour de vous simplement parce que c'est vous. Et cette pensée elle-même vous isolerait du reste du monde juste comme ça.

Aux obligations et au-delà

Les obligations sont la chose la plus merdique que vous ayez jamais rencontrée. Ils te font payer, je te le dis. Vous regardez votre famille, vous voyez des obligations. Vous regardez la personne que vous aimez le plus, vous ressentez une volonté d'améliorer les choses pour elle. Baise-moi, je ne trouve personne avec une paire d'yeux, je n'ai rien à payer. Je ne dois rien. Pour l'enfer comme je suis sûr, je ne dois rien à ce monde. Je ne. Les gens parlent de priorités. Croyez-moi, la priorité est une rue à double sens. Il ne se rencontre que lorsque les deux commencent à travailler l'un vers l'autre. Tout comme une recherche d'étoiles bidirectionnelle.

Libération de la vie elle-même

Les règles n'ont jamais fonctionné sur moi. Ne le sera probablement jamais. Mon cerveau est un enfant qui demande toujours « Pourquoi ». Et je déteste le fait que ça fasse ça. Non pas que ça l'aide de toute façon, ça le fait toujours. On pourrait penser que Kurt Cobain avait tort. Je ne le vois pas de cette façon. Je ne sais pas pourquoi j'ai un sens du jugement tordu. On dit que la poursuite du bonheur commence lorsque vous laissez vos attentes derrière vous. Et si je m'attendais à trouver quelque chose qui me détachera des attentes ?