Il permet d'effectuer une recherche par mot-clé, entre autres, de manière à rapidement trouver du code réutilisable.
Comme l'explique son fondateur, Koders dispose de robots parcourant le Web à la recherche de code source OpenSource et récupérable de manière anonyme, avant d'inclure celui-ci dans sa base de données.
Il est possible d'effectuer une recherche par mot-clé, langage ou licence. Koders joue sur l'exhaustivité et n'effectue bien évidemment aucun audit du code référencé. Ainsi, il peut être judicieux de rechercher du code appartenant à des projets reconnus pour se faire une idée a priori de la qualité de celui-ci.
Koders revendique actuellement le référencement de 125 000 000 de lignes de code. Si quantité ne rime pas nécessairement avec qualité, ce site pourra néanmoins permettre aux développeurs de gagner un temps certain en ayant la possibilité de trouver rapidement du code librement réutilisable.
Enfin, notons que Koders reconstitue si possible l'architecture des projets référencés sous forme d'arbre. Recherchez par exemple "gedit", puis cliquez sur l'hyperlien du projet.
Aller plus loin
- Koders (395 clics)
- Article NewsForge (interview du fondateur) (69 clics)
# Il y aurait juste un probleme
Posté par b3njamin . Évalué à 10.
Par exemple, faites une recherche sur 'mysql_connect' en langage PHP, vous trouverez toute une foule de comptes utilisateurs, mots de passes et même l'adresse du serveur mysql auquel le script ce connecte.
Certes c'est une erreur d'ecrire son code comme ça, mais bon...
Après pour que ce moteur de recherche devienne l'outil préféré des personnes malintentionnées, il n'y à qu'un pas !
[^] # Re: Il y aurait juste un probleme
Posté par Ju. . Évalué à 9.
http://www.koders.com/?s=mysql_connect&_%3Abtn=Search&_%3Al(...)
On en trouve quelques uns... Mais bon à mon avis les personnes malintentionnées ont pas attendu Koders pour choper des login / pass
Mais faut bien reconnaitre que l'interface du moteur est bien faite, et que ca peut etre tres utile...
[^] # Re: Il y aurait juste un probleme
Posté par dinomasque . Évalué à 3.
Le mot de passe de la BD d'Exult est lisible sur la page que tu as cité.
Quand je pense au boulot incroyable qu'ils font (un moteur libre pour le jeu Ultima 7), c'est presque comique de voir ce genre d'erreur de débutant.
BeOS le faisait il y a 20 ans !
[^] # Re: Il y aurait juste un probleme
Posté par alt3 (site web personnel) . Évalué à 4.
[^] # Re: Il y aurait juste un probleme
Posté par Boke Bocadillo (site web personnel) . Évalué à 1.
parcequ'en faisant une recherche sur password, le résultat est pas loin d'être aussi terrible... donc meme en mettant ces variables dans un autre fichier ca change pas grand chose.
si après il faut trouver des noms sans signification pour les variables login et password? genre foo et bar?
D'ailleurs? où ce moteur recherche le code? comment récupère t'il le code php de site comme exult par ex? il est à dispostion quelquepart?
[^] # Re: Il y aurait juste un probleme
Posté par Benjamin (site web personnel) . Évalué à 10.
tu ne mets tout simplement pas tes login / pass dans du code accessible ...
Généralement c'est un fichier de conf, et si ce fichier de conf est fourni en "sample" et bien
- tu le renommes en config.php.sample (par exemple) ou conf.pl.sample ;)
- tu vire les données réelles de ce fic de conf.
[^] # Re: Il y aurait juste un probleme
Posté par Boke Bocadillo (site web personnel) . Évalué à 2.
Ce que j'avais raté c'est que c'est que le code répertorié est du code mis à disposition volontairement. Dans ce cas, effectivement, c'est une grossière erreur que de mettre ce code en libre accès.
C'est le fait qu'il y ait du code provenant d'exult qui m'a mis le doute, je pensais que c'etait le code d'une page de leur site. Je comprenais d'ailleurs pas comment les robots de Koders avaient pu le récupérer.
[^] # Re: Il y aurait juste un probleme
Posté par Etienne Charigon . Évalué à 2.
[^] # Re: Il y aurait juste un probleme
Posté par pasBill pasGates . Évalué à 5.
Essayer de cacher l'algo c'est comme mettre une vache derriere un arbre, ca finit forcement par se voir.
[^] # Re: Il y aurait juste un probleme
Posté par Jonathan ILIAS-PILLET (site web personnel) . Évalué à 3.
...
Certes c'est une erreur d'ecrire son code comme ça, mais bon...
Tu l'as dit...
De ce point de vue, on pourrait aussi reprocher à google de permettre une recherche avec le mot clef "password"...
PS : pas mal comme outil, c'est amusant de voir après quelques recherches quelques bouts de code communs dans différents projets. hop, bookmark !
[^] # Re: Il y aurait juste un probleme
Posté par M . Évalué à 10.
[^] # Re: Il y aurait juste un probleme
Posté par Sylvain Sauvage . Évalué à -2.
Et si tu cherches « comment changer son password » ?
Interdire ou restreindre l'utilisation de certains mots est un non-sens.
Se référer à l'exemple connu (légende urbaine ?) du mot « breast » (poitrine) et des cancérologues.
[^] # Re: Il y aurait juste un probleme
Posté par THE_ALF_ . Évalué à 6.
Perso, je trouve ce moteur extrèmement intéressant. Exemple typique, tu écrit un petit programme basé sur un algorithme bien classique. Et qu'est-ce que tu fais dans de telle situation, en bon feignant qui se respecte (ce que j'ai fait récemment avec un bon vieux Runge Kutta par ex.) ? Le plus rapide: tu prends le numerical recipe, tu recopie et adapte le code a ta sauce, et tu te retrouves avec un prog dont la licence est... douteuse. Alors que là tu peux facilement trouvé un morceau de prog GPL qui va bien, sans avoir à faire un 'grep machin-truc *.c' sur tout tes fichiers sources que tu aurait sous la main.
[^] # Re: Il y aurait juste un probleme
Posté par Sven Werlen . Évalué à 10.
Je vois un autre immense intérêt. Lorsque je débute dans l'utilisation d'un language de programmation ou d'une librairie spécifique, j'ai souvent besoin d'exemples concrets quant à l'utilisation d'une fonction/procédure. On en trouve régulièrement la description détaillée mais les exemples sont parfois difficiles à trouver.
[^] # Re: Il y aurait juste un probleme
Posté par Nicolas Chapin . Évalué à 3.
Je veux bien que le logiciel libre permette de reprendre le travail de quelqu'un mais quand je vois la qualité du code et de la documentation associée qui va avec je commence à avoir des doutes sur cet argument.
[^] # Re: Il y aurait juste un probleme
Posté par hermes42 . Évalué à 0.
Je me méfierai avant d'utiliser du code (algorithmique) sans connaître un minimum la personne qui l'a développé.
[^] # Re: Il y aurait juste un probleme
Posté par Germain Saval . Évalué à 5.
Le plus néfaste avec la méthode "obscure", c'est qu'elle procure une illusion de sécurité : ceux qui peuvent utiliser des informations sensibles savent aussi les obtenir, même si elles sont très bien cachées. Cacher ces informations protège du voleur occasionnel, du "cracker" de passage et ennuie l'utilisateur légitime mais le délinquant motivé (ou bien payé) arrivera à ses fins.
[^] # Re: Il y aurait juste un probleme
Posté par Vincent Pelletier . Évalué à 1.
Il traine tout de même 21,018 strcpy et 4,656 sscanf par exemple. (seuls ces exemples de buffer overflow me viennent à l'esprit à l'instant).
[^] # Re: Il y aurait juste un probleme
Posté par jigso . Évalué à 4.
[^] # Re: Il y aurait juste un probleme
Posté par Vanhu . Évalué à 1.
[^] # Re: Il y aurait juste un probleme
Posté par Remi Bonnet . Évalué à 1.
Il y a des milliers de situations ou l'usage de strcpy et sscanf se justifie complétement et est le plus approprié (quand on programme en C, bien entendu).
[^] # Re: Il y aurait juste un probleme
Posté par theocrite (site web personnel) . Évalué à 2.
31,314 gets /o\
Je ne sais pas csi c'est pareil dans tous les langagues, mais gcc me dit que warning: the `gets' function is dangerous and should not be used.
[^] # Re: Il y aurait juste un probleme
Posté par Remi Bonnet . Évalué à 1.
"gets the token of expression that is divided per " " */ printf("We are now processing the following instruction:\n"); printf("%s\n", tokenPtr); stringPtr = strstr(tokenPtr,"
-------------------------------------> []
[^] # Re: Il y aurait juste un probleme
Posté par Vincent Pelletier . Évalué à 4.
Je suis partisant du ceinture-bretelles pour ce qui est de la sécurité d'un programme.
[^] # Re: Il y aurait juste un probleme
Posté par Barbapapa . Évalué à 2.
[^] # Re: Il y aurait juste un probleme
Posté par jigso . Évalué à 4.
[^] # Re: Il y aurait juste un probleme
Posté par tipmeabout . Évalué à 0.
Tant qu'il reste le slip, ça va, on peut toujours s'y accrocher !
[^] # Re: Il y aurait juste un probleme
Posté par ckyl . Évalué à 4.
C'est bizarre la glibc si prompte a ajouter des extensions non standard dans tout les sens d'habite n'a toujours pas pensée à celles ci... Pourtant des fonctions de manipulation de chaîne de caractère non trompeuses et faciles a utiliser ca changerait dans la libc !
[^] # Re: Il y aurait juste un probleme
Posté par Bruno Muller . Évalué à 3.
Dans, ce cas, on utilise des GString ou des gchar et g_string_assign () ou les g_str* ()...
Maintenant, on peut aussi tout refaire à la main tout seul comme un grand...
[^] # Re: Il y aurait juste un probleme
Posté par ckyl . Évalué à 1.
Je parle uniquement de remplacer des fonctions de merdes (contre intuitives, pas optimisée etc) par des fonctions qui font la même chose mais qui sont intuitives donc secure !
C'est un des gros problème de la libc elle porte trop le poid de son histoire pour être utilisable de manière agréable.
[^] # Re: Il y aurait juste un probleme
Posté par Erwan . Évalué à 4.
!??!!? Je ne vois pas le rapport...
[^] # Re: Il y aurait juste un probleme
Posté par Bruno Muller . Évalué à 0.
Pourquoi ? De quel public on parle ?
Sinon, je suis d'accord avec ton commentaire.
# toto
Posté par morfal . Évalué à 10.
"sucks" termine devant "fuck", qui lui-même termine devant "merde".
Bref, on apprend beaucoup de chose sur les développeurs.
M
ps : il y a 26 "prouts" référencés.
[^] # Re: toto
Posté par jm trivial (site web personnel) . Évalué à 3.
http://www.koders.com/?s=anticonstitutionnellement&_%3Abtn=Sear(...)
[^] # Re: toto
Posté par dinomasque . Évalué à -1.
désolé ...
en tout cas je vais bien m'amuser quelques heures à faire des recherches débiles sur Koders ;)
BeOS le faisait il y a 20 ans !
[^] # Re: toto
Posté par Vanhu . Évalué à 1.
http://www.koders.com/?s=sex&_%3Abtn=Search&_%3Ala=*&_%(...)
Qui fait quand meme un honorable score de presque 800 !!!
"Totalement inutile, donc rigoureusement indispensable"....
A +
VANHU.
[^] # Re: toto
Posté par LeRat . Évalué à -4.
Désolé morfal, j'ai rien contre, m'enfin faut admettre que si on respectait les intitulés...
[^] # Re: toto
Posté par Sylvain Sauvage . Évalué à 2.
Rigoureusement inutile donc absolument indispensable ?
[^] # Re: toto
Posté par Maxx . Évalué à 4.
(quoi ? qui ne connait pas le couple foo/bar :D)
Note : ce sont 26 "prout" qui sont référencés ;-)
[^] # Re: toto
Posté par PiT (site web personnel) . Évalué à 1.
Comment le traduisez-vous ?
J'ai posé la question à un copain parlant correctement l'anglais et il m'a regardé avec des yeux ronds. C'est un terme apparament (?) utilisé en informatique uniquement.
En francais brol a une signification, je ne vois pas pq foo n'en aurait pas.
[^] # Re: toto
Posté par gc (site web personnel) . Évalué à 3.
http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?foo(...)
[^] # Re: toto
Posté par durandal . Évalué à 5.
[^] # Re: toto
Posté par Maxx . Évalué à 2.
Je viens de tomber dessus et je me suis dit... bing, je vais la poster... bah non c'était déjà fait =P
http://www.faqs.org/rfcs/rfc3092.html(...)
Bon moi mon lien il est moins officiel ;-)
[^] # Re: toto
Posté par Yann Hodique (site web personnel) . Évalué à 1.
[^] # Re: toto
Posté par Benjamin (site web personnel) . Évalué à 1.
(kill kill, je suis inhumain ;) )
[^] # Re: toto
Posté par mouling . Évalué à 5.
Bon, ben y'a encore du boulot...
[^] # Re: toto
Posté par EmmanuelP . Évalué à 2.
Bon, on va peut-être arrêter là....
[^] # Re: toto
Posté par Vincent Pelletier . Évalué à 5.
http://www.koders.com/?s=should&_%3Abtn=Search&_%3Ala=*&(...)
[^] # Re: toto
Posté par THE_ALF_ . Évalué à 3.
notez les subtiles variations de "doesn't actually work", "doesn't always work", "doesn't work yet" ...
[^] # Re: toto
Posté par Nicolas Dumoulin (site web personnel) . Évalué à 2.
ha oui quand même ! :-/
[^] # Re: toto
Posté par Ramso . Évalué à 6.
Personne n'est obligé de mettre des goto partout dans son programme mais à l'inverse c'est un outil qui répond à un besoin.
[^] # Re: toto
Posté par theocrite (site web personnel) . Évalué à 2.
http://www.acm.org/classics/oct95/(...)
Sinon une recherche dur goto + harmfull renvoie pas mal de résultats.
[^] # Re: toto
Posté par ckyl . Évalué à 2.
Pour être un peu serieux replace toi dans le contexte de l'époque... "Le goto c'est le mal" est une approche aussi stupide que d'en foutre partout et de produire du code incomprehensible. C'est un outil pratique qu'il faut utiliser avec justesse.
[^] # Re: toto
Posté par Amand Tihon (site web personnel) . Évalué à 1.
Ceux-ci sont avantageusement remplacés par les instructions continue et break, ainsi que par les blocs else: exécutés en fin de boucle si celle-ci s'est entièrement exécutée.
[^] # Re: toto
Posté par ckyl . Évalué à 3.
Si tu pars sur le "goto bark caca" faut aussi virer le break et le continue pour être cohérent. Donc tu dois toujours faire de joli boucle avec des boolean pour gerer les conditions d'arret et mettre de joli if pour le continue.
Pour faire du traitement d'erreur dans un langage ne disposant pas d'exception je suis désolé mais je vois pas plus propre/lisible que les goto (cf linux par exemple).
Je connais pas python par contre ce qu'ils proposent m'a l'air interessant je vais aller voir.
[^] # Re: toto
Posté par tgl . Évalué à 5.
> permet d'avoir un label implicite ?
Toutes les structures de contrôle sont du sucre autour de goto si tu vas par là. Prend un while par exemple, ça se compile en gros comme ça :
...
WHILE:
- faire le test
- saut conditionnel vers ELIHW
- contenu de la boucle
- saut inconditionel vers WHILE
ELIHW:
...
L'intérêt du break est le même que celui des autres instructions affectant le flot de contrôle : se passer du goto, tellement généraliste qu'il permet de faire des trucs infâmes, et ne donner accès qu'à des patterns de plus haut niveau, bien connus et maîtrisables.
> Pour faire du traitement d'erreur dans un langage ne disposant
> pas d'exception je suis désolé mais je vois pas plus propre/lisible
> que les goto
Moi non plus, mais je vois ça comme une lacune de ces langages. Attention, je dis pas non plus qu'il faudrait un mécanisme complet d'exceptions en C... Mais par contre, avoir juste un mécanisme de sorties multiples pour les blocs aurait été une bonne chose. En gros, un pattern implémentant la seule bonne utilisation des goto à être restée en plan, mais qui ne permettrait pas pour autant les autres bidouilles infâmes.
[^] # Re: toto
Posté par Antoine . Évalué à 4.
Mais yield permet certainement de joyeuses finesses.
Comme de faire des microthreads :
http://www-106.ibm.com/developerworks/linux/library/l-pythrd.html(...)
La version Stackless de Python permet quant à elle les continuations, qui ne sont rien de plus qu'un goto avec un environnement attaché autour (et qui ne sont pas sans rappeler le célèbre COME FROM d'Intercal) :
http://www.stackless.com/spcpaper.htm(...)
[^] # Re: toto
Posté par Aldoo . Évalué à 1.
Non mais, je vous jure !
( ~~~~~~> { } discretos )
[^] # Re: toto
Posté par sn00py . Évalué à 1.
# Premier utilisateur
Posté par Aurélien Bompard (site web personnel) . Évalué à 10.
# Licences opensources ???
Posté par Vanhu . Évalué à 4.
"Attention chérie, a va troller"....
[^] # Re: Licences opensources ???
Posté par Bader Lejmi (site web personnel, Mastodon) . Évalué à 2.
# Dommage... pas d'Objective-C
Posté par nicolassanchez . Évalué à 4.
dommage qu'il ne propose pas l'Objective-C...
[^] # Re: Dommage... pas d'Objective-C
Posté par Benoit . Évalué à 3.
# .. et del.icio.us
Posté par PiT (site web personnel) . Évalué à 1.
Linuxfr n'a donc plus rien a envier à /. ^^
# Windows 2003 Server, ASPX, Microsoft-IIS/6.0, ...
Posté par Alban Peignier (site web personnel) . Évalué à 5.
[^] # Re: Windows 2003 Server, ASPX, Microsoft-IIS/6.0, ...
Posté par shiva668 . Évalué à -2.
[^] # Re: Windows 2003 Server, ASPX, Microsoft-IIS/6.0, ...
Posté par shiva668 . Évalué à -2.
Mon exaltation vient d en prendre un sacré coup...
[^] # Re: Windows 2003 Server, ASPX, Microsoft-IIS/6.0, ...
Posté par Pinaraf . Évalué à 0.
http://validator.w3.org/check?uri=http%3A%2F%2Fwww.koders.com%2F(...)
ASPX powered hein
Même pas foutu de faire du HTML4 valide !
# Code source Windows
Posté par valeuf . Évalué à 2.
Non plus serieusement, c'est géniale ce petit robot. Franchement on peut vraiment gagner du temps. A une condition, COMMENTEZ VOS CODES. Car bien souvent les programmeur ne commente pas leur code. Mais il ne pense pas que dans 6 mois, leur super trucs qu'ils ont trouvé pour coder une partie de leur logiciel serras incomprehenssible car il ne se souviendront plus de la supe astuce qu'ils on utilisé. Et si l'erreur venait du genie qu'ils avait eu à coder comme cela et ben il l'ont dans le...
Alors pitié commentez pour eux qui debute (presque) comme moi.
[^] # Re: Code source Windows
Posté par ckyl . Évalué à 3.
Je choppe les sources (en Java) et la : pas de doc du code ni de l'archi, code en franglais. Et bien c'est simple je vais pas passer 2 mois a essayer de comprendre comment ca marche donc ils ont peut etre perdu un contributeur....
Si on veut que des gens rejoingnent un projet faut s'en donner les moyens, mais y'a pas grand monde de motivé pour comprendre a quoi servent les 250 classes du projet et comment tout ca fonctionne.
[^] # Re: Code source Windows
Posté par Sylvain Sauvage . Évalué à 3.
Je n'ai jamais trouvé un seul petit diagramme (fonctionnel, de classes ou autres) qui explique comment le bouzin est censé fonctionner.
Pour les nouveaux contributeurs, la méthode utilisée en général, ça doit être : « use the code ». Ensuite on passe sur IRC pour poser tout un tas de questions très utiles (où est-ce qu'on fait ça ? comment je change ça ? ...). Questions qui doivent finir par énerver quand même...
Et ça, c'est pour les nouveaux contributeurs. Pour les anciens, je me demande comment ils font pour s'y retrouver ! Ils ne préparent pas avant ? Ils codent en direct ?
Si c'est ça, c'est beau la confiance en soi... et merci bugzilla.
# Ça marche super ce truc !
Posté par Pinaraf . Évalué à 1.
Je regarde dans Koders : KABC pas trouvé.
Je cherche #include <kabc/addressbook.h> et il me sort...
An internal error occurred. We are sorry for any inconvenience.
Vous pouvez essayer #include tout seul ça marche
Mais dès qu'il y a un truc qui ressemble à de la balise html, quedal !
[^] # Re: Ça marche super ce truc !
Posté par Franck . Évalué à 2.
De manière générale qu'est-ce que tu en as à faire de pas pouvoir saisir des trucs qui ressemblent à une balise ? Chercher simplement le nom complet du header est identique, exemple :
gtk/gtk.h => 4942 résultats
[^] # Re: Ça marche super ce truc !
Posté par Pinaraf . Évalué à 1.
Mais y'a pas que ça ! Il peut y avoir des cas où y'a des < et des > dans le code source, mais tu ne peux pas chercher ça dans Koders, il te sort une exception !
[^] # Re: Ça marche super ce truc !
Posté par Marc Perron (site web personnel) . Évalué à 1.
http://www.koders.com/?s=while+%28+i+%3C10+%26%26+i%3E+0+%29+&_(...)
tandis que "while (i <j && i> 0 )" me donne une erreur.
http://www.koders.com/?s=while+%28+i+%3Cj+%26%26+i%3E+0+%29+&_%(...)
Il me semble que le moteur fait une analyse des mot-clé et élimine tout ce qui ressemble aux balises html. Peut-être pour limité les moyens de compromettre le moteur?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.