Aller au contenu

Le Bar de la programmation


Messages recommandés

  • Réponses 745
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

J'ai regardé le truc et apparemment l'implémentation n'est pas totalement complète (à vérifier): donc il faut oublier :siffle:

Sinon le "?:" sert à quoi :reflechis:

En faisant le truc avec le regexp standard:

1) Avec "^([0123456789]+/){2}([0123456789]+)$", il trouve 2 parties

2) Avec "^([0123456789]+/)([0123456789]+/)([0123456789]+)$", il trouve 3 parties

C'est le quantificateur borné personnalisé qui semble tout prendre :transpi:

Modifié par foetus
Lien vers le commentaire
Partager sur d’autres sites

Ouai enfin si ils implémentent pas tout aussi :p

le ?: sert à pas avoir de callback. Je pense pas t'apprendre grand chose en te disant que ce qui est entre parenthèse est enregistré comme étant un match.

Le ?: sert à avoir des vraies parenthèses et pas des callback. Ce qui me permet de faire prendre effet le {2} sur (?:.....) sans enregistrer ce qui est entre parenthèse comme étant un match :-)

Merki en tous cas :-)

Lien vers le commentaire
Partager sur d’autres sites

Code en mode arrache pour tester

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <regex.h>int main (void) {    regex_t preg;    const char* str_request = "11/22/33";    const char* str_regex = "^([0123456789]+/){2}([0123456789]+)$";//  const char* str_regex = "^([0123456789]+/)([0123456789]+/)([0123456789]+)$";    int err = regcomp(&preg, str_regex, REG_EXTENDED);    if (err == 0) {        regmatch_t* pmatch = NULL;        size_t nmatch = preg.re_nsub;        printf("main: find %d part%c\n", nmatch, ((nmatch > 1)? 's': ' '));        pmatch = malloc(sizeof(*pmatch) * nmatch);        if (pmatch) {            int part = 0;            int match = regexec(&preg, str_request, nmatch, pmatch, 0);            regfree (&preg);            if (match == 0) {                for(part = 0; part < nmatch; part++) {                    if (pmatch[part].rm_so == (size_t) -1) { break; /* No more groups */ }                    char str_part[strlen(str_request) + 1];                    strcpy(str_part, str_request);                    str_part[pmatch[part].rm_eo] = 0;                    printf("main: Group %u: [%2u-%2u]: %s\n", part, pmatch[part].rm_so, pmatch[part].rm_eo, (str_part + pmatch[part].rm_so));                }            } else if (match == REG_NOMATCH) {                printf("main: %s n\'est pas une expression valide\n", str_request);            } else {                size_t size = regerror(err, &preg, NULL, 0);                char* text = malloc(sizeof(*text) * size);                if (text) {                    regerror(err, &preg, text, size);                    printf("main - Erreur 1: %s\n", text);                    free(text);                } else {                    printf("main - Erreur 2: Memoire insuffisante\n");                    exit(EXIT_FAILURE);                }            }        } else {            printf("main - Erreur 3: Memoire insuffisante\n");            exit(EXIT_FAILURE);        }    } else {        printf("main: regcomp NULL\n");    }    return(EXIT_SUCCESS);}
Modifié par foetus
Lien vers le commentaire
Partager sur d’autres sites

Je regarderai je te remercie, mais du coup là je pars sur autre chose en même temps...

À savoir, pour un autre programme je voudrais stocker des données dans une bdd. Je pourrais bien sûr simplement utiliser mysql (ce que je vais faire pour l'instant), mais plutôt que d'avoir les donénes stockées quelque part sur l'ordi, j'aimerais la bdd soit stockée dans un fichier que je choisis (i.e. quelque part dans mon arborescence de programme).

Si vous savez comment faire ça!

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Salut !

Je passe dans le coin pour voir si certains d'entre vous qui s'y connaissent en PHP/HTML/CSS/JS/ auraient envie d'apporter leur aide à un petit projet d'interface web pour installation domotique.

Je m'auto-quote ayant déjà posté dans un autre topic

Le but de ce projet est de fournir une interface web utilisable par tout un chacun en sa basant sur le projet Domoticz. Domoticz est un programme qui transforme un pc en centrale domotique. Il est opensource, gratuit et fonctionne très bien sur un raspberry pi. Il possède déjà une interface web, mais celle ci est trop tournée vers l'administrateur de l'installation domotique.

Pour une utilisation familiale, j'ai lancé l'idée d'une interface plus basique permettant d'accéder aux informations les plus utiles de l’installation sur le forum de HomeServer-DIY. Le but étant par exemple d'afficher dès la page d'accueil la température extérieure et/ou de notifier le passage du facteur, ou le fait qu'une fenêtre est ouverte depuis un trop long moment.

Domoticz possède une API permettant pas mal de chose et c'est sur celle-ci que nous nous appuyons pour coder cette interface.

Sauf que nous le faisons en amateurs. Nous ne sommes pas experts et nous proposons à toute personne connaissant les HMTL/CSS/PHP/JS de venir participer au projet.

En passant sachez que pour le moment une grosse partie du travail a été faite par un INpactien.

Pour le moment nous disposons d'un topic dédié sur notre forum ainsi que d'un salon xmpp. Si vous souhaitez participer ça se passe là: http://homeserver-di....php?f=20&t=511

Toute aide étant la bienvenue.

Merci de m'avoir lu.

Lien vers le commentaire
Partager sur d’autres sites

  • 1 an après...

Boarf, il y a "should be" et "should be" :dd:

 

En ce moment, j'ai un logstash qui me fait des Heisenbugs alors qu'il ne devrait pas...le pipeline est on ne peut plus simple et le même code avec les même inputs ne produit pas toujours le même résultat...4 fois sur 5 c'est bon...mais la fois restante...sur quelques Go de logs, c'est con d'avoir autour de 100k lignes de log de plus que ce qu'on a réellement (ou une ligne de code ruby - syle helloworld - dans le pipeline qui plante ou pas sur le même input)...bon après, j'avais demandé à ceux qui alimentent la chose de ne pas mettre trop de logs pour commencer, mais ils ont fait les bourrins :dd:

 

Après, je ne comprends pas trop certains choix qui ont été faits sur logstash :

  • pourquoi ils aggrègent les fichiers de conf en 1 seul en utilsant l'ordre lexicographique
  • pourquoi le modèle de concurrence de la chose semble totalement foireux
  • pourquoi ils n'ont pas utilisé un langage qui facilite la manipulation de stream tout en ayant un modèle de concurrence difficile à prendre en défaut - genre Go ou Scala
  • pourquoi avoir voulu faire un truc souple avant de le rendre fiable...fluentd est robuste et commence à s'assouplir ce qui un choix beaucoup plus cohérent
  • ...
Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Mine de rien, la fonctionnalité "insertion d'une équation" de Word est relativement pratique à utiliser si dans ton document, tu as juste quelques formules à insérer.

 

Latex, c'est dur à prendre en main. Mais après, tu fais que des progrès et tu gagnes de plus en plus de temps à force de l'utiliser.

Sauf des fois où tu veux sortir du cadre et faire un affichage personnalisé. Tu regrettes alors de ne pas pouvoir éditer le rendu directement. Mais comme c'est pas vraiment la philosophie, c'est normal d'en chier

Lien vers le commentaire
Partager sur d’autres sites

Mais comme c'est pas vraiment la philosophie, c'est normal d'en chier

 

La philosophie de TeX (LaTeX est une surcouche)  c'est d'avoir un programme qui puisse faire tous les calculs nécessaires pour avoir le meilleur rendu (il travaille en point didot il me semble). Ce qu'un logiciel WISIWIG ne peut pas trop faire à cause de son approche "rendu [quasi] temps-réel".

 

De plus travailler avec "un compilateur" permet d'avoir des fichiers légers et qu'on puisse générer simplement le résultat.

De plus TeX évolue peu (il a été conçu dès le départ pour travailler de façon optimale) et son numéro de version tend vers Pi il me semble.

Modifié par foetus
Lien vers le commentaire
Partager sur d’autres sites

Il me semble avoir lu quelque part que Tex a une unité de mesure aussi grande que la longueur d'onde de je sais put quelle couleur :transpi:

 

Tex est en version finale depuis 20 ans ^^ C'est LaTeX qui evolue tres lentement tellement il est bien fait.

 

C'est vrai que c'est assez chiant mais quand on a posé sa structure, on peut réutiliser pour presque n'importe quoi avec toujours un rendu impeccable ;)

Lien vers le commentaire
Partager sur d’autres sites

La dernière version de TeX est la 3.14159265. Elle est sortit en janvier 2014 d'après wikipédia.

Effectivement, ça correspond exactement aux premières décimales de PI ! On voit qu'il y a des amateurs de mathématiques parmis les développeurs
 

 

Il me semble avoir lu quelque part que Tex a une unité de mesure aussi grande que la longueur d'onde de je sais put quelle couleur :transpi:

 

J'étais perplexe alors j'ai un peu cherché

En fait, la plus petite unité disponible dans TeX est le scaled-point "sp" https://en.wikibooks.org/wiki/TeX/TeX_dimensions

Et d'après des conversions que j'ai trouvé page 6 de ce pdf http://latex-pearson.org/ressources/2010/annexe-C.pdf

ça correspond à 5.363 nanomètres. Le violet a une longueur d'onde de 400 nm :chinois:

 

Ca fait une sacrée précision !

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Le créateur de TeX n'est autre qu'un certain Donald Knuth...un mec qui s'est un jour juré d'écrire un monographe sur "The Art Of Computer Programming"...et qui s'est rendu compte que c'était relativement complexe d'écrire une somme pareille...il avait prévu 7 volumes...pour le moment, on en est à 4.75 (environ)...en partie parcequ'il trouvait que son éditeur pour les deux premiers volumes avait fait un travail de :censored:...du coup, il a crée TeX (et pour le fun, TeX est Turing-Complete) :D

 

Ce mec est un dieu vivant :ouioui:

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.


×
×
  • Créer...