Mouarf, tendu celui d'aujourd'hui en Bash. J'ai sorti le Python. :D
Je suis assez dégoûté, j'ai perdu bien 20-30mn sur un bug stupide. Et au final je fais 94%… Donc tous ceux qui ont fait 100% me passent devant, même en mettant beaucoup plus de temps que moi.
Heu non je plaisantais pas… J'ai fait 3 ans d'Ada pendant mes études et ça fait 3 ans que j'encadre des TP et TD d'Ada en première année (j'ai oublié tout ce qui est paquetages, threads, pointeurs et autre par contre vu que je n'ai pas à l'enseigner).
Si je dis que je serais moins productif, c'est pour deux raisons :
- J'ai beaucoup plus d'expérience en C, C++, Java et Python.
- Le langage en lui-même est un peu trop verbeux. On code la même chose plus vite en Python.
Bon, je viens de voir la faisabilité du bash en refaisant le dernier concours. Et franchement c'est super jouable :D. Tout dépend de ce qui est à faire et des structures de données utiles.
J'ai plus de 50pts avec ce code fait en 15-20mn (ça fait des mois que je n'avais pas fait de bash):
#!/bin/bash
# Read init information from standard input, if any
read TX TY
while true; do
# Read information from standard input
read H N
geantsX=()
geantsY=()
sumX=0
sumY=0
close=0
for ((i=0;i<$N;i++)); do
read X Y
geantsX[i]=$X
geantsY[i]=$Y
sumX=$((sumX + X))
sumY=$((sumY + Y))
diffX=$((TX - X))
diffY=$((TY - Y))
diffX=${diffX#-}
diffY=${diffY#-}
if (( diffX + diffY < 3 )); then
close=1
fi
done
if (( $close )); then
echo "STRIKE"
continue
fi
bcX=$((sumX / N))
bcY=$((sumY / N))
echo `{mathjax} sumX `sumY 1>&2
s=
if (( TY > bcY )); then
s="N"
(( TY-- ))
elif (( TY < bcY )); then
s="S"
(( TY++ ))
fi
if (( TX > bcX )); then
s="${s}W"
(( TX-- ))
elif (( TX < bcX )); then
s="${s}E"
(( TX++ ))
fi
if [[ "vide$s" = "vide" ]]; then
echo "WAIT"
else
echo $s
fi
done
Pourquoi j'irais demander un langage que je ne connais pas :D ? (enfin, un langage que j'ai oublié, je savais résoudre des exos d'algo en Caml il y a quelques années…)
Je pense qu'en bash, il faut anticiper le coup en se faisant un ensemble de fonctions pour le rendre plus utilisable. J'avoue avoir hésité la dernière fois mais je m'étais dit qu'il y aurait trop d'utilisateurs à cause de la nouveauté…
Rah, ça se tente… :D. J'hésite aussi avec le Javascript car ça fait longtemps que j'ai pas codé avec et ce serait l'occasion d'actualiser mes connaissances. C'est quoi comme moteur pour le Javascript ? Ça n'a pas l'air d'être du nodejs à première vue. Genre je vois un printErr() pour le debug (pas évident à trouver l'info d'ailleurs), il y a d'autres fonctions du genre ?
Est-ce que vous envisagez la possibilité de pouvoir coder en Ada ? Je ne suis pas particulièrement productif dans ce langage (je participe en Java, Python3 ou C/C++ selon mon humeur), mais s'il y a moyen de gagner un tshirt en finissant premier sur ce langage… :D
Oui j'avais bien compris mais j'avais oublié un instant que un 'int' n'était pas juste une valeur mais un objet avec des méthodes. D'où l'intérêt d'éviter d'en faire des doublons. Pour la peine, est-ce qu'ils n'auraient pas gagné en perf en faisant une distinction entre int et Integer comme en Java ?
Je ne pensais pas à utiliser is en fait, juste ==. Je voyais les symboles comme des int avec des lettres tout simplement. Et donc tout comme avec les int, je n'utilise pas is.
Mais sinon je savais pas pour cette histoire de singletons. J'ai du mal à voir l'intérêt par contre.
En fait, Python supporte les symboles en se limitant à des caractères hexa :D:
symbol = 0xdeadbeef
Suffirait d'ajouter une nouvelle syntaxe pour exprimer des nombres dans une base 62 (26 * 2 + 10) et ça irait :). Bon, idéalement, on inventerait un nouveau type pour ça quand même.
Je pense comprendre l'intérêt mais pour moi c'est quelque chose d'assez rare au final. En dehors de considérations de perf, je préfère l'usage d'un enum ou de constantes plutôt qu'un symbole. Pour moi c'est tout aussi clair sauf que si je fais une typo pour mon enum, je devrais avoir une erreur de syntaxe. Comment je peux être sûr avec un symbole ? Déjà que le principal reproche que je fais au python c'est de pouvoir écrire :
obj.totto = 42
au lieu de
obj.toto = 42
sans avoir d'erreur facilement visible. Si en plus on rajoute des symboles qui ne sont pas non plus vérifiables, je repasse au Java.
Bon, je viens de lire tous les commentaires à ce sujet. Ma conclusion est que ouais ça pourrait être sympa dans de rares cas. Mais franchement, on peut largement s'en passer. On perd encore plus en vérification syntaxique par rapport à un enum ou une constante. Et si on veut un truc qui s'en rapproche, on peut toujours utiliser directement des chaînes de caractère (modulo les perfs peut-être). De toute façon, il y a tellement peu d'exemples où ça change la vie…
Puisque ça manque au Python, est-ce que tu peux donner un exemple concret où la notion de symbole apporterait quelque chose ? N'étant pas familier avec le Ruby, j'ai du mal à voir de quoi il s'agit. J'imagine que c'est différent des types énumérés ?
% ./plee-the-bear
./plee-the-bear: /lib/i386-linux-gnu/i686/cmov/libc.so.6: version `GLIBC_2.15' not found (required by ./plee-the-bear)
./plee-the-bear: /lib/i386-linux-gnu/i686/cmov/libc.so.6: version `GLIBC_2.15' not found (required by /home/max/Téléchargements/plee-the-bear/lib/libX11.so.6)
Bon, je viens de suivre bêtement les instructions, il faut moins de 10mn pour avoir un truc qui tourne sur une Debian Testing. Mais quand je dis « tourne », il faut pas le comprendre comme fonctionnel.
Je n'ai pas le temps de chercher à résoudre les problèmes mais pour l'instant, le gros soucis c'est que ça compile pas le document latex édité. Sans doute parce que ma version de latexmk est trop vieille ?
Sinon j'ai toute l'interface du site qui marche parfaitement et qui est ultra réactive.
[^] # Re: Durée
Posté par Maxime (site web personnel) . En réponse à la dépêche Concours de programmation CodinGame le 22 mars 2014. Évalué à 2.
Encore une fois, nickel la durée. Ça se fait effectivement en 2h si on sait coder une recherche de plus court chemin sans difficulté.
[^] # Re: Ada ?
Posté par Maxime (site web personnel) . En réponse à la dépêche Concours de programmation CodinGame le 22 mars 2014. Évalué à 1.
Mouarf, tendu celui d'aujourd'hui en Bash. J'ai sorti le Python. :D
Je suis assez dégoûté, j'ai perdu bien 20-30mn sur un bug stupide. Et au final je fais 94%… Donc tous ceux qui ont fait 100% me passent devant, même en mettant beaucoup plus de temps que moi.
[^] # Re: Ada ?
Posté par Maxime (site web personnel) . En réponse à la dépêche Concours de programmation CodinGame le 22 mars 2014. Évalué à 2. Dernière modification le 22 mars 2014 à 09:37.
Heu non je plaisantais pas… J'ai fait 3 ans d'Ada pendant mes études et ça fait 3 ans que j'encadre des TP et TD d'Ada en première année (j'ai oublié tout ce qui est paquetages, threads, pointeurs et autre par contre vu que je n'ai pas à l'enseigner).
Si je dis que je serais moins productif, c'est pour deux raisons :
- J'ai beaucoup plus d'expérience en C, C++, Java et Python.
- Le langage en lui-même est un peu trop verbeux. On code la même chose plus vite en Python.
Edit: désolé je réponds au commentaire au dessus.
[^] # Re: Ada ?
Posté par Maxime (site web personnel) . En réponse à la dépêche Concours de programmation CodinGame le 22 mars 2014. Évalué à 3.
Bon, je viens de voir la faisabilité du bash en refaisant le dernier concours. Et franchement c'est super jouable :D. Tout dépend de ce qui est à faire et des structures de données utiles.
J'ai plus de 50pts avec ce code fait en 15-20mn (ça fait des mois que je n'avais pas fait de bash):
[^] # Re: Ada ?
Posté par Maxime (site web personnel) . En réponse à la dépêche Concours de programmation CodinGame le 22 mars 2014. Évalué à 2.
Ah mais je l'ai déjà lu en plus ce tableau :D. Merci !
Aucune optimisation de type -O2 ou -O3 pour le C ? Pas de -funroll-loops ou autre opti du genre ?
[^] # Re: Ada ?
Posté par Maxime (site web personnel) . En réponse à la dépêche Concours de programmation CodinGame le 22 mars 2014. Évalué à 2.
Est-ce qu'il y a une page qui détaille pour chaque langage le compilo et les options utilisées ? Si non, ce serait une bonne idée de rajouter ça.
[^] # Re: OCaml ?
Posté par Maxime (site web personnel) . En réponse à la dépêche Concours de programmation CodinGame le 22 mars 2014. Évalué à 2.
Pourquoi j'irais demander un langage que je ne connais pas :D ? (enfin, un langage que j'ai oublié, je savais résoudre des exos d'algo en Caml il y a quelques années…)
[^] # Re: Ada ?
Posté par Maxime (site web personnel) . En réponse à la dépêche Concours de programmation CodinGame le 22 mars 2014. Évalué à 2.
Je pense qu'en bash, il faut anticiper le coup en se faisant un ensemble de fonctions pour le rendre plus utilisable. J'avoue avoir hésité la dernière fois mais je m'étais dit qu'il y aurait trop d'utilisateurs à cause de la nouveauté…
Rah, ça se tente… :D. J'hésite aussi avec le Javascript car ça fait longtemps que j'ai pas codé avec et ce serait l'occasion d'actualiser mes connaissances. C'est quoi comme moteur pour le Javascript ? Ça n'a pas l'air d'être du nodejs à première vue. Genre je vois un printErr() pour le debug (pas évident à trouver l'info d'ailleurs), il y a d'autres fonctions du genre ?
# Ada ?
Posté par Maxime (site web personnel) . En réponse à la dépêche Concours de programmation CodinGame le 22 mars 2014. Évalué à 3.
Est-ce que vous envisagez la possibilité de pouvoir coder en Ada ? Je ne suis pas particulièrement productif dans ce langage (je participe en Java, Python3 ou C/C++ selon mon humeur), mais s'il y a moyen de gagner un tshirt en finissant premier sur ce langage… :D
[^] # Re: A quand l'équivalent des symboles Ruby en Python ?
Posté par Maxime (site web personnel) . En réponse à la dépêche Python 3.4 est sorti avec 7 nouveaux modules. Évalué à 1.
Oui j'avais bien compris mais j'avais oublié un instant que un 'int' n'était pas juste une valeur mais un objet avec des méthodes. D'où l'intérêt d'éviter d'en faire des doublons. Pour la peine, est-ce qu'ils n'auraient pas gagné en perf en faisant une distinction entre int et Integer comme en Java ?
[^] # Re: A quand l'équivalent des symboles Ruby en Python ?
Posté par Maxime (site web personnel) . En réponse à la dépêche Python 3.4 est sorti avec 7 nouveaux modules. Évalué à 2.
Je ne pensais pas à utiliser is en fait, juste ==. Je voyais les symboles comme des int avec des lettres tout simplement. Et donc tout comme avec les int, je n'utilise pas is.
Mais sinon je savais pas pour cette histoire de singletons. J'ai du mal à voir l'intérêt par contre.
[^] # Re: A quand l'équivalent des symboles Ruby en Python ?
Posté par Maxime (site web personnel) . En réponse à la dépêche Python 3.4 est sorti avec 7 nouveaux modules. Évalué à 4.
En fait, Python supporte les symboles en se limitant à des caractères hexa :D:
Suffirait d'ajouter une nouvelle syntaxe pour exprimer des nombres dans une base 62 (26 * 2 + 10) et ça irait :). Bon, idéalement, on inventerait un nouveau type pour ça quand même.
[^] # Re: A quand l'équivalent des symboles Ruby en Python ?
Posté par Maxime (site web personnel) . En réponse à la dépêche Python 3.4 est sorti avec 7 nouveaux modules. Évalué à 5.
Je pense comprendre l'intérêt mais pour moi c'est quelque chose d'assez rare au final. En dehors de considérations de perf, je préfère l'usage d'un enum ou de constantes plutôt qu'un symbole. Pour moi c'est tout aussi clair sauf que si je fais une typo pour mon enum, je devrais avoir une erreur de syntaxe. Comment je peux être sûr avec un symbole ? Déjà que le principal reproche que je fais au python c'est de pouvoir écrire :
au lieu de
sans avoir d'erreur facilement visible. Si en plus on rajoute des symboles qui ne sont pas non plus vérifiables, je repasse au Java.
[^] # Re: A quand l'équivalent des symboles Ruby en Python ?
Posté par Maxime (site web personnel) . En réponse à la dépêche Python 3.4 est sorti avec 7 nouveaux modules. Évalué à 3.
Bon, je viens de lire tous les commentaires à ce sujet. Ma conclusion est que ouais ça pourrait être sympa dans de rares cas. Mais franchement, on peut largement s'en passer. On perd encore plus en vérification syntaxique par rapport à un enum ou une constante. Et si on veut un truc qui s'en rapproche, on peut toujours utiliser directement des chaînes de caractère (modulo les perfs peut-être). De toute façon, il y a tellement peu d'exemples où ça change la vie…
[^] # Re: A quand l'équivalent des symboles Ruby en Python ?
Posté par Maxime (site web personnel) . En réponse à la dépêche Python 3.4 est sorti avec 7 nouveaux modules. Évalué à 5.
Un peu comme en C ?
En Ruby ça donnerait quoi ? Il n'y aurait pas besoin d'enum et possibilité de mettre :gauche, :droit et :eteint ?
Au niveau du typage, ça donnerait quoi ?
[^] # Re: A quand l'équivalent des symboles Ruby en Python ?
Posté par Maxime (site web personnel) . En réponse à la dépêche Python 3.4 est sorti avec 7 nouveaux modules. Évalué à 3.
Puisque ça manque au Python, est-ce que tu peux donner un exemple concret où la notion de symbole apporterait quelque chose ? N'étant pas familier avec le Ruby, j'ai du mal à voir de quoi il s'agit. J'imagine que c'est différent des types énumérés ?
[^] # Re: Marche presque partout ?
Posté par Maxime (site web personnel) . En réponse au journal Premiers builds du nouveau Plee the Bear. Évalué à 2.
Je confirme, j'obtiens la même chose.
# Marche presque partout ?
Posté par Maxime (site web personnel) . En réponse au journal Premiers builds du nouveau Plee the Bear. Évalué à 3.
J'ai connu plus portable… Sur Debian Stable :
[^] # Re: goto
Posté par Maxime (site web personnel) . En réponse au journal <3 goto. Évalué à 8.
Alors que c'est clairement un mot-croisillon.
# Alternatives ?
Posté par Maxime (site web personnel) . En réponse à la dépêche ShareLatex devient libre !. Évalué à 2.
Je suis tombé par hasard sur FlyLatex, quelqu'un a déjà essayé ?
[^] # Re: Nouvelle instance
Posté par Maxime (site web personnel) . En réponse à la dépêche ShareLatex devient libre !. Évalué à 2.
Tu as le même problème que moi : si tu mets une image (suffit de créer un projet "exemple"), ça ne compile plus.
[^] # Re: Quels paquetages sont installés et quel est la version de leur installation ?
Posté par Maxime (site web personnel) . En réponse à la dépêche ShareLatex devient libre !. Évalué à 2.
C'est peut-être ce qui a fait planter la compilation… Mais c'est un problème qui est en cours de traitement : https://github.com/sharelatex/filestore-sharelatex/issues/3
[^] # Re: Quels paquetages sont installés et quel est la version de leur installation ?
Posté par Maxime (site web personnel) . En réponse à la dépêche ShareLatex devient libre !. Évalué à 3.
Bon, je viens de suivre bêtement les instructions, il faut moins de 10mn pour avoir un truc qui tourne sur une Debian Testing. Mais quand je dis « tourne », il faut pas le comprendre comme fonctionnel.
Je n'ai pas le temps de chercher à résoudre les problèmes mais pour l'instant, le gros soucis c'est que ça compile pas le document latex édité. Sans doute parce que ma version de latexmk est trop vieille ?
Sinon j'ai toute l'interface du site qui marche parfaitement et qui est ultra réactive.
[^] # Re: Quels paquetages sont installés et quel est la version de leur installation ?
Posté par Maxime (site web personnel) . En réponse à la dépêche ShareLatex devient libre !. Évalué à 2. Dernière modification le 27 février 2014 à 13:48.
Un reddit ? C'est quoi comme logiciel ? Je vois pas de tel paquet sur ma debian.
Edit: ok en fait c'est redis et la version 2.8 est dispo sur Jessie.
[^] # Re: Comment choisir ?
Posté par Maxime (site web personnel) . En réponse à la dépêche Plus de 1000 applications dans F-Droid !. Évalué à 3.
Oui :
https://f-droid.org/repository/issues/?do=view_issue&issue=375
https://f-droid.org/repository/issues/?do=view_issue&issue=222