Pour ma part quand je faisais encore du C, j'écrivais souvent une fonction xmalloc qui faisait un exit() après avoir écrit un message d'erreur.
Évidemment, si malloc ne fonctionne pas, mon message d'erreur a peut-être un risque de ne pas être affiché non plus, car lui aussi a peut-être besoin d'allocation dans la fonction printf. D'ailleurs j'avais vu une fonction dans GCC qui stockait une chaîne fixe et qui faisait appel à write(2) directement pour éviter ce problème.
Comme décrit dans plusieurs commentaires au dessus, cela dépend vraiment du contexte. Je code des applications assez basiques, donc ce n'est pas grave si elles se terminent parce qu'il n'y a plus de mémoire. Du coup je codais ceci :
Ce qui m'intrique, c'est la volonté d'avoir implémenté le driver NVMe from scratch alors que FreeBSD en a un. Je me demande s'il y a des raisons à cela ?
git is great because linus did it, mercurial is better because he didn't
On vient de me donner une imprimante HP, j'osais pas spécialement acheter une imprimante car je connais peu le support sous linux (à part que canon pue, en ayant eu 2).
Et avec hplip, tout marche out-of-the-box. Scanner et impression. J'ai pas encore acheté de cartouches car j'imprime un papier environ tous les 4 mois (on est en 2016 ! imprimer c'est mal).
Du coup quand elle sera plus fonctionnelle, faudra que je trouve aussi une alternative.
git is great because linus did it, mercurial is better because he didn't
Le .tar.gz c'est clairement le plus connu. En terme de compression je pense qu'il est un peu à la ramasse. Je vois (et j'utilise) beaucoup de .tar.xz en ce moment.
git is great because linus did it, mercurial is better because he didn't
C’est quoi que tu détestes ? Avoir un dossier « packaging » qui ne te sert à rien, quand tu fais un git clone… ? C’est si génant que ça ?
Premièrement, pour les mêmes points cités plus haut, je ne suis pas sûr que les packagers des distributions vont utiliser tes modèles pour leur paquets. Si ça se trouve, la distribution X a décidé de changer d'emplacement pour installer de la doc, manque de bol t'es pas au courant, ton .spec/debian/PKGBUILD/whatever est obsolète et invalide. Le packager va créer le sien pour éviter ce genre d'obsolescence.
Aussi, si tu n'as pas sous la main toutes les distributions que tu maintiens dans ton application, tu ne peux pas tester tes fichiers de construction de paquets et garantir leur bon fonctionnement. Résultat : l'utilisateur ou packager qui s'en sert voit que ça fonctionne pas. Ça va l'agacer, il va se plaindre (ou envoyer un bugreport) et ça va faire du boulot de maintenance pour toi. Alors qu'au départ, si tu délègues complètement cette tâche, tu n'as aucun souci.
Less is more, comme dit. Tu imagines si tu maintiens 50 distributions dans ton dépôt ? J'ose pas imaginer le bordel.
git is great because linus did it, mercurial is better because he didn't
Personnellement, je te conseille de ne pas te poser de questions. Fournis ton application en code source avec les fichiers qui vont bien (LICENSE, README, INSTALL, etc).
Ce n'est pas à toi de t'occuper de générer un paquet pour les trillions de distribution qui existent.
Tu n'arriveras jamais à le garder à jour par rapport à la distribution ciblée,
Fournir un paquet c'est bien, mais dans le dépôt officiel c'est mieux. J'imagine pas la galère si tu devais avoir accès aux dépôts de toutes les distributions,
Ne pollue pas ton application avec des fichiers de construction pour chaque distribution. Je déteste voir un répertoire debian, des fichiers .spec et autres trucs dans un code source. En plus, qui dit que ton .spec sera compatible fedora, suse, openmandriva ?
Comme tu l'as dit, flatpak semble l'alternative la plus viable, et c'est la seule qui doit être maintenue par l'auteur du logiciel. À voir si ça va vraiment marcher.
git is great because linus did it, mercurial is better because he didn't
freedesktop.org is open source / open discussion software projects working on interoperability and shared technology for X Window System desktops
C'est c'la, oui.
Excellent, j'y avais jamais pensé.
Posée sur la mailing list systemd, ça doit faire une bonne bombe ça.
Cela dit, il y a des points vrais. systemd unifie les scripts pour toutes les distributions (enfin dans la mesure du possible). Et permet aussi d'unifier la configuration du système.
Je me rappelle encore sous Gentoo, /etc/conf.d, sous Debian c'est des fichiers différents, dont le /etc/network. Sous redhat on utilisait des commandes system-config-* (IIRC).
git is great because linus did it, mercurial is better because he didn't
Ça y va fort au niveau des ®. Il y en a partout, même pour les applications. Je trouve pas ça très professionnel.
TrueOS®
SysAdm™
AppCafe®
Je connais PC-BSD depuis longtemps et j'en suis toujours autant sceptique. Traductions automatique de leur pages (complètement à côté de la plaque). Un des développeurs principal dénigre GNOME en conférence en disant "it sucks", pas très fairplay. Puis ils réecrivent des outils spécifiquement pour PC-BSD. Ça serait mieux de contribuer des backends pour NetworkManager, packagekit, le bluetooth plutôt que de recoder une appli tierce pas du tout intégrée au desktop.
git is great because linus did it, mercurial is better because he didn't
Il me semble que c'est justement nécessaire d'avoir des comptes github pour travis non ? Du coup ça n'est plus une option pour moi. Par contre je vais regarder pour appveyor :)
git is great because linus did it, mercurial is better because he didn't
[^] # Re: xmalloc
Posté par David Demelier (site web personnel) . En réponse au journal Gestion des erreurs d’allocation mémoire en C. Évalué à 1.
Ah oui, j'avais lu le journal une première fois et répondu le lendemain. J'aurais du dormir + du coup :D
git is great because linus did it, mercurial is better because he didn't
# xmalloc
Posté par David Demelier (site web personnel) . En réponse au journal Gestion des erreurs d’allocation mémoire en C. Évalué à 4. Dernière modification le 27 octobre 2016 à 11:12.
Pour ma part quand je faisais encore du C, j'écrivais souvent une fonction xmalloc qui faisait un exit() après avoir écrit un message d'erreur.
Évidemment, si
malloc
ne fonctionne pas, mon message d'erreur a peut-être un risque de ne pas être affiché non plus, car lui aussi a peut-être besoin d'allocation dans la fonctionprintf
. D'ailleurs j'avais vu une fonction dans GCC qui stockait une chaîne fixe et qui faisait appel àwrite(2)
directement pour éviter ce problème.Comme décrit dans plusieurs commentaires au dessus, cela dépend vraiment du contexte. Je code des applications assez basiques, donc ce n'est pas grave si elles se terminent parce qu'il n'y a plus de mémoire. Du coup je codais ceci :
git is great because linus did it, mercurial is better because he didn't
# c++11
Posté par David Demelier (site web personnel) . En réponse au journal Simple Provisioning System. Évalué à 4.
Du coup comme tu as dit que tu faisais du C++11, je me permet de commenter deux trois choses :
Mis à part ça, code moderne :)
git is great because linus did it, mercurial is better because he didn't
# NVMe from scratch
Posté par David Demelier (site web personnel) . En réponse à la dépêche DragonFly BSD 4.6 et 4.6.1. Évalué à 2.
Ce qui m'intrique, c'est la volonté d'avoir implémenté le driver NVMe from scratch alors que FreeBSD en a un. Je me demande s'il y a des raisons à cela ?
git is great because linus did it, mercurial is better because he didn't
[^] # Re: Debian, dans l'idéal.
Posté par David Demelier (site web personnel) . En réponse au message Quelle distribution choisir ? . Évalué à 0.
Le problème avec Debian c'est qu'il faut accepter d'avoir des applications vieilles pendant environ 2-3 ans avant d'avoir une grosse mise à jour.
git is great because linus did it, mercurial is better because he didn't
# nvidia, **** ***!
Posté par David Demelier (site web personnel) . En réponse au message Problème avec KMS. Évalué à 1.
Alala pourquoi avoir acheté une nvidia :(
Malheureusement si ça ne fonctionne pas avec je ne vois pas de solution, à part rajouter nomodeset en permanence dans le grub (ou systemd-boot).
Peut-être tu pourrais tester avec une version plus récente de xf86-video-nouveau ?
git is great because linus did it, mercurial is better because he didn't
[^] # Re: maison hantée, et contact avec l'au delà ?
Posté par David Demelier (site web personnel) . En réponse au message Entendu la radio dans les haut parleurs de mon laptop. Évalué à 1.
L'au delà est fan de NRJ alors ;)
git is great because linus did it, mercurial is better because he didn't
[^] # Re: Parasitage électromagnétique ?
Posté par David Demelier (site web personnel) . En réponse au message Entendu la radio dans les haut parleurs de mon laptop. Évalué à 1.
D'accord, merci pour la réponse. Je vais désactiver le micro interne de l'écran tant que j'en aurai pas besoin et je verrai si ça arrive à nouveau :)
git is great because linus did it, mercurial is better because he didn't
# Nommage des options
Posté par David Demelier (site web personnel) . En réponse au journal Zyeute: un outil minimaliste de monitoring… ou pas. Évalué à 2.
Petite question, pourquoi préfixer certaines options par un _ ? :)
git is great because linus did it, mercurial is better because he didn't
# Déception
Posté par David Demelier (site web personnel) . En réponse au journal HP, l’informatique de trahison.. Évalué à 3.
Je suis assez déçu si c'est bel et bien le cas.
On vient de me donner une imprimante HP, j'osais pas spécialement acheter une imprimante car je connais peu le support sous linux (à part que canon pue, en ayant eu 2).
Et avec hplip, tout marche out-of-the-box. Scanner et impression. J'ai pas encore acheté de cartouches car j'imprime un papier environ tous les 4 mois (on est en 2016 ! imprimer c'est mal).
Du coup quand elle sera plus fonctionnelle, faudra que je trouve aussi une alternative.
git is great because linus did it, mercurial is better because he didn't
[^] # Re: trop tard, je l'ai déjà jetée
Posté par David Demelier (site web personnel) . En réponse au journal HP, l’informatique de trahison.. Évalué à 7.
Je confirme, ne jamais acheter de canon.
git is great because linus did it, mercurial is better because he didn't
[^] # Re: Ne te prend pas la tête
Posté par David Demelier (site web personnel) . En réponse au journal Comment distribuer un logiciel pour GNU/Linux ?. Évalué à 2.
Et bien si ça ne compile pas, tu envoies un bug report. Ça c'est la faute du développeur et il n'aura pas à l'ignorer ;)
Personnellement, je m'assure que mon application compile sur Linux, FreeBSD et Windows (vs et mingw).
git is great because linus did it, mercurial is better because he didn't
[^] # Re: Ne te prend pas la tête
Posté par David Demelier (site web personnel) . En réponse au journal Comment distribuer un logiciel pour GNU/Linux ?. Évalué à 6. Dernière modification le 05 octobre 2016 à 11:27.
Le .tar.gz c'est clairement le plus connu. En terme de compression je pense qu'il est un peu à la ramasse. Je vois (et j'utilise) beaucoup de .tar.xz en ce moment.
git is great because linus did it, mercurial is better because he didn't
# a voté
Posté par David Demelier (site web personnel) . En réponse au journal Choisissez le thème graphique de Debian Stretch. Évalué à 1.
J'adore le softwaves !
Bon, vous vous doutez du quel j'ai mis en 1er :)
git is great because linus did it, mercurial is better because he didn't
[^] # Re: Ne te prend pas la tête
Posté par David Demelier (site web personnel) . En réponse au journal Comment distribuer un logiciel pour GNU/Linux ?. Évalué à 8. Dernière modification le 05 octobre 2016 à 09:56.
Premièrement, pour les mêmes points cités plus haut, je ne suis pas sûr que les packagers des distributions vont utiliser tes modèles pour leur paquets. Si ça se trouve, la distribution X a décidé de changer d'emplacement pour installer de la doc, manque de bol t'es pas au courant, ton .spec/debian/PKGBUILD/whatever est obsolète et invalide. Le packager va créer le sien pour éviter ce genre d'obsolescence.
Aussi, si tu n'as pas sous la main toutes les distributions que tu maintiens dans ton application, tu ne peux pas tester tes fichiers de construction de paquets et garantir leur bon fonctionnement. Résultat : l'utilisateur ou packager qui s'en sert voit que ça fonctionne pas. Ça va l'agacer, il va se plaindre (ou envoyer un bugreport) et ça va faire du boulot de maintenance pour toi. Alors qu'au départ, si tu délègues complètement cette tâche, tu n'as aucun souci.
Less is more, comme dit. Tu imagines si tu maintiens 50 distributions dans ton dépôt ? J'ose pas imaginer le bordel.
git is great because linus did it, mercurial is better because he didn't
# Ne te prend pas la tête
Posté par David Demelier (site web personnel) . En réponse au journal Comment distribuer un logiciel pour GNU/Linux ?. Évalué à 10.
Personnellement, je te conseille de ne pas te poser de questions. Fournis ton application en code source avec les fichiers qui vont bien (LICENSE, README, INSTALL, etc).
Ce n'est pas à toi de t'occuper de générer un paquet pour les trillions de distribution qui existent.
Comme tu l'as dit, flatpak semble l'alternative la plus viable, et c'est la seule qui doit être maintenue par l'auteur du logiciel. À voir si ça va vraiment marcher.
git is great because linus did it, mercurial is better because he didn't
[^] # Re: command not found: svn
Posté par David Demelier (site web personnel) . En réponse à la dépêche Appel à contribution pour la traduction du livre « Gestion de versions avec Subversion ». Évalué à 4. Dernière modification le 05 octobre 2016 à 09:17.
J'avoue que j'osais pas trop troller devant un journal d'aide, mais du coup comme vous avez commencé :
git is great because linus did it, mercurial is better because he didn't
[^] # Re: SystemD la cause de la discorde...
Posté par David Demelier (site web personnel) . En réponse à la dépêche L’après PC-BSD : TrueOS. Évalué à 3. Dernière modification le 29 septembre 2016 à 11:03.
Excellent, j'y avais jamais pensé.
Posée sur la mailing list systemd, ça doit faire une bonne bombe ça.
Cela dit, il y a des points vrais. systemd unifie les scripts pour toutes les distributions (enfin dans la mesure du possible). Et permet aussi d'unifier la configuration du système.
Je me rappelle encore sous Gentoo, /etc/conf.d, sous Debian c'est des fichiers différents, dont le /etc/network. Sous redhat on utilisait des commandes system-config-* (IIRC).
git is great because linus did it, mercurial is better because he didn't
[^] # Re: Intérêt de MATE ?
Posté par David Demelier (site web personnel) . En réponse à la dépêche Sortie de MATE 1.16. Évalué à 4.
Je sais, mais je préférerais voir ça dans le control center.
git is great because linus did it, mercurial is better because he didn't
[^] # Re: SystemD la cause de la discorde...
Posté par David Demelier (site web personnel) . En réponse à la dépêche L’après PC-BSD : TrueOS. Évalué à 2.
https://www.freedesktop.org/wiki/Software/systemd/#spelling
git is great because linus did it, mercurial is better because he didn't
[^] # Re: Intérêt de MATE ?
Posté par David Demelier (site web personnel) . En réponse à la dépêche Sortie de MATE 1.16. Évalué à 5. Dernière modification le 28 septembre 2016 à 15:58.
Au moins avec Mate on peut ajuster la taille des polices.
Oui c'est vrai il existe gnome-tweak-tool. C'est tellement cool de devoir utiliser des outils externes pour régler un détail aussi simple.
Ah oui ! Même mon téléphone me permet de changer la taille de la police du système.
git is great because linus did it, mercurial is better because he didn't
[^] # Re: Et ZFS
Posté par David Demelier (site web personnel) . En réponse à la dépêche L’après PC-BSD : TrueOS. Évalué à 5.
Tu veux dire FreeBSD.
OpenBSD n'adoptera jamais ZFS. Sur NetBSD c'est en travaux mais rien de concret en ce moment. Et Dragonfly a son propre HAMMER.
git is great because linus did it, mercurial is better because he didn't
[^] # Re: SystemD la cause de la discorde...
Posté par David Demelier (site web personnel) . En réponse à la dépêche L’après PC-BSD : TrueOS. Évalué à 4. Dernière modification le 27 septembre 2016 à 09:48.
C'est systemd, comme tout daemon unix. sshd, httpd, ftpd, dhcpd, dhcpcd, ntpd, etc.
git is great because linus did it, mercurial is better because he didn't
# Reserved
Posté par David Demelier (site web personnel) . En réponse à la dépêche L’après PC-BSD : TrueOS. Évalué à 10.
Ça y va fort au niveau des ®. Il y en a partout, même pour les applications. Je trouve pas ça très professionnel.
TrueOS®
SysAdm™
AppCafe®
Je connais PC-BSD depuis longtemps et j'en suis toujours autant sceptique. Traductions automatique de leur pages (complètement à côté de la plaque). Un des développeurs principal dénigre GNOME en conférence en disant "it sucks", pas très fairplay. Puis ils réecrivent des outils spécifiquement pour PC-BSD. Ça serait mieux de contribuer des backends pour NetworkManager, packagekit, le bluetooth plutôt que de recoder une appli tierce pas du tout intégrée au desktop.
git is great because linus did it, mercurial is better because he didn't
[^] # Re: Cross compile pour Mac ?
Posté par David Demelier (site web personnel) . En réponse à la dépêche CatchChallenger version 2. Évalué à 1.
Il me semble que c'est justement nécessaire d'avoir des comptes github pour travis non ? Du coup ça n'est plus une option pour moi. Par contre je vais regarder pour appveyor :)
git is great because linus did it, mercurial is better because he didn't