Archives de catégorie : Développement

RealTime Database

Lors de mes phases de veille j’ai tester Firebase de Google, leur base de données temps réel.
Et c’est vrai que c’est bien sympa !

Seul hic, c’est proprio … on peut tester gratis, mais pour de la prod faut payer …
Et toutes nos données sont chez Google, j’ai rien quand à l’idée d’avoir mais mail chez eux, mais les données de clients… bof.

Du coup, j’ai implémenté un système similaire à Firebase, mais avec une DB MySQL, une App server en NodeJS (exposant une api restful), et Socket.IO pour le temps réel.

L’api restful est sécurisé par token (jws) ainsi que la connexion Socket.IO et expose automatiquement les tables de votre DB (à l’exception de la table d’utilisateurs bien sur).
Toutes modifications sur une table entraînera une remonté de l’info en temps réel via Socket.IO
J’ai aussi implémenté la gestion des fichiers pour les associés à vos entités en base de données.

J’ai réalisé une implémentation JS (client) ainsi qu’une Android.
Il est à noté que l’Android est basé sur le système un peux compliqué de compte, contentprovider, et syncadapter. Avec en plus un service pour Socket.IO

Vous trouverez les sources sur github: RTDb-API

Symfony Android Generator Bundle

Avis aux développeurs PHP Symfony & Android : Voici un bundle pour vous : Android Generator Bundle

Je vous propose aujourd’hui mon premier bundle pour Symfony : Symfony Android Generator Bundle.

Il vous permettra de générer toute la structure de base (fonctionnelle) d’une application Android, et ce à partir de vos déclarations de classes (entités) dans votre application Symfony.

Pour le dire autrement, vous préparer un projet avec Symfony, de fait, vous avez des entités pour gérer, je ne sais pas au hasard, des catégories de produits et des produits…
Vous allez créer 2 entités, YourBundle\Entity\Category et YourBundle\Entity\Product et les exposer a travers routes, contrôleurs et vues.

Ensuite, il vous suffit d’ajouter quelques annotations à vos entités, et générer l’application Android grâce à la commande :

php bin/console generate:android:app YourBundle

Bien entendu, tous est paramétrable et rien ne vous empêche d’apporter toutes les modifications souhaitées a l’application finale.

Continuer la lecture

Mise à jour de PiServer

Une petite mise à jour de PiServer :

  • Intégrant maintenant un module en C++ pour les interrupteurs Chacon (en temps réel et donc bcp plus fiable).
  • J’ai également revu toute l’architecture du projet afin de pouvoir l’installer plus facilement !
    Télécharger le fichier PiServer-1.1.tar.gz, décompressez-le, allez dans le dossier puis:
    sudo python3 setup.py install
    Le fichier de configuration a modifier pour votre environnement se trouve dans « /user/local/piserver »
    Démarrer le service par la commande « sudo service piserver start »
  • Requière : Python3 avec urllib, json, et bottle

Rendez-vous sur Githeub: https://github.com/btouchard/piserver

J’y ajoute bientôt une petite app Android qui va avec 🙂

RESTful Api en PHP JSON

Je vous propose une petite API REST (Json) en PHP que j’utilise pour mes applis Android, avec ma classe de requêtes HTTP, ou sur mes sites web.

Cette Api donne accès aux tables et fichiers sur votre serveur distant.

  • Vrai Api REST elle utilise les VERBES HTTP pour les requêtes (GET permet de lister ou d’afficher, POST d’ajouter, PUT de modifier, et DELETE de supprimer).
  • Elle est sécurisé, toute requête doit être accompagné d’un jeton de sécurité (token).
  • Elle est configurable facilement depuis un fichier php (config.php).

Elle est totalement fonctionnelle en l’état.
Je vais néanmoins ajouter sous peu un système d’exclusion pour protéger certaines données (tables ou champs) ou fichiers, ainsi que la récursivité pour les liaisons de tables dans la base de données.

Continuer la lecture

Exécuter très facilement des requêtes HTTP (HEAD, GET, PUT, POST, DELETE) sous Android

Je vous présente pour cela ma petite classe utilitaire HttpData qui me simplifie bien la vie:

String html = new HttpData(url).get().asString();

Ou encore

JSONObject json = new HttpData("http://dns.com/api.php")
                        .header("token","xxxx")
                        .data("login", "email@mail.com")
                        // ...
                        .post().asJSONObject();

Disponible sur GitHub

Il vous suffit de télécharger la classe HttpData sur GitHub et de la copier dans un package d’utilitaires

Continuer la lecture

Remplacer PHP mysql(i) par PDO

Beaucoup d’entre vous utilisent encore mysql ou mysqli pour se connecter à leur base de données et la manipuler.
Bien que c’est fonctions existent encore sur PHP5, elle sont voués a disparaître, attention donc, il faut au plus vite perdre les mauvaises habitudes.

Passer de mysql(i) à PDO n’est pas bien méchant !

Continuer la lecture

Flash est-il vraiment mort ?

Et bien je n’en suis pas si sûr que ça …
Bon ok, je suis à la base un fervent défenseur de cette superbe technologie qu’est Flash …
Mais même moi ne m’en sert quasiment plus, tant les clients n’en veulent pas, suite aux « compagnes » successives faites par Apple et Google, décidant de retirer le player de leurs périphériques (phone et tablette).

Oui c’est vrai Flash est bien plus gourmand que de l’HTML5 et du JS … Personne n’osera dire le contraire… Seulement ces HTML5 et JS réunis ne sont pas du tout à la hauteur de Flash pour des environnement utilisateur unique à forte valeur ajoutée.

Continuer la lecture

Et maintenant il répond …

Je vous ai présenté lors d’un précédent billet un contrôle vocal des lumières et de la Freebox grâce à un Raspberry Pi, une carte PiFace (pour avoir des relais électrique facilement a disposition) et le micro de l’ordinateur local.

Maintenant le Raspberry Pi peut en plus répondre à des questions simple tel que « quelle heure est-il ? », ou encore « quel temps fera t’il demain ? »

Continuer la lecture

Fichier Bootstrap PHP: Debug, Locale, Constantes, Autoload…

Lorsque vous faites une application PHP (site ou web app), il y a souvent les mêmes variables et fonctions génériques que vous reportez d’un projet à un autre.

Je vous propose ici mon bootstrap PHP (pour rappel en informatique générale un bootstrap est un petit programme d’amorçage, en PHP c’est le premier fichier qui est exécuté, il sert généralement à initialiser votre application).

Continuer la lecture

Jarvis ou Sarah en vrai

Bon ok, bien sur ce n’est pas encore à la hauteur de ce que peut nous faire Hollywood, ou juste des gents plus calés en domotique … ou en Python (il faut dire ça fait 5 jours que j’en fait…)

Mais avec:

  • Un Raspberry Pi et un mini serveur web écrit en Python donc…
  • Des relais électrique (chez moi sur une carte Piface), pour contrôler les lumières.
  • Une Freebox et son api télécommande réseau.
  • De la reconnaissance vocale, grâce là aussi à un script Python écoutant le micro, enregistrant quand il y a une activité, et transmettant l’audio à l’API de Google qui nous la traduira en texte… Speech to Text
    (A terme la reconnaissance vocale devrait être sur le Raspberry, mais attention faut du bon micro !)
  • Et enfin des expressions régulières pour l’analyse sémantique de ce que nous renvoi l’API de Google

On peut alors, par simples commandes vocales:

  • Allumer, éteindre les lumières du salon ou de la cuisine (ou tout autre installation …)
  • Contrôler la Freebox (allumer/éteindre, volume, chaînes, navigation…)

Continuer la lecture