La Fibre

Satellite et faisceau hertzien => Satellite et faisceau hertzien => mobile Faisceau hertzien => Discussion démarrée par: vincent0 le 07 août 2016 à 12:08:56

Titre: Carte FH : portage sur Android
Posté par: vincent0 le 07 août 2016 à 12:08:56
Hello tout le monde,

Ce sujet a pour but de lister un peu ce que l'on va faire sur ce projet, qui veut participer etc.
Pour commencer, ceux qui veulent participer au développement, vous êtes invités à vous signaler, en indiquant votre niveau de connaissance de la plateforme. Ceux qui ne connaissent pas la plateforme mais souhaitent profiter de ce projet pour s'y mettre, vous êtes les bienvenues. N'hésitez pas à mentionner aussi vos expériences de développement divers. Pour rappel, Android, c'est du java. Alors ceux qui connaissent le langage peuvent s'y mettre sans difficulté.

Pour info, le projet sera mis sur Github et on mettra l'appli sur Google play pour en faciliter la diffusion.

Sinon, nous aurons aussi besoin de testeurs. C'est plus simple, il suffit d'avoir un téléphone sous Android, de connaitre les fonctionnalités de la carte actuelle et d'accepter de passer un peu de temps pour remonter les bugs (sur github ou alors sur ce forum par exemple).

Fonctionnalités : il faudra établir une liste de fonctionnalités de base que l'on mettra dans l'appli avec ensuite un certain nombre d'évolution que l'on fera.
Alors, à vos idées :)

A suivre.
Titre: Carte FH : portage sur Android
Posté par: Nico le 07 août 2016 à 16:55:48
Testing : je suis (évidement) candidat, avec un GS4 et un Moto E 4G.

Fonctionnalités : la base me semble la carte avec les menus de gauche/droite, une recherche de lieu et éventuellement de  support. Plus l'affichage d'un site (quand on clique sur le point) et des photos liées ?
Titre: Carte FH : portage sur Android
Posté par: buchanan le 12 août 2016 à 16:43:59
Pour ma part je n'ai pas la disponibilité pour à la fois participer au développement du portage Android et continuer le développement de la partie serveur et du site web, je préfère donc me concentrer su ce dernier et rester disponible pour faire évoluer/corriger la partie serveur autant que de besoin au fur et à mesure que le portage avancera.
Titre: Carte FH : portage sur Android
Posté par: vivien le 12 août 2016 à 18:31:28
De mon coté, je suis disponible pour gérer la partie hébergement si il y a des besoins et pour faire des tests sur Android.

Je suis vraiment intéressé par cette application, mais je n'ai pas les compétences pour le développement.

J’apprécie aussi que ce soit un projet open source (sous Github).

Je suis attristé de voir qu'on n'arrive pas à  avoir un bon test de débit open source type SpeedTest / nPerf / ...
Titre: Carte FH : portage sur Android
Posté par: Empereur le 12 août 2016 à 18:36:57
Hello,

Ça promet  8) ! Je veux bien vous aider à tester l'application (Samsung S7). Bon courage pour le dev  ;)
Titre: Carte FH : portage sur Android
Posté par: vincent0 le 15 août 2016 à 12:59:35
Si certains  souhaitent se mettre à Android via cette appli, pas de problème les développeurs débutants sont acceptés (je l'ai été aussi un jour).
Ce n'est pas si difficile que ça, surtout si on connait un peu le java de base.

Titre: Carte FH : portage sur Android
Posté par: buchanan le 15 août 2016 à 23:05:41
Pour donner du grain à moudre, j'ai documenté dans le petit fichier texte ci-joint le fonctionnement actuel des requêtes vers https://carte-fh.lafibre.info/liens.php (paramètres de la requête et contenu de la réponse)

Pour résumer : sur la carte actuelle cette requête est exécutée à chaque fois qu'on bouge la carte ou qu'on modifie les critères d'affichage, et elle retourne les liaisons et les supports à afficher avec leurs propriétés élèmentaires. Elle ne retourne pas les détails pour les supports (ce qu'il y a dans le popup) et le profil des liaisons : tout ça fait l'objet d'autres requête que je documenterai plus tard.

