Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/02/2018, à 09:19

minizebr95

Participer à un projet

Bonjour,

Je suis nouveau et débutant, j'ai des notions de PHP/SQL et un tout petit peu d'administration serveur Linux depuis que je fouine ici et je cherche des projets auxquels participer.
De préférence pas quelque chose de trop "grand" style jeux vidéo 3D, faudrait pas abuser non plus.

Je précise que je suis bénévole et je voudrais participer à des projets non commerciaux dans lesquels je pourrais être encadré par qqn ou une équipe pour progresser.

Voilà je sais pas trop quoi ajouter d'autre n'hésitez pas si vous avez des questions


Je pose plein de questions

Hors ligne

#2 Le 26/02/2018, à 12:03

shoot76

Re : Participer à un projet

La plupart des projets libres sont ouverts à tous (et à tous les niveaux). Il y a besoin de gens pour taper du code comme de gens pour faire de la com ou des traductions.

Après, dans le code, y'a des niveaux aussi. Chacun apporte sa pierre comme il le peut.

Par exemple, une de mes dernières contributions c'est sur TensorFlow... une grosse librairie gérée par Google pour du deeplearning. Je suis pas une bête en C++ (j'y connais rien d'ailleurs) mais ils ont du code en python. Et j'ai constaté un warning à l'éxecution du code. J'ai tout simplement corrigé le Warning. Ca m'a prit 2minutes, quelques lettres à taper sur mon clavier et un peu de lecture de doc.

Le projet peut être gros et la contribution minime. Mais cette contribution, ajoutée aux autres, fait que le projet avance, se stabilise... Faut pas être gêné d'être "débutant" smile Faut sauter le pas et faire. Personne viendra te dire que ce que t'a fait est pourri. Si le code est sale: quelqu'un sera là pour l'améliorer. Si ça marche pas: quelqu'un sera là pour t'aider à corriger. Si ça sert à rien: quelqu'un te dira gentiment "merci, mais on en a pas besoin pour l'instant. On garde ça sous le coude pour plus tard" smile

J'ai jamais eu de soucis. Vraiment .

Un seul conseil : lances-toi smile


~ Data-sientist freelance : https://skulder.fr

Hors ligne

#3 Le 26/02/2018, à 12:34

minizebr95

Re : Participer à un projet

Merci pour ta réponse. Je les trouve où ces projets libres ? Il y a des annuaires ? Et si moi-même je souhaite rendre des projets à moi libres et éventuellement obtenir de l'aide ?


Je pose plein de questions

Hors ligne

#4 Le 26/02/2018, à 12:57

Roschan

Re : Participer à un projet

Tu peux commencer par les projets qui tournent actuellement sur ta machine, si c'est Ubuntu la plupart sont libres, et dont chercher "source code nomdulogiciel" suffit généralement à trouver le dépôt gitlab ou github ou sourceforge avec le code source et une petite explication sur comment contribuer

Hors ligne

#5 Le 26/02/2018, à 14:34

shoot76

Re : Participer à un projet

minizebr95 a écrit :

Merci pour ta réponse. Je les trouve où ces projets libres ? Il y a des annuaires ? Et si moi-même je souhaite rendre des projets à moi libres et éventuellement obtenir de l'aide ?


La plupart des projets sont hébergés sur des dépôts git. Les plus connus étant github et bitbucket. Pour participer comme pour partager, c'est là bas que ça se passe smile

Dans le principe, ça se passe de la façon suivante (je vais parler de github, car c'est ce que je connais) :
- Tu "forks" un projet : Un fork (fourchette en Anglais) est une copie du projet hébergé par quelqu'un sur un dépôt qui t'appartient. C'est un "clone"
- Tu développes sur ton dépôt. Rarement sur celui du propriétaire du projet (sauf s'il t'en a donné les droits)
- Tu vérifies que ce que tu as fais fonctionne et tu enregistres tes modifications sur ton dépôt
- Tu soumets ces modifications au propriétaire du dépôt initial en lui soumettant une "pull request". S'il accepte, les modifications que tu auras faites sur ton "clone" seront incluses totalement ou partiellement (c'est lui qui décide) sur son dépôt.


