vendredi 6 mai 2016

Le pourquoi : Pourquoi programmer avec le frameworks Django ?

Depuis mon dernier article sur le python, je me suis mis a programmer avec Django sur mon site web.
La question que je me pose aujourd'hui, pourquoi le php est toujours la solution numéro 1 de développement web.


Qu'es ce que django ? Django est un framework très populaire permettant de créer des sites web à l'aide du langage Python. Ce framework est comparable aux frameworks Ruby on Rails et Symfony2. L'objectif de ces frameworks est de gérer les couches basses d'un site (sessions, sécurité, bases de données, caches ....) . Le principal objectif de ce frameworks est de proposer un développement efficace est rapide d'une application web. Voici un excellent site pour apprendre a programmer avec ce frameworks : openclassrooms.

Voici une petite vidéo montrant comment créer un blog en moins de 16 minutes avec django (par Arun Ravindran)



Plusieurs grands sites utilise ce framework comme la NASA, Mercedes Benz, le
, Le New York Times, des parties de Google.

Travaillant sur ce framework, il possède de grands avantages.

Quand on programme avec Django, on a réellement l'impression de programmer côté serveur. En effet, contrairement au php, du moins l'impression qu'il en découle lors de ça programmation, le php s'adapte à l'html alors qu'avec Django, on programme avant tout le serveur et le langage client s'adapte la dessus, et c'est vraiment agréable.

Le python est un langage puissant. En effet, il est disponible sur toutes les plateforme et la documentation est abondante, parfaitement aboutit et permet de s'adapter a d'autres langages comme le C ou le C++.

Django permet, dans sont objectif d'optimisation permet la modulation. Cla permet de décomposer les fonctionnalités du site en application. Dans le cas d'un blog, une application (article, espace utilisateur etc ...). Avec pour chaque application un gestionnaire de requêtes (views), permettant de créer des fonctions gérant chaque fonctionnalité de l'application (écriture d'article, modification, statistiques etc ...).

La gestion des urls et simplifier. L'utilisation la plus courante est la composition www.monsite/application/fonction. Cela est facilité et très simple à mettre en place grâce à la modulation de la gestion des urls (une gestion globale et une gestion par application).



La gestion des bases de données est vraiment simplifier. Il suffit de configurer les donner de connexion dans le fichier de configuration :
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
    'NAME': 'technopress',
        'USER': 'user',
        'PASSWORD': 'pass',
        'HOST': '127.0.0.1',
        'PORT': '',        
    }

Ensuite il suffit d'importer les modeles de tables sql de notre appication (ici un objet article):
"from articleManager.models import Article" et l’accès ce fait directement depuis la class  "Article".
En php cela nécessite de créer une class, de créer a chaque fois des requêtes et de gérer la lecture (boucle de lecture etc ...).

Pour continuer dans la gestion des bases de données, django optimise tout au niveau de la productivité. En effet, pour déployer sont site sur différentes plate-formes (travail en équipe etc ...), les modèles de tables sont enregistrer dans un fichier et peuvent être déployer facilement (pour chaque application) en effectuant une migration à l'aide du scribt manager de django.
Ce manager est l'outils principal permettant un gain de productivité. Ce manager permet de créer un projet, créer une application, mettre à jour la structure de la base de données, ajouter un super-utilisateur, enregistrer et compiler des traductions, etc ...


Pour conclure, Django est un frameworks très puissant permettant une optimisation de la productivité, facile à mettre en oeuvre. Il a un très belle avenir devant lui et je pense qu'il va de plus en plus être déployer sur nos sites web. A suivre.

Si vous avez des conseils a donner ou des critiques sur ma démarche, vous pouvez laisser un commentaire.
Pour suivre l'actu du blog, vous pouvez me suivre sur mon twitter ou sur ma page facebook.

mardi 26 avril 2016

Défi de hacking #1 (très facile)

Cet article n’a pas pour but de vous rendre des mafieux de l’internet. Tout ce qui est utilisé ici est uniquement à but éducatif. Les « programmes » à hacker ne sont pas à utiliser dans vos programmes car ils comportent des failles (plus ou moins voyante et exploitable). L’objectif est de vous sensibiliser à la sécurité quand l’on code, cela peut servir de fils conducteur (et de motivation) pour apprendre un nouveau langage. Je ne suis en aucun cas responsable de vos actes.

code :

from getpass import getpass
import hashlib

name = input("Login : ")
passw = getpass("Mot de passe : ")