Avertissement : une bonne partie de tout ça a été fait alors que je n'avais presque aucune base en programmation web, il y a des choses incongrues/mal faites qui en feront sans doute hurler plus d'un  ;D
Titre: Carte FH : portage sur Android
Posté par: vincent0 le 17 août 2016 à 19:47:08
Salut,

Ca peut etre utile d'ajouter swagger (qui est un outil web d'appel d'API) sur ton projet. On l'utilise au taff et c'est vraiment pratique.
Une démo ici : http://petstore.swagger.io/

Le site du projet : http://swagger.io/

Comme ça, tu fais ta doc directement dans l'outil.

Peut être aussi on aurait besoin d'un site de beta pour pas taper directement sur la prod ? Je vais voir si je peux faire un conteneur docker avec ton code.
Je vous tiens au jus.

Je vais essayer de lancer un bout de projet sur github prochainement.

Bonne journée.
Titre: Carte FH : portage sur Android
Posté par: vincent0 le 21 août 2016 à 11:42:09
Yo,

Du neuf ; j'ai commencé le projet ici https://github.com/vdavy/cartefh-android

A venir, faire une première activité et ensuite initialiser l'affichage d'une carte et d'un système de collecte de bug.

Je cherche une personne ayant des connaissances en logiciels de traitement d'images (gimp, photoshop) qui m'aiderait à faire le design de l'app (écran, icones, etc...). Il suffira juste de me donner des images et je ferai l'intégration. Mais je suis tellement une bite au niveau artistique que je ne sais faire que des trucs hideux (mais vraiment hideux). Alors à votre bon coeur !

Bonne journée.
Titre: Carte FH : portage sur Android
Posté par: buchanan le 21 août 2016 à 13:04:34
J'ai jeté un oeil à Swagger mais je suis un peu perdu dans tout le process et les outils associés qu'ils proposent ...    :-\   si on cherche juste à mettre en forme une documentation à la main je ne sais pas trop par quel bout il faut le prendre

Pour faire marcher un site beta indépendant il faut :
 - Une machine avec PHP et curl
 - Récupérer tout ce qui se trouve sur le github du projet et le placer à la racine du site
 - Récupérer le dossier contenu dans ce fichier (http://carte.fh.free.fr/201608.7z) et le placer à la racine également. Chaque mois de données est placé dans un dossier, celui-ci est celui du mois d’août. Ainsi le site beta marchera au moins pour août.

Normalement c'est à peu près tout... Les profils d'altitude des liaisons ne fonctionneront pas car il manquera une clé permettant l'utilisation de l'API IGN.
Titre: Carte FH : portage sur Android
Posté par: vincent0 le 22 août 2016 à 10:58:06
Salut,

J'ai remonté vite fait dans un container docker le site et ça marche nickel. Je l'ai extrait et mis à disposition sur un google drive ici : https://drive.google.com/open?id=0B6hn86oKiR2mODBIWnlQRktId1U

Pour le faire marcher :
- avoir docker installé sur son pc
- télécharger le fichier et l'importer avec un docker import docker.carte-fh.tar.gz carte-fh (pas docker load, c'est un extract de container pas une image)
- démarrer un nouveau container en ouvrant le port 80 du container si on le veut accessible
- démarrer le serveur http dans le container - c'est une image base ubuntu donc pas avec un startup automatique
- git et curl sont installés pour pouvoir mettre à jour le code et aussi télécharger les fichiers de données
- accéder ensuite le serveur web via un navigateur - utiliser docker inspect pour connaitre l'ip du container si on a pas ouvert les ports

docker import docker.carte-fh.tar.gz carte-fh
docker run -p 80:80 --name carte-fh -it carte-fh bash
service apache2 start

Enjoy !

PS : par contre, pour le truc de la clé IGN qui manque, je n'ai pas trouvé ce qui ne marchait pas. @Buchanan : tu peux me dire stp ce qui n'est pas censé marcher ?