~ Data-sientist freelance : https://skulder.fr

Hors ligne

#6 Le 26/02/2018, à 14:42

nam1962

Re : Participer à un projet

Un truc qui peut valoir le coup de réveiller : https://github.com/wolfv/uberwriter
Le concepteur semble l'avoir lâché il y a 3 ans et à par un brave qui fait quelques commits, il est malheureusement plus tout à fait maintenu et plus vraiment utilisable, alors que c'est l'un des plus beaux outils de markdown que j'aie utilisé.


[ Modéré ]

Hors ligne

#7 Le 26/02/2018, à 14:46

Roschan

Re : Participer à un projet

Après ça, c'est la théorie pour les petits projets (typiquement, dans un domaine que je connais : les extensions GNOME Shell, les gens qui veulent les traduire dans leur langue, ou corriger un petit bug, ils font comme ça), mais pour des plus gros projets (coucou GNOME) il faut souvent aller discuter avec les développeurs principaux avant de faire quoi que ce soit, car ils sont parfois déjà bien organisés

Dernière modification par Roschan (Le 26/02/2018, à 14:46)

Hors ligne

#8 Le 26/02/2018, à 15:06

shoot76

Re : Participer à un projet

#TROLL ON
Ah bon, Gnome est aussi lourd dans son exécution que dans l'organisation de son développement ?
#TROLL OFF

Pour participer à un projet, faut le vouloir. Soit il faut être fondamentalement altruiste et vouloir coder pour les autres. Soit, il faut connaitre le projet pour savoir ce dont il a besoin. Parce que le mec qui code pour les autres en suivant un bugtracker : je lui dis respect. J'admets, c'est assez égoïste, mais je contribue uniquement aux projets qui me tiennent à cœur et dont je suis également utilisateur.


~ Data-sientist freelance : https://skulder.fr

Hors ligne

#9 Le 27/02/2018, à 07:37

minizebr95

Re : Participer à un projet

Si j'ai suivi, c'est Python qu'il faut apprendre. smile


Je pose plein de questions

Hors ligne

#10 Le 27/02/2018, à 11:04

shoot76

Re : Participer à un projet

ça dépend de tes appétences perso smile

En général les projets c'est souvent les mêmes languages qui reviennent : C/C++/Python.

Après y'en a de plus en plus qui sont écrits en cross-platform avec du JS (basé sur Electron).

Franchement c'est vraiment une question de goûts. Le python c'est particulier. On aime ou on aime pas. Si t'aime pas, tu vas pas te forcer juste pour contribuer smile

Moi j'adore Python et j'aime pas le C... donc voilà ^^


~ Data-sientist freelance : https://skulder.fr

Hors ligne

#11 Le 27/02/2018, à 12:38

minizebr95

Re : Participer à un projet

Je fais du PHP et ça a l'air d'y ressembler, c'est pour ça smile


Je pose plein de questions

Hors ligne

#12 Le 27/02/2018, à 14:16

shoot76

Re : Participer à un projet

Si ça y ressemble c'est juste parce que c'est un langage objet qui peut également être un langage de script. PHP l'est également (objet et script).

Par contre, dans la syntaxe, c'est pas pareil. Python n'utilise pas de {}. Pour les attributs, c'est un "." et non une "->"... Et le truc qui change le plus (pour toi qui vient du PHP) : c'est un langage non typé. C'est assez déroutant et, sous certains aspects, ça peut poser problème.


~ Data-sientist freelance : https://skulder.fr

Hors ligne

#13 Le 27/02/2018, à 15:08

minizebr95

Re : Participer à un projet

C'est quoi pour toi langage de script ?


Je pose plein de questions

Hors ligne

#14 Le 27/02/2018, à 15:38

moths-art

Re : Participer à un projet

Un langage de script veut tout simplement dire qu'il est interprété et non compilé.
C/C++ sont compilés alors que Perl, Bash, PHP, Python sont interprétés.

