883 links
  • thican's links | thican.net
  • Home
  • Login
  • RSS Feed
  • ATOM Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
◄Older
page 1 / 2
21 results tagged thican x
  • Le langage C et l’arithmétique des pointeurs
    Pour commencer, oui, l’arithmétique des pointeurs dans la programmation actuelle, et globalement l’utilisation du langage C, est quelque chose de plus en plus rare, car la majorité des langages sont dits de haut niveau, ils font abstraction du code machine, et leur typage est dynamique.

    Toutefois, le langage C a certains atouts (pas de démonstration, ce n’est pas le but de ce billet), et il est ainsi important de produire du code robuste et modulable.

    Prenons le cas où vous devez manipuler à travers les paramètres d’une fonction :
    - des listes (une dimension) ;
    - des matrices/tableaux (deux dimensions) ;
    - des volumes (trois dimensions) ;
    - voire autant de profondeurs de pointeurs dont vous avez besoin (x dimensions).

    (Exemple et démonstration plus bas)

    Pour une allocation de mémoire sur une variable faites à partir de pointeurs d’objets, le comportement est :

    mytype *my_variable;
    my_variable = malloc(sizeof(mytype));

    Mais ensuite, si ce n’est plus un seul niveau de pointeurs, mais plusieurs, il faut donc calculer le nombre de pointeurs à mettre : combien d’astérisques à écrire ? est-ce vraiment utile, i.e "void *" ne suffit-il pas ? ce nombre a-t-il un impact ?
    Et si on change de type ? par exemple, à l’intérieur d’une structure, vous ne déclarez pas la variable, du coup, il faut aller chercher le type de la variable en question, ce qui n’est pas forcément facile, et si ça change, vous devez manipuler le code.

    Voici une solution : utilisez l’idiomatique suivante :

    my_var = malloc(sizeof(*my_var));

    Il suffit de remarquer qu’il suffit simplement de rajouter un astéristique par rapport à la variable dans le paramètre de gauche, dans le contenu de l’appel sizeof, et c’est tout.

    Exemple, vous avez une matrice de "choses", chose pouvant être un entier, un nombre à virgule, un pointeur, une structure, etc, mais que c’est une donnée ici d’un des paramètres de la fonction, voici le résultat :

    void myFunction(mytype ***my_var) {
    …
    *my_var = malloc(sizeof(**my_var));
    …
    }

    void main(void) {
    mytype **myMatrix;
    myFunction(&myMatrix);
    …
    }


    Exemple et Situation :

    Prenons le cas où vous avez déjà une liste d’objets, comme une liste de sommets (“vertex/vertices” en anglais) dans un graphe (“graph”) contenant un nombre important de paramètres et d’informations. Recopier le contenu alors que vous souhaitez manipuler l’objet pour lire et créer d’autres ensembles n’est pas le plus efficace, la mémoire s’en alourdi : il suffit d’appeler le pointeur sur l’objet en question.

    Déterminons les enfants d’un sommets dans un graphe, avec les arêtes qui les relient (“edge” en anglais) ; on va donc à partir d’un graphe "g" et d’un sommet "v" recevoir une liste de sommets "listChildren", et le nombre d’éléments de cette liste. Comme indiqué en introduction, on ne cherche pas à recopier les données, mais on cherche à recevoir leurs pointeurs. Pareil pour les éléments passés en paramètres en tant que source d’informations.

    Remarque : j’évite au maximum d’avoir des variables globales, et je mets en premier dans les paramètres d’une fonction les données qui seront modifiées.
    Remarque : pour simplifier la lecture, on pourrait aussi utiliser un “typedef” pour parler de pointeurs sur les différents objets, comme "pgraph" = "graph *", "pvertex" = "vertex *", etc, mais ça devient lourd à utiliser, et ce n’est pas entièrement pratique si on ne l’utilise pas entièrement.

    Nous avons en entrée :
    - un "graph my_graph" ;
    - un "vertex current_vertex" ;
    - une liste de pointeurs de sommets "vertex **my_child" ;
    - et une valeur de retour, "int nb_children".

    La liste des paramètres de la fonction "childrenVertices" ainsi se compose :
    - pour le graphe "g" : graph *g ;
    - pour le sommet "v" : vertex *v ;
    - pour la liste de sommets, nous allons modifier son contenu, il faut rajouter un pointeur dessus : "vertex ***list_children" ;
    - et le paramètre de retour sera un entier "int".

    int childrenVertices(vertex ***list_children, graph *g, vertex *v);

    À l’intérieur, l’allocation mémoire pour "list_children" sera :
    *list_children = malloc(nb_vertices * sizeof(**list_children));

    et son appel sera :
    nb_children = childrenVertices(&my_child, &my_graph, &current_vertex);

    En conclusion, la fonction "childrenVertices" ne manipule que des pointeurs, ce qui économise beaucoup plus de place par rapport à des données dans des structures (sauf pour les petits types, comme les entiers, qui sont moins volumineux dans une architecture 64 bits (4 octets, soient 32 bits pour un entier relatif "int") que pour un pointeur, 8 octets soient 64 bits en archi 64 bits.
    April 1, 2016 at 4:05:12 PM GMT+2 - permalink -
    QRCode
    - https://links.thican.net/?-rSgaA
    astuces C développement programmation thican
  • Antivirus scan for 0f2ccabee28e87aeed2e62b958ef3831aa61cdba48e0223cc34902c31e99d981 at 2015-07-16 10:36:18 UTC - VirusTotal
    Et de 3 !

    Score de 4/55, mais pas avec les mêmes antivirus qu'hier.
    July 16, 2015 at 12:42:37 PM GMT+2 - permalink -
    QRCode
    - https://www.virustotal.com/fr/file/0f2ccabee28e87aeed2e62b958ef3831aa61cdba48e0223cc34902c31e99d981/analysis/
    thican virus
  • Antivirus scan for 36bf60407eb92c3caa2a695e8e478c99426419e0302f2990461098477ccc9083 at 2015-07-15 12:03:09 UTC - VirusTotal
    Et de 2 ! (le premier https://links.thican.net/?1dJIcQ)

    Celui-là, je suis le premier à l'avoir rapporté/testé sur le site VirusTotal.com, et il a une note de 1/55 ; ArcaBit détecte encore le code malveillant qu'ils nomment HEUR.VBA.Trojan, mais GData considère comme négatif le test sur ce deuxième fichier, là où il détectait le code nommé "Macro.Trojan-Downloader.Donoff.G@gen".

    J'ai l'impression que ces deux fichiers infectés sont liés avec le piratage des données de la boîte italienne HackingTeam …

    La première fois, que j'avais reçu un virus, m'avait ému, mais vu que c'est déjà le deuxième, et le même jour, là, je suis irrité.
    July 15, 2015 at 2:05:40 PM GMT+2 - permalink -
    QRCode
    - https://www.virustotal.com/fr/file/36bf60407eb92c3caa2a695e8e478c99426419e0302f2990461098477ccc9083/analysis/
    thican virus
  • Antivirus scan for 1e438b5a8fe207c1859c97c4989d73ab35dad14c794e7050246e45a0a073c957 at 2015-07-15 08:27:31 UTC - VirusTotal
    J'ai reçu mon premier virus, un Trojan, par courriel, je suis ému. :-)

    Me concernant, il s'agissait d'un fichier texte .doc, au sujet d'une "facture importance" (oui oui, la faute est d'origine).

    Tout de même, au moment où j'ai testé, le fichier n'a été détecté que par 2 antivirus sur les 56 testés par le site web… ce n'est guerre glorieux.
    July 15, 2015 at 11:15:19 AM GMT+2 - permalink -
    QRCode
    - https://www.virustotal.com/fr/file/1e438b5a8fe207c1859c97c4989d73ab35dad14c794e7050246e45a0a073c957/analysis/
    thican virus
  • Création et démarrage d'un système sur partitions chiffrées.
    Info : ce tuto est fini à 98%, j'ai encore quelques retouches ou remarques à écrire, mais de l'ordre du détail, donc j'ai publié (je vais rajouter le support pour RAID).

    Comme tout bon geek qui écrit sur le web, il commence par faire des tutoriels ...

    Là, c'est direct du haut niveau, vous allez apprendre à chiffrer votre système d'exploitation Linux ! (basé sur Gentoo)

    Bonne lecture.

    Pour infos, j'avais commencé à écrire ce tutoriel il y a plus d'un an, mais je n'avais pas l'expérience, et puis j'avais mis de côté ma première distribution chiffrée. Maintenant, avec ce tuto, ça fonctionne aussi bien pour machine desktop que pour serveur.

    (en version texte https://thican.net/~thican/installation_systeme_chiffrement-tuto.txt)
    August 17, 2014 at 4:49:57 PM GMT+2 - permalink -
    QRCode
    - https://thican.net/~thican/installation_systeme_chiffrement-tuto.html
    crypto GNU/Linux thican
  • Autoblog de klaire.fr
    Et hop ! Un nouvel autoblog, celui de klaire.fr, « Klaire fait grr ». :-)

    Mais vu que je ne viens de le mettre qu'aujourd'hui, le plus vieil article date du 12 septembre.

    Tous les autres autoblog sont dans http://streisand.me.thican.net/
    October 26, 2013 at 12:58:42 PM GMT+2 - permalink -
    QRCode
    - http://streisand.me.thican.net/klaire.fr/
    autoblog Streisand thican
  • thican's PGP public key block 4096R/50733A18
    Voici donc ma clef publique.
    Key fingerprint = 485E F628 CB85 CDD4 CB7C  FF0D 52F5 1276 5073 3A18
    October 14, 2013 at 5:27:34 PM GMT+2 - permalink -
    QRCode
    - http://thican.net/~thican/thican-50733A18-pubkey.asc
    crypto GNU thican
  • [GNU/Linux] Sauvegarder des fichiers vers un FTP serveur en ligne de commande.
    Si vous avez besoin de sauvegarder des fichiers, en les mettant sur un serveur ftp distant, tout ça en tâche automatique, voici un script de mon cru (parmi tant d'autres, je n'ai pas cherché) qui peut rendre bien service :

    (EDIT: Vu que les indentations ont sauté, voici une copie directe en téléchargement http://thican.net/~thican/backup-ftp.sh)

    ################################
    #!/bin/env bash
    # coding: utf-8
    # Script for saving files through FTP, to a remote host (for cron or CLI)
    # Thibaud CANALE
    # thican [at] thican [dot] net
    # 2013-06-09
    # GPLv3

    # Parameters for FTP host (you only need to edit this 4 parameters)
    hostFTP="" # "ftp.example.com"
    userFTP="" # "foo"
    passwordFTP="" # "bar"
    remoteDir="./"; # remote directory, where to save files (like "backup")
    # you have to create the directory yourself.

    tempIFS=${IFS};
    IFS=$'\x0a\x00'; # useful to avoid problem with namefiles contening some
    # spaces (sic)
    errorStatue=false;

    # Test if parameters for the connexion to the FTP host are all set.
    if [ "x${hostFTP}" = "x" ] || [ "x${userFTP}" = "x" ] ||
    [ "x${passwordFTP}" = "x" ]; then
    echo "ERROR: at least one parameter for FTP connexion is not set. Exiting." >&2
    exit 1;
    fi

    # Test if at least one parameter is given.
    if [ "x${1}" = "x" ]; then
    echo "Missing arguments. Exiting." >&2
    exit 2;
    fi

    # Check if each ${args} is a regular file, to be upload to ftp server.
    # If yes, uploading it now.
    # If no, display a message error.
    for args in ${@}; do
    if [[ -f ${args} && ! -L ${args} ]]; then # symbolic files are ignored.
    ftp -n ${hostFTP}<<END
    user ${userFTP} ${passwordFTP}
    put ${args} ${remoteDir:-"./"}/$(basename ${args})
    bye
    END
    else
    errorStatue=true;
    echo "${args} is NOT a regular file. Skipping." >&2;
    fi
    done


    #IFS=$'\x20\x09\x0a\x00'; # Reset of the default IFS (I don't care about the old one)
    IFS=${tempIFS};

    # We check if ${errorStatue} containts some error.
    if ${errorStatue}; then
    exit 3;
    fi
    exit 0
    ################################

    Ainsi, sauvegardez donc ce script dans /usr/local/bin/, par exemple, éditez donc les paramètres de connexion au serveur FTP dans le début du script, et utilisez-le avec cron, juste après vos tâches de sauvegardes automatisées.

    Voilà, ce n'était pas plus compliqué que ça. :-)
    June 9, 2013 at 2:09:46 PM GMT+2 - permalink -
    QRCode
    - http://thican.net/~thican/backup-ftp.sh
    astuces bash DIY GNU/Linux informatique logiciel_libre script thican
  • Ma contribution à Gentoo GNU/Linux et à OpenRC
    Voilà, ma promesse que je viens de faire sur irc.freenode.net #gentoofr, je vais contribuer à mon niveau à cette génialissime distribution (quand je serai en congès, donc dans 2 semaines) :
    - Mettre à jour la traduction du handbook version fr (dernière màj du 19 juillet 2010), il y a eu Baselayout et OpenRC entre temps.
    - Faire un tuto sur les modifications possibles avec OpenRC.

    Quelques notes pour OpenRC :
    option --stack d'OpenRC
    nouveau dossier graphical dans /etc/runlevels/ où créer les liens pour les services type son, xorg, et tout ce qui est plus spécifique aux mode graphique. (ou par opposition au mode serveur distant)

    ... À rajouter si d'autres idées ...

    mkdir /etc/runlevels/graphical/
    rc-update --stack add default graphical
    rc-update add xdm graphical
    July 14, 2012 at 4:40:39 PM GMT+2 - permalink -
    QRCode
    - https://links.thican.net/?P9oawA
    Gentoo GNU/Linux thican todo
  • Diablo III : Ah putain le con !
    « Ah putain le con ! »

    C'est exactement ce que je viens de penser pendant l'écriture du billet précédent au sujet du différent entre un joueur et l'éditeur de Diablo III (http://links.thican.net/?q9lqCg).
    En effet, je me suis rappelé avoir essayé chez un ami le jeu Diablo III, pour me faire passer le temps alors que mon ami était occupé ; et mon erreur est d'avoir créé un personnage avec mon pseudo, sachant très bien que je n'accepte pas les conditions de Blizzard.
    Non, ce n'est pas de mon ami que je me méfie, mais bien de Blizzard.

    Même si ce n'était pas une partie publique, l'ensemble du jeu est en ligne, et donc mon pseudo est stocké chez eux, et non simplement sur l'ordinateur de mon ami, comme pour n'importe quel fichier par exemple pour tester un programme.

    Rhâââ ! Ce que je hais ces entreprises qui se permettent de bafouer nos droits.

    De toute façon, je l'ai trouvé moins intéressant que le premier Diablo ! Exemple : on ne décide pas de la façon dont on peut gérer nos caractéristiques (Haha, qu'est-ce que c'était marrant de faire un guerrier qui peut lancer des sorts dans Diablo I :D)
    Et sur les 10 minutes de jeu que j'ai pu tester, j'ai vraiment senti la marque de WoW dans le jeu.

    Au revoir Blizzard.

    J'ai retenté de jouer au premier du nom sur le laptop pas très puissant, et graphiquement, il y a un problème avec les couleurs dans le jeu …
    June 26, 2012 at 4:58:34 PM GMT+2 - permalink -
    QRCode
    - https://links.thican.net/?jVhsBg
    Big_Brother coup_de_gueule jeux_vidéo thican
  • J'ai honte ...
    J'ai honte de ne pas tenir aussi régulièrement mon Shaarli ... :(

    Mais ne vous inquiétez pas, je vais bientôt ajouter du vrai contenu ;)
    June 25, 2012 at 10:06:41 PM GMT+2 - permalink -
    QRCode
    - https://links.thican.net/?UeWGbQ
    thican
  • Animes - Streaming de fansub | thican.net
    Et voilà, c'est ouvert !

    Ouverture de cet espace après l'article de Mitsukarenai (http://www.fansub-streaming.eu/blog/une-bouteille-a-la-mer.html)

    Je vous tiens au courant quand ce sera plus étoffé.
    April 29, 2012 at 12:41:50 PM GMT+2 - permalink -
    QRCode
    - http://animes.thican.net/
    divertissement thican vidéo
  • Le code 18 du jour... Et IPv6 disponible sur le serveur :)
    Ou plutôt, le code 18 du 11 novembre 2011, le jour où j'ai fait la config du serveur...

    à cause d'un copié/collé trop rapide, sans réfléchir, l'IPv6 ne fonctionnait pas : l'ipv6 de la passerelle n'était ainsi pas la bonne.
    Et j'ai ainsi perdu beaucoup de temps, entre la recherche de documentation et la fonctionnalité qui n'était pas utilisée.

    Bref, je me suis collé deux baffes aujourd'hui.

    Et je remercie un utilisateur de #gentoofr sur freenode.net qui m'a permis de trouver l'erreur, en me faisant (re)découvrir la commande "/sbin/route -6"

    (Il y a des jours où je me demande ce que j'ai mangé au petit-déjeuner d'un jour antérieur pour avoir fait d'aussi grosses bouletteries ce jour antérieur...)
    April 21, 2012 at 1:27:19 PM GMT+2 - permalink -
    QRCode
    - https://links.thican.net/?IS-iag
    code18 thican
  • HALP! Recherche quelqu'un ou document pour apprendre à configurer le couple Postfix/Dovecot
    J'essaie depuis un bon moment à configurer sur mes machines le couple postfix/dovécot pour enfin gérer mes courriels en interne.

    J'avais commencé, mais j'avais une documentation trop exhaustive, et je m'y suis noyé. Du coup, il faudrait que je reprenne tout à zéro pour ne rien oublier et comprendre.

    Donc ... HALP!
    April 17, 2012 at 8:21:12 PM GMT+2 - permalink -
    QRCode
    - https://links.thican.net/?W4SQfA
    thican
  • ZeroBin - thican.net
    Installation et premier essai sur mon hébergement.

    Je tiens à remercier Sébastien SAUVAGE de partager son travail. Moi de même, je travaille sur ma propre version, pas pour faire concurrence, mais surtout comme travail personnel d'apprentissage.
    April 15, 2012 at 1:32:01 PM GMT+2 - permalink -
    QRCode
    - http://zerobin.thican.net/?240aedad3b0978da#0Bse9fbE1TcePHV12dFxbYnJq1evhWOzG6jLqSuQNyY=
    crypto sécurité thican zerobin
  • Expulsé du réseau Free Mobile et banni pendant quelques minutes ...
    En envoyant des requêtes ping ce matin à des adresses privées du réseau Free Mobile, j'ai eu la désagréable impression d'avoir été expulsé, banni pour ces actions. J'avoue qu'après coup, ce n'était pas très intelligent de ma part.
    Je ne sais pas si j'ai été vraiment banni, mais j'ai dû éteindre la connexion, puis par précaution redémarrer le téléphone, pour de nouveau avoir accès au réseau, instantanément.
    J'espère ne pas avoir de pénalités, je ne connais pas par cœur les règles du service.

    Désolé d'avoir été curieux :-)
    April 11, 2012 at 1:09:49 PM GMT+2 - permalink -
    QRCode
    - https://links.thican.net/?uotTWQ
    Free_FAI thican
  • Interlude
    Et si pour vous détendre, vous n'iriez pas découvrir Interlude ? ;-) (Promo et hébergement gratuits pour un ami :))
    April 11, 2012 at 12:28:32 PM GMT+2 - permalink -
    QRCode
    - http://interlude.thican.net/
    divertissement thican vidéo
  • Code source du code graphe-main.c
    Erreur 404, il faut que je retrouve le fichier.

    Voici le code source du TP de graphe.

    Licence GPLv3
    April 10, 2012 at 4:24:34 PM GMT+2 - permalink -
    QRCode
    - http://thican.net/graphe-main.c
    logiciel_libre software thican
  • Un mois sans mise à jour ...
    Arf ... je n'ai vraiment plus le temps de mettre à jour mon partage de liens. Il faut dire que cette machine n'a pas un uptime élevé en moyenne ces derniers temps.
    November 19, 2011 at 12:01:55 PM GMT+1 - permalink -
    QRCode
    - https://links.thican.net/?-LflVw
    thican
  • GMail Archiver pour Cron
    Bon, voilà le script de sauvegarde de sebsauvage plus adapté à mes besoins.

    (page en cours de construction)
    October 23, 2011 at 2:57:52 PM GMT+2 - permalink -
    QRCode
    - http://thican.net/~thican/gmail_archiver_cron.html
    logiciel_libre software thican
Links per page: 20 50 100
◄Older
page 1 / 2
Shaarli - The personal, minimalist, super-fast, database free, clarity, bookmarking service by the Shaarli community - Help/documentation