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.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails)

nombre réponses : 25

#0 Re : -1 »  [resolu]allocation dynamique en ada : comment faire comme malloc ? » Le 27/09/2014, à 19:39

grim7reaper
Réponses : 2

Bonjour,

couim a écrit :

j'aimerai faire un tableau-maison en ada avec l'allocation dynamique

Déjà il faut que tu sache qu’en Ada on à moins souvent besoin, par rapport au C, de faire explicitement des allocations dynamique

couim a écrit :

(vu qu'un tableau c'est... un pointeur en gros mais static)

Ça c’est vrai en C (et encore, il y a des différence entre pointeur et tableau, même en C), mais pas du tout en Ada.

Qu’est ce que tu veux faire au final ?

#1 Re : -1 »  /* Topic des codeurs [8] */ » Le 13/03/2014, à 10:56

grim7reaper
Réponses : 2221

C’est quand même moche de forcer à passer par Twitter pour ça hmm
Sans même rentrer dans des considérations éthiques, le fait est que Twitter n’est pas accessible par chez moi tongue (bon, apparemment vimgolf non plus donc le problème est résolu >_<)

#2 Re : -1 »  /* Topic des codeurs [8] */ » Le 13/03/2014, à 15:40

grim7reaper
Réponses : 2221
Rolinh a écrit :

C'est sûr. Ça ne coûte pas grand chose de permettre un login standard...

Ouais, mais l’auteur semble pas très chaud pour hmm (si j’en crois cette entrée vieille de 3 ans)

#3 Re : -1 »  /* Topic des codeurs [8] */ » Le 15/03/2014, à 05:39

grim7reaper
Réponses : 2221
Elzen a écrit :

Je sais faire des scripts Shell, mais sans IHM et plus pour la bidouille perso que pour des trucs partageables.

Niveau IHM il me semble qu’il y a les trucs genre Zenity ou glade2script (développé par un gars du forum).

Elzen a écrit :

Je sais faire du Python/PyGTK, j'aime vraiment beaucoup, mais ça ne va pas tarder à devenir obsolète, donc ce n'est plus le moment de faire de nouveaux trucs avec.

Bah laisse tomber PyGTK et utilise le nouveau binding alors, tu ne seras plus obsolète et tu pourras faire des trucs nouveaux.
Ou alors par sur du Qt (PyQt ou PySide, selon la licence que tu préfères, niveau API c’est 99% compatible).

Elzen a écrit :

Je voudrais un langage dans lequel il soit relativement simple de rentrer et dont la syntaxe n'est pas trop horrible, histoire d'être sûr de ne pas me décourager en route.

C’est quoi une syntaxe horrible de ton point de vue (car c’est typiquement le truc subjectif) ?

Elzen a écrit :

Je voudrais un langage avec une plutôt bonne bibli graphique.

Bah, les 3/4 des langages n’ont pas de bibliothèques graphiques de toutes façons, juste un binding (plus ou moins mature/documenté/maintenu…) vers Gtk (ou Qt, Tk, WxWidget, EFL…).

Elzen a écrit :

Et si possible, je préférerais un langage qu'on peut compiler, parce que j'aime bien compiler.

Bah regarde QML/Qt à la limite.
Je n’appelle pas ça C++/Qt pour deux raisons:
1. Qt ce n’est pas du C++ (faut utiliser un préprocesseur pour rendre le code compilable par un compilateur C++)
2. Depuis Qt5, ils poussent vraiment vers QML un maximum (tu peux faire beaucoup de choses sans écrire une ligne de C++ apparemment)
En plus comme tu aimes bien les langages Web, QML est un espèce de Javascript plus limité je crois.

Sinon, dans les trucs compilés il y a (liste non exhaustive) :
- Ada (même si le Hibou en faisait une pub horrible, c’est un très bon langage au final)
- Go et Rust pour les trucs à la mode
- D (un C++ avec une syntaxe moins horrible pour les template, entre autres)
- Haskell et OCaml pour voir des trucs nouveaux (mais j’ai peur que là ça rendre dans ta case « syntaxe horrible »)



The Uploader a écrit :

Vala ?

