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.

#2376 Le 31/01/2012, à 15:20

tshirtman

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

apparement pas la version japonaise... (ils peuvent rien faire comme les autres)

Hors ligne

#2377 Le 31/01/2012, à 16:16

Dr Le Rouge

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

grim7reaper a écrit :

Emacs peut faire des trucs du genre
http://pix.toile-libre.org/upload/img/1327998641.png
(bon là c’est un truc basique, il y a des choses plus complète qui existe).

Ça ça m'intéresse big_smile T'aurais des pistes pour que je cherche comment faire ?


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

#2378 Le 31/01/2012, à 20:09

grim7reaper

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

Bien sûr smile

Le truc de base que j’utilise c’est AutoComplete, auquel j’ai ajouté (pour le C et le C++) une extension qui utilise clang.
Bien sûr, il faut installer clang.
Si tu ne connais pas, c’est l’occasion de découvrir. Très bon compilo’ avec des messages d’erreurs lisibles contrairement à gcc (bien que ce dernier fasse pas mal d’effort là dessus depuis les dernières versions). Son architecture est super bien foutu (i.e très modulaire, contrairementà gcc qui est monstrueusement monolithique) et c’est pour ça que l’on peut en utiliser des bouts dans d’autres programmes (comme cette extension).
Seul point négatif comparé à gcc : il optimise un peu moins bien le code (mais c’est de moins en moins vrai).

Bon, ça c’était pour ma capture d’écran (si tu as des questions sur la conf’, tu sais où demander wink).

Sinon, je te recommande aussi l’excellent YASnippet qui est vraiment formidable (rapide exemple).

Sinon, tu utilises quoi comme langages ? Il y a sûrement des plugins adaptés.

Hors ligne

#2379 Le 31/01/2012, à 21:00

tshirtman

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

 gabriel@tochange:~/.vim/bundle$ hg clone https://bitbucket.org/ns9tks/vim-autocomplpop
目标目录: vim-autocomplpop
正在请求全部修改
正在增加修改集
正在增加清单
正在增加文件改变
已增加 70 个修改集,包含 117 个改变,修改了 6 个文件
updating to branch default
5 files updated, 0 files merged, 0 files removed, 0 files unresolved

wait… what??

google translate a écrit :

Répertoire cible: vim-autocomplpop
Tous les changements sont demandés
Les changements sont appelés à augmenter
La liste est en augmentation
Changement du fichier sont en augmentation
70 a été modifié pour augmenter collection contient 117 changé, modifié six fichiers

neutral

Dernière modification par tshirtman (Le 31/01/2012, à 21:01)

Hors ligne

#2380 Le 31/01/2012, à 21:01

The Uploader

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

Gné ? @ç@


- 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

#2381 Le 31/01/2012, à 21:02

grim7reaper

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

O_o
Genre un changement de locale est imposé dans une partie du code ^^

Édit : pas de problème chez moi (juste des empreintes non vérifiés).

Dernière modification par grim7reaper (Le 31/01/2012, à 21:03)

Hors ligne

#2382 Le 31/01/2012, à 21:05

Dr Le Rouge

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

@ grim' : C++ pour les cours (notamment crypto) et latex pour écrire le blabla qui enrobe le code en question. J'écris des bouts de python à l'occaz' mais rien qui ne justifie une machinerie élaborée.

En tout cas merci bien, je vais regarder ça big_smile


edit : @ tshirtman : ben ils nous envahissent, c'est pas un scoop tongue

Dernière modification par Dr Le Rouge (Le 31/01/2012, à 21:09)


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

#2383 Le 31/01/2012, à 21:12

grim7reaper

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

Pour LaTeX, il y a AUCTeX qui semble très complet (j’en ai un usage assez basique pour le moment).
Pour Python et C++, je ne développe qu’occasionnellement avec ces langages donc je ne suis pas très au fait des plugins pour eux mais il y a une liste ici et .

Hors ligne

#2384 Le 31/01/2012, à 21:17

Dr Le Rouge

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

Ouais, j'utilise déjà AUCtex, c'est pas mal anéfé.

Tiens, un truc pour faciliter l'écriture de doc doxygen. Je prends :3


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

#2385 Le 31/01/2012, à 21:50

tshirtman

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

 gabriel@tochange:~$ env|grep LANG
LANG=fr_FR.UTF-8
LANGUAGE=fr:zh_CN:zh_HK:en_GB:en

hum,… wth?

Hors ligne

#2386 Le 31/01/2012, à 21:56

grim7reaper

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

Et bien voilà, tout s’explique.

Reste à savoir pourquoi, tu as une des locales chinoise avant l’anglaise.

Hors ligne

#2387 Le 31/01/2012, à 21:59