connect = False

if hashlib.sha1(passw.encode('utf-8')) == "16bd7759943476008eee097c7e28b5b49f32279b" and name =="larevueprojet":
connect = True

def userSpace() :
if connect:
print("connecter (gagner)")
else : 
print("Non connecte")
userSpace()

Si vous trouvez : vous pouvez twitter : "#defiHack 1 de @technoPressWeb", nous pourrons prendre contact. Nous pourrions échanger des différentes solutions trouvés.

Si vous avez des conseils a donner ou des critiques sur ma démarche, vous pouvez laisser un commentaire.
Pour suivre l'actu du blog, vous pouvez me suivre sur mon twitter ou sur ma page facebook.

vendredi 22 avril 2016

Microtest : asus zenforce 2 laser

Dernièrement, j’ai changé de téléphone. Etant dans mes études, le porte-monnaie est assez vide. Mais je ne voulais pas non plus un petit portable nul que l’on peut trouver dans un supermarché. Il me faut un portable digne de ce nom est pas très onéreux (autour 200€). En vue de la monté de la popularité de Asus sur le marché du smartphone, et comme c’est une excellente marque, je me suis lancé sur cette gamme de téléphone. L’Asus zenforce 2 laser (5 pouces), était le meilleur smartphone entrant dans mon budget (en ce moment en promotion sur amazon 139€ au lieu de 179€ ):


Ce téléphone possède en écran 5.0 pouce, en full HD, c’est donc un smartphone avec une taille d’écran conséquente, ce qui est plutôt un très bon point pour un téléphone à 179 euros. Les couleurs sont vivent, il y a beaucoup de contraste. C’est un très bon écran rivalisant avec des smartphone plus haut de gamme. La vitre est de technologie Corning Gorilla Glass 4, qui est vraiment très résistante.


Le Zenfone 2 Laser est équipé d'un processeur Qualcomm Snapdragon 410 (1,2 GHz). Depuis assez longtemps je ne suis pas trop fan des processeurs Snapdragon, car ce sont des processeurs certes puissant, mais qui consomment et chauffe beaucoup. Mais sur ce smartphone, la technologie a été très maitrisé et étonnamment ce smartphone à une autonomie importante (je l’utilise de manière assez modéré) et il tient les 48 heures d’autonomie.

Au niveau des appareils photo, l’appareil frontal est de 5 méga pixel (2592*1944), qui est vraiment très correct, avec un traitement de l’image puissant (réglage de la luminosité auto). L’appareil dorsal n’est que de 8 Méga pixel, certes ce n’est pas énorme mais pour un smartphone milieu de gamme, c’est une résolution classique. Par contre la technologie mise autour permet de optimise au maximum de son potentiel. Un laser auto-focus permet un focus très rapide, même à basse luminosité quel que soit la distance. Ce smartphone possède également la technologie PixelMaster couplé avec la technologie ASUS Pixel Enhancing permettant d’avoir plus de luminosité, une précision des contrastes et de la profondeur.

La quantité de mémoire interne est de 8 GO, ce qui est assez peux mais il y a la possibilité d’ajouté une carte SD de 128 GO. La mémoire RAM est de 2 GO, ce qui est très largement suffisant. Le asus zenforce 2 laser possède une double SIM.

Pour les antennes réseaux et 4G, il n’y a rien à redire. Ces antennes sont très puissantes par rapport à d’autres téléphones de la même gamme.
Asus a beaucoup misé également sur les applications présente sur le smartphone. Il y a vraiment des applications très intéressantes et vraiment très complètes : l’appareil photo intègre un lecteur QR code, le gestionnaire de fichier permet le transfert de donnés sur un accès wifi, de lire les documents pdf, de lire de la musique etc … Les softs sont exceptionnels,  mais je pense qu’il y en a un même un peu  trop.


Pour conclure, c’est un smartphone avec un excellent rapport qualité prix, comme d’ailleurs la plupart des produits de cette marque. Je conseille très vivement ce smartphone si vous souhaitez un téléphone moyenne gamme, pour une utilisation pouvant même être de l'ordre professionnelle.


Si vous avez des conseils a donner ou des critiques sur ma démarche, vous pouvez laisser un commentaire.
Pour suivre l'actu du blog, vous pouvez me suivre sur mon twitter ou sur ma page facebook.

mercredi 20 avril 2016

Comment j'ai crée mon blog #1 : Le début

