Rechercher dans ce blog

samedi 20 juillet 2019

Développement web - Le MVC

Qu'est ce que le MVC ?

MVC est un terme qui veut dire : Modèle-Vue-Contrôleur, ou en anglais : Model-View-Controller. Derrière ce terme barbare se trouve une logique de développement très utilisé maintenant pour créer des sites internet.

Le principe du MVC, est de décomposer en trois morceaux chaque pages d'un site internet :
  1. Le modèle qui s'occupe des données
  2. La vue qui s'occupe du visuel
  3. Le Controller qui fait le lien

Modèle

Le modèle définit une classe, un élément orienté objet donc qui va s'occuper du traitement et de l'analyse des données. Par exemple la lecture et l'écriture de données dans la base de données, correspond à un modèle. Lire/écrire dans un fichier aussi car se sont des données que l'on traite.

Vue

La vue est le visuel de votre page internet, c'est à dire tout ce qui est affiché à l'écran. La vue utilise les données fournie par le modèle mais ne fait pas de traitement sur les données, elle se contente d'afficher à l'écran.

Controller

Le contrôleur, s'occupe de faire le lien entre le modèle est la vue. C'est lui qui reçoit les requêtes adressées à la page internet, qui va alors appeler le bon modèle et lui fournir les informations à partir desquels il va travailler, puis récupérer un résultat qu'il passe ensuite à la vue.

Structure d'un MVC

Le MVC requiert donc une structure des dossiers afin de bien faire la séparation. Chacun appel les dossiers à sa convenance, par convention cependant on retrouve en général les dossiers suivants :
  • model
  • view
  • controller