Merci
Titre: Carte FH : portage sur Android
Posté par: buchanan le 22 août 2016 à 13:00:24
PS : par contre, pour le truc de la clé IGN qui manque, je n'ai pas trouvé ce qui ne marchait pas. @Buchanan : tu peux me dire stp ce qui n'est pas censé marcher ?
Sur la carte, la petite icône en bas à gauche avec une montagne verte permet d'afficher le profil d'une liaison sélectionnée.
Pour ça, le code présent dans profil.php interroge l'API de l'IGN. Et pour pouvoir faire cette interrogation, il faut disposer d'une clé personnelle à inclure dans la requête. Le code côté serveur va chercher cette clé dans /config/ign_key.txt , qui bien sur n'est pas sur le github. Du coup il doit se produire une erreur à ce moment là.
Titre: Carte FH : portage sur Android
Posté par: vivien le 22 août 2016 à 13:04:28
L'API du Géoportail est destinée à être intégrée dans un site internet. L'éditeur du site doit être en mesure d'intégrer du code JavaScript ou Flash dans la page destinée à héberger la cartographie.

Il doit demander une clé d'accès pour chacun des sites internet pour lequel il souhaite intégrer l'API Géoportail.

La demande et l'obtention d'une clé d'accès se font en ligne par simple demande sur le site api.ign.fr après inscription.

=> https://api.ign.fr/moncompte/login

les clés générées ne peuvent être utilisées qu'à des fins de développement. Pour obtenir une clé valide pour un site en production, rendez-vous sur le site professionnel de l'IGN

=> http://professionnels.ign.fr/
Titre: Carte FH : portage sur Android
Posté par: buchanan le 22 août 2016 à 13:11:25
@vincent0 : je ne connais pas du tout la technique des containers, mais si l'adresse du container n'est pas connue à priori (ce que je déduis de : "utiliser docker inspect pour connaitre l'ip") comment s'assurer que le javascript excuté côté client va bien diriger ses requêtes vers le container qui sert de serveur et non pas vers "carte-fh.lafibre.info" ? (variable base_url dans le_script.js)
Titre: Carte FH : portage sur Android
Posté par: vincent0 le 22 août 2016 à 13:17:32
Alors c'est vraiment bizarre car cette petite icone en bas à gauche affiche bien le profil de la liaison via les montagnes.
Pourtant, je n'ai pas du tout ajouté une clé.

Tu peux essayer si tu veux
Titre: Carte FH : portage sur Android
Posté par: buchanan le 22 août 2016 à 13:23:26
Alors c'est vraiment bizarre car cette petite icone en bas à gauche affiche bien le profil de la liaison via les montagnes.
Pourtant, je n'ai pas du tout ajouté une clé.

Tu peux essayer si tu veux

Je ne pourrai pas essayer avant ce soir, mais dans ce cas il y a de fortes chances que le navigateur, après avoir chargé la page d'accueil avec ses styles et ses scripts, soit toujours en train d'interroger carte-fh.lafibre.info, et non pas le serveur qui est dans le container. Tu peux le voir avec les outils de développement intégrés au navigateur.
Si le fichier le_script.js n'a pas été modifié avant d'être intégré au container, il est certain que c'est ça  ;)
Titre: Carte FH : portage sur Android
Posté par: vivien le 22 août 2016 à 13:26:07
Tu as vérifié avec Wireshark qu'il n'y avait aucune requête qui partait vers https://carte-fh.lafibre.info/ ?

Le plus simple pour bloquer les requêtes vers le site d'origine, c'est de renvoyer carte-fh.lafibre.info vers une IP bidon

Sur ton PC client, il faut modifier le hosts.

sous linux :
sudo nano /etc/hosts et rajoute une ligne
10.10.10.10 carte-fh.lafibre.info
Si tu tentes de joindre le site, tu partiras vers l'IP 10.10.10.10 donc pas de réponse.
Titre: Carte FH : portage sur Android
Posté par: vincent0 le 22 août 2016 à 13:27:29
Effectivement, je n'ai rien modifié.