Voici une semaine que ce blog à commencer et il totalise 120 vues pour un gain de 500€ la semaine … ou pas.  Ce n’est pas extraordinaire mais c’est déjà un bon début.
Avant la création de ce blog, je n’avais aucune notion de bien commencé. Et je suis allé voir sur internet. La majorité de ce que j’ai vu à toujours était accès sur l’argent. Chose que je considère comme une grosse erreur car l’objectif d’un blog pour n’est pas de se faire de l’argent mais d’avoir un passe-temps, une passion qui ensuite peut devenir une profession.

Dans un premier temps, j’ai eu l’envie de mettre en ligne mes idées sur le sujet sur l’informatique et l’électronique. Voulant écrire mes idées du moment sous forme d’articles. Le blog fut le support me semblant le plus adapté.

Ensuite, il a fallu choisir une plateforme. Partant de 0€, je ne peux me permettre de louer un serveur, ni louer un nom de domaine. J’ai donc choisit d’utiliser la plateforme de blog de google : blogger car il possède plein d’outils intéressant.

J'ai également acheté un petit livre qui m'a beaucoup aidé, notamment pour  la promotion de mon blog et la rédaction d'articles : 
Pour commencer ce blog, je me force d'écrire deux articles par semaines (mercredi et dimanche) plutôt que de travailler l'aspect graphique pour permettre de proposer du contenu au lecteur et que les personnes allant sur ce blog reste regarder les autres articles et reviennent le visiter plus tard. Le fait de créer du contenu permet également un meilleur recensement sur les moteurs de recherches.
Mon objectif actuel est d'attendre ce premier moi les 700 vues, un objectif de taille mais je pense pas impossible.

Si vous avez des conseils a donner ou des critiques sur ma démarche, vous pouvez laisser un commentaire.
Pour suivre l'actu du blog, vous pouvez me suivre sur mon twitter ou sur ma page facebook.

dimanche 17 avril 2016

Le pourquoi : Pourquoi programmer en python ?

Cela fait longtemps que je programme, j’ai essayé beaucoup de langages, que ce soit des langages interprétés et compilés. Depuis assez longtemps j’ai une franche allergie aux langages de haut niveau comme le java et avant le python, car le résultat est beaucoup plus aléatoire quand le programme devient un peu complexe. Cependant, la programmation de tâches récurrentes courantes devient vite une vraie usine à gaz  dans les langages comme le C, alors que ce n’est pas forcément des softs demandant de la vitesse et des grosses capacités mémoires ou process. Etant sous linux pour développer, il y a le Shell. Hormis sont utilisation dans le terminal et la création de « macro » (succession de commandes), le Shell est vraiment très primitif et deviens vite un boulé pour des taches un peu plus complexe (archivage automatique sur un serveur personnel) par exemple. Du coup, le python est revenu dans ma vie. Que d’émotions !


Le plus gros avantage du python qui fait sa force est la facilité d’apprentissage. Que ce soit pour un débutant en programmation, cela lui permet de connaitre des notions d’algorithme plus facilement qu’en C\C++. Par expérience personnelle, un bon vieux pointeur, il y a rien de mieux pour perdre un novice en programmation, et un qui retourne sur la Ps4 ou la Xbox. Pour les programmeurs plus confirmés, ça prise en main est très rapide. Après il faut acquérir le doigté et la virtuosité dut à la philosophie du Python.

Son usage épuré, simplifié par des mots clés, le fait de ne pas avoir à penser aux accolades et aux points-virgules accélère grandement la vitesse de développement. Il n’y a pas besoin de gestion de mémoire, de tailles de tableaux. Et la gestion du typage est un peu moins contraignante.

Chez python, ils ne la jouent pas en solo : ce langage permet l’utilisation est  l’implémentation d’autres langages et ça c’est beau ! Cela permet la coordination de modules plus bas niveau.
Le python est un des langages les mieux documenté. Pas besoin de retourner internet ou de tester les fonctions pour comprendre comment elles fonctionnent. C’est vraiment très agréable. Les tutoriels mis à disposition sur internet sont vraiment biens faits. C’est assez rare pour un langage autant d’exemples et de contributions.  

Le python comme pour le javascribt possède des modules pour permettre d’accélérer la programmation. Le gros avantage est que cela ne sert à rien de programmer des choses qui ont déjà été programmé, ce qui s’inscrit dans la philosophie Unix. Programmer en python revient à assembler et paramétrer différents modules pour réaliser ce que l’on souhaite.


