[Index Software] Coin des développeurs :]

Pour les gens qui ont simplement envie de discuter sans souhaiter faire passer d'information particulière.
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: Coin des développeurs :]

Message par Bubu »

2N3055 a écrit : mardi 13 novembre 2018 à 1:37 C'est vraiment un plaisir :kiss: (de pouvoir étaler un peu de confiture :D )
…Quel est le faux caractère unicode pour introduire une chaine LTR ? …
Je trouve que la page web suivante explique déjà pas mal de choses : unicode.org - Unicode Bidirectional Algorithm
dont voici d'ailleurs ci-dessous un extrait :

Code : Tout sélectionner

LRM 	U+200E 	LEFT-TO-RIGHT MARK 	Left-to-right zero-width character
RLM 	U+200F 	RIGHT-TO-LEFT MARK 	Right-to-left zero-width non-Arabic character
ALM 	U+061C 	ARABIC LETTER MARK 	Right-to-left zero-width Arabic character
et l'on retrouve aussi des informations intéressantes dans la page web suivante : dev android.com - ref - Bidi - UnicodeWrap

=======
J'utilise aussi cette page web,
juste pour me rendre compte que finalement,
je n'ai pas installé toutes les polices de caractères nécessaires
et/ou que certaines pages web ou/et applications manquent de rigueur,
mais bon…, vu l'énorme étendue de ce qu'il est possible d'afficher avec l'UNICODE,
on ne peut pas trop leur en vouloir :lol:
Merci beaucoup. J'ai trouvé un moyen d'afficher un texte RTL (par ex. arabe) avec du texte LTR (par ex. français) dedans : je force la direction de la chaîne en LTR grâce au caractère unicode 200E devant la chaîne. Du coup la chaîne est de gauche à droite, mais au moins il n'y a plus de problème. A part les dimensions de l'image qui sont légèrement fausses.
J'utilise une règle de trois pour calculer la taille de la police en fonction des dimensions de l'image voulue, et là ça dépasse un peu de quelques pixels. (Enfin on peut aussi faire l'inverse, préciser la taille de la police et obtenir les dimensions de l'image en conséquence.)
Ton post m'a bien aidé.
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
2N3055
Prolifique
Messages : 989
Enregistré le : jeudi 3 août 2017 à 7:10

Re: Coin des développeurs :]

Message par 2N3055 »

Au début, il y eu la guerre des tables de caractères, et ça a été un enfer.
Heureusement, UNICODE est arrivé.

Il y a eu aussi, cette énorme guerre des navigateurs.
Sais-tu comment, à cette triste époque,
on appelait un intégrateur web
dont la lourde tâche était d'essayer
de faire en sorte que tout s'affiche correctement
dans les navigateurs Internet Explorer ?
Spoiler : 
Un intég-râleur.
=======
…A part les dimensions de l'image qui sont légèrement fausses.
J'utilise une règle de trois pour calculer la taille de la police en fonction des dimensions de l'image voulue, et là ça dépasse un peu de quelques pixels.…
Ce n'est pas vraiment évident de choisir parmi les unités possibles
sans être vraiment sûr qu'elle sera bien interprétée à l'affichage.
Asperger diagnostiqué
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: Coin des développeurs :]

Message par Bubu »

2N3055 a écrit : mercredi 14 novembre 2018 à 16:47 Au début, il y eu la guerre des tables de caractères, et ça a été un enfer.
Heureusement, UNICODE est arrivé.

Il y a eu aussi, cette énorme guerre des navigateurs.
Sais-tu comment, à cette triste époque,
on appelait un intégrateur web
dont la lourde tâche était d'essayer
de faire en sorte que tout s'affiche correctement
dans les navigateurs Internet Explorer ?
Spoiler : 
Un intég-râleur.
=======
…A part les dimensions de l'image qui sont légèrement fausses.
J'utilise une règle de trois pour calculer la taille de la police en fonction des dimensions de l'image voulue, et là ça dépasse un peu de quelques pixels.…
Ce n'est pas vraiment évident de choisir parmi les unités possibles
sans être vraiment sûr qu'elle sera bien interprétée à l'affichage.
Pour une fois c'est simple : dans l'API Android que j'utilise pour le rendu de texte, la taille de la police est exprimée en pixels. En soit c'est inutilisable, vu que chaque lettre à sa propre taille, mais c'est pratique pour moi, pour faire le lien entre la taille de la police et la taille de l'image (exprimée en pixels). :innocent:

Sinon j'ai une question : Est-ce que ce texte arabe est valide ?
J'ai peur que les mots soient inversés, voire même toutes les lettres.
device-2018-11-14-173358.png
C'est censé vouloir dire bonjour. :oops:
Mais ne connaissant pas la langue, je ne peux vérifier.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
2N3055
Prolifique
Messages : 989
Enregistré le : jeudi 3 août 2017 à 7:10

Re: Coin des développeurs :]

Message par 2N3055 »

…J'ai peur que les mots soient inversés, voire même toutes les lettres. …
Sur ma machine, avec Firefox et variables locales en français sous debian stretch,
google présente la traduction en arabe du mot bonjour de la même façon : صباح الخير
Asperger diagnostiqué
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: Coin des développeurs :]

Message par Bubu »

romain444 a écrit : mercredi 14 novembre 2018 à 10:31 Dis donc je n'avais pas vu qu'il y avait un fil spécial développeurs !!

Du coup j'en profite pour demander quelques conseils au pro !

Je m’intéresse au développement depuis quelques mois et pratique parmi ces langages :
- HTML/CSS
- php/MySql (symfony)
- Js (jquery/ajax)
-Java/J2EE (servlet/jsp/jstl &co)

Jusqu'ici j'ai fait un site web modeste dont voici l'adresse : https://romain-lavabre.000webhostapp.com/index.php.
Ainsi qu'un petit programme en J2EE qui remplace les billets du Monopoly (city) avec règle du jeux intégré (ce n'est pas une simple calculatrice quoi) en gros il n'y a plus besoins que du plateau et des dès.

Etant au chômage et jeune, j'ai très envie de travailler dans ce domaine, et m'oriente par default vers le web (domaine qui a l'air plus ouvert aux sans diplômes :mryellow: ).
Mais j'apprécierai vraiment bosser avec java ou apprendre le C++ (application web et mobile par ex) car ce côté usine à gaz me plait beaucoup.

Pourriez vous me dire si j'ai une chance d'être embauché dans ce domaine sans diplôme ? Et hormis spring et hibernate, que pourrai-je apprendre de plus concernant ce domaine ? (Je compte apprendre le C++ vers février)

Merci d'avance pour vos conseils !
Asperansa propose un stage qui pourrait t'intéresser, à l'ENSTA.
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
Avatar du membre
PaterFamilias
Habitué
Messages : 82
Enregistré le : dimanche 21 octobre 2018 à 6:23
Localisation : Toulouse

Re: Coin des développeurs :]

Message par PaterFamilias »

Salut
romain444 a écrit : mercredi 14 novembre 2018 à 10:31 ...
- HTML/CSS
- php/MySql (symfony)
- Js (jquery/ajax)
-Java/J2EE (servlet/jsp/jstl &co)
...
Tu fais du full-stack, quoi ;-)
C'est assez ambitieux en auto-formation
Pour simplifier HTML/CSS/JS (côté client), je te suggère la librairie bootstrap (https://getbootstrap.com/) qui permet de faire des pages assez réussies
romain444 a écrit : mercredi 14 novembre 2018 à 10:31 Mais j'apprécierai vraiment bosser avec java ou apprendre le C++ (application web et mobile par ex) car ce côté usine à gaz me plait beaucoup.
Tu as déjà beaucoup à faire avec ce que tu as listé au dessus. Je ne pense pas qu'apprendre C++ ou C# en même temps que Java soit très profitable. Le côté 'usine à gaz' que tu mentionnes est déjà compliqué à maîtriser pour Java, alors rajouter du C++/C#, bof
romain444 a écrit : mercredi 14 novembre 2018 à 10:31 Pourriez vous me dire si j'ai une chance d'être embauché dans ce domaine sans diplôme ?
Pas dans les grosses SSII. Peut-être dans les webagency ou en free-lance
romain444 a écrit : mercredi 14 novembre 2018 à 10:31 Et hormis spring et hibernate, que pourrai-je apprendre de plus concernant ce domaine ?
Contrairement à ce que beaucoup pensent, hibernate ne sert à rien si on ne maîtrise pas le SQL. Hibernate permet d'aller plus vite, mais si on a pas les concepts BD sous-jacent, on ne peut pas faire un mapping correct, et on a des applications qui rament. Sinon, à l'intersection de spring et hibernate, on a spring-data qui est très ... dense (on fait énormément de chose en très peu de lignes de code).
Dans les techno à la mode, AWS (Amazon Web Service) vaut le coup de s'y pencher (beaucoup de services gratuits peuvent être utilisés au travers du Free Tier), notamment les lambda functions (mais qui s'appuient plus sur du nodeJS ou du Python que du Java). Voici d'ailleurs un lien très intéressant sur un tuto complet sous AWS : https://serverless-stack.com/#table-of-contents