Chacun ayant donc son rôle bien spécifique : model pour le traitement de données, view pour le visuel et controller qui reçoit la demande  (par exemple soumission d'un formulaire) et appel le model et la view concernés.

Pourquoi tan d'utilisation de ce principe ?

Et bien cela permet de bien séparer les choses et de s'y retrouver plus facilement ensuite, que se soit dans la structure ou dans le code. Ce principe permet aussi d'être à plusieurs en même temps sur la même chose.

Dans les framework web actuels type Symfony, on a plus vraiment cette hiérarchie, on a toujours le principe mais encore plus découpés. Ainsi on aura par exemple :
  • entity : les entités sont des classes ayant pour but de correspondre à la table de données et dont les données y seront stockés après lecture dans la BDD ou pour enregistrer dans la BDD
  • form : les formulaires ont leur propre classe pour générer les formulaires
  • repository : les repository sont des classes associées aux entités permettant de créer des requêtes SQL personnalisées
  • translations : les  traductions sont aussi des classes bien souvent ou de simples fichiers contenant les traductions
Pour les exemples, je m'arrête là car elles sont nombreuses. Tout les éléments présents sont des modèles : ils traitent des données. Le découpage est plus important car chacun à un rôle bien définit, mais cela reste des modèles.

Avec les framework modernes et ce principe de tout séparer, on s'y retrouve facilement et le développement se fait bien plus rapidement avec moins de problèmes, d'où l'intérêt de ce système.

Pourquoi tout le monde ne s'en sert pas ?

Et bien certains ne connaissent pas ou maîtrisent pas ce principe ; il arrive aussi que certains développeurs ne connaissent même pas la programmation orientée objet et ne peuvent donc pas utiliser ce genre de procédé.

jeudi 11 juillet 2019

Bienvenue

Bienvenue sur mon blog. Vous pouvez retrouver toute sorte de choses ici : du gaming, de la programmation, des informations sur les crypto-monnaies, le crypto-trading ou encore le crypto-mining.

Le but de ce blog, est simplement de regrouper au même endroit mes pensées, mes idées qui peuvent servir à tous et sur pleins de sujets différents dont j'ai donné une liste (qui peut évoluée avec le temps ^^).

Le but de ce blog, est d'apporter avant tout du débat, mais aussi donner des informations sur mes projets par exemple.
Mais je vais pas vous faire une tartine, je vous laisse plutôt regarder les différents articles de ce blog et commenter ces derniers.

Encore bienvenue à vous.

ETS2Routes

Le site ETS2Routes


Qu'est-ce que c'est ?

ETS2Routes est un site internet que j'ai créer et dont la version finale est en cours de développement. Ce site est consacré au jeu Euro Truck Simulator 2 (ETS2).

ETS2 est un jeu vidéo de simulation de conduite de camions. Le jeu dispose d'un système de gestion d'entreprises via une IA qui va conduire et nous rapporter de l'argent. Le système étant assez basique et le multi n'étant pas vraiment présent (pas officiellement en tout cas), je me suis dis que ça serait sympa de créer un site internet permettant d'avoir une vraie dimension entreprise.

Ainsi est né l'idée de ETS2Routes, un site internet où les joueurs se regroupent au sein d'une VTC (Virtual Truck Company). Chacun fait ses trajets de son côté certes, mais le fait que chacun va inscrire son trajet et différentes informations spécifiques comme l'XP gagné, l'argent gagné, etc. permet de regrouper les joueurs ensemble comme s'ils étaient dans une entreprise de transport.

Le site permet quoi concrètement ?

En fait, l'utilisateur crée un compte (gratuitement) sur le site, puis il va créer un ou plusieurs personnages selon la limite définie dans l'administration du site. A partir de là, il se connecte sur le personnage et peut créer une VTC ou candidater dans une existante.

Une fois que le personnage fait partie d'une compagnie, il a juste à remplir le rapport de trajet en fournissant les informations. Le site propose aussi d'indiquer quand on a des accidents par exemple ou autres événements particuliers.

Chaque mois, le personnage touche une rémunération décidée par le chef de la compagnie (en accord avec l'employé du coup ^^). Chaque trajet apporte un complément en tan que commission, et tout les mois le joueur reçoit alors un e-mail (ou un message sur le site, à voir pas encore décidé sur ce point ^^) indiquant pour son personnage, l'argent qu'il a gagné.


ETS2Routes, apporte une dimension RolePlay et une gestion d'entreprise que ne fourni pas le jeu. A terme, pleins de choses seront possible : acheter des garages, acheter des camions, personnaliser les camions etc. pour l'entreprise. Mais se sont des fonctionnalités qui feront leur apparition au fil du temps.

Le site est déjà en ligne ?

Il y a une vieille version actuellement en ligne à l'adresse suivante mais il ne gère pas encore les personnages et il y a beaucoup de bugs. Une nouvelle version est en cours de développement, dont l'actualité est actuellement présente sur Facebook mais ce blog, servira à donner un peu plus d'informations et noter mes idées.

lundi 8 juillet 2019

Liens crypto-monnaies

Les crypto-monnaies

Cet article n'a pas une vocation particulière, ici je vous présente en quelques mots ce que sont les crypto-monnaies pour ceux qui connaissent pas ainsi que différents liens pour en gagner.

Qu'est-ce que c'est ?

Les crypto-monnaies sont des monnaies virtuelles mais qui ont une valeur bien réelle puisqu'elle fonctionne avec le principe de la bourse via des sites spéciaux d'échanges appeler des exchanges (équivalent des sites de trading du FOREX, la monnaie dite "fiat").

L'intérêt de ces monnaies non officielles, c'est que comme ce n'est pas officiel ce n'est pas sous le contrôle des banques, vous êtes donc libre d'en faire ce que bon vous semble sans avoir les banques derrières qui bloquent l'arrivé ou l'envoi puisque vous gérez directement votre porte-feuille (wallet).

Il existe beaucoup de crypto-monnaies, les plus connues car les plus rentables sont : Bitcoin, Ethereum, Monero, ZCash, BitcoinCash, LiteCoin, Dash et BitcoinGold.

Mes choix

Pour ce article, j'ai choisi de vous présenter des liens vers certaines de ces crypto-monnaies et comment en obtenir.

Wallet

Pour commencer, il faut ce qu'on appel un wallet : porte-feuille. Il en existe de plusieurs sortes : à installer sur l'ordinateur mais en général cela requiert de posséder toute la blockchain de la crypto-monnaie, ce qui demande beaucoup de place sur l'ordinateur. La seconde possibilité, c'est les wallet sur smartphone et la dernière : passer par des sites qui mettent à disposition la blockchain pour avoir des wallet.

J'ai fait un seul et unique choix : Freewallet qui a l'avantage de gérer beaucoup de cryptos dont celles énumérées ci-dessus.

Faucets

Pour gagner de la crypto-monnaie et ce gratuitement, il existe des faucets. Se sont des sites en général blindés de publicités, qui vous permettre moyennant quelques actions simples : remplir une captcha, attendre un certain nombre de minutes... d'obtenir un peu de la crypto-monnaie en question.

Ceux que j'ai sélectionné, sont ceux que j'utilises et dont je peux confirmer qu'on est payé ; avec le temps la liste s'allongera.

  1. FreedogeCoIn est un site permettant de gagner du DOGE, paiement possible à partir de 50 DOGE mais 1 DOGE de frais. Très bon site qui paie.
  2. Freecardano est un site permettant de gagner du ADA (Cardano), paiement possible à partir de 1 ADA mais 0.1 ADA de frais.
  3. Bitcoinker est un site permettant de gagner du Bitcoin, le paiement est fait tout les 20 000 Satoshi soit donc 0.00020000 BTC le premier de chaque mois.
  4. Cointiply comme Bitcoinker, permet de gagner du Bitcoin. Le paiement est a demandé manuellement soit vers un compte Faucethub soit sur une adresse Bitcoin. Il faut accumuler 100 000 coins soit environ $100 pour avoir un paiement. Le site regroupe un faucet à faire une fois par heure et un PTC  où vous pouvez a tout moment de la journée vous faire des coins en plus jusqu'à plus de 500 coins/jours si vous êtes réguliers.

Crypto-mining

Les crypto-monnaies fonctionnent sur deux principes : soit le minage via ce qu'on appel le PoW soit la possession par le PoS.

Le Proof-of-Work (PoW), est le principe de "miner", c'est à dire que votre ordinateur va réaliser des calculs pour trouver un "nonce", une valeur aléatoire. Chaque bon résultat permet alors des gains.

L'autre principe, le Proof-of-Stake (PoS), consiste en la possession d'une grande quantité de la crypto-monnaie concernée afin que la blockchain décide de nous choisir pour valider un bloc et les transactions concernées, cette fois pas en cherchant un nonce mais juste en vérifiant que tout concorde.

Le PoW (minage de crypto-monnaie), consiste donc à demander à l'ordinateur de faire des calculs qui sont longs, consomment de l'électricité mais sont très rémunérateurs suivant votre capacité de travail. Dans ce monde on a les processeurs (CPU), cartes graphiques (GPU) et les ASIC qui sont des machines ne pouvant travailler que sur un algorithme, mais elles travaillent mieux et plus vite.

De manière général, le travail se fait soit sur GPU soit ASIC, rarement CPU car les calculs sont maintenant en général trop complexe pour nos processeurs. Je ne donnerais qu'une seule exception :
Cryptobrower est un navigateur internet basé sur Google Chrome, qui vous permet avec votre processeur, de faire du minage Monero (seule crypto fonctionnant sur CPU car prévue pour au départ) et rémunéré en Bitcoin.

Il suffit d'installer et d'utiliser ce navigateur à la place de celui que vous utilisez actuellement, ce qui vous permet alors de faire travailler le CPU de votre ordinateur (vous pouvez régler plusieurs niveaux de minage) afin de gagner du Bitcoin. Le paiement est à demandé manuellement à partir de 10 000 Satoshi soit donc 0.00010000 BTC.

L'avantage de ce navigateur, est que vous avez 10 niveaux d'affiliation, ainsi une personne que vous allez parrainer sera de niveau 1, mais si elle parraine cette personne sera son filleul mais aussi le votre de niveau 2 cette fois et ainsi de suite. Chaque filleul donc de chaque niveau apporte un pourcentage de gains supplémentaires : il s'agit d'un pourcentage sur les gains de cette personne.

Ainsi, vous pouvez assez facilement augmenter vos gains en ayant pleins de filleuls. Pour ma part j'ai déjà eu deux paiements de la part de Cryptobrowser : un de 80k Satoshi et l'autre de 102k Satoshi, je confirme donc qu'ils paient il n'y a pas de soucis à ce niveau là.