Hors ligne

#15 Le 27/02/2018, à 15:40

shoot76

Re : Participer à un projet

C'est un langage itératif : J'exécute la ligne 1 puis 2 puis 3... jusqu'à la fin de mon script. On retrouve dans les language à script, les langages interprétés (souvent) : Python, PHP, Perl, JavaScript.

A contrario, un langage objet permet la création d'intéractions entre les classes qui représentent les objets. Par exemple, une classe Chaise aura des interactions avec une classe Table ou encore une classe Personne. Ainsi, on peut définir des comportements qui ne sont pas triviaux en script.

PHP et Python font les deux. Tu peux créer un script (une suite de commande à exécuter dans un certain ordre) ou bien de l'objet.

L'objet est un paradigme souvent utilisé ces dernières années (décennies). Par exemple, dans un projet Web en python (django). Les tables de ta base de données sont des objet. Les vues sont des objets.. Parcequ'il est plus simple de faire :

user = User.objects.get(id=1))

Sans objet, on aurait du établir la connexion à la BD (une ligne), créer la requête SQL (deux lignes), exécuter la requête (trois lignes), parser la requête pour récupérer les champs (quatre lignes), retourner les champs à la vue (cinq lignes).

On peut souvent faire de l'objet en script ou l'inverse... c'est un paradigme. Se représenter la programmation en "objets" est parfois plus simple. Mais il faut comprendre le paradigme pour l'appliquer correctement. En objet tu as une notion particulièrement pratique qui est l'héritage. Une classe peut hériter des attributs et fonctions d'une autre. Tu peux donc imaginer avoir une classe Véhicule et après faire hériter des classes Tracteur, Voiture, Moto ... ça permet de dire que Tracteur, Voiture et Moto sont d'un même type : Véhicule. Ils sont différents, mais ont une racine commune. Et le plus dur en objet, c'est trouver la bonne structure pour représenter les objets. C'est un métier à part entière smile

J'espère avoir répondu à ta question. Désolé aux experts si mon discours comprend des approximations smile


~ Data-sientist freelance : https://skulder.fr

Hors ligne

#16 Le 28/02/2018, à 08:29

minizebr95

Re : Participer à un projet

D'acc, en gros PHP / Python sont écrits à partir d'un autre langage et donc il n'y a pas de conversion en binaire ou en tous cas on s'en soucie pas ? si je comprends bien, tandis que le C par exemple est compilé donc traduit en binaire.

Sinon j'ai déjà fait un peu de POO en PHP, j'utilise l'éditeur Geany que je n'ai d'ailleurs pas trop pris le temps de personnaliser.

Je pense que je vais me pencher du côté du Python quoi que je suis aussi intéressé par l'idée de coder des applications mobiles, j'ai regardé du coté de Ionic mais ça a l'air vraiment très compliqué ça...


Je pose plein de questions

Hors ligne

#17 Le 28/02/2018, à 08:43

nam1962

Re : Participer à un projet

Très clair, merci shoot76 smile


[ Modéré ]

Hors ligne

#18 Le 28/02/2018, à 09:29

shoot76

Re : Participer à un projet

minizebr95 a écrit :

D'acc, en gros PHP / Python sont écrits à partir d'un autre langage et donc il n'y a pas de conversion en binaire ou en tous cas on s'en soucie pas ? si je comprends bien, tandis que le C par exemple est compilé donc traduit en binaire.

Sinon j'ai déjà fait un peu de POO en PHP, j'utilise l'éditeur Geany que je n'ai d'ailleurs pas trop pris le temps de personnaliser.

Je pense que je vais me pencher du côté du Python quoi que je suis aussi intéressé par l'idée de coder des applications mobiles, j'ai regardé du coté de Ionic mais ça a l'air vraiment très compliqué ça...

Le binaire n'a rien à voir là dedans smile

