#851 Le 15/03/2013, à 15:34
- Elzen
Re : /* Topic des codeurs [8] */
Hey, j'n'avais pas vu ! Je n'suis pas sûr de me rappeler des différents algos de tri classiques, mais en tout cas, je suis fan de ceux-là
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#852 Le 16/03/2013, à 13:01
- tshirtman
Re : /* Topic des codeurs [8] */
The Uploader a écrit :Tu manipules constamment des références dans un langage objet.
Pas forcément. En C++ les deux existent (pointeurs et références).
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind.
Sinon, j'ai pas regardé en profondeur le lien sur le c++ "dynamique", mais je sais pas si c'est une très bonne idée d'ajouter ça à un langage comme c++ ^^.
Hors ligne
#853 Le 16/03/2013, à 13:49
- grim7reaper
Re : /* Topic des codeurs [8] */
Alan Kay a écrit :I invented the term Object-Oriented, and I can tell you I did not have C++ in mind.
En même temps, le terme a été créé avant l’apparition du C++ (ou alors, le C++ en était encore à ses débuts, genre c’était tout juste du C with classes), donc bon ça fait un peu mauvaise fois pour le coup…
Sinon, j'ai pas regardé en profondeur le lien sur le c++ "dynamique", mais je sais pas si c'est une très bonne idée d'ajouter ça à un langage comme c++ ^^.
Déjà, il le déconseille très fortement pour du code de production, pour des raisons évidentes de sécurité ^^'
Mais dans la phase de développement, ça semble apporter pas mal de souplesse. Le genre de trucs que l’on reproche justement aux langages compilés par rapport aux langages de scripts.
Hors ligne
#854 Le 16/03/2013, à 15:23
- tshirtman
Re : /* Topic des codeurs [8] */
Je pense qu'il veut dire qu'il ne pensais pas quelque chose qui ressemble à ce qu'est C++, qui a longtemps été considéré, par l'industrie et par l'enseignement comme *le* langage objet.
Il donne plus d'info sur ce qu'il considère comme "OOP" ici:
http://userpage.fu-berlin.de/~ram/pub/p … kay_oop_en
OOP to me means only messaging, local retention and protection and
hiding of state-process, and extreme late-binding of all things. It
can be done in Smalltalk and in LISP. There are possibly other
systems in which this is possible, but I'm not aware of them.
(trouvé via wikiquote).
Hors ligne
#855 Le 16/03/2013, à 15:37
- The Uploader
Re : /* Topic des codeurs [8] */
Pour ce que ça vaut, Ruby utilise le passage de message entre objets :
http://rubylearning.com/blog/2010/11/03 … nd-blocks/
Par contre l' "extreme late binding" : ça dépend de quoi on parle, de l'absence de compilateur ou d'un code comme celui-ci :
# early binding:
def create_a_foo(*args)
Foo.new(*args)
end
my_foo = create_a_foo
# late binding:
def create_something(klass, *args)
klass.new(*args)
end
my_foo = create_something(Foo)
Y'a une définition exacte ?
Pour ça :
local retention and protection and
hiding of state-process
C'est "facile" à faire (mot clé 'private', etc...) mais ça dépend comment on code...
Ça peut vite être foutu en l'air avec Object#instance_variable_get :
http://stackoverflow.com/questions/2131 … te-in-ruby
(par contre je doute qu'on puisse les modifier)
Ou Object#instance_eval :
http://jamescrisp.org/2009/08/05/spying … s-in-ruby/
Dernière modification par The Uploader (Le 16/03/2013, à 16:43)
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#856 Le 16/03/2013, à 16:37
- grim7reaper
Re : /* Topic des codeurs [8] */
Je pense qu'il veut dire qu'il ne pensais pas quelque chose qui ressemble à ce qu'est C++, qui a longtemps été considéré, par l'industrie et par l'enseignement comme *le* langage objet.
En même temps, l’industrie a rarement été bonne conseillère…
Et l’enseignement a souvent été à côté de la plaque pour le C++, donc bon
Après hein, c’est sur que le C++ à des défauts et que c’est pas LE langage objet (titre qu’il n’a d’ailleurs jamais revendiqué, d’autant plus qu’il est multi-paradigme).
Par contre, Java l’a souvent revendiqué et il est loin d’être un très bon langage objet aussi (types de base non objets (bon y’a les wrappers…), les fonctions ne sont pas des objets, …).
ça dépend de quoi on parle, de l'absence de compilateur
Étant donné qu’il cite Lisp et que Lisp peut être compilé, je pense que non du coup.
Pour ça :
local retention and protection and
hiding of state-processC'est "facile" à faire (mot clé 'private', etc...) mais ça dépend comment on code...
Ça peut vite être foutu en l'air avec Object#instance_variable_get :
http://stackoverflow.com/questions/2131 … te-in-ruby
(par contre je doute qu'on puisse les modifier)
Ou Object#instance_eval :
http://jamescrisp.org/2009/08/05/spying … s-in-ruby/
Même sans ça, y’a juste à voir les gens qui mettent tout en private mais font des getters/setters pour chaque champs…
Hors ligne
#857 Le 19/03/2013, à 06:12
- nesthib
Re : /* Topic des codeurs [8] */
plop les gens o/
une méthode de programmation révolutionnaire → http://gkoberger.github.com/stacksort/
enjoy
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#858 Le 21/03/2013, à 11:15
- grim7reaper
Re : /* Topic des codeurs [8] */
Bon, je commence à regarder un peu le modèle sur lequel je vais devoir bosser (pour le moment je me contentai de le lancer, maintenant je vais devoir le modifier).
Bon, je viens de voir une fonction qui prends 147 paramètres en entrée -___-"
Bon pour excuse, à la base il n‘a pas été développé par des informaticiens et maintenant il traîne son historique
Sinon m’étant pas mal amusé avec Python récemment, j‘ai décidé (depuis le temps que je le dit, au moins 3 ans…) de me mettre à Ruby pour voir.
Pour me faire la main j’ai développé un truc genre configparser (mais sans interpolation de variable). Avec ça j’ai pu me mettre dans le bain (test unitaire en Ruby, utilisation de rake, création d'une gem, etc.)
Et là depuis que je suis tombé sur ça j’essaye de le refaire en Ruby (ça marche plutôt bien je devrais le finir avant la fin de la semaine si tout va bien, et en plus propre que la version Python). Là c’est une bonne occasion de voir la FFI en Ruby.
Hors ligne
#859 Le 21/03/2013, à 11:28
- The Uploader
Re : /* Topic des codeurs [8] */
Bon, je commence à regarder un peu le modèle sur lequel je vais devoir bosser (pour le moment je me contentai de le lancer, maintenant je vais devoir le modifier).
Bon, je viens de voir une fonction qui prends 147 paramètres en entrée -___-"
Tous obligatoires ?
Je... je comprends même pas comment on peut avoir autant de paramètres... C'est une fonction qui tente de tout faire même le café ? O_O
Déjà à 8/10 j'commence vraiment à m'inquiéter...
Bon pour excuse, à la base il n‘a pas été développé par des informaticiens et maintenant il traîne son historique
Dur.
Sinon m’étant pas mal amusé avec Python récemment, j‘ai décidé (depuis le temps que je le dit, au moins 3 ans…) de me mettre à Ruby pour voir.
Pour me faire la main j’ai développé un truc genre configparser (mais sans interpolation de variable). Avec ça j’ai pu me mettre dans le bain (test unitaire en Ruby, utilisation de rake, création d'une gem, etc.)
Ça m'a l'air de ressembler à OptionParser sauf que c'est pour les arguments en ligne de commande. Mais on peut peut-être l'adapter pour prendre un fichier "à la .INI" en entrée (ça fait longtemps que j'ai pas touché à OptionParser). Si c'est le cas ça peut te faire gagner du temps :
Features
1.The argument specification and the code to handle it are written in the same place.
2.It can output an option summary; you don’t need to maintain this string separately.
3.Optional and mandatory arguments are specified very gracefully.
4.Arguments can be automatically converted to a specified class.
5.Arguments can be restricted to a certain set.
edit : https://www.ruby-toolbox.com/projects/configparser
Et là depuis que je suis tombé sur ça j’essaye de le refaire en Ruby (ça marche plutôt bien je devrais le finir avant la fin de la semaine si tout va bien, et en plus propre que la version Python). Là c’est une bonne occasion de voir la FFI en Ruby.
http://rubygems.org/gems/ffi ?
Dernière modification par The Uploader (Le 21/03/2013, à 11:32)
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#860 Le 21/03/2013, à 11:43
- grim7reaper
Re : /* Topic des codeurs [8] */
grim7reaper a écrit :Bon, je commence à regarder un peu le modèle sur lequel je vais devoir bosser (pour le moment je me contentai de le lancer, maintenant je vais devoir le modifier).
Bon, je viens de voir une fonction qui prends 147 paramètres en entrée -___-"Tous obligatoires ?
C’est du Fortran, donc oui.
Les paramètres optionnels, ça existent pas (du moins en Fortran 95)
Je... je comprends même pas comment on peut avoir autant de paramètres... C'est une fonction qui tente de tout faire même le café ? O_O
En gros l’architecture (si on peut parler d’architecture, encore une fois ça n’a pas été fait par des gens formés pour) du bousin c’est un fichier par module (donc ça fait des très gros fichiers, genre celui que je regardais là il fait presque 10 000 lignes…). Et cette fameuse fonction c‘est le point d’entrée du module donc ils fourrent tout les paramètres pour le module en paramètres de cette fonction.
grim7reaper a écrit :Pour me faire la main j’ai développé un truc genre configparser (mais sans interpolation de variable). Avec ça j’ai pu me mettre dans le bain (test unitaire en Ruby, utilisation de rake, création d'une gem, etc.)
Ça m'a l'air de ressembler à OptionParser sauf que c'est pour les arguments en ligne de commande.
OptionParser semble correspondre à argparse en Python.
Mais on peut peut-être l'adapter pour prendre un fichier "à la .INI" en entrée (ça fait longtemps que j'ai pas touché à OptionParser). Si c'est le cas ça peut te faire gagner du temps
Bah je le faisais surtout histoire de pratiquer, y’a déjà une ou deux gems qui font ça aussi (quoique qu’elles me semble moins flexible que ce que j‘ai fait).
Mais là je venais de coder ça en Java, je voulais me mettre à Ruby donc je suis parti là-dessus.
grim7reaper a écrit :Et là depuis que je suis tombé sur ça j’essaye de le refaire en Ruby (ça marche plutôt bien je devrais le finir avant la fin de la semaine si tout va bien, et en plus propre que la version Python). Là c’est une bonne occasion de voir la FFI en Ruby.
Ouais, c’est ce que j’utilise. DL avait une doc’ moisie (et il semble qu‘il soit déprécié), Fiddle semble être plus ou moins un remplacement mais la doc’ est toujours aussi maigre.
Puis finalement je suis tombé sur ffi oui, et là bonne doc, bonne API donc en avant !
Depuis Ruby 1.9.3 je crois que ça vient par défaut (à vérifier).
Dernière modification par grim7reaper (Le 21/03/2013, à 11:44)
Hors ligne
#861 Le 21/03/2013, à 12:24
- sweetly
Re : /* Topic des codeurs [8] */
The Uploader a écrit :grim7reaper a écrit :Bon, je commence à regarder un peu le modèle sur lequel je vais devoir bosser (pour le moment je me contentai de le lancer, maintenant je vais devoir le modifier).
Bon, je viens de voir une fonction qui prends 147 paramètres en entrée -___-"Tous obligatoires ?
C’est du Fortran, donc oui.
Les paramètres optionnels, ça existent pas (du moins en Fortran 95)
Il me semble que l'attribut OPTIONAL sur un intent(in), c'est possible depuis le fortran90, non ? Bien que ça soit dangereux et lourd.
Hors ligne
#862 Le 21/03/2013, à 13:05
- grim7reaper
Re : /* Topic des codeurs [8] */
Ha ouais, bien vu, j’avais oublié ça.
Mais là en l’occurrence ils sont bien tous obligatoire.
Hors ligne
#863 Le 21/03/2013, à 19:57
- Rolinh
Re : /* Topic des codeurs [8] */
@grim: c'est dispo quelque part ce que tu codes?
Sinon, pour te rassurer un peu, pas plus tard que cette semaine j'ai essayé de compiler un projet pour un ami (il voulait voir si j'y parvenais avec ma machine) et la compilation a échoué notamment en raison d'un fichier C un peu... gros (260'000 lignes dans un seul fichier... et non, il n'y a pas un 0 de trop). Sur une machine avec 2G de ram, ça plante par manque de mémoire (c'est un projet comportant à l'heure actuelle plus de 10'000'000 de lignes de code, principalement en C, C++ et Lisp).
Hors ligne
#864 Le 21/03/2013, à 20:19
- Dr Le Rouge
Re : /* Topic des codeurs [8] */
@ rolinh : le « projet », c'est emacs ? ^^
C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog
Hors ligne
#865 Le 21/03/2013, à 20:25
- Rolinh
Re : /* Topic des codeurs [8] */
Non, un projet rassemblant plusieurs universités.
Hors ligne
#866 Le 21/03/2013, à 20:28
- grim7reaper
Re : /* Topic des codeurs [8] */
@grim: c'est dispo quelque part ce que tu codes?
Les trucs en Ruby ? Ça va l’être ouais.
Je sais pas encore où et comment (vu que j’ai plus mon serveur maison), mais ouais ^^.
Le truc avec Alsa je peux peut-être le mettre sur rubygems, pour le truc sur les fichiers INI je ne sais pas. À voir.
Au pire je posterais ici.
Sinon, pour te rassurer un peu, pas plus tard que cette semaine j'ai essayé de compiler un projet pour un ami (il voulait voir si j'y parvenais avec ma machine) et la compilation a échoué notamment en raison d'un fichier C un peu... gros (260'000 lignes dans un seul fichier... et non, il n'y a pas un 0 de trop). Sur une machine avec 2G de ram, ça plante par manque de mémoire (c'est un projet comportant à l'heure actuelle plus de 10'000'000 de lignes de code, principalement en C, C++ et Lisp).
oO
C’est quoi comme projet ?
Et pourquoi un fichier de 260 000 lignes ?
Remarque ça me rappelle quand j’ai dû télécharger le code source d’Android l’an dernier. De mémoire ça faisait 15-16 Go.
Hors ligne
#867 Le 21/03/2013, à 20:32
- Dr Le Rouge
Re : /* Topic des codeurs [8] */
Non, un projet rassemblant plusieurs universités.
On veut des noms
C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog
Hors ligne
#868 Le 21/03/2013, à 20:36
- Rolinh
Re : /* Topic des codeurs [8] */
Les trucs en Ruby ? Ça va l’être ouais.
Je sais pas encore où et comment (vu que j’ai plus mon serveur maison), mais ouais ^^.
Le truc avec Alsa je peux peut-être le mettre sur rubygems, pour le truc sur les fichiers INI je ne sais pas. À voir.
Au pire je posterais ici.
Je peux t'héberger le code si tu le souhaites.
oO
C’est quoi comme projet ?
Et pourquoi un fichier de 260 000 lignes ?
Comme je l'ai dit, un projet universitaire. Je ne peux pas vraiment en dire plus et les sources ne sont pas ouvertes.
Le fichier de 260'000 lignes est un fichier de dataset pour du training. Pourquoi dans un seul fichier? Pas la moindre idée.
Hors ligne
#869 Le 21/03/2013, à 21:11
- grim7reaper
Re : /* Topic des codeurs [8] */
grim7reaper a écrit :Les trucs en Ruby ? Ça va l’être ouais.
Je sais pas encore où et comment (vu que j’ai plus mon serveur maison), mais ouais ^^.
Le truc avec Alsa je peux peut-être le mettre sur rubygems, pour le truc sur les fichiers INI je ne sais pas. À voir.
Au pire je posterais ici.Je peux t'héberger le code si tu le souhaites.
Sympa merci.
Ça pourrait être une bonne solution en effet, quand ça sera prêt (peut-être dans le week-end, au moins pour le parser de fichier INI) on pourra voir ça
grim7reaper a écrit :oO
C’est quoi comme projet ?
Et pourquoi un fichier de 260 000 lignes ?Comme je l'ai dit, un projet universitaire. Je ne peux pas vraiment en dire plus et les sources ne sont pas ouvertes.
Le fichier de 260'000 lignes est un fichier de dataset pour du training. Pourquoi dans un seul fichier? Pas la moindre idée.
Ok, donc c’est plus des données que du code au final, si j’ai bien compris ce que tu entends par dataset. Ça peut un peu expliquer la taille.
Un projet universitaire closed-source, c’est un peu bizarre. Y’a des entreprises qui sont aussi impliqué dedans (je te demande pas des noms hein) ?
Hors ligne
#870 Le 21/03/2013, à 21:39
- Rolinh
Re : /* Topic des codeurs [8] */
Sympa merci.
Ça pourrait être une bonne solution en effet, quand ça sera prêt (peut-être dans le week-end, au moins pour le parser de fichier INI) on pourra voir ça
Ça marche. N'hésite pas à me contacter.
Ok, donc c’est plus des données que du code au final, si j’ai bien compris ce que tu entends par dataset. Ça peut un peu expliquer la taille.
Un projet universitaire closed-source, c’est un peu bizarre. Y’a des entreprises qui sont aussi impliqué dedans (je te demande pas des noms hein) ?
Il y a des données d'entrainement mais aussi beaucoup de code quand même.
Je trouve aussi que c'est bizarre. Pour avoir accès aux sources, il faut signer des clauses de non-divulgation, etc. J'avoue que pour un projet qui est issue d'une collaboration entre plusieurs universités (dont des très réputées...), c'est vraiment surprenant. Pour ce qui est des entreprises, je n'en ai pas la moindre idée. Ce n'est pas moi qui bosse sur ce projet.
Heureusement, j'ai déjà vu assez d'horreurs sur le projet sur lequel je travaille (vidéo en embarqué).
Hors ligne
#871 Le 22/03/2013, à 07:32
- Mindiell
Re : /* Topic des codeurs [8] */
dataset d'entrainement, ça pue l'IA ça, non ?
Hors ligne
#872 Le 22/03/2013, à 08:33
- Rolinh
Re : /* Topic des codeurs [8] */
@Mindiell:
Hors ligne
#873 Le 22/03/2013, à 09:46
- Mindiell
Re : /* Topic des codeurs [8] */
Ah, alors je rajoute "réseau de neurones" en plus et je valide ;P
Hors ligne
#874 Le 23/03/2013, à 08:31
- grim7reaper
Re : /* Topic des codeurs [8] */
Je regardais NArray en Ruby (qui semble le standard de facto pour les tableaux multidimensionnels) et il y a quand même un truc qui me chiffonne
En Ruby, la classe Array utilise le row-major order pour ce qui est de l’indexation. Très bien, rien de surprenant vu les inspirations du langage.
La classe NArray par contre utilise le column-major order pour l’indexation (comme en Fortran entre autre), bon déjà là ça perturbe, mais en plus il commence l’indexation à 0 (comme en C, en Fortran ça commence à 1) et en plus en interne, niveau stockage, ça semble être du row-major order
Donc là je suis franchement perspicace
C’est quoi la logique ?
Ne pas être cohérent avec Ruby pour plaire à ceux qui font du Fortran ?
Pourquoi pas, mais dans ce cas, pourquoi utiliser le row-major order si c’est pour indexer en column-major order (et pourquoi commencer à 0, quitte à imiter Fortran, R, … autant le faire jusqu'au bout).
C’est con, je pense que la communauté Ruby s’est trop focalisé sur le Web (via RoR) au détriment du reste. Je voulais voir pour un truc vaguement semblable à numpy pour Ruby, je trouve uniquement NArray (qui ne couvre qu’une petite partie de numpy mais cela dit ça me suffisait pour ce que je voulait faire) qui a une logique étrange
Dernière modification par grim7reaper (Le 23/03/2013, à 09:15)
Hors ligne
#875 Le 23/03/2013, à 08:48
- The Uploader
Re : /* Topic des codeurs [8] */
Je connaissais même pas NArray.
C’est con, je pense que la communauté Ruby c’est trop focalisé sur le Web (via RoR) au détriment du reste.
C'est aussi mon avis depuis longtemps.
Je voulais voir pour un truc vaguement semblable à numpy pour Ruby, je trouve uniquement NArray (qui ne couvre qu’une petite partie de numpy mais cela dit ça me suffisait pour ce que je voulait faire) qui a une logique étrange
SInon ceci a l'air pas mal : http://sciruby.com/
T'as regardé sur ruby toolbox ?
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne