Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#26 Le 07/02/2012, à 00:13

Etoma

Re : /* Topic des codeurs [7] */

Écrire du code est très exigeant.
C'est plaisant.


"un gars qui agit pour le bien des gens sans leur demander leur avis"
PirateBox

Hors ligne

#27 Le 07/02/2012, à 01:37

tshirtman

Re : /* Topic des codeurs [7] */

si les experts d'haskell peuvent l'aider… (j'aime bien ce gars… c'est le mec qui code git-annex et upload des paquets debian depuis un netbook tournant à l'énergie solaire dans une yhourt perdue dans la forêt).
http://kitenet.net/~joey/blog/entry/uni … _homework/

Hors ligne

#28 Le 07/02/2012, à 01:39

Elzen

Re : /* Topic des codeurs [7] */

The Uploader a écrit :

Les thèmes par défaut de xfce4-notifyd ne suffisent pas comme exemples ?

Bah non, justement : aucun de ces thèmes ne fait de différence entre le titre et le contenu normal. C'est par là que j'ai commencé tongue (j'utilisais Smoke avant de voir à quel point la config était simple et de me faire mon thème à moi).

En fait, c'est « widget_class "XfceNotifyWindow.*.<GtkLabel>" » qui référence à la fois le label contenant le titre et le label contenant le message, apparemment. J'n'ai pas (encore ?) trouvé comment différencier les deux… je crains qu'il n'y ait pas moyen, à moins peut-être que le gtkrc-2.0 accepte une syntaxe bizarre pour dire « tel élément, s'il est suivi/précédé de tel autre »…

Edit :

tshirtman a écrit :

un netbook tournant à l'énergie solaire

yikes Je veux !

Dernière modification par ArkSeth (Le 07/02/2012, à 01:41)

Hors ligne

#29 Le 07/02/2012, à 01:55

Pylades

Re : /* Topic des codeurs [7] */

Ça à l’air cool, jusqu’à ce qu’on se demande ce qui se passe la nuit…

Pis faut sortir, toussa ; on ne peut pas rester à l’intérieur. sad


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#30 Le 07/02/2012, à 02:31

tshirtman

Re : /* Topic des codeurs [7] */

@Arkseth: oh, le netbook est conventionnel, c'est juste la yourt qui est équippé de panneaux, de batteries et tout ça, et qu'il recharge dessus… ce qui lui donne quelques heures pour bosser le soir, mais pas trop… une vie saine quoi…

/me va dormir…

Hors ligne

#31 Le 07/02/2012, à 19:47

Elzen

Re : /* Topic des codeurs [7] */

Majuscule mad tongue

Et ouais, vachement moins intéressant, de suite. Mais quand même, ça doit être fun.

Hors ligne

#32 Le 07/02/2012, à 22:19

Rolinh

Re : /* Topic des codeurs [7] */

Allez, pour le fun:
factorielle récursive (oui, c'est pour la démo tongue) en Python:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

def fact(x):
    if x < 2:
        return 1
    else:
        return x * fact(x-1)
print(fact(1234))

La même en Prolog:

fact(0,R):-
    R = 1.
fact(N,R):-
    N > 0,
    fact(N-1, X),
    R is N * X.

Les résultats pour la factorielle de 1234 (c'est déjà un sacré grand nombre):
Python (résultat que j'attendais):

RuntimeError: maximum recursion depth exceeded in comparison

Et pour Prolog:

51084981466469576881306176261004598750272741624636207875758364885679783886389114119904367398214909451616865959797190085595957216060201081790863562740711392408402606162284424347926444168293770306459877429620549980121621880068812119922825565603750036793657428476498577316887890689284884464423522469162924654419945496940052746066950867784084753581540148194316888303839694860870357008235525028115281402379270279446743097868896180567901452872031734195056432576568754346528258569883526859826727735838654082246721751819658052692396270611348013013786739320229706009940781025586038809493013992111030432473321532228589636150722621360366978607484692870955691740723349227220367512994355146567475980006373400215826077949494335370591623671142026957923937669224771617167959359650439966392673073180139376563073706562200771241291710828132078928672693377605280698340976512622686207175259108984253979970269330591951400265868944014001740606398220709859461709972092316953639707607509036387468655214963966625322700932867195641466506305265122238332824677892386098873045477946570475614470735681011537762930068333229753461311175690053190276217215938122229254011663319535668562288276814566536254139944327446923749675156838399258655227114181067181300031191298489076680172983118121156086627360397334232174932132686080901569496392129263706595509472541921027039947595787992209537069031379517112985804276412719491334730247762876260753560199012424360211862466047511184797159731714330368251192307852167757615200611669009575630075581632200897019110165738489288234845801413542090086926381756642228872729319587724120647133695447658709466047131787467521648967375146176025775545958018149895570817463048968329692812003996105944812538484291689075721849889797647554854834050132592317503861422078077932841396250772305892378304960421024845815047928229669342818218960243579473180986996883486164613586224677782405363675732940386436560159992961462550218529921214223556288943276860000631422449845365510986932611414112386178573447134236164502410346254516421812825350152383907925299199371093902393126317590337340371199288380603694517035662665827287352023563128756402516081749705325705196477769315311164029733067419282135214232605607889159739038923579732630816548135472123812968829466513428484683760888731900685205308016495533252055718190142644320009683032677163609744614629730631454898167462966265387871725580083514565623719270635683662268663333999029883429331462872848995229714115709023973771126468913873648061531223428749576267079084534656923514931496743842559669386638509884709307166187205161445819828263679270112614012378542273837296427044021252077863706963514486218183806491868791174785424506337810550453063897866281127060200866754011181906809870372032953354528699094096145120997842075109057859226120844176454175393781254004382091350994101959406590175402086698874583611581937347003423449521223245166665792257252160462357733000925232292157683100179557359793926298007588370474068230320921987459976042606283566005158202572800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Je précise que sur mon core i7, le résultat apparaît instantanément à l'écran.
Enfin, vous pouvez toujours faire le test.


Blog
"If you put a Unix shell to your ear, do you hear the C ?"

En ligne

#33 Le 07/02/2012, à 23:08

Etoma

Re : /* Topic des codeurs [7] */

Salut.
J'avance dans le bouquin. C'est pas mal.
Je me demandais la relation entre le codage et le processeur/ram.
Puisque je ne pense pas je ne compte pas faire beaucoup de graphisme, tout ça, j'écarte la carte graphique.
Voici la question donc : Est-ce que lorsque l'on code beaucoup, et complexe (plus que ce que je fais, genre print ("Willkommen")) le processeur doit être puissant avec plein de ram, ou alors le plus pauvre des atom /fusion suffit?


"un gars qui agit pour le bien des gens sans leur demander leur avis"
PirateBox

Hors ligne

#34 Le 07/02/2012, à 23:16

Rolinh

Re : /* Topic des codeurs [7] */

Salut Etoma,

excuse-moi mais... ta question n'a aucun sens. Ça ne veut rien dire "coder beaucoup" (ou alors je ne comprend pas ce que tu veux dire par là car je ne comprend pas le rapport entre "coder beaucoup" et "puissance d'un processeur"). Tu veux dire: faut-il un ordinateur puissant pour coder une application complexe?
Si c'est ça, la réponse est non. En soi, coder revient à écrire du texte. En revanche, si tu dois beaucoup compiler, et notamment des applications lourdes, alors oui: un processeur puissant est appréciable bien que la seule chose qui changera sera le temps de compilation. C'est surtout une question de confort quoi. Je code souvent sur mon netbook de 2-3ans d'âge avec un Atom N280 (ou N270 ou N260 je sais plus) et il répond parfaitement à 100% de mes besoins de ce côté.


Blog
"If you put a Unix shell to your ear, do you hear the C ?"

En ligne

#35 Le 07/02/2012, à 23:22

grim7reaper

Re : /* Topic des codeurs [7] */

C’est quoi le but de la comparaison Python/Prolog ?
(il est de notoriété publique que Python n’optimise pas les récursions, plus ou moins du fait de la volonté de Guido il me semble).
Sinon en Haskell

grim7reaper@smile ~]$ghci
GHCi, version 7.0.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
Prelude> let factorial n = if n > 0 then n * factorial (n-1) else 1
Prelude> factorial  1234
51084981466469576881306176261004598750272741624636207875758364885679783886389114119904367398214909451616865959797190085595957216060201081790863562740711392408402606162284424347926444168293770306459877429620549980121621880068812119922825565603750036793657428476498577316887890689284884464423522469162924654419945496940052746066950867784084753581540148194316888303839694860870357008235525028115281402379270279446743097868896180567901452872031734195056432576568754346528258569883526859826727735838654082246721751819658052692396270611348013013786739320229706009940781025586038809493013992111030432473321532228589636150722621360366978607484692870955691740723349227220367512994355146567475980006373400215826077949494335370591623671142026957923937669224771617167959359650439966392673073180139376563073706562200771241291710828132078928672693377605280698340976512622686207175259108984253979970269330591951400265868944014001740606398220709859461709972092316953639707607509036387468655214963966625322700932867195641466506305265122238332824677892386098873045477946570475614470735681011537762930068333229753461311175690053190276217215938122229254011663319535668562288276814566536254139944327446923749675156838399258655227114181067181300031191298489076680172983118121156086627360397334232174932132686080901569496392129263706595509472541921027039947595787992209537069031379517112985804276412719491334730247762876260753560199012424360211862466047511184797159731714330368251192307852167757615200611669009575630075581632200897019110165738489288234845801413542090086926381756642228872729319587724120647133695447658709466047131787467521648967375146176025775545958018149895570817463048968329692812003996105944812538484291689075721849889797647554854834050132592317503861422078077932841396250772305892378304960421024845815047928229669342818218960243579473180986996883486164613586224677782405363675732940386436560159992961462550218529921214223556288943276860000631422449845365510986932611414112386178573447134236164502410346254516421812825350152383907925299199371093902393126317590337340371199288380603694517035662665827287352023563128756402516081749705325705196477769315311164029733067419282135214232605607889159739038923579732630816548135472123812968829466513428484683760888731900685205308016495533252055718190142644320009683032677163609744614629730631454898167462966265387871725580083514565623719270635683662268663333999029883429331462872848995229714115709023973771126468913873648061531223428749576267079084534656923514931496743842559669386638509884709307166187205161445819828263679270112614012378542273837296427044021252077863706963514486218183806491868791174785424506337810550453063897866281127060200866754011181906809870372032953354528699094096145120997842075109057859226120844176454175393781254004382091350994101959406590175402086698874583611581937347003423449521223245166665792257252160462357733000925232292157683100179557359793926298007588370474068230320921987459976042606283566005158202572800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

(Chez moi aussi c’est instantané).

Dernière modification par grim7reaper (Le 08/02/2012, à 00:17)

Hors ligne

#36 Le 07/02/2012, à 23:26

The Uploader

Re : /* Topic des codeurs [7] */

irb(main):002:0> def fact(x)
irb(main):003:1> if x < 2
irb(main):004:2> return 1
irb(main):005:2> else
irb(main):006:2* return x * (fact(x-1))
irb(main):007:2> end
irb(main):008:1> end
=> nil
irb(main):009:0> fact(5)
=> 120
irb(main):010:0> fact(1234)
=> 51084981466469576881306176261004598750272741624636207875758364885679783886389114119904367398214909451616865959797190085595957216060201081790863562740711392408402606162284424347926444168293770306459877429620549980121621880068812119922825565603750036793657428476498577316887890689284884464423522469162924654419945496940052746066950867784084753581540148194316888303839694860870357008235525028115281402379270279446743097868896180567901452872031734195056432576568754346528258569883526859826727735838654082246721751819658052692396270611348013013786739320229706009940781025586038809493013992111030432473321532228589636150722621360366978607484692870955691740723349227220367512994355146567475980006373400215826077949494335370591623671142026957923937669224771617167959359650439966392673073180139376563073706562200771241291710828132078928672693377605280698340976512622686207175259108984253979970269330591951400265868944014001740606398220709859461709972092316953639707607509036387468655214963966625322700932867195641466506305265122238332824677892386098873045477946570475614470735681011537762930068333229753461311175690053190276217215938122229254011663319535668562288276814566536254139944327446923749675156838399258655227114181067181300031191298489076680172983118121156086627360397334232174932132686080901569496392129263706595509472541921027039947595787992209537069031379517112985804276412719491334730247762876260753560199012424360211862466047511184797159731714330368251192307852167757615200611669009575630075581632200897019110165738489288234845801413542090086926381756642228872729319587724120647133695447658709466047131787467521648967375146176025775545958018149895570817463048968329692812003996105944812538484291689075721849889797647554854834050132592317503861422078077932841396250772305892378304960421024845815047928229669342818218960243579473180986996883486164613586224677782405363675732940386436560159992961462550218529921214223556288943276860000631422449845365510986932611414112386178573447134236164502410346254516421812825350152383907925299199371093902393126317590337340371199288380603694517035662665827287352023563128756402516081749705325705196477769315311164029733067419282135214232605607889159739038923579732630816548135472123812968829466513428484683760888731900685205308016495533252055718190142644320009683032677163609744614629730631454898167462966265387871725580083514565623719270635683662268663333999029883429331462872848995229714115709023973771126468913873648061531223428749576267079084534656923514931496743842559669386638509884709307166187205161445819828263679270112614012378542273837296427044021252077863706963514486218183806491868791174785424506337810550453063897866281127060200866754011181906809870372032953354528699094096145120997842075109057859226120844176454175393781254004382091350994101959406590175402086698874583611581937347003423449521223245166665792257252160462357733000925232292157683100179557359793926298007588370474068230320921987459976042606283566005158202572800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

(instantané sur un C2D T5800)


Passer de Ubuntu 10.04 à Xubuntu 12.04 LTS
Archlinux + KDE sur ASUS N56VV.
ALSA, SysV,  DBus, Xorg = Windows 98 !
systemd, kdbus, ALSA + PulseAudio, Wayland = modern OS (10 years after Windows, but still...) !  Deal with it !

Hors ligne

#37 Le 07/02/2012, à 23:29

Etoma

Re : /* Topic des codeurs [7] */

Pardon, pour la mauvaise formulation! smile
Malgré tout, tu as bien décodé le sens de ma question.
Je pensais bien à coder des applications lourdes/complexes et pas simplement deux-trois lignes de codes à compiler.
Par exemple, pour coder avec un netbook! Je pense par exemple à l'atom 435, qui est assez faible, mais pas cher du tout.
Enfin, merci pour la réponse rapide!
smile


"un gars qui agit pour le bien des gens sans leur demander leur avis"
PirateBox

Hors ligne

#38 Le 07/02/2012, à 23:29

Rolinh

Re : /* Topic des codeurs [7] */

grim7reaper a écrit :

C’est quoi le but de la comparaison Python/Prolog ?

Oh, je sais pas, faire réagir tshirtman? tongue

J'avoue que ça n'a pas grand intérêt. Ça doit être d'avoir passé une journée sur du prolog qui m'a mis dans cet état. ^^


Blog
"If you put a Unix shell to your ear, do you hear the C ?"

En ligne

#39 Le 07/02/2012, à 23:31

The Uploader

Re : /* Topic des codeurs [7] */

Rolinh a écrit :

Oh, je sais pas, faire réagir tshirtman? tongue

Déjà fait : Ruby fonctionne, Python renvoie une exception. Y'a plus qu'à attendre. tongue


Passer de Ubuntu 10.04 à Xubuntu 12.04 LTS
Archlinux + KDE sur ASUS N56VV.
ALSA, SysV,  DBus, Xorg = Windows 98 !
systemd, kdbus, ALSA + PulseAudio, Wayland = modern OS (10 years after Windows, but still...) !  Deal with it !

Hors ligne

#40 Le 07/02/2012, à 23:34

Rolinh

Re : /* Topic des codeurs [7] */

The Uploader a écrit :

Déjà fait : Ruby fonctionne, Python renvoie une exception. Y'a plus qu'à attendre. tongue

lol

@Etoma: pas de quoi. wink Tu as l'intention de déjà te lancer dans un grand projet? tongue


Blog
"If you put a Unix shell to your ear, do you hear the C ?"

En ligne

#41 Le 07/02/2012, à 23:54

Etoma

Re : /* Topic des codeurs [7] */

Ben, je sais pas, mais je pense plus que faire des devinettes pour savoir le chiffre que j'ai planqué dans mon code!
Pis bon, je pense reprendre des études, et je pense me diriger vers l'informatique (tout autre chose que le social, dans lequel je travaille en ce moment).


"un gars qui agit pour le bien des gens sans leur demander leur avis"
PirateBox

Hors ligne

#42 Le 07/02/2012, à 23:57

Pylades

Re : /* Topic des codeurs [7] */

Bah, avec Python la réponse est aussi instantanée, si tu ne fais pas de récursion…


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#43 Le 08/02/2012, à 00:01

Jules Petibidon

Re : /* Topic des codeurs [7] */

Python fournit une méthode pour les factorielles, ça compte ou pas ? tongue

import math
math.factorial(1234)

Comme l'a dit grim' la récursion est "volontairement" limitée avec Python. Ça peut être considéré comme une faiblesse si ça peut faire plaisir, mais les cas où ça pose problème sont assez rares.

Hors ligne

#44 Le 08/02/2012, à 00:02

Rolinh

Re : /* Topic des codeurs [7] */

@Etoma: une solution toujours envisageable est de compiler sur une autre machine. Il m'arrive parfois de programmer directement sur une machine que je prend à distance.

@Pylade: Heu... oui, et?


Blog
"If you put a Unix shell to your ear, do you hear the C ?"

En ligne

#45 Le 08/02/2012, à 00:11

Etoma

Re : /* Topic des codeurs [7] */

Ouais, c'est pas bête!
Je penchais pour cette machine :
x101, atom 435 (1,33GHz, single core)


"un gars qui agit pour le bien des gens sans leur demander leur avis"
PirateBox

Hors ligne

#46 Le 08/02/2012, à 00:16

The Uploader

Re : /* Topic des codeurs [7] */

Jules Petibidon a écrit :

Python fournit une méthode pour les factorielles, ça compte ou pas ? tongue

import math
math.factorial(1234)

Comme l'a dit grim' la récursion est "volontairement" limitée avec Python. Ça peut être considéré comme une faiblesse si ça peut faire plaisir, mais les cas où ça pose problème sont assez rares.

Ah tiens, il n'y a pas de Math.factorial (ni Math.fact) dans le module Math de Ruby...
http://stackoverflow.com/questions/2434 … l-function

Dernière modification par The Uploader (Le 08/02/2012, à 00:18)


Passer de Ubuntu 10.04 à Xubuntu 12.04 LTS
Archlinux + KDE sur ASUS N56VV.
ALSA, SysV,  DBus, Xorg = Windows 98 !
systemd, kdbus, ALSA + PulseAudio, Wayland = modern OS (10 years after Windows, but still...) !  Deal with it !

Hors ligne

#47 Le 08/02/2012, à 00:30

Rolinh

Re : /* Topic des codeurs [7] */

@Etoma: seul 8Go pour le SSD: ça risque de faire un peu peu. Si tu comptes garder Meego, je ne sais pas à quel point on peut en faire un environnement de développement mais je doute un peu du résultat. Sans compter qu'un petit écran, avec une faible définition, peut être un peu gênant. Il est difficile par exemple d'avoir côte à côte une page de documentation et un fenêtre avec un éditeur de texte sur le code, ce qui peut s'avérer gênant pour programmer. Enfin, avec mon netbook, c'est ce qui me dérange. On doit pouvoir trouver des 11" avec du 1366x766 qui devrait être nettement plus confortable sans plus d'encombrement.


Blog
"If you put a Unix shell to your ear, do you hear the C ?"

En ligne

#48 Le 08/02/2012, à 00:31

tshirtman

Re : /* Topic des codeurs [7] */

@Etoma: j'ai codé les premières versions d'USF (voir ma signature) sur un eeepc 701… il comptait déjà plusieurs milliers de lignes de code source à l'époque et ça marchait bien, nos machines sont des monstres de puissances, la seule chose qui les mets à genoux c'est de faire des calculs lourd… pas de dérouler des suites d'instructions simples (enfin, je me comprends, les calculs lourds se fond aussi en déroulant des des suites d'instructions simples au final, un ordinateur ne fait que ça de toutes façons).

Pour la limite de récursion, oui… ça pose rarement problème et en effet, une fonction est fournie pour ça… j'ai jamais (ou si peu) prétendus que python était parfais en tout… c'est juste selon moi globalement le meilleur langage de loin…

et pas la peine de faire vos malins par ce que vos langages modèrnes font ça instantanément… la dernière fois que j'ai testé, LISP faisait pareil…

Hors ligne

#49 Le 08/02/2012, à 00:38

grim7reaper

Re : /* Topic des codeurs [7] */

Moderne ?
Haskell date de 1985.
Prolog date de  1972.
Common Lisp (parce que je suppose que c’est de lui que tu parles, vu que ça m’étonnerais que tu testes l’implémentation de 1958) date de 1984.

Mouais, pas grande différence hein…
Pas une question de modernité, juste une question de design du langage.

Dernière modification par grim7reaper (Le 08/02/2012, à 00:40)

Hors ligne

#50 Le 08/02/2012, à 00:40

The Uploader

Re : /* Topic des codeurs [7] */

tshirtman a écrit :

Pour la limite de récursion, oui… ça pose rarement problème et en effet, une fonction est fournie pour ça… j'ai jamais (ou si peu) prétendus que python était parfais en tout… c'est juste selon moi globalement le meilleur langage de loin…

Bah Ruby n'est pas parfait non plus :
- pas de Math.factorial (c'est quand même assez surprenant)
- pas de surcharge
- pas d'héritage multiple (oui il y a les modules mais en inclure plus d'un devient vite casse-tête pour 'super' s'ils ont tous un initialize. Heureusement on peut nommer l'initialize d'un module autrement ou l'appeler explicitement)
- pas de commentaires multiligne (Pas très gênant, mas faire un  " >>EOF " ou je sais plus quoi pour désactiver tout le code après le commentaire faut le trouver... En plus c'est franchement moche. Bon c'est rare d'avoir à faire ça, heureusement)

Mais c'est pour moi le meilleur langage OO / procédural, et de loin.. smile

Dernière modification par The Uploader (Le 08/02/2012, à 00:41)


Passer de Ubuntu 10.04 à Xubuntu 12.04 LTS
Archlinux + KDE sur ASUS N56VV.
ALSA, SysV,  DBus, Xorg = Windows 98 !
systemd, kdbus, ALSA + PulseAudio, Wayland = modern OS (10 years after Windows, but still...) !  Deal with it !

Hors ligne

Haut de page ↑