Le C n'est pas un langage objet. Le C++ lui, l'est. En C, tu peux représenter des "structures" qui peuvent s'apparenter à des classes mais qui n'ont pas les notions qui vont avec d'héritage et qui restent "basiques". En C++, tu manipules des classes. C'est d'ailleurs pour ça que le C++ a été créé par rapport au C smile

Tu peux très bien faire du C scripté. C'est juste que t'auras un script compilé en sortie smile

Le compilé vs interprété : c'est juste une question d'optimisation. Quand tu compiles, tu traduis ton programme directement en langage machine (le binaire). C'est donc plus simple pour ton PC de le lire. En interprété, tu traduis à la volée ton code en langage machine. Tu demandes donc à ta machine un effort double : Lire et traduire. De la même façon que tu lis plus difficilement l'anglais que le Français, ton pc lira plus facilement un binaire qu'un script interprété.

Quand on regarde des benchmark, c'est assez édifiant. Maintenant, en informatique, il faut souvent opposer les avantages et inconvénients. Développer en C ou C++, c'est fastidieux, long à apprendre (pointeurs, allocation mémoire...), compliqué à débuguer mais c'est très optimisé. Le PHP et le python, c'est l'inverse. Facile à apprendre, à débuguer mais pas du tout optimisé. Quand on choisi un langage, on le fait par rapport à ses appétences propres mais aussi par rapport aux contraintes du projet. Si c'est pour développer un site web avec 10 visiteurs par jour, on s'en fout un peu. Par contre si tu dois faire Facebook, là se pose un problème d'optimisation. Et d'ailleurs, Facebook tourne en PHP smile Ils ont du refaire pas mal de leurs services avec autre chose. Mais la base était en PHP smile

Je t'invite à regarder les excellents cours d'OpenClassRoom si ça t'intéresse.


~ Data-sientist freelance : https://skulder.fr

Hors ligne

#19 Le 28/02/2018, à 10:03

nam1962

Re : Participer à un projet

shoot76 a écrit :

(...) Maintenant, en informatique, il faut souvent opposer les avantages et inconvénients.(...)

Et aussi faire la différence entre comment les gens t'imaginent et quelle est ta réalité wink


[ Modéré ]

Hors ligne

#20 Le 28/02/2018, à 10:18

shoot76

Re : Participer à un projet

Quoi? Même pas une page stackoverflow!

Professionnellement, je crois que c'est le site que je fréquente le plus. Aveux de faiblesse!


~ Data-sientist freelance : https://skulder.fr

Hors ligne

#21 Le 28/02/2018, à 10:58

minizebr95

Re : Participer à un projet

nam1962 a écrit :
shoot76 a écrit :

(...) Maintenant, en informatique, il faut souvent opposer les avantages et inconvénients.(...)

Et aussi faire la différence entre comment les gens t'imaginent et quelle est ta réalité wink

lol


Je pose plein de questions

Hors ligne

#22 Le 28/02/2018, à 11:02

moths-art

Re : Participer à un projet

shoot76 a écrit :

Le binaire n'a rien à voir là dedans smile