Mouais, perso’ je suis pas fan (mais peut-être qu’Elzen aimera, tu fais bien de le mentionner)

The Uploader a écrit :

QT/C++ ? (avec QML pour écrire les "vues").

QuickTime avec C++ oO ?
Tu voulais écrire Qt peut-être ? tongue

#4 Re : -1 »  /* Topic des codeurs [8] */ » Le 22/03/2014, à 03:33

grim7reaper
Réponses : 2221
Le Rouge a écrit :

Ça ça a l'air marrant (un livre correspondant à un cours de maths du MIT qui se concentre sur comment estimer des trucs à la louche et de tête correctement ; un truc vachement utile dans la vraie vie).

Intéressant smile

#5 Re : -1 »  /* Topic des codeurs [8] */ » Le 23/03/2014, à 02:02

grim7reaper
Réponses : 2221
Rolinh a écrit :

Que pensez-vous de l'introduction des lambda expressions dans Java 8 ?

J’en pense que, tout comme l’orienté objet il y a quelques années, le fonctionnel est à la mode en ce moment et donc tout les langages en intégrent des bout plus ou moins gros.
D’ailleurs niveau prog’ fonctionnelle, il y a aussi Optional qui se rapproche de Maybe en Haskell ^^

Pour moi la grosse nouveauté de Java 8, c’est qu’ils ont enfin intégré Joda Time et qu’on a enfin une API utilisable (juste pour rire, jeter un œil à java.sql.time et java.util.date dans Java 7 et compter le nombre de méthodes dépréciées >_<).
java.util.stream ça semble très sympa aussi, surtout niveau parallèlisation.

Sinon les interfaces fonctionnelles ça donne un peu de souplesse au langage (ça ne lui fait pas de mal je pense).

Cet article présente les principales nouveautés de Java 8.

Depuis Java 7, avec NIO2 et le try-with-resources (un truc comme with en Python) par exemple, Java deviendrai presque utilisable de manière agréable tongue

#6 Re : -1 »  /* Topic des codeurs [8] */ » Le 24/03/2014, à 11:49

grim7reaper
Réponses : 2221
Rolinh a écrit :

Faut dire que, c'est mon impression en tout cas, MapReduce a la cote en ce moment. Ça doit être dans l'air du temps en raison des tendances "big data". J'ai d'ailleurs récemment découvert que même MongoDB bénéficie d'un MapReduce.

Ça rejoint ce que je disais à propos de la prog’ fonctionnelle.
Qu’est-ce que MapReduce si ce n’est de la prog’ fonctionnelle (map et reduce étant des primitives en approche fonctionnelle) appliquée au big data.

Rolinh a écrit :

Ceci dit, c'est marrant mais j'ai l'impression que Java 8 se rapproche/s'inspire de Scala sur bien des aspects.

Bah Scala étant un langage pas mal orienté fonctionnel qui tourne sur JVM (donc qui peut utiliser les lib’ Java) et qui a pas mal de succès, c’est pas surprenant que Java s’en inspire.

#7 Re : -1 »  /* Topic des codeurs [8] */ » Le 25/03/2014, à 04:30

grim7reaper
Réponses : 2221
Rolinh a écrit :
grim7reaper a écrit :

Qu’est-ce que MapReduce si ce n’est de la prog’ fonctionnelle (map et reduce étant des primitives en approche fonctionnelle) appliquée au big data.

Tu as pris un raccourcis de trop. MapReduce, tel que décrit dans la publication de Google, ce n'est PAS de la prog fonctionnelle si ce n'est que les fonctions map et reduce en sont inspirées. C'est simplement un modèle de programmation pour paralléliser le processing d'une tâche sur un certain nombre de nœuds de calculs, avec en général plus de nœuds pour le mapping que pour la réduction (mais cela dépend du problème évidemment). Une fonction map (avec éventuellement une étape de splitting au préalable), dans ce cadre là, prend typiquement une paire clé/valeurs et renvoi aussi une paire clé valeurs qui est ensuite traitée par une fonction de réduction (avec éventuellement une étape de shuffle au préalable). Après, oui, l'idée générale sous-jacente s'inspire de ce que l'on trouve dans le fonctionnel.