tshirtman

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

bon, j'avais installé le chinois pour montrer que ça (presque) marche la saisie et tout y'a un bail, mais j'avais retiré, ça semble toujours être dans la liste par contre…

la question c'est pourquoi hg me sort du chinois, et pas les autres programmes alors?

Hors ligne

#2388 Le 31/01/2012, à 22:03

grim7reaper

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

Probablement une histoire de traduction.
Je suppose qu’il fait dans l’ordre des locales : il essaye de trouver la phrase en français, s’il n’y a pas il cherche dans la seconde langue (ici, chinois), s’il n’y a pas il cherche dans la suivante et ainsi de suite jusqu’à atteindre la langue originale en dernier recours.

Du moins je suppose (le fonctionnement exact est peut-être pas trop éloigné de ça).

Hors ligne

#2389 Le 31/01/2012, à 22:34

银河系

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

tshirtman a écrit :

bon, j'avais installé le chinois pour montrer que ça (presque) marche la saisie et tout y'a un bail, mais j'avais retiré, ça semble toujours être dans la liste par contre…

la question c'est pourquoi hg me sort du chinois, et pas les autres programmes alors?

C'est plutôt strange ton affaire…

Tu as installé quelle méthode de saisie et paquets pour le chinois ?

Personnellement, je me sers de IBus qui fonctionne vraiment bien. Je saisie le texte en pinyin et là ça me propose une liste de caractères, c'est la méthode la plus courante en Chine continentale.
La commande env|grep LANG me revoit tout simplement ça :

mickael@ubunstudio:~$ env|grep LANG
LANG=fr_FR.utf8
GDM_LANG=fr_FR.utf8

Rien de plus, rien de moins. Je n'ai pas Language.

Et je peux choisir sans soucis la langue de mon système à l'ouverture de ma session.

Dernière modification par 银河系 (Le 31/01/2012, à 22:51)

Hors ligne

#2390 Le 01/02/2012, à 00:35

tshirtman

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

oui, oui, j'avais installé les langues pour voir en même temps, ça n'a pas vraiment de rapport, tu as raison. Et oui, j'avais testé avec ibus, mais ça marchait pas vraiment bien, je ne sais plus trop pourquoi, donc mon frère avait conclus que ça n'avait pas franchement progressé depuis la dernière fois qu'il avait eu un portable ubuntu, y'a genre 5ans, et il est retourné à son mac… sad

donc bon, là j'ai pas vraiment trouvé comment désinstaller cette langue, mais je l'ai relégué bien en dessous de l'anglais, donc je ne devrais plus la voir…

Hors ligne

#2391 Le 01/02/2012, à 01:04

The Uploader

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

le système expert :

module ExpertSystem
  class Rule
    attr_reader :goal
    attr_reader :premises
    def initialize(goal, premises)
      @goal = goal
      @premises = premises
    end
  end
end
module ExpertSystem
  class RuleBase
    attr_reader :rules
    def initialize
      @rules = []
    end

    def add_rule(rule)
      @rules << rule
    end
  end
end
module ExpertSystem
  class Fact
    attr_reader :label
    def initialize(label)
      @label = label
    end

    def ==(fact)
      return fact.label == @label
    end
  end
end
module ExpertSystem
  class FactBase
    attr_accessor :facts_values
    def initialize
      @facts_values = {}
    end

    def has_fact(fact)
      @facts_values.each do |f|
        return true if f == fact
      end
      return false
    end
  end
end
require 'fact_base'
require 'rule_base'
require 'rule'
require 'fact'

module ExpertSystem
  class ExpertSystem
    attr_reader :fact_base
    attr_reader :rule_base
    attr_reader :inferred_facts
    def initialize
      @fact_base = FactBase.new
      @rule_base = RuleBase.new
      @inferred_facts = []
    end

    def add_fact(fact)
      @fact_base.facts_values.store(fact, false)
    end

    def set_fact_value(fact, value)
      @fact_base.facts_values[fact] = value if @fact_base.has_fact(fact)
    end

    def get_fact_value(fact)
      return @fact_base.facts_values[fact] if @fact_base.has_fact(fact)
      return false
    end

    def reset_facts
      @fact_base.facts_values.each do |k,v|
        k[v] = false
      end
    end

    def add_rule(rule)
      add_fact(rule) if not @fact_base.has_fact(rule)

      rule.premises.each do |p|
        add_fact(p) if not @fact_base.has_fact(p)
      end
      @rule_base.add_rule(rule)
    end

    def is_rule_valid(rule)
      return false if get_fact_value(rule.goal)

      rule.premises.each do |p|
        return false if not get_fact_value(p)
      end
      return true
    end

    def get_valid_rule
      @rule_base.rules.each do |r|
        return r if is_rule_valid(r)
      end
    end

    def clear_inferred_facts
      @inferred_facts = []
    end

    def infer
      clear_inferred_facts

      begin
        valid_rule = get_valid_rule
        set_fact_value(valid_rule.goal, true)
        @inferred_facts << valid_rule.goal
      end while valid_rule != nil
    end
  end