Je me permets de dire que Si, justement.
Quand on compile, on transforme les instructions d'un langage en instructions machines : donc code binaires correspondants aux instructions du CPU de la machine cible.
Ce qui veut dire que tu auras un binaire (executable) par type d'archi : processeur 64 ou 32 bits, ARM etc.
Certains langages (JAVA et C# par exemple) utilisent une machine virtuelle et compile non pas en instructions machines mais en bytecode.
Quel intérêt : ça permet d'avoir une machine virtuel par type d'archi (toujours processeur 64 ou 32 bits, ARM...) avec un exe compilé une seul fois marchant sur toutes ces plate-formes.

En théorie pur : un langage compilé en bytecode est plus lent qu'un langage compilé. La réalité est souvent plus nuancé surtout sur des gros projets.

Si tu creuses un peu le Python, tu verras que y'a aussi du Bytecode.
Ca va à l'encontre de ce que j'ai dis plus haut ?
En réalité, Python est un langage interprété avec une machine virtuelle : à la première execution, il va prendre un peu plus de temps en interpretant et en convertissant en bytecode.
En revanche, à la seconde pass, il va interpréter le bytecode!

Perso, j'ai commencé PHP/Javascript puis Python et maintenant Rust.
Python me semble un très bon démarrage : très didactique, pleins de libs ou tu peux faire autre chose que du web. (gros défaut de PHP)

Rust c'est vraiment bien quand t'as envie de faire du bas niveau sans rentrer dans les travers du C/C++.
Rust fait également pleins de vérifs et contrains à envisager tous les cas d'usage : c'est verbeux mais au final on a très peu de bugs, de régressions.
J'aurais tendance à déconseiller sur de très gros projets tous les langages faiblement typé.
Le coût de maintenance inclus de créer pleins de tests unitaires sur des choses testés par le compilateur.

Hors ligne

#23 Le 28/02/2018, à 11:21

shoot76

Re : Participer à un projet

Resituer la phrase dans son contexte peut tout de même aider : Je disais que le binaire n'a rien à voir dans la catégorisation d'un langage en Script ou Objet. Rien de plus. Tout ce que tu dis est juste, mais c'est totalement HS par rapport à mon propos principal.

Mettre Python et Java sur le même pied c'est pas forcément justifié... Si leur seul point commun est d'utiliser du Bytecode : Ok. Mais quand il sagit de la JVM, faut pas oublier qu'elle te plombe 500 Mo de RAM à elle toute seule. Ça fait cher la compatibilité...


~ Data-sientist freelance : https://skulder.fr

Hors ligne

#24 Le 28/02/2018, à 12:10

moths-art

Re : Participer à un projet

shoot76 a écrit :

Resituer la phrase dans son contexte peut tout de même aider : Je disais que le binaire n'a rien à voir dans la catégorisation d'un langage en Script ou Objet.

Ok, je comprend mieux l'intention.

shoot76 a écrit :

Mettre Python et Java sur le même pied c'est pas forcément justifié... Si leur seul point commun est d'utiliser du Bytecode : Ok. Mais quand il sagit de la JVM, faut pas oublier qu'elle te plombe 500 Mo de RAM à elle toute seule. Ça fait cher la compatibilité...

Je ne mets pas du tout Python et Java sur le même pied d'égalite.. loin de là.

Pour les machines virtuelles : je trouve que c'est vraiment un soucis d'actualité : on se retrouve de plus en plus à lancer en simultanné des "petites" applis en Python, PHP, Perl, C#, Java, Ruby, Haskell, NodeJS etc. (sans compter tous les nouveaux langages kikoolol) et derrière payer ça en empreinte mémoire.
C'est en partie pour cette raison que je ne dev quasiment plus en langage interprété pour du libre.

Hors ligne

#25 Le 28/02/2018, à 14:22

shoot76

Re : Participer à un projet

Python reste tout de même un des langages les plus utilisés. Surtout dans le monde du libre.

Maintenant, y'a de plus en plus de JS qui vient mettre son nez là dedans. Avant, on utilisait la JVM pour la portabilité. Maintenant, on est plus à faire des applis "web" sur des desktop. i.e : Electron et NodeJS. C'est bien comme mauvais. Au moins, ton appli marche sur tous les devices nativement... tant que ceux-ci ont un navigateur internet compatible HTML5/CSS3/ECMA 5-6

Les temps évoluent. Et en parallèle de la monde du "on fait tout en appli web", t'as le retour des "minimalistes" qui veulent faire du code optimisé à fond. Pour qui 1µs c'est déjà trop. Et au milieu, y'a moi smile

Enfin c'est pas tout à fait vrai.. j'aime pas le JS. Du moins dans sa forme native... TypeScript m'a plu, je dois admettre. Mais c'est parce que c'est "structuré". Le JS c'est vraiment un langage de crado et ça, ça me déplait.

Rust je connais pas. Quels sont ses avantages/incéonvenients?


~ Data-sientist freelance : https://skulder.fr

Hors ligne