En effet, j’ai pris un raccourci foireux. Ce n’est pas totalement de programmation fonctionnelle c’est vrai, mais ça n’en est pas moins très fortement inspiré :

http://research.google.com/archive/mapreduce-osdi04.pdf a écrit :

Abstract
[…]
Programs written in this functional style are automatically parallelized and executed on a large cluster of commodity machines.
[…]
Introduction
[…]
Our abstraction is inspired by the map and reduce primitives present in Lisp and many other functional langages.
[…]
Our use of a functional model with user-specied map and reduce operations allows us to parallelize large computations easily and to use re-execution as the primary mechanism for fault tolerance.

Rolinh a écrit :
grim7reaper a écrit :

Bah Scala étant un langage pas mal orienté fonctionnel qui tourne sur JVM (donc qui peut utiliser les lib’ Java) et qui a pas mal de succès, c’est pas surprenant que Java s’en inspire.

Oui et non. Ils pourraient aussi ne pas s'en inspirer car par certains aspects, cela s'éloigne pas mal de certains concepts de Java. Ne pas pouvoir faire quelque chose dans le genre risque d'en surprendre plus d'un (m'enfin, je me trompe peut-être):

int foo = 0;
List<String> bars = Arrays.asList("a", "b", "c");
bars.forEach(s -> {
    foo++;
});

Possible.
Mais c’est aussi peut-être pour récupérer des dev’ Java passé à Scala.

#8 Re : -1 »  /* Topic des codeurs [8] */ » Le 26/04/2014, à 09:52

grim7reaper
Réponses : 2221

@doudoulolita : je crois qu’il n’y a pas grand-monde qui connaissent bien (mis à part Elzen peut-être) JavaScript ici hmm

@Le Rouge : tu connais ça ? Ça va faire presque 10 ans que ça existe, mais là ils viennent de le libérer.

#9 Re : -1 »  /* Topic des codeurs [8] */ » Le 02/05/2014, à 13:28

grim7reaper
Réponses : 2221

@Pylades : pourquoi tu filtres -fstack-protector-strong ?

#10 Re : -1 »  /* Topic des codeurs [8] */ » Le 10/07/2014, à 08:25

grim7reaper
Réponses : 2221
Elzen a écrit :

Dites, les gens : apparemment, je vais bientôt devoir coder un A*. J'n'avais jamais approché ces petites bêtes-là avant, vous auriez de la bonne doc' à ce sujet ?

Y'en a une implémentation dans Hortus Belli tongue
Sinon il y a l'excellent article de Amit Patel

#11 Re : -1 »  /* Topic des codeurs [8] */ » Le 10/07/2014, à 08:40

grim7reaper
Réponses : 2221

Tous ses articles sont intéressants en fait smile

#12 Re : -1 »  /* Topic des codeurs [8] */ » Le 05/09/2014, à 20:24

grim7reaper
Réponses : 2221
Elzen a écrit :

Je viens de tomber sur ça, ça a l'air assez fun.

Ça avait pas déjà été posté ici ça, car je me rappelle être déjà aller sur ce site.

Pylades a écrit :

Moins je touche à la “bureautique”, mieux je me porte ; et je pense que c’est le cas pour beaucoup ici.

Ho que oui !

#13 Re : -1 »  L'utilisation du langage C est évitée dans le développement de Linux? » Le 14/08/2014, à 19:28

grim7reaper
Réponses : 6
roi a écrit :

Bonjour

Je pose cette question parce seconde Eric Raymond dans "Comment devenir un hacker",en fait, plus vous éviterez de programmer en C, plus vous serez productif.
référence: http://files.jkbockstael.be/hacker-howto-fr.html

Tiens c’est bizarre, y’a eu presque exactement le même message à troll sur la ML de dlfy, et le même jour en plus.

On retrouve la même construction de phrase hasardeuse en plus :

ML DragonflyBSD a écrit :

because second Eric Raymond

forum Ubuntu-fr a écrit :

parce seconde Eric Raymond

#15 Re : -1 »  Fil politique – règles à lire dans le premier message avant de poster » Le 25/03/2014, à 07:23

grim7reaper
Réponses : 5084
slan a écrit :
inkey a écrit :
slan a écrit :

Il vaut mieux voté blanc que de ne pas voter

Et pourquoi ?

voté blanc signifie que tu t'en fous pas de la politique mais tu n'est pas d'accord sur la votation ou le choix des candidats.
ne pas voté signifie que tu t'en fous royalement de la politique et que tu n'a rien a foutre que le pays sombre ou pas et de faire son travail de citoyen

Aucune différence en France : les votes blancs ne sont pas comptabilisés (donc que tu restes chez toi ou que tu ailles voter blanc ça ne change absolument rien).
Mais apparemment ça va changer à partir du 1 avril 2014.

#16 Re : -1 »  [Résolu] C/GTK+ 2.0 : invalid cast from 'GtkButton' to 'GtkEntry' » Le 23/06/2014, à 21:12

grim7reaper
Réponses : 4

Salut,

Et bien le message est explicite : tu essayes de convertir un GtkButton en GtkEntry.
Dans ce bout de code :

		tempentry = GTK_WIDGET(list->data);
		list = g_list_next(list);
		list = g_list_next(list);

Au final tu dois pointer sur un des boutons et non pas sur la zone de texte.

Personnellement, je m'y serait pris autrement.
C’est le bouton qui déclenche l’action, mais il a besoin de contexte pour faire son travail. Du coup, la façon propre serait d’ajouter ce contexte au bouton.
Ce qui donnerait pour main :

    g_object_set_data(G_OBJECT(button[0]), "entry", entry);
    g_object_set_data(G_OBJECT(button[0]), "label", label);
    g_signal_connect(G_OBJECT(button[0]), "clicked", G_CALLBACK(copier), NULL);

Et pour copier :

void copier(GtkWidget *button, gpointer data)
{
    GtkEntry *entry   = g_object_get_data (G_OBJECT(button), "entry");
    GtkLabel *label   = g_object_get_data (G_OBJECT(button), "label");
    const gchar *text = gtk_entry_get_text(entry);
    gtk_label_set_text(label, text);
}

Sinon, petite question : pourquoi GTK2 au lieu de GTK3 ?

#17 Re : -1 »  [Résolu] C/GTK+ 2.0 : invalid cast from 'GtkButton' to 'GtkEntry' » Le 25/06/2014, à 13:13

grim7reaper
Réponses : 4

En fait c'est bien plus simple que ça.
Chaque objet a une table (tableau associatif) où tu peux ajouter des pointeurs (associés à des chaînes de caractères).

Donc là je fais juste en sorte que mon GtkButton garde une référence sur le GtkEntry et le GtkLabel pour pouvoir y accéder plus tard.
Le GtkButton ne devient pas pas un GtkEntry, il garde juste une référence dessus pour un accès ultérieur.

Je ne sais pas si c'est bien clair.

#18 Re : -1 »  programation questions general, lien systeme et renseignements » Le 23/06/2014, à 10:24

grim7reaper
Réponses : 36
tiramiseb a écrit :

Sinon, vous saviez que Python est plus rapide que C ?
http://morepypy.blogspot.fr/2011/02/pyp … afted.html
smile

Non.
Le C est plus rapide que Python, mais Python peut (dans certains cas) être plus rapide.
Et c'est exactement ce que dit ton article: "PyPy faster than C on a carefully crafted example"
La partie en gras est importante...



Haleth a écrit :

Hey, seb, on dirait que tu nous sort un vieux troll baveux !

Et toi tu tombes dedans, et réponds à côté...

Haleth a écrit :

Et puis, si par hasard, tu te dis : "au lieu de copier le code, et si j'étais meilleur que ça !".

Programmons le C de meilleur façon :

Et c'est là que tu pars en hors-sujet.
Si le code de add était dans un fichier séparé, il y a une raison...

Haleth a écrit :

Et le résultat :

# gcc -O3 -o main *.c && time ./main 

real    0m0.002s
user    0m0.000s
sys 0m0.000s

OWH MON DIEU !
En fait, quand on sait programmer, le C est 100 fois plus rapide !

Ouais forcément, quand tu compares un return 0 en C à la somme des 1 000 000 000 premier nombres en Python, il faut s'attendre à une différence gigantesque.
Ton programme C ne fait rien. Il suffit de regarder l'assembleur généré:

main:
.LFB1:
    .cfi_startproc
    rep
    ret
    .cfi_endproc

Tu t'en aies rendu compte au moins? Si oui, admet que la comparaison est malhonnête.

Le but de l'article c'est de montrer que PyPy permet de l'optimisation inter-module, ce que ne permet pas le C et du coup dans certains cas, grâce à cette optimisation, PyPy peut poutrer le C.
Dans le cas général, on est d'accord que le C reste plus rapide.

Au passage, oui je sais que GCC fait de la LTO et que ça améliore un peu les choses (typiquement, même si ta fonction add est dans une autre TU (Translation Unit) mais que tu la compiles en même temps elle va être optimisé quand même), mais que je sache, tu ne peux toujours pas optimiser le code qui est dans un .so (alors que PyPy peut optimiser le code des bibliothèques que tu utilises. Et c'est ça le sujet de l'article.

De même ici, PyPy bouffe le C car ayant plus d'info à l'exécution il peut se permettre des optim' qu'un compilo C ne peut pas faire. Mais ça ne veux pas dire que Python est plus rapide que le C en général.

#19 Re : -1 »  programation questions general, lien systeme et renseignements » Le 23/06/2014, à 10:46

grim7reaper
Réponses : 36

Mouais, t'as rien compris quoi >_<
Va-y, met le code de add dans un .so (ce qui est l'équivalent d'un module Python) et on en reparle de qui drop quoi.

#20 Re : -1 »  programation questions general, lien systeme et renseignements » Le 23/06/2014, à 11:01

grim7reaper
Réponses : 36
tiramiseb a écrit :
Haleth a écrit :

vu que le C évite le calcul inutile, que le compilateur C est plus optimisé que pypy, en éliminant le code inutile.

Ça serait vrai s'il savait "éliminer le code inutile" quand il est placé dans un autre fichier, ce qui n'est pas le cas.

C'est plus compliqué que ça.
GCC sait éliminer le code inutile même s'il est dans un autre fichier à condition que tu le compiles en même temps que ton programme (grace à la LTO).
Par contre, si le code est dans une bibliothèque, là oui GCC ne peut pas le faire.

#21 Re : -1 »  Fin de l'humanité ? » Le 29/05/2014, à 01:14

grim7reaper
Réponses : 82
bitman a écrit :

roll Faut pas oublier les Zombies aussi.

Toutafé !
When zombies attack!: Mathematical modelling of an outbreak of zombie infection

#22 Re : -1 »  ouvrire un fichier avec Gtk+? » Le 08/06/2014, à 13:05

grim7reaper
Réponses : 7

Et bien il va falloir relire, car il y a une fonction open_file qui présente la fonction g_file_get_contents qui charge le contenu d’un fichier dans une chaîne de caractères.
Ensuite, il suffit d’utiliser la fonction gtk_text_buffer_insert (aussi présente dans le tuto, même page).

Après, si tu à des problèmes tu peux poster ton code pour qu’on voit de quoi il en retourne.

#23 Re : -1 »  [résolu] (نقاشات الساهرين (ثلاثة وستون » Le 26/03/2014, à 11:10

grim7reaper
Réponses : 4993
Ras' a écrit :
inkey a écrit :

mais à l'image des photographie satellite de la corée de nuit, la corée du nord est par certains aspect devenu physiquement et pas que politiquement un autre espace que sa voisine du Sud. neutral .

Je n'comprends pas du tout ce que tu veux dire là neutral

Il doit faire référence à ce genre de choses.

#24 Re : -1 »  Benchmark » Le 29/03/2014, à 03:12

grim7reaper
Réponses : 31
claudius01 a écrit :

Faut se méfier de 'cut' qui n'aime pas les 'tab' et autres 'multiple espaces'
=> Se replier sur 'awk' dans ce cas

Pas nécessairement, par défaut cut utilise tab comme séparateur

man 1 cut a écrit :

       -d, --delimiter=DELIM
              use DELIM instead of TAB for field delimiter

Donc :

[~/Public/BenchMark] $ (time proc.sh) 2>&1 | grep real | cut -f2

devrait donner la sortie attendue.