Le python est très ouvert, il n’y a aucune protection de sécurité. Le propriétaire de sametmax.com déclare : « ce n’est pas le rôle du langage de s’occuper de la sécurité, c’est celui de l’environnement », donc celui du développeur. Si ce dernier utilisent des bibliothèques peut fiable, sont programme ne l’ai pas forcément. S’il y a un imprévu visible, le développeur peut rectifier le tir en usant d’agilité d’esprit. Mais le plus gros problème est qu’en informatique, pour essayer toutes les situations possibles et inimaginables pour être sûr que le programme fait exactement ce qu’on lui demande. (Et donc des problèmes de sécurité).

Pour ma part j’utilise le python pour des taches de routines (compression et datation d’une archive par exemple), dans l’analyse (réaliser des statistiques réseaux) ou bien pour la résolution de problème mathématiques (triangulation, encadrement dichotomique … etc). Mais ce langage répond exactement à mes exigences dans l’usage dont j’ai besoin.

Je sais que cet article va m’attirer les foudres des adorateurs du Python (et il y en a un paquet)! N’hésitez pas à me contacter pour donner votre avis ou laissez un commentaire. Mais ses personnes n’ont pas forcement tort. C’est un langage poétique, où l’on peut user plus de créativité que de normes et de protocoles. Le python c’est beau.

Pour suivre l'actu du blog, vous pouvez me suivre sur mon twitter ou sur ma page facebook.

jeudi 14 avril 2016

Microtest : Test de la carte St Nucleo

Cette semaine, les cartes de développement STM32 Nucléo sont passées au crible.
Les cartes de développement sont basés sur les microprocesseurs ARM Cortex M4 32 bits. C’est une série de microprocesseurs à basse consommation d’hautes performances conçu pour être utilisé sur des systèmes embarqués. La carte de développement nucléo permet de faciliter la mise en œuvre de prototypes, et donc dans un milieu professionnel d’optimiser le travail  en recherche et développement.
Mais la STM32 Nucléo (pour la famille des ST Nucleo 64) n’est pas exclusivement conçue pour le milieu professionnel. En effet, il est accessible également pour les particuliers. Son rapport qualité prix est excellent. Nous pouvons la trouver aux alentours de 12€ TTC.


Ce produit fait concurrence à d’autres cartes de développement utilisées dans le « bricolage » comme arduino, à la fois par son prix (presque deux fois moins chère par rapport à la Arduino Uno) mais également par sa puissance de calcul, soit 100MHz contre 16MHz pour son concurrent.  

Voici un exemple d'un capteur de pulsations cardiaques et dans un second temps un capteur de pulsation nerveuse (par DesignSparkHK):



Cela fait presque 6 mois que je possède la carte stm32f411re. Cette carte possède 512 ko de mémoire flash et 128 de ROM. Cela est très largement suffisant pour la grande majorité des programmes. Pour ma part, le compilateur que j’utilise est arm med, un éditeur/compilateur en ligne possédant ça propre bibliothèque. La programmation est très intuitive pour tous développeurs même novices. Les langages utilisés sont le c et le c++ permettant l’utilisation d’une combinaison intéressante (voir prochainement un article sur l’adaptation du moteur shield R3).

Voici une présentation vidéo (en anglais ) par EEweb :


Les cartes nucléos ont a possibilités d’être alimentées en 3,3 V, 5V , 7V et 12 V, donc sont très polyvalentes et sont facilement intégrables dans tous les prototypes électroniques.
Le gros point fort est que les modules arduino uno sont compatibles avec elles en plus des modules ST existants. Le nombre de modules disponibles est donc très vaste.

Le seul point qui peut être dérangeant est le manque de documentation (ou la difficulté de compréhension) et d'exemple sur la programmation. Mais la nucléo est une carte récente et de plus en plus de personnes l'utilisent, comme dans les écoles d'ingénieurs.

Les Nucléos ont de l'avenir. Cela peut-être une excellente possibilité pour des start-up permettant une grande adaptations au différents projets et une grande polyvalence. Il y a également la possibilité de création d'entreprises spécialisées dans le prototypage fonctionnel.


N'hésitez pas à donner votre avis sur cette article pour améliorer la qualité du blog dans les commentaires ou dans la rubrique : "Contact".
Pour suivre l'actu du blog, vous pouvez me suivre sur mon twitter ou sur ma page facebook.