end

C'est fou comme c'est bien plus propre et hachement moins bavard (et pourtant plus clair..) que de l'Action Script. tongue

Bon je suis pas certain que les répétitions entre la classe FactBase et la classe ExpertSystem servent à quelque chose (add_fact, set_fact_value, reset_facts ne font qu'appeler la méthode éponyme de la classe FactBase. Je serais d'avis d'enlever ces méthodes de cette dernière, ça ne semble pas être de sa responsabilité), mais pour l'instant je me contente de traduire le code du prof en Ruby.

edit : nouvelles versions de FactBase et ExpertSystem sans les répétitions.

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


- 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

#2393 Le 01/02/2012, à 12:31

tshirtman

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

Tiens, à propos, j'essaye de faire une méthode iterrable (donc yield) qui renvoit des dicos, hors, si "return {....}" fonctionne, "yield {...}" semble être une erreur de syntax, une idée? Par contre, je peux faire yield d'une liste sans soucis… >_>

edit: faire le yield sur le retour d'une méthode qui crèe un dico ne pose pas de problème… c'est un tout petit peu débile ce language tongue

Dernière modification par tshirtman (Le 01/02/2012, à 12:36)

Hors ligne

#2394 Le 01/02/2012, à 12:43

The Uploader

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

J'ai pas compris, j'utilise quasiment jamais yield, je me souviens jamais ce que ça fait. tongue

T'as fait des tests dans irb ?

Dernière modification par The Uploader (Le 01/02/2012, à 12:55)


- 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

#2395 Le 01/02/2012, à 12:52

tshirtman

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

je viens de demander sur #ruby, il fallait faire yield({...})

ça reste un peu wtf…

en gros

return {
   :key => value,
   :key2 => value2
}

marche

yield {
   :key => value,
   :key2 => value2
}

pas marche

yield({
   :key => value,
   :key2 => value2
})

marche

apparement c'est par ce que {} c'est aussi une syntaxe pour les blocs…

je trouve quand même que c'est un peu débile…

Dernière modification par tshirtman (Le 01/02/2012, à 12:53)

Hors ligne

#2396 Le 01/02/2012, à 12:56

The Uploader

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

ben oui pour les blocks c'est soit do end ou { }

A ta place, j'aurais gardé le return, si c'est équivalent à yield ({})

edit  : une bonne ressource par rapport à ce que tu fais : http://ruby-doc.org/docs/ProgrammingRub … iners.html

edit :

wikipedia a écrit :

En Ruby, l'opérateur yield va entrainer l'exécution du bloc de code passé en paramètre :

def delimit
  puts "before yield"
  yield if block_given?
  puts "after yield"
end
delimit{ puts "in yield" }

retour :

#=> "before yield\n" "in yield\n" "after yield\n"

Bon, j'essaierai de m'en souvenir pour la 36ème fois. tongue

Dernière modification par The Uploader (Le 01/02/2012, à 13:02)


- 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

#2397 Le 01/02/2012, à 13:05

tshirtman

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

ben je veux un itérateur (pour l'utiliser dans un blocks, dans mon erb), je peux pas faire return plusieurs fois, si?

    date = first
    while date != last
      date += 1
      # warning: () necessary
      yield({
        :day => date.day,
        :month => date.month,
        :year => date.year,
        :worked => date.wday < 5
      })
    end
  end

Hors ligne

#2398 Le 01/02/2012, à 13:14

The Uploader

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

Euh non pour le return plusieurs fois, c'est impossible. >_<

Dernière modification par The Uploader (Le 01/02/2012, à 13:15)


- 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

#2400 Le 01/02/2012, à 13:29

The Uploader

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

sinon pour le yield ça vient du fait que les () sont facultatives pour les appels de méthodes en Ruby, j'dirais.

Mais bon comme d'habitude quand ça prête à confusion le pauvre interpréteur, ben mettre les parenthèses fait que tout rendre dans l'ordre. tongue

Comme quand on fait un

c = Class1.new ArgClass1.new arg1_subarg, arg1_subarg2, arg2

ben Ruby il y arrive pas...
ça passe en faisant :

c = Class1.new ArgClass1.new (arg1_subarg, arg1_subarg2), arg2

Dernière modification par The Uploader (Le 01/02/2012, à 13:38)


- 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