En ce qui concerne le formatage direct, tant que les traitements de texte n'auront pas un “mode plan” qui permettrait de contrôler facilement que les styles qui n'ont pas de nom ne sont pas utilisés dans le document, autant privilégier ce qui marche – à savoir le formatage direct.
Mode plan: du genre je vois mon document avec deux énormes marges où apparaissent les noms des styles utilisées et les paragraphes concernés apparaissent sur fond coloré p.ex. Avec un visuel un peu comme ça
ou comme ça
sauf qu'au lieu d'avoir des fragments de code dans le panneau qui n'affiche pas le document, on aurait des informations sur le style.
(Mode plan: le genre de fonctionnalité qui a l'air claire et sympa comme ça sur un coin de table mais qui est hyper galère à spécifier en vrai ;) )
Je trouve chiante et instable la façon de gérer les extensions emacs : cela a peut être changer mais pour moi, on est loin de npm/ go get /urpmi il s'agit toujours d'aller chercher une version à la main et modifier le fichier de config.
Instable je ne sais pas parceque je n'utilise quasiment que des extensions qui sont fournies par mon système de ports ou installable directement depuis Emacs. Après effectivement il faut souvent copier-coller quelques lignes dans son fichier dot.emacs. Comme on fichier `dot.emacs' est sous SCM je peux te donner le log des dernières années:
2017-12-03 11:43:32 +0100 Allow long lines in Lisp
2017-11-25 10:13:17 +0100 Add simplified window and frame navigation
2017-11-02 16:56:33 +0100 Fix emacs configuration
2017-11-02 08:07:47 +0100 Update for new system
2017-09-25 14:46:37 +0200 Configure slime as in portacle
2017-09-13 10:09:05 +0200 Install slime
2017-06-06 15:16:11 +0200 Update emacs settings
2016-12-12 10:34:45 +0100 Update merlin configuration
2015-08-28 15:29:12 +0200 Update style
2015-08-28 15:15:38 +0200 Record company PHP Style
2015-06-02 09:21:04 +0200 Configure merlin and ocp-indent
2015-06-02 08:47:35 +0200 Remove broken hunspell support
2015-03-24 14:45:36 +0100 Add PHP mode
2015-02-03 09:48:02 +0100 Change the font size on Darwin
2014-03-03 10:37:44 +0100 Remove CEDET
2014-03-03 10:34:05 +0100 Disable the tool-bar and the scroll-bar
2014-03-03 10:23:38 +0100 Add trac-wiki
2014-03-03 10:22:00 +0100 Add Markdown mode
2013-08-18 08:36:18 +0200 Update key shortcuts
2013-08-18 08:32:55 +0200 Correct the name of ocamldebug
2013-08-04 16:20:14 +0200 Whitespace mode
2013-08-04 16:03:04 +0200 Rework dot.emacs
2013-07-20 19:07:20 +0200 Add slime
(Généré avec git log --pretty='format:%ci %s').
Pour quelqu'un qui travaille vraiment beaucoup avec Emacs, je ne l'ai jamais utilisé moins de 20h par semaine dans l'historique que tu vois, et qui se sait se satisfaire des réglages par défaut sans trop faire de customisation, je trouve que s'il s'agit d'un effort à faire, ce n'est pas non plus disproportionné.
Et une fois, le truc installé, il faut deviner tout seul comment le module marche. Il me semble que tuareg est fournis de base maintenant, mais il ne semble pas que tu peux "jumper" d'un fichier à l'autre pour trouver définition de code et usage de code.
La navigation de fichier à fichier peut effectivement laisser à désirer dans le réglage de base par rapport au confort de PHP Storm (sauter à l'implémentation etc.) mais cela dépend des modes. Par exemple Slime (pour CL) sait le faire, mais je crois que pour OCaml cela n'existe pas. (Pour C et le reste, je crois que l'outil magique est CEDET.)
tu n'as pas auto-complétion sémantique ou de library (à moins d'ouvrir tout dans un buffer…) […], ou de vérification de la syntaxe en ligne.
En ce qui concerne OCaml, merlin apporte tout cela: la syntaxe est testée à la sauvegarde et l'auto-complétion marche (en tout cas pas plus mal que dans les IDE que j'ai utilisé). Pour Lisp, slime fait assez bien cela – sauf la vérification de syntaxe mais en pratique on programme interactivement c'est à dire qu'on fait des va-et-viens constants entre le programme et la REPL et il y a un petit raccourci qui évalue la défintion en cours (C-M-x) ce qui rapporte les erreurs. L'approche des IDE de type Visual Studio ou PHP Storm donne plus d'information interactives, mais d'une c'est assez lent et de deux je n'ai jamais réussi à m'habituer à tous ces coloriages (genre rouge faute de syntaxe, violet pour une infraction à la coding guideline XY, orange pour ceci-cela) et les petits tooltips qui vont avec sont assez pénibles – je préfère l'approche de merlin par exemple qui met à jour cette information à la sauvegarde, c'est à dire à un moment que je choisis.
Pour avoir utilisé longtemps deux IDEs – Visual Studio et PHP Storm de Jet Brains – et bien je les trouve assez désagréable à utiliser. Pour l'un comme pour l'autre l'analyse de code et la complétion sont d'une lenteur quasi-prohibitive sur des grosses bases de code, voire carrément inutilisables. La configuration est assez difficile pour tout ce qui est exotique et la documentation pas franchement merveilleuse. (Je n'utilise plus, donc je n'ai plus d'exemples en tête, mais ça m'est quand-même arrivé plusieurs fois de vouloir ajouter des traitements à l'IDE ou lui demander de lancer une commande avant de commencer une session de débogage, par exemple.) Ensuite je suppose que c'est une affaire d'habitude mais les interface touffues avec des boutons partouts et des fenêtres coulissantes avec tout et n'importe quoi dedans, et bien ça me distrait énormément et je préfère largement travailler avec un éditeur qui montre du code et plus d'informations quand je lui demande plutôt que le contraire. Même en fouillant dans mes souvenirs je crois bien que je n'ai jamais eu le sentiment que les fonctions dans ces IDEs soient très faciles à trouver… bref quand je feux faire quelque chose qui sort de ma routine que ce soit avec Emacs ou un IDE il faut que tapote dans mon moteur de recherche préféré. (Et si on n'arrive pas à retrouver certaines fonctions dans la doc, que ce soit avec Emacs ou un IDE, et bien ce n'est pas interdit de prendre des notes ;) )
P.S.: En ce qui concerne le reformatage de code ou les divers refactoring, dans mon Visual Studio pour C++ et bien ça n'y était pas et dans PHP-Storm même le renommage de méthode ou de variable membre se prend les pieds dans le tapis de temps à autres.
Dans une table en général il y a d'une part le “gros” des données, au dessus et à gauche des annotations de type légende et en bas de colonne parfois des agrégats (somme, moyenne, écart-type, quartiles, ou quoiqu'on veuille y mettre). Pour moi j'aimerais bien pouvoir penser à ma ma table comme:
L'intérêt est que ça évite de devoir changer les références dans les cellules aussi souvent que dans les modèles classiques. Dans la plupart des tableurs, si on insère une ligne au dessus de sa ligne avec la moyenne, le tableur change les définitions. En plus d'être plus propre, plus facile à vérifier dans une présentation de type “preuve”, ça permet aussi de facilement représenter les imports externes (genre data = sqlite(file.db) ou data = csv(file.csv)). Je trouve ça assez idiot qu'un logiciel ajoute une sémantique à une donnée (le pied de page) sans rendre cette donnée “représentable”.
Il y a deux fonctions qui manquent dans beaucoup de tableurs. La première est assez basique et consiste à travailler, au lieu d'une grosse feuille avec des cellules, de petites tables en indexant de façon spéciale les lignes pied-de-table et haut-de-table. La seconde est “un mode contrôle” qui permettrait de voir simultanément toutes les définitions d'une feuille ou d'une table. Est-ce que tu as écrit ça?
En anglais to hop signifie sautiller, par exemple à cloche-pied. Dans le slang de l'informatique on donne au substantif dérivé a hop le sens de petit bond, mais de façon abusive on peut aussi désigner ainsi la destination intermédiaire.
Tu as plusieurs approches possibles. Tout d'abord notons CLIENT et PERSO tes dépôts (copies de travail) git, ce qui nous servira à décrire les workflows. Pour évaluer les différentes solutions il faut que tu regardes ce qui est techniquement et commercialement faisable.
La raison qui fait que c'est possible techniquement est que git est décentralisé et un dépôt donné n'a aucun rôle techniques spécifique par rapport à un autre – le clone produit par git clone est en principe total – et git fournit plein d'outils pour échanger les données entre les divers clones d'un même dépôt.
1. INSTALLER UN HOP SUR TON INTRANET
Comme tu mentionnes que tu peux accéder pour quelques minutes à ton propre depuis chez ton client, ce serait facile de créer un serveur sur ton propre intranet qui tourne toujours et héberge un dépôt HOP, accessible via SSH-GIT, HTTPS-GIT, ou bien par NFS par exemple. Ainsi ton workflow ressemblerait à:
Arrivée site client
Hack
Pousse de CLIENT vers HOP avant de rentrer à la maison
À la maison, tire de HOP sur PERSO
Hack
Avant de partir chez le client pousse de PERSO sur HOP
Arrivée sur le site client, tire de HOP sur CLIENT
Hack
Pousse de CLIENT vers HOP avant de rentrer à la maison
…
2. INSTALLER UN HOP AILLEURS SUR INTERNET
Tu peux aussi considérer un hébergement de dépôt git payant, cela coûte une poignée d'euros par mois. Tu y créerais un dépôt HOP, que tu utiliserais comme précédemment. Variante avec une box complète, prix analogue.
3. UTILISER UN HOP SUR UNE CLEF USB
Si tes postes de travail peuvent accéder aux mêmes systèmes de fichiers (par exemple ce sont deux Linux) tu peux utiliser un support amovible pour stocker ton dépôt HOP (par exemple un bare repo). Il faudrait certainement crypter ce support pour se prémunir contre sa perte.
4. UTILISER GIT-BUNDLE PAR E-MAIL
La sous-commande git bundle permet de sauvegarder une partie d'un dépôt git dans une archive fichier, dite “bundle”, qui peut ensuite être importé dans un autre dépôt. Le “bundle” peut être acheminé via une clef USB ou en P.j. sur un email.
% man git-bundle
…
Some workflows require that one or more branches of development on one
machine be replicated on another machine, but the two machines cannot
be directly connected, and therefore the interactive Git protocols
(git, ssh, http) cannot be used. This command provides support for git
fetch and git pull to operate by packaging objects and references in an
archive at the originating machine, then importing those into another
repository using git fetch and git pull after moving the archive by
some means (e.g., by sneakernet). As no direct connection between the
repositories exists, the user must specify a basis for the bundle that
is held by the destination repository: the bundle assumes that all
objects in the basis are already in the destination repository.
Cela correspond assez exactement à ton besoin. Je l'ai utilisé pendant longtemps en mode “sneakernet,” c'est un peu relou mais si tu dois jongler entre les intranets cela reste sûrement plus simple que les push/pull à travers le réseau.
En gros c'est le même workflow qu'avec le HOP mais au lieu de cela à la fin de ta session de travail, tu fais und bundle avec tous tes derniers commits et l'apporte ou l'email à ton autre station pour pouvoir l'importer.
5. GIT-IMAP
Jette un œil à la man-page git-imap-send – je n'ai jamais utilisé cette fonction mais cela semble pouvoir répondre à ton besoin.
6. MON AVIS
Admettant que ton client soit d'accord avec ces manips, je pense que les solutions les plus simples sont, par ordre croissante de complexité à l'usage.
Installer un HOP ailleurs sur Internet, si tu as un accès illimité chez ton client.
Utiliser un HOP sur une clef USB, si tu as droit au support amovible.
n'arrivent pas. (Puisque comme on le voit sur l'exemple la précision est assez grande pour donner le bon résutlat après arrondi.) Le point important est de bien arrondir après chaque multiplication dans la définition de la structure de “float-module,” c'est bien ça?
Sauf que Python fournit le module datetime qui gère des dates de l'année 1 à 9999.
Qui les gère, mais vite fait:
The papal bull of February 1582 decreed that 10 days should be dropped
from October 1582 so that 15 October should follow immediately after
4 October, and from then on the reformed calendar should be used.
This was observed in Italy, Poland, Portugal, and Spain. Other Catholic
countries followed shortly after, but Protestant countries were
reluctant to change, and the Greek orthodox countries didn't change
until the start of the 1900s.
(Voir https://www.tondering.dk/claus/cal/gregorian.php, notamment la section “When did country X change from the Julian to the Gregorian calendar?” avec mention spéciale pour nos amis suédois!)
Les calculs fait par Python datetetime ne sont probablement justes que pour l'époque contemporaine.
A l'inverse un commercial rapporte de l'argent puisqu'il vend des billets donc il faut augmenter leur budget ou au moins ne pas le baisser, c'est une logique stupide mais c'est la logique de la sncf.
Si cette logique ne sévissait qu'à la SNCF, quel beau monde dans lequel nous vivrions!
En tout cas bonne chance! Si jamais tu décides quand-même de regarder ce que peut faire packetfence pour toi, ce serait super chouette que tu le racontes sur LinuxFR!
Je ne connais pas trop cet outil mais si je comprends bien leur plaquette, packetfence est un logiciel qui permet d'administrer la configuration des routeurs (si le matériel est supporté!): il s'agit d'un outil de plus haut niveau, qui peut en particulier, parmi toutes les mesures que l'outil sait prendre, configurer des pare-feu. Un pare-feu tourne sur une machine et la configuration parle d'interfaces, d'adresses IP, de ports, alors que manifestement PacketFence peut modéliser les différents éléments du réseau et assigner les nouveaux venus à des classes spéciales, etc.
Ensuite ta question "si j'ai besoin d'une solution de pare-feu, puis-je installer packetfence?" n'est pas très bien posée parcequ'elle ne parle que de solutions techniques et pas des besoins – du coup on ne sait pas quel besoin particulier te pousse à choisir un pare-feu. Si tu prends un peu de temps pour faire la liste de ce que tu veux faire avec ton pare-feu tu devrais assez facilement voir si packetfence te permet de faire la même-chose, ou pas.
Pour donner l'exemple de Java que tu donnais BigDecimal bd = new BigDecimal(5.5); le plus simple serait sûrement soit de construire une classe spéciale MoneyAmount qui fait ce qu'il faut pour s'initialiser correctement à partir d'un float. Ou bien de définir une sorte de constructeur à BigDecimal, qui fait ce qu'il faut?
J'ai l'impression que ton commentaire porte uniquement sur la deuxième partie de la citation ; corrige-moi si je me trompe.
Tu as raison, ma citation est un peu “bizarre par excès” si on peut dire. :)
Pourquoi tous les nouveaux langages fonctionnent avec, à chaque fois, une interprétation des litéraux à virgules comme étant des floats ou des doubles ?
Je pense qu'un aspect important est que soit “interpréter les litéraux à virgules comme étant des décimaux” est une idée tellement géniale que tous les langages vont adopter cette convention dans les 5 ans, soit le langage qui fait ce choix va rester durant toute son existence le cousin un peu bizarre avec qui tout le monde se prend les pieds dans le tapis parcequ'il fait les choses un peu différemment. (Déjà que certains langages se paient le luxe d'avoir des opérateurs égal ==, vraiment égal === et physiquement égal ;) )
Mettre l'exactitude mathématique comme but ultime, ce n'est pas toujours ce qui est attendu du programme informatique.
Je crois que le but des exemples n'est pas d'insister sur l'exactitude ou pas des calculs mais sur le fait qu'il y a plein de décisions arbitraires à prendre (arrondir quoi, comment, etc.) au delà des calculs proprement dits et que, qu'on utilise des flottants des rationnels ou encore autre chose ne change rien au fait que le comportement du programme doit être soigneusement spécifié par le programmeur.
Tu résumes en une phrase la nature un peu trollesque (involontairement je pense) de ces deux journaux qui parlent des flottants: on ne peut pas faire l'économie des maths dès qu'on veut parler de la représentation des nombres en machine.
Vu la constance avec laquelle la plupart des livres de programmation généralistes passent sous silence ce type de subtilités on ne peut pas vraiment faire le reproche ce cette ignorance aux programmeurs en général. Que des programmeurs travaillent précisément dans le domaine de l'économat ou de la comptabilité d'entreprise ne semblent pas familiers avec celles-cis est plus surprenant. De façon rigolote on peut noter que la page Wikipedia pour Business Informatics ou Wirtscahftsinformatik n'a pas d'équivalent en français. :)
Exactement, et pour reprendre l'exemple de TeX, c'est parce qu'on ne calcule jamais de surface et plus généralement qu'on ne multiplie jamais entre elles deux mesures de longueurs, qu'on peut travailler avec des mesures entières. Pour l'économat on est dans une situation analogue (on ne calcule pas des euros au carré ou des litres de lait au carré) mais travailler en virgule fixe n'épargne de répondre à toutes les questions sur les arrondis, les pratiques de taux de change et de conversion d'unité – qui sont en pratique les problèmes qui “mettent dedans” les programmeurs qui ne sont pas conscients de toutes les décisions à prendre lorsqu'on programme ce genre de calculs.
Tu veux dire que dans les Éléments de Géométrie d'Euclide tu as une preuve de la trisection de l'angle ? Es-tu certain ou j'ai mal compris ?
Je suis très surpris aussi, si on considère les axiomes de Hilbert on est quand-même assez loin de pouvoir faire ce travail. Il y aurait deux approches à mon avis:
Démonter que le cercle est rectifiable, mais pour cela je n'ai pas d'idée très maline pour majorer la somme des longueurs de cordes consécutives sur un cercle. Si on démontre que le cercle est rectifiable, on a une notion d'abscisse curviligne sur lui, ce qui nous permet de mesurer les angles et de les couper en parts égales.
Construire l'exponentielle complexe.
Dans un cas comme dans l'autre – si on a l'ambition de produire une démonstration rigoureuse à partir des seuls axiomes de Hilbert – il y a quand-même un travail considérable qu'on a aucune chance de retrouver ne serait-ce qu'esquissé chez les grecs. Je ne suis pas familier avec les éléments d'Euclide cependant, mais peut-être qu'ils admettent que le cercle est rectifiable? Cela serait cohérent avec la distinction faite entre les lignes droites et celles qu'on est en droit d'attendre si on croit bon de préciser que certaines lignes sont droites.
Heu, à bac+1, des étudiants plutôt forts (choisis parmi les 10% meilleurs d'une classe d'âge post bac S), sortis du bac, ne comprennent pas la définition formelle d'une limite qu'on donnait dans toutes les classes de première S il y a 20 an
l'existence de la mesure de Lebesgue sur R, c'est du lourd, et la mesure produit sur R2 en rajoute une couche
C'est vrai que c'est un sujet très technique, mais je pense qu'on l'apprend avec toutes cette technicité surtout parcequ'on a en vue la théorie des probabilités qu'on ne peut aborder sérieusement que si on est au point sur les notions de tribus engendrées, etc. – ou bien l'analyse fonctionnelle où l'étude des distributions demande de bien être au point sur les mesures et les théorèmes de représentation qui vont avec (au moins pour la raison que les distributions les plus célèbres comme “intégrale de a à b” et Dirac sont données par des mesures!).
Mais à Bac+1 on peut raisonnablement définir les ensembles mesurables d'un l'espace euclidien en utilisant “le critère d'Archimède”: Si la mesure extérieure et intérieure d'une partie F de l'espace euclidien coïncident (prises avec des petits pavés bien orthogonaux) et que les filtres (je dis filtre pour abréger) correspondant convergent vers la même valeur alors (définition) la partie F est mesurable et sa mesure est la valeur commune des mesures intérieure et extérieures. Cela marche raisonnablement bien pour démontrer les outils basiques (les ensembles mesurables sont une sigma-algèbre – le dénombrable vient du fait que dans une somme fini d'un nombre infini de termes, seule une quantité dénombrable de termes peuvent être non nuls) et c'est suffisamment compatible pour avec les méthodes d'intégration du style Riemann (par exemple sa version améliorée Henstock Kurzweil qui gère la convergence dominée, le théorème fondamental de l'analyse et tout et tout) pour que le lien entre intégration et calcule d'aire se démontre facilement.
[^] # Re: Quelles sont les fonctionnalités malheureuses, selon vous ?
Posté par Michaël (site web personnel) . En réponse à la dépêche Sortie de LibreOffice 6.0. Évalué à 1. Dernière modification le 05 mars 2018 à 07:02.
En ce qui concerne le formatage direct, tant que les traitements de texte n'auront pas un “mode plan” qui permettrait de contrôler facilement que les styles qui n'ont pas de nom ne sont pas utilisés dans le document, autant privilégier ce qui marche – à savoir le formatage direct.
Mode plan: du genre je vois mon document avec deux énormes marges où apparaissent les noms des styles utilisées et les paragraphes concernés apparaissent sur fond coloré p.ex. Avec un visuel un peu comme ça
ou comme ça
sauf qu'au lieu d'avoir des fragments de code dans le panneau qui n'affiche pas le document, on aurait des informations sur le style.
(Mode plan: le genre de fonctionnalité qui a l'air claire et sympa comme ça sur un coin de table mais qui est hyper galère à spécifier en vrai ;) )
[^] # Re: Emacs un jour, Emacs toujours
Posté par Michaël (site web personnel) . En réponse au journal Quel IDE pour quel langage. Évalué à 3.
Instable je ne sais pas parceque je n'utilise quasiment que des extensions qui sont fournies par mon système de ports ou installable directement depuis Emacs. Après effectivement il faut souvent copier-coller quelques lignes dans son fichier dot.emacs. Comme on fichier `dot.emacs' est sous SCM je peux te donner le log des dernières années:
(Généré avec
git log --pretty='format:%ci %s'
).Pour quelqu'un qui travaille vraiment beaucoup avec Emacs, je ne l'ai jamais utilisé moins de 20h par semaine dans l'historique que tu vois, et qui se sait se satisfaire des réglages par défaut sans trop faire de customisation, je trouve que s'il s'agit d'un effort à faire, ce n'est pas non plus disproportionné.
La navigation de fichier à fichier peut effectivement laisser à désirer dans le réglage de base par rapport au confort de PHP Storm (sauter à l'implémentation etc.) mais cela dépend des modes. Par exemple Slime (pour CL) sait le faire, mais je crois que pour OCaml cela n'existe pas. (Pour C et le reste, je crois que l'outil magique est CEDET.)
En ce qui concerne OCaml, merlin apporte tout cela: la syntaxe est testée à la sauvegarde et l'auto-complétion marche (en tout cas pas plus mal que dans les IDE que j'ai utilisé). Pour Lisp, slime fait assez bien cela – sauf la vérification de syntaxe mais en pratique on programme interactivement c'est à dire qu'on fait des va-et-viens constants entre le programme et la REPL et il y a un petit raccourci qui évalue la défintion en cours (C-M-x) ce qui rapporte les erreurs. L'approche des IDE de type Visual Studio ou PHP Storm donne plus d'information interactives, mais d'une c'est assez lent et de deux je n'ai jamais réussi à m'habituer à tous ces coloriages (genre rouge faute de syntaxe, violet pour une infraction à la coding guideline XY, orange pour ceci-cela) et les petits tooltips qui vont avec sont assez pénibles – je préfère l'approche de merlin par exemple qui met à jour cette information à la sauvegarde, c'est à dire à un moment que je choisis.
Ça oui!
# Emacs un jour, Emacs toujours
Posté par Michaël (site web personnel) . En réponse au journal Quel IDE pour quel langage. Évalué à 6. Dernière modification le 17 février 2018 à 14:10.
Pour programmer en
Pour avoir utilisé longtemps deux IDEs – Visual Studio et PHP Storm de Jet Brains – et bien je les trouve assez désagréable à utiliser. Pour l'un comme pour l'autre l'analyse de code et la complétion sont d'une lenteur quasi-prohibitive sur des grosses bases de code, voire carrément inutilisables. La configuration est assez difficile pour tout ce qui est exotique et la documentation pas franchement merveilleuse. (Je n'utilise plus, donc je n'ai plus d'exemples en tête, mais ça m'est quand-même arrivé plusieurs fois de vouloir ajouter des traitements à l'IDE ou lui demander de lancer une commande avant de commencer une session de débogage, par exemple.) Ensuite je suppose que c'est une affaire d'habitude mais les interface touffues avec des boutons partouts et des fenêtres coulissantes avec tout et n'importe quoi dedans, et bien ça me distrait énormément et je préfère largement travailler avec un éditeur qui montre du code et plus d'informations quand je lui demande plutôt que le contraire. Même en fouillant dans mes souvenirs je crois bien que je n'ai jamais eu le sentiment que les fonctions dans ces IDEs soient très faciles à trouver… bref quand je feux faire quelque chose qui sort de ma routine que ce soit avec Emacs ou un IDE il faut que tapote dans mon moteur de recherche préféré. (Et si on n'arrive pas à retrouver certaines fonctions dans la doc, que ce soit avec Emacs ou un IDE, et bien ce n'est pas interdit de prendre des notes ;) )
P.S.: En ce qui concerne le reformatage de code ou les divers refactoring, dans mon Visual Studio pour C++ et bien ça n'y était pas et dans PHP-Storm même le renommage de méthode ou de variable membre se prend les pieds dans le tapis de temps à autres.
[^] # Re: Fonctions qui manquent dans beaucoup de tableurs
Posté par Michaël (site web personnel) . En réponse au journal Licht 0.1. Évalué à 3.
Dans une table en général il y a d'une part le “gros” des données, au dessus et à gauche des annotations de type légende et en bas de colonne parfois des agrégats (somme, moyenne, écart-type, quartiles, ou quoiqu'on veuille y mettre). Pour moi j'aimerais bien pouvoir penser à ma ma table comme:
L'intérêt est que ça évite de devoir changer les références dans les cellules aussi souvent que dans les modèles classiques. Dans la plupart des tableurs, si on insère une ligne au dessus de sa ligne avec la moyenne, le tableur change les définitions. En plus d'être plus propre, plus facile à vérifier dans une présentation de type “preuve”, ça permet aussi de facilement représenter les imports externes (genre
data = sqlite(file.db)
oudata = csv(file.csv)
). Je trouve ça assez idiot qu'un logiciel ajoute une sémantique à une donnée (le pied de page) sans rendre cette donnée “représentable”.# Fonctions qui manquent dans beaucoup de tableurs
Posté par Michaël (site web personnel) . En réponse au journal Licht 0.1. Évalué à 3.
Il y a deux fonctions qui manquent dans beaucoup de tableurs. La première est assez basique et consiste à travailler, au lieu d'une grosse feuille avec des cellules, de petites tables en indexant de façon spéciale les lignes pied-de-table et haut-de-table. La seconde est “un mode contrôle” qui permettrait de voir simultanément toutes les définitions d'une feuille ou d'une table. Est-ce que tu as écrit ça?
# OpenSP
Posté par Michaël (site web personnel) . En réponse au message Commande awk et expression reguliere pour extraire une adresse ip. Évalué à 5.
C'est en général une assez mauvaise idée d'utiliser des expressions rationnelle pour fouiller dans une page HTML.
Ici la page est assez simple tu peux afficher la première IP trouvée sur chaque ligne avec
En général pour traiter du HTML ou plus généralement du SGML, on utilise OpenSP et plus précisément le programme
onsgmls
. Par exempleSous cette forme canonique il est facile d'extraire l'IP recherchée, par exemple avec
awk
:Ceci dit, si c'est un serveur que tu contrôles, tu pourrais lui apprendre à répondre avec du texte ou du JSON à la demande. Par exemple
Te fournirait un moyen bien plus fiable de récupérer une IP.
[^] # Re: Math
Posté par Michaël (site web personnel) . En réponse au journal La recherche en langages de programmation au quotidien. Évalué à 2.
Je ne vois pas trop en quoi tu exprimes un désaccord avec arnaudus.
[^] # Re: Plusieurs options
Posté par Michaël (site web personnel) . En réponse au message workflow git. Évalué à 3.
Ça doit faire 25 ans aussi que personne ne dit “djeun's” et je te taquinais aimablement ;)
[^] # Re: Plusieurs options
Posté par Michaël (site web personnel) . En réponse au message workflow git. Évalué à 2.
Ça fait djeun's. ;)
[^] # Re: Plusieurs options
Posté par Michaël (site web personnel) . En réponse au message workflow git. Évalué à 2.
En anglais to hop signifie sautiller, par exemple à cloche-pied. Dans le slang de l'informatique on donne au substantif dérivé a hop le sens de petit bond, mais de façon abusive on peut aussi désigner ainsi la destination intermédiaire.
# Plusieurs options
Posté par Michaël (site web personnel) . En réponse au message workflow git. Évalué à 5.
Tu as plusieurs approches possibles. Tout d'abord notons CLIENT et PERSO tes dépôts (copies de travail) git, ce qui nous servira à décrire les workflows. Pour évaluer les différentes solutions il faut que tu regardes ce qui est techniquement et commercialement faisable.
La raison qui fait que c'est possible techniquement est que git est décentralisé et un dépôt donné n'a aucun rôle techniques spécifique par rapport à un autre – le clone produit par
git clone
est en principe total – et git fournit plein d'outils pour échanger les données entre les divers clones d'un même dépôt.1. INSTALLER UN HOP SUR TON INTRANET
Comme tu mentionnes que tu peux accéder pour quelques minutes à ton propre depuis chez ton client, ce serait facile de créer un serveur sur ton propre intranet qui tourne toujours et héberge un dépôt HOP, accessible via SSH-GIT, HTTPS-GIT, ou bien par NFS par exemple. Ainsi ton workflow ressemblerait à:
2. INSTALLER UN HOP AILLEURS SUR INTERNET
Tu peux aussi considérer un hébergement de dépôt git payant, cela coûte une poignée d'euros par mois. Tu y créerais un dépôt HOP, que tu utiliserais comme précédemment. Variante avec une box complète, prix analogue.
3. UTILISER UN HOP SUR UNE CLEF USB
Si tes postes de travail peuvent accéder aux mêmes systèmes de fichiers (par exemple ce sont deux Linux) tu peux utiliser un support amovible pour stocker ton dépôt HOP (par exemple un bare repo). Il faudrait certainement crypter ce support pour se prémunir contre sa perte.
4. UTILISER GIT-BUNDLE PAR E-MAIL
La sous-commande git bundle permet de sauvegarder une partie d'un dépôt git dans une archive fichier, dite “bundle”, qui peut ensuite être importé dans un autre dépôt. Le “bundle” peut être acheminé via une clef USB ou en P.j. sur un email.
Cela correspond assez exactement à ton besoin. Je l'ai utilisé pendant longtemps en mode “sneakernet,” c'est un peu relou mais si tu dois jongler entre les intranets cela reste sûrement plus simple que les push/pull à travers le réseau.
En gros c'est le même workflow qu'avec le HOP mais au lieu de cela à la fin de ta session de travail, tu fais und bundle avec tous tes derniers commits et l'apporte ou l'email à ton autre station pour pouvoir l'importer.
5. GIT-IMAP
Jette un œil à la man-page
git-imap-send
– je n'ai jamais utilisé cette fonction mais cela semble pouvoir répondre à ton besoin.6. MON AVIS
Admettant que ton client soit d'accord avec ces manips, je pense que les solutions les plus simples sont, par ordre croissante de complexité à l'usage.
[^] # Re: Il faut bien lire ce qu'on lit!
Posté par Michaël (site web personnel) . En réponse au journal Le retour de la vengeance de la virgule flottante. Évalué à 4.
C'est chouette! Et donc si je calcule un truc du genre 0,2% de 1000 milliards d'euros, le genre de blagues qui arrive avec les flottants du type
n'arrivent pas. (Puisque comme on le voit sur l'exemple la précision est assez grande pour donner le bon résutlat après arrondi.) Le point important est de bien arrondir après chaque multiplication dans la définition de la structure de “float-module,” c'est bien ça?
[^] # Re: Nanosecondes
Posté par Michaël (site web personnel) . En réponse au journal En évoquant Facebook. Évalué à 5. Dernière modification le 28 janvier 2018 à 17:48.
Qui les gère, mais vite fait:
(Voir https://www.tondering.dk/claus/cal/gregorian.php, notamment la section “When did country X change from the Julian to the Gregorian calendar?” avec mention spéciale pour nos amis suédois!)
Les calculs fait par Python datetetime ne sont probablement justes que pour l'époque contemporaine.
[^] # Re: Aigreur, quand tu nous tiens
Posté par Michaël (site web personnel) . En réponse au journal ils l'ont voulu, ils l'ont obtenu, et ils l'ont dans le baba.... Évalué à 4.
Si cette logique ne sévissait qu'à la SNCF, quel beau monde dans lequel nous vivrions!
[^] # Re: Aucune idée mais…
Posté par Michaël (site web personnel) . En réponse au message Packetfence et pare-feu: la différence?. Évalué à 4.
En tout cas bonne chance! Si jamais tu décides quand-même de regarder ce que peut faire packetfence pour toi, ce serait super chouette que tu le racontes sur LinuxFR!
[^] # Re: Aucune idée mais…
Posté par Michaël (site web personnel) . En réponse au message Packetfence et pare-feu: la différence?. Évalué à 2.
Je ne connais pas trop cet outil mais si je comprends bien leur plaquette, packetfence est un logiciel qui permet d'administrer la configuration des routeurs (si le matériel est supporté!): il s'agit d'un outil de plus haut niveau, qui peut en particulier, parmi toutes les mesures que l'outil sait prendre, configurer des pare-feu. Un pare-feu tourne sur une machine et la configuration parle d'interfaces, d'adresses IP, de ports, alors que manifestement PacketFence peut modéliser les différents éléments du réseau et assigner les nouveaux venus à des classes spéciales, etc.
Ensuite ta question "si j'ai besoin d'une solution de pare-feu, puis-je installer packetfence?" n'est pas très bien posée parcequ'elle ne parle que de solutions techniques et pas des besoins – du coup on ne sait pas quel besoin particulier te pousse à choisir un pare-feu. Si tu prends un peu de temps pour faire la liste de ce que tu veux faire avec ton pare-feu tu devrais assez facilement voir si packetfence te permet de faire la même-chose, ou pas.
[^] # Re: Il faut bien lire ce qu'on lit!
Posté par Michaël (site web personnel) . En réponse au journal Le retour de la vengeance de la virgule flottante. Évalué à 2.
Pour donner l'exemple de Java que tu donnais
BigDecimal bd = new BigDecimal(5.5);
le plus simple serait sûrement soit de construire une classe spécialeMoneyAmount
qui fait ce qu'il faut pour s'initialiser correctement à partir d'un float. Ou bien de définir une sorte de constructeur à BigDecimal, qui fait ce qu'il faut?[^] # Re: Il faut bien lire ce qu'on lit!
Posté par Michaël (site web personnel) . En réponse au journal Le retour de la vengeance de la virgule flottante. Évalué à 3.
Tu as raison, ma citation est un peu “bizarre par excès” si on peut dire. :)
Je pense qu'un aspect important est que soit “interpréter les litéraux à virgules comme étant des décimaux” est une idée tellement géniale que tous les langages vont adopter cette convention dans les 5 ans, soit le langage qui fait ce choix va rester durant toute son existence le cousin un peu bizarre avec qui tout le monde se prend les pieds dans le tapis parcequ'il fait les choses un peu différemment. (Déjà que certains langages se paient le luxe d'avoir des opérateurs égal
==
, vraiment égal===
et physiquement égal ;) )[^] # Re: Il faut bien lire ce qu'on lit!
Posté par Michaël (site web personnel) . En réponse au journal Le retour de la vengeance de la virgule flottante. Évalué à 3.
Je crois que le but des exemples n'est pas d'insister sur l'exactitude ou pas des calculs mais sur le fait qu'il y a plein de décisions arbitraires à prendre (arrondir quoi, comment, etc.) au delà des calculs proprement dits et que, qu'on utilise des flottants des rationnels ou encore autre chose ne change rien au fait que le comportement du programme doit être soigneusement spécifié par le programmeur.
[^] # Re: Il faut bien lire ce qu'on lit!
Posté par Michaël (site web personnel) . En réponse au journal Le retour de la vengeance de la virgule flottante. Évalué à 3.
Mon coiffeur a une perspective différente sur cette question et une autre appréciation.
[^] # Re: Il faut bien lire ce qu'on lit!
Posté par Michaël (site web personnel) . En réponse au journal Le retour de la vengeance de la virgule flottante. Évalué à 5.
Vu la constance avec laquelle la plupart des livres de programmation généralistes passent sous silence ce type de subtilités on ne peut pas vraiment faire le reproche ce cette ignorance aux programmeurs en général. Que des programmeurs travaillent précisément dans le domaine de l'économat ou de la comptabilité d'entreprise ne semblent pas familiers avec celles-cis est plus surprenant. De façon rigolote on peut noter que la page Wikipedia pour Business Informatics ou Wirtscahftsinformatik n'a pas d'équivalent en français. :)
[^] # Re: Il faut bien lire ce qu'on lit!
Posté par Michaël (site web personnel) . En réponse au journal Le retour de la vengeance de la virgule flottante. Évalué à 5.
Exactement, et pour reprendre l'exemple de TeX, c'est parce qu'on ne calcule jamais de surface et plus généralement qu'on ne multiplie jamais entre elles deux mesures de longueurs, qu'on peut travailler avec des mesures entières. Pour l'économat on est dans une situation analogue (on ne calcule pas des euros au carré ou des litres de lait au carré) mais travailler en virgule fixe n'épargne de répondre à toutes les questions sur les arrondis, les pratiques de taux de change et de conversion d'unité – qui sont en pratique les problèmes qui “mettent dedans” les programmeurs qui ne sont pas conscients de toutes les décisions à prendre lorsqu'on programme ce genre de calculs.
[^] # Re: Il faut bien lire ce qu'on lit!
Posté par Michaël (site web personnel) . En réponse au journal Le retour de la vengeance de la virgule flottante. Évalué à 3.
Je suis très surpris aussi, si on considère les axiomes de Hilbert on est quand-même assez loin de pouvoir faire ce travail. Il y aurait deux approches à mon avis:
Démonter que le cercle est rectifiable, mais pour cela je n'ai pas d'idée très maline pour majorer la somme des longueurs de cordes consécutives sur un cercle. Si on démontre que le cercle est rectifiable, on a une notion d'abscisse curviligne sur lui, ce qui nous permet de mesurer les angles et de les couper en parts égales.
Dans un cas comme dans l'autre – si on a l'ambition de produire une démonstration rigoureuse à partir des seuls axiomes de Hilbert – il y a quand-même un travail considérable qu'on a aucune chance de retrouver ne serait-ce qu'esquissé chez les grecs. Je ne suis pas familier avec les éléments d'Euclide cependant, mais peut-être qu'ils admettent que le cercle est rectifiable? Cela serait cohérent avec la distinction faite entre les lignes droites et celles qu'on est en droit d'attendre si on croit bon de préciser que certaines lignes sont droites.
[^] # Re: Il faut bien lire ce qu'on lit!
Posté par Michaël (site web personnel) . En réponse au journal Le retour de la vengeance de la virgule flottante. Évalué à 3.
Ah oui tiens, j'ai passé mon bac en 97. :D
[^] # Re: Il faut bien lire ce qu'on lit!
Posté par Michaël (site web personnel) . En réponse au journal Le retour de la vengeance de la virgule flottante. Évalué à 2.
C'est vrai que c'est un sujet très technique, mais je pense qu'on l'apprend avec toutes cette technicité surtout parcequ'on a en vue la théorie des probabilités qu'on ne peut aborder sérieusement que si on est au point sur les notions de tribus engendrées, etc. – ou bien l'analyse fonctionnelle où l'étude des distributions demande de bien être au point sur les mesures et les théorèmes de représentation qui vont avec (au moins pour la raison que les distributions les plus célèbres comme “intégrale de a à b” et Dirac sont données par des mesures!).
Mais à Bac+1 on peut raisonnablement définir les ensembles mesurables d'un l'espace euclidien en utilisant “le critère d'Archimède”: Si la mesure extérieure et intérieure d'une partie F de l'espace euclidien coïncident (prises avec des petits pavés bien orthogonaux) et que les filtres (je dis filtre pour abréger) correspondant convergent vers la même valeur alors (définition) la partie F est mesurable et sa mesure est la valeur commune des mesures intérieure et extérieures. Cela marche raisonnablement bien pour démontrer les outils basiques (les ensembles mesurables sont une sigma-algèbre – le dénombrable vient du fait que dans une somme fini d'un nombre infini de termes, seule une quantité dénombrable de termes peuvent être non nuls) et c'est suffisamment compatible pour avec les méthodes d'intégration du style Riemann (par exemple sa version améliorée Henstock Kurzweil qui gère la convergence dominée, le théorème fondamental de l'analyse et tout et tout) pour que le lien entre intégration et calcule d'aire se démontre facilement.