Enjoy
HPI d'après ma psy, père d'un THPI (diagnostiqué) et d'un HPI (pas encore diagnostiqué)
Avatar du membre
Tugdual
Modérateur
Messages : 41279
Enregistré le : jeudi 15 novembre 2012 à 0:13
Localisation : Nord-44

Re: Coin des développeurs :]

Message par Tugdual »

TCS = trouble de la communication sociale (24/09/2014).
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: Coin des développeurs :]

Message par Bubu »

C'est toujours la même guéguerre intestine entres ces langages (C et C++) et les autres .... :innocent:
Dans les langages C et C++, pour avoir accès à une chaîne, on obtient un pointeur. Cad une adresse mémoire à son début.
Le problème sous-jacent, c'est qu'on ne donne pas d'adresse de fin : on peut écrire ce que l'on veut, avec la longueur que l'on veut.

Le développement C et C++ par contre offre de meilleures performances s'il est bien utilisé.
Il n'y a pas de garbage collector, le développeur doit lui même explicitement détruire ses allocations mémoires.
Cela peut paraître anodin, mais ça change tout, y compris le Design Pattern.
On ne programme pas de la même façon, avec ou sans Garbage Collector.
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
romain444
Habitué
Messages : 70
Enregistré le : vendredi 16 février 2018 à 2:16

Re: Coin des développeurs :]

Message par romain444 »

Merci pour vos excellents conseils !! Je vais regarder bootstrap pour l'instant car en web c'est plutôt le jolie jolie qui me fait défaut (en fait ça me fait chier !).

@Bubu, c'est justement ce qui me paraissait intéressant dans ce langage: la gestion de la mémoire, mais c'est sur qu'il vaudrait mieux que je maîtrise complètement java avant de m'y lancer :mryellow:

Sinon en effet je pense peut être à partir sur du free-lance !
Merci pour vos conseils en tout cas !
Diag TSA le 16/10/18
2N3055
Prolifique
Messages : 989
Enregistré le : jeudi 3 août 2017 à 7:10

Re: Coin des développeurs :]

Message par 2N3055 »

bubu a écrit :…Le problème sous-jacent, c'est qu'on ne donne pas d'adresse de fin …
En langage C, les chaînes de caractères sont qualifiées d'AZT : A Zéro Terminal.
Cela signifie qu'une chaîne de caractères se termine forcément par un code ASCII nul (pouvant aussi être représenté par '\0').

=======
Le langage C
Norme ANSI
2e édition

Brian W. Kernighan
Dennis M. Ritchie

ISBN 978-2-10-071577-0
Extrait des pages 38 et 39 a écrit :
Techniquement une constante de type chaîne est un tableau de caractères.
La représentation interne d'une chaîne se termine par un caractère nul '\0',
si bien qu'elle occupe en mémoire une position de plus que le nombre de caractères qui figurent entre guillemets.
Cette représentation implique que la longueur des chaînes est illimitée,
mais que les programmes doivent les lire entièrement pour déterminer leur longueur.
=======
Mais bon, pour aller un peu plus loin (qu'avec l'ASCII)
https://www.gnu.org/software/libc/manua ... Intro.html
https://www.gnu.org/software/libunistri ... troduction
etc…
Asperger diagnostiqué
Avatar du membre
Tugdual
Modérateur
Messages : 41279
Enregistré le : jeudi 15 novembre 2012 à 0:13
Localisation : Nord-44