Ca va taper sur le serveur de prod.
Titre: Carte FH : portage sur Android
Posté par: vincent0 le 22 août 2016 à 13:28:24
vers l'IP 10.10.10.10 donc pas de réponse.

Il faut modifier le script avant de taper dessus, je vais mettre à jour le container docker.
EDIT : le container docker est à jour.
Titre: Carte FH : portage sur Android
Posté par: vincent0 le 22 août 2016 à 13:44:23
Effectivment maintenant, ça ne marche plus mais c'est ce que j'attendais.
On prend bien les données sur le serveur et non plus directement sur le site de la prod.

Sinon, une bonne pratique en dev web est de ne pas utiliser des url absolues mais des urls relatives surtout quand tu tapes sur ton site (tu utilises des absolues pour les ressources externes, mais tu restes en relatifs tant que tu es sur ton serveur). Sinon, c'est vraiement galère à maintenir.

Pour ton script, tu peux mettre un "/" pour la base_url, ça marche impeccable. J'ai vu aussi des scripts php qui ont des urls absolues. On évite là aussi dans la mesure du possible de les utiliser.
En mettant un "/", le navigateur utilise le répertoire relatif du serveur, donc le container.

Pour Vivien, j'ai débuggé avec le debbugeur JS de chrome, c'est encore plus facile que avec wirehark :)

A suivre.
Titre: Carte FH : portage sur Android
Posté par: buchanan le 22 août 2016 à 18:50:11
Ça marche, j'ai remplacé l'URL par une URL relative dans le script client (j'ai gardé qqs trucs en commentaire car je me souviens en avoir eu besoin pour divers tests)  ;)

Pour le PHP côté serveur, les deux endroits où l'URL absolue est utilisée concernent un morceau de PHP que je veux exécuter de manière asynchrone sans en attendre le résultat. En fouillant un peu sur le web, une méthode simple que j'ai trouvée est d'appeler ce PHP avec curl en mettant un timeout très faible, comme ça on passe à la suite sur le code principal et le PHP annexe continue de s'exécuter.
Il s'agit de rafraichir un cache des associations Support (avec son n°) <-> Photos représentatives dans la galerie. Les requêtes sur l'API Piwigo pour construire ces associations sont trop longues pour être exécutées à chaque fois.

Du coup il faudrait modifier un peu le code pour pouvoir tout de même fournir une URL absolue à curl à partir d'URL relatives. Si vous avez une solution plus élégante que le curl avec timeout, je suis preneur ! Mais il me semble qu'on s'écarte pas mal du sujet "Portage sur Android"  :D
Titre: Carte FH : portage sur Android
Posté par: vincent0 le 22 août 2016 à 19:58:54
Ya pas de thread en PHP pour faire un asynchrone propre ?

Un exemple de thread : http://stackoverflow.com/questions/70855/how-can-one-use-multi-threading-in-php-applications
Titre: Carte FH : portage sur Android
Posté par: hell0 le 23 août 2016 à 18:28:38

Je cherche une personne ayant des connaissances en logiciels de traitement d'images (gimp, photoshop) qui m'aiderait à faire le design de l'app (écran, icones, etc...). Il suffira juste de me donner des images et je ferai l'intégration. Mais je suis tellement une bite au niveau artistique que je ne sais faire que des trucs hideux (mais vraiment hideux). Alors à votre bon coeur !


Salut !

Dès que je trouve un peu de temps je pourrais essayer de me consacrer à cette partie :)
Titre: Carte FH : portage sur Android
Posté par: vincent0 le 23 août 2016 à 20:10:19
Salut !

Dès que je trouve un peu de temps je pourrais essayer de me consacrer à cette partie :)
+1 !!
Titre: Carte FH : portage sur Android
Posté par: seianec le 30 août 2016 à 15:37:03
Je suis intéressé pour la partie test, je suis développeur mais en Cobol, pas trop top pour de l'android xD
Titre: Carte FH : portage sur Android
Posté par: petrus le 02 septembre 2016 à 10:46:38
Je suis intéressé pour la partie test, je suis développeur mais en Cobol, pas trop top pour de l'android xD

Yeah, après la version Android la version z/OS :D