RFID vs NFC

En me remettant sur le sujet, je suis tombé sur cette image que je trouve bien claire :

This infographic is courtesy of atlasRFIDstore.

RFID vs. NFC: What

Angular: ngIf, else et variable

Article à garder sous le coude : https://ultimatecourses.com/blog/angular-ngif-else-then

Un exemple plus perso :

<div *ngIf="this.getState(m, d, i); else noVote; let state" >
    <app-weather-image [state]="state"></app-weather-image>
</div>
<ng-template #noVote>
     {{ 'NOTVOTED' | translate }}
</ng-template>

Quelques explications : *ngIf= »this.getState(m, d, i); else noVote; let state »

le *ngIf est assez classique mais après :

  • else noVote : indique si le est faux, on affiche le templace pointé par #noVote,
  • let state: stocke le résultat de la fonction. Ce qui est pratique car il est possible d’utiliser la variable dans la suite du template.

Attention cependant, c’est bien le résultat du test qui est stocké donc si le code est this.getState(m, d, i) > 0 dans cas state contiendra toujours true.

Supprimer une propriété en Javascript

Truc tout bête finalement :

delete objet.maproprite

Le secret c’est le mot delete.

Juste une précision : attention aux références. Dans un cas, j’ai copié la priopriété dans une sous-liste de mon objet. C’était une association directe, dans ce cas, la propriété n’était pas supprimée.

Pour que cela fonctionne, il faut « cloner » plutôt que copier.

MicroService et ServerLess

Présentation

Je reste dans les vieux buzzwords en regardant un peu du côté des MicroServices et ServerLess. A ce stade, j’ai un peu de mal à bien faire la différence entre les deux et à bien ce que cela représente…

Un peu de lecture

Comme d’habitude un peu de lecture :

Micro-Services

A ce stade, je vois les micro-services comme du SOA plus précis avec un découplage plus fort. J’aime assez une définition trouvé dans le premier lien d’Andrian Cockoft :

Loosely coupled service oriented architecture with bounded contexts.

Adrian Cockroft

En fait, d’un première abord, je pense que je me suis laissé abuser par micro : cela ne veut pas dire « une seule fonctionnalité ». En fait, l’idée est de regrouper / découper des éléments qui font sens ensemble.

A service may consist of multiple processes that will always be developed and deployed together, such as an application process and a database that’s only used by that service.

https://martinfowler.com/articles/microservices.html

Deuxième erreur, le stockage des données … Je ne voyais pas comment cela pouvait fonctionner si deux « microservices » utilisent la même base : comment assurer la consistance des données ?

En fait, il semble que dans ce mode, on accepte cette inconsistance et les corrections qui vont avec. Mais encore une fois, tout est une question de coût :

The trade-off is worth it as long as the cost of fixing mistakes is less than the cost of lost business under greater consistency.

https://martinfowler.com/articles/microservices.html

ServerLess

La lecture des articles permet de se donner une vision de cette notion. Spécialement celui-ci :
https://martinfowler.com/articles/serverless.html

Par contre, il est difficile de donner une définition car c’est à la fois peu de choses et beaucoup de choses.

Donc ma vision (toute relative et basée sur quelques heures de lecture) …

une architecture servless est une architecture basée sur des composants Faas (Function as a service) ou Baas (BackEnd as a service). L’idée est de composée notre architecture avec des composants existants et finalement de déléguer l’infra à à des fournisseurs de services.

C’est d’ailleurs assez intéressant de voir que tous les articles prennent en exemple les services d’Amazon et dans une moindre mesure Azure …

[Cordova] Gradle & Android Licences

J’aime bien Cordova mais quand on en fait pas souvent, il y a toujours une perte de temps à tout remettre propre …

Bon pour cette fois :

  • Gradle: il fallait mettre à jour la bonne version …
  • License Android.

Pour Android, même si j’avais bien accepté les licences dans l’installation, il a fallu créer des fichiers :


echo 8933bad161af4178b1185d1a37fbf41ea5269c55 > $ANDROID_HOME/licenses/android-sdk-license
echo d56f5187479451eabf01fb78af6dfcb131a6481e >> $ANDROID_HOME/licenses/android-sdk-license
echo 84831b9409646a918e30573bab4c9c91346d8abd > $ANDROID_HOME/licenses/android-sdk-preview-license
/pre>

A mettre à jour en fonction de la version Android ...

file-saver

Une librarie pratique : https://www.npmjs.com/package/file-saver

Un exemple d’utilisation :


   const url = `${this._url}`;
   const fileName = 'data.json';

   // Process the file downloaded
   this._httpClient.get(url, { responseType: 'blob' }).subscribe(res => {
      saveFile(res, fileName);
   });

La méthode saveFile étant celle qui utilise la librairie:


/**
 * Encapsule l'appel à la méthode saveAs fourni file-saver
 * @param blobContent le contenu du fichier
 * @param fileName un nom
 */
export const saveFile = (blobContent: Blob, fileName: string) => {
    const blob = new Blob([blobContent], { type: 'application/octet-stream' });
    saveAs(blob, fileName);
};

Mise à jour d’un XPeriaZ3

Depuis quelques jours, j’ai récupéré un Xperia Z3. Sur celui-ci, une version « beta/autocompilé » d’Android6 est présente. Comme je voudrais en faire un téléphone du quotidien, je voudrais mettre une vraie version … pas simple

Unlock

Pour « unlocker », il faut :
– aller sur le site de sony (chercher unlock-bootloader sony),
– renseigner son IMEI,
– Obtenir un code.

Ensuite, il faut :

  • éteindre le téléphone,
  • appuyer sur la touche volume haut,
  • connecter le téléphone à un ordinateur.

A ce stade, le téléphone est démarré en « FastBoot mode ». Cela permet via la commande fastboot suivant de passer le code permettant d’unlocker :
fastboot -i 0x0fce oem unlock 0x[code]

Normalement, en relancant le téléphone en mode fastboot, vous devez avoir « LOCK STATE – unlocked » tout en bas.

type=button

Parfois, un oubli peut faire perdre quelques neurones :



Sans cela, le bouton Cancel devient un bouton de validation du formulaire … ce qui pour un bouton Annuler est pas pratique …