Re: Coin des développeurs :]

Message par Tugdual »

Le problème de fond est que les routines standard de copie (memcpy, strcpy...), de déplacement (memmove...) et autres "printf" des chaines et buffers ne prennent pas en paramètre la taille maximum disponible dans la zone de destination. De ce fait, si le buffer source ou la chaine source (malgré son zéro terminal) est de taille supérieure au buffer destination, aucun contrôle n'est effectué par ces routines et le buffer destination "déborde" (la zone mémoire qui le suit est écrasée par les données supplémentaires). Les programmeurs qui ne font pas ces contrôles eux-mêmes, avant d'appeler les routines de copie ou de déplacement, ont donc toutes les chances que leur programme connaisse un débordement un jour ou l'autre, (débordement qui peut avoir lieu dans la pile pour les variables locales, avec tous les détournements imaginables)...

Les bibliothèques de base qui proposent ces routines se sont vues agrémentées de versions plus sécurisées, mais bien trop tard, elles sont peu utilisées. Et de fait, dans des codes sources un peu anciens, on trouve généralement encore des cas de mauvaise utilisation de ces anciennes routines, avec des failles potentielles à la clé...
Modifié en dernier par Tugdual le lundi 19 novembre 2018 à 10:35, modifié 1 fois.
TCS = trouble de la communication sociale (24/09/2014).
2N3055
Prolifique
Messages : 989
Enregistré le : jeudi 3 août 2017 à 7:10

Re: Coin des développeurs :]

Message par 2N3055 »

Oui, c'est tout-à fait là qu'est le problème.

Quand un programmeur utilise un langage de haut niveau,
il tellement au dessus de tout cet empilement de couches d'abstractions
qu'il en en oublie sur quoi son programme est assis,
si tant est qu'il en ait conscience.

Mais de toutes façons, on ne leur demande rien d'autre
que de savoir utiliser un compilateur
dont il est difficile (voire impossible)
de vérifier la qualité du code résultant.

D'autant que de nos jours, qui sait comment
ce code est réellement exécuté par la machine
surtout après qu'il soit passé au travers de tous ces firmwares,
pour finir par être exécuté par des composants dont on ne connaît
que les caractéristiques que les fondeurs ont bien voulu donner,
et qu'il serait difficile de vérifier.

Sans compter qu'on donne aux programmeurs rarement le temps qu'il faut,
puisqu'il suffit que le programme tombe en marche le plus vite possible
afin qu'il soit commercialisé, pour le reste, on verra plus tard … en faisant des mises à jour,
et quelques changements de versions.
Modifié en dernier par 2N3055 le lundi 19 novembre 2018 à 11:01, modifié 2 fois.
Asperger diagnostiqué
Avatar du membre
lepton
Modérateur
Messages : 4862
Enregistré le : samedi 17 décembre 2016 à 19:19

Re: Coin des développeurs :]

Message par lepton »

Question stupide : malloc () et free () ne servent pas à éviter ce genre de problème, justement ?
Diagnostiqué. CRA, 2016.
2N3055
Prolifique
Messages : 989
Enregistré le : jeudi 3 août 2017 à 7:10

Re: Coin des développeurs :]

Message par 2N3055 »

Asperger diagnostiqué
Avatar du membre
Tugdual
Modérateur
Messages : 41279
Enregistré le : jeudi 15 novembre 2012 à 0:13
Localisation : Nord-44

Re: Coin des développeurs :]

Message par Tugdual »

lepton a écrit : lundi 19 novembre 2018 à 10:40 Question stupide : malloc () et free () ne servent pas à éviter ce genre de problème, justement ?
Non, ceci ne gère que l'allocation et la désallocation de mémoire, mais n'empêche nullement les débordements dues aux copies ou déplacements mal contrôlés de buffers ou de chaines.
TCS = trouble de la communication sociale (24/09/2014).