Aller au contenu

Je raconte my life II - Le retour


Mobius

Messages recommandés

Il a ensuite créé une boite qui exploite en informatique ce modèle (notamment car à peu près à l'époque, on a vu que les différentes zones du cerveau - vision, gout, toucher, odorat, proprioception, etc… - utilisent globalement le même "algorithme" pour fonctionner).

Dans la même veine, c'est à cette époque qu'en Intelligence Artificielle (Hinton et al.) apparaissent le Deep Network Belief/Boltzmann machine un peu puissantes (les grosses structures de réseaux de neurones associatifs, qui peuvent boucler sur eux-memes, et qui disposent d'un nombre de couches suffisamment intéressant pour faire quelque chose de puissant.

Hmm dans l'absolu si je ne m'abuse, si tu as une contre réaction, tu n'as pas besoin de plus que trois couches, juste d'un nombre ahurissant de neurones au milieu.

Lien vers le commentaire

Voui, de plus 'élégant' n'est pas vraiment le qualificatif qui me vient à l'esprit quand je pense à perl.

je reprécise ce que j'ai dit : le meilleur compromis puissance/élégance/simplicité.

Au cas où ça ne serait pas clair : je suis un noob de la programmation, tout ça c'est des vieux et bons souvenirs …

Mais bon j'entends bien la classification de pankkake concernant Java, C et C++. Php = nihiliste là par contre je capte pas trop.

Lien vers le commentaire

Hmm dans l'absolu si je ne m'abuse, si tu as une contre réaction, tu n'as pas besoin de plus que trois couches, juste d'un nombre ahurissant de neurones au milieu.

Ça m'intéresse ça. Je visualise mal l'exemple que tu donnes. Tu as un lien ?

Lien vers le commentaire

On est les meilleurs programmeurs (en toute objectivité bien sûr)

http://caml.inria.fr/pub/old_caml_site/contests-eng.html

Ah, et Caml avait ce truc génial, les filtres, qui évitait l'enfilage de elif… Mon meilleur souvenir de programmation ces trucs.

Et geek que vous êtes, vous oubliez le VBA, qui couplé à des feuilles excel immonde permet au corporate incompétent de pondre des trucs absolument illisibles. En croyant qu'il programme.

Lien vers le commentaire

Ça m'intéresse ça. Je visualise mal l'exemple que tu donnes. Tu as un lien ?

Bon en fait j'ai du parler trop vite et je m'explique :

Si on parle de réseaux de neurones pour un problème de décision ( => approximation d'une courbe ) alors là la preuve date depuis 20 ans.

Mais en relisant ton sujet, j'ai l'impression que c'est pas ce que tu cherches à résoudre.

Au hasard je mets mes sources :

http://neuron.eng.wa.../chap2/2_3.html

Bouquin complet :

http://neuron.eng.wa...t_contents.html

Autre hypothèse, j'ai rien compris au réseaux de neurones dont tu parles….

Lien vers le commentaire

Et geek que vous êtes, vous oubliez le VBA, qui couplé à des feuilles excel immonde permet au corporate incompétent de pondre des trucs absolument illisibles. En croyant qu'il programme.

Mouais.

Un vrai programmeur comprend ce code soit-disant illisible, mais, dans le même temps, conçoit aussi le programme qui aurait été adapté aux besoins :P (en économisant des caractères, des lignes, et simplifiant le propos…)

Lien vers le commentaire

VBA c'est de la merde un langage parfaitement adapté pour faire des prototypes.

Je me souviens d'un stage pour une célèbre compagnie d'assainissement des eaux, où il s'agissait de prévoir le comportement des cours d'eaux de la région parisienne (expansions alguales, bactériologiques, etc.). J'ai commencé par faire un mix de fuzzy logic et de système expert (pardon pardon, c'était en 1998), que j'ai prototypé avec VBA, j'ai consolidé le modèle avec Matlab, puis on a déployé en codant du C pour le système en production (à destination des stations de pompages et de mesures sur les cours d'eau, de mémoire la Seine, et…euh, deux autres dont la Marne je crois).

Ce stage a été plus ou moins un cauchemar, mais bon, j'ai ramassé de l'oseille, et derrière le projet a été déployé donc bon. Réussite disons. Ce qui m'a vacciné des entreprises étato-privées.

Ce qui ne m'a pas empêché quelques mois plus tard de faire rebelote avec une entreprise de chauffage urbain. :online2long:

Lien vers le commentaire

Je me souviens d'un stage pour une célèbre compagnie d'assainissement des eaux, où il s'agissait de prévoir le comportement des cours d'eaux de la région parisienne

[…]

Ce qui ne m'a pas empêché quelques mois plus tard de faire rebelote avec une entreprise de chauffage urbain. :online2long:

T'es passé de l'eau froide à l'eau chaude. T'aurais pas eu à réinventer l'eau tiède en faisant la synthèse de tes deux stages ? :dents:

VBA est une sorte de monstre, disons que d'un point de vue scientifique ça ressemble aux rats de Séralini. Des excroissances cancéreuses de partout sur un corps qui n'est rien d'autre qu'un macro assembleur semi portable en provenance directe des années 70.

Lien vers le commentaire

Bon en fait j'ai du parler trop vite et je m'explique :

Si on parle de réseaux de neurones pour un problème de décision ( => approximation d'une courbe ) alors là la preuve date depuis 20 ans.

Mais en relisant ton sujet, j'ai l'impression que c'est pas ce que tu cherches à résoudre.

Au hasard je mets mes sources :

http://neuron.eng.wa.../chap2/2_3.html

Bouquin complet :

http://neuron.eng.wa...t_contents.html

Autre hypothèse, j'ai rien compris au réseaux de neurones dont tu parles….

En fait, je parlais de 2 choses. Les couches de neurones dans le neo-cortex (là, ce sont des neurones physiques). Meme si pour eux on commence un peu à comprendre leur organisation et construction, leur "algorithme" n'est pas encore maitrisé (étymologie : algorithme = rythme des algues, ça n'aide pas à comprendre).

Les réseaux de neurones artificiels dont je parlais sont dans la classe des réseaux de neurones stochastiques récurent. Tous les réseaux de neurones fonctionnent plus ou moins de la même manière, en fait.

Ce qui les différencie, c'est le nombre d'entrée, de sorties, de couches cachées autorisées, et la fonction de transfert de chaque neurone. Après, tu peux rajouter des raffinements, comme introduire de l'aléatoire sur certains neurones, ou sur la fonction de transfert. Ou régulièrement "tuer" des neurones (comme un Alzheimer) en coupant les entrées, pour le forcer à "halluciner" (bien pratique dans certains cas).

Tu peux autoriser les couches cachées à boucler sur les couches antérieures (là, tu augmentes la complexité et le temps de calcul de plusieurs ordres), etc…

Ce qui est à la mode, depuis 2006 à peu près, c'est les Deep Learning Encoder/Autoencoder. Les réseaux stochastiques récurrents dont je parlais. Tu peux aussi trouver ça sous les termes de Boltzmann Machine (ou Restricted Boltzmann Machine pour avoir un modèle réaliste sur nos machines), de Hierarchical Temporal Memory (un modèle de pooling créé chez Numenta, de Jeff Hawkings), etc…

Toutes ces versions sont sensiblement équivalentes, ce qui les différencie de la grande mode des réseaux de neurones des années fin 70/80, c'est la puissance de calcul, qui autorise des complexités qui les rendent enfin intéressant. Au delà de l'exercice de reconnaissance des Perceptrons, on va dire. Cette puissance permet d'introduire du random, d'avoir plusieurs couches cachées, de raffiner, et donc de commencer à pouvoir proposer une solution commerciale "en boite noire" à des boites pour résoudre des problèmes un peu générique. (Un peu plus générique, par exemple, que la reconnaissance des adresses manuscrites sur les enveloppes timbrées à la Poste).

J'espère que j'ai éclairci mon explication, et pas l'inverse ;).

Lien vers le commentaire

En fait et c'est marrant car je ne suis pas un pro de l'objet c'est Eiffel qui m'a le plus impressionné. Une année je devais faire un cours d'objet avec et j'ai implanté un projet pour les étudiants assez gros (core war) : c'est le plus gros programme que j'ai réalisé bug free du premier coup merde !

Ha la programmation par contrat, il paraît que c'est très efficace, mais j'ai jamais l'occasion de travailler avec Eiffel. Le zéro-erreur c'est ce que promet Eiffel, apparemment c'est pas des promesses en l'air.

Sinon, il faudrait rajouter quelques langages avec des généralités:

- Javascript: groupe de bidouilleurs et hipsters, particulièrement vicieux et prolifiques.

- Clojure: nostalgiques du LISP (qui tel le phénix n'en finit pas de se réincarner).

- Scala: universitaires et masochistes.

- Ceylon: avant-gardistes.

- Erlang: j'hésite entre hipsters et avant-gardistes.

bien sûr, en toute objectivité…

Lien vers le commentaire

- Javascript: groupe de bidouilleurs et hipsters, particulièrement vicieux et prolifiques.

Tout à fait. En meme temps, l'industrie manque de bons codeur Javascript. Il y a plus de postes et de jobs que de personnes. Les jeunes qui commencent en info peuvent s'attacher à ce langage, il y a des débouchés pour les 5 à 10 ans qui viennent.

Lien vers le commentaire
Pour être bon codeur en Javascript il avoir envie de maîtriser un langage qui a des erreurs fondamentales dans sa conception, et donc… enfin, je pense que ça peut arriver, par accident.

Y a-t-il des langages un peu répandus (mettons, au moins autant que le LISP, c'est dire le faible niveau exigé) qui ne reposent pas sur de telles erreurs ?

Lien vers le commentaire

Y a-t-il des langages un peu répandus (mettons, au moins autant que le LISP, c'est dire le faible niveau exigé) qui ne reposent pas sur de telles erreurs ?

Difficile de dire qu'il existe un langage parfait (même si Python 3 s'en approche :P) mais il y a quand même des langages comme Javascript et PHP qui en tiennent une couche.

Lien vers le commentaire

Pour être bon codeur en Javascript il avoir envie de maîtriser un langage qui a des erreurs fondamentales dans sa conception, et donc… enfin, je pense que ça peut arriver, par accident.

Tu penses a quoi comme erreurs ?

Le langage a un cote minimaliste et flexible que j'aime bien (et pourtant je suis un hipster grincheu barbu qui fait aussi du C# et qui était nihiliste il y a 10 ans, mais au moins j'ai jamais été masochiste).

Lien vers le commentaire

Les types de base très pauvres. Les comportements comme ne pas planter pour une variable non définie, le fait qu'une variable est globale par défaut.

Un modèle bizarre sans objet et sans exceptions, même si on peut simuler le premier, j'ai du mal à voir que « c'est mieux parce que plus flexible ».

Le fait qu'il soit très difficile à optimiser.

Tout ce qui est date, itération, etc. demande d'utiliser des librairies tierces tellement les trucs de base sont pourris.

Et http://wtfjs.com/

Lien vers le commentaire

Un modèle bizarre sans objet et sans exceptions, même si on peut simuler le premier, j'ai du mal à voir que « c'est mieux parce que plus flexible ».

Les exceptions ne me manquent pas du tout, c'est une source de chaos et de confusions.

"Mieux" ça dépend par rapport a quoi et pour quoi faire, mais l’absence de concepts prédéfinis comme les classes, l’héritage etc. rend le tout flexible. On défini soi même ce qu'on entend par classe.

Si par exemple je veux qu'un changement runtime dans une "classe" change aussi toute les instances de cette classe, je peux.

Je me demande quand même si on abuse pas de la tolérance de lib.org envers les informaticiens la :online2long:

Lien vers le commentaire

Tout à fait. En meme temps, l'industrie manque de bons codeur Javascript. Il y a plus de postes et de jobs que de personnes. Les jeunes qui commencent en info peuvent s'attacher à ce langage, il y a des débouchés pour les 5 à 10 ans qui viennent.

Pankkake m'a un peu coupé l'herbe sous le pied, mais j'allais dire: un bon codeur, en général il ne fait pas de Javascript parcequ'il réalise très vite que ce langage est une merde sans nom - en toute objectivité, bien sûr.

En ce moment il y a effectivement un regain d'intérêt énorme pour JS, et donc beaucoup de jobs. Il y a des développeurs JS qui vont se faire de l'argent les 3-4 prochaines années, et s'ils sont un tant soit peu malins ils vont rapidement quitter le marché JS. Le gros du troupeau pataugera dans le bourbier infâme de la maintenance applicative, à s'arracher les yeux sur du code pourri. Au bout d'un moment , complètement désespérés, ils réécriront tout avec le nouveau truc à la mode.

Sinon pourquoi JS c'est de la merde ?

- des variables globales: rien que ça c'est suffisant pour foutre le truc à la poubelle avec un regard dédaigneux.

- le scope des variables incompréhensible

- un système de prototypes qui permet la modification à la volée de n'importe quel "objet"

- et le top: ça fonctionne pas de la même façon suivant la VM qui l'exécute (mais apparemment les devs JS trouvent ça normal…)

Lien vers le commentaire

- des variables globales: rien que ça c'est suffisant pour foutre le truc à la poubelle avec un regard dédaigneux.

A peu près tous les langages ont des variables globales, on est pas obligé de les utiliser.

- le scope des variables incompréhensible

Oui ça je suis d'accord, c'est un cauchemar.

- un système de prototypes qui permet la modification à la volée de n'importe quel "objet"

Ca justement c'est ce que j'aime :)

Lien vers le commentaire

Comme Nick de Cusa, j'observe des signes avant-coureurs de la fin du monde. J'ai fait la connaissance en l'espace d'un week-end d'une nippo-américaine canon et maquilleuse sur des séries tv que j'aime (The Walking Dead) et d'une jolie Russe (et rousse !) libertarienne fan de Ron Paul.

Lien vers le commentaire

Les types de base très pauvres. Les comportements comme ne pas planter pour une variable non définie, le fait qu'une variable est globale par défaut.

Un modèle bizarre sans objet et sans exceptions, même si on peut simuler le premier, j'ai du mal à voir que « c'est mieux parce que plus flexible ».

Le fait qu'il soit très difficile à optimiser.

Tout ce qui est date, itération, etc. demande d'utiliser des librairies tierces tellement les trucs de base sont pourris.

Et http://wtfjs.com/

Concrètement, moi je dis que n'importe qui ayant travaillé un peu passionnément avec un langage, quel qu'il soit ou presque (j'en ais fait une 10ene du JS à l'ADA), fera un meilleur travail comme administrateur ou architecte sous quelque système que ce soit.

C'est d’ailleurs à mon avis une des faiblesse du monde Windows, aucune expérience de ce type n'est généralement demandé pour y faire carrière. C'est d'autant plus un problème que Windows dévoile toute ses capacité sur des machines petites à moyenne et très nombreuse (postes et serveurs).

Lien vers le commentaire

une jolie Russe libertarienne

Pléonasme.

Concrètement, moi je dis que n'importe qui ayant travaillé un peu passionnément avec un langage, quel qu'il soit ou presque (j'en ais fait une 10ene du JS à l'ADA), fera un meilleur travail comme administrateur sous quelque système.

C'est d’ailleurs à mon avis une des faiblesse du monde Windows, aucune expérience de ce type n'est généralement demandé pour y faire carrière. C'est d'autant plus un problème que Windows dévoile toute ses capacité sur des machines petites à moyenne et très nombreuse (postes et serveurs).

C'est vrai qu'un administrateur qui ne sait pas programmer ça peut être vite très très dommage.

Ceci dit, un sysadmin qui fait du code illisible donc en perl, c'est pas forcément mieux ;) Bref, il faudrait une expérience de développement en groupe.

Lien vers le commentaire

A peu près tous les langages ont des variables globales, on est pas obligé de les utiliser.

Oui ça je suis d'accord, c'est un cauchemar.

Ca justement c'est ce que j'aime :)

- le problème c'est qu'il y a toujours un gros malin pour en utiliser… Exemple vécu en PHP: une variable globale nommée "user", dans le header…

- et oui…

- j'ai rien contre le fait de pouvoir triturer des trucs quand je suis tout seul à bidouiller, mais en équipe c'est pas tenable. Et ça l'est encore moins quand on veut réutiliser des librairies JS. Exemple concret: on utilise un éditeur WYSIWYG open-source, et les devs qui ont fait ça n'ont rien trouvé mieux que de modifier la classe Array, ce qui faisait péter du code JS qui n'a strictement aucun rapport. Évidemment pour trouver d'où vient le problème, c'est une sacrée paire de manches.

Lien vers le commentaire

En Python les variables globales c'est possible… mais je ne l'ai jamais, jamais vu utilisé. Je l'ai découvert des années après, et c'est bien un keyword "global", pas un hack genre globals()['myvar']. Donc bon, ça ne dépend pas forcément que du langage.

Mais mon reproche à Javascript, c'est que c'est le comportement par défaut. D'ailleurs CoffeeScript fait bien l'inverse.

Lien vers le commentaire

Peut-on techniquement tirer une rafale de .357 magnum ? Si oui, avec quelle arme, par exemple ?

En principe non, une munition est conçue pour un ou plusieurs types d'usage type d'usage, mais pas tous, c'est un compromis technique.

Le 357 c'est de la puissance pure.

Évidement des armes exotiques ne sont jamais impossibles.

Certaines munitions généralement d'origines militaires sont utilisées dans les pistolets et la rafale comme le 9mm Parabellum et le .45

Lien vers le commentaire
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • Créer...