883 links
  • thican's links | thican.net
  • Home
  • Login
  • RSS Feed
  • ATOM Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
page 1 / 1
20 results tagged développement x
  • Communiquer avec le serveur depuis un navigateur Web : XHR, SSE et WebSockets - LinuxFr.org
    Je garde le lien pour m’aider dans des projets de ma longue liste de développement.
    September 12, 2022 at 12:51:12 AM GMT+2 * - permalink -
    QRCode
    - https://linuxfr.org/news/communiquer-avec-le-serveur-depuis-un-navigateur-web-xhr-sse-et-websockets
    développement informatique web
  • Tests : mon top 8 des anti-patrons les plus agaçants
    September 12, 2022 at 12:42:03 AM GMT+2 - permalink -
    QRCode
    - https://damien.pobel.fr/post/tests-antipatterns-agacants/
    développement informatique
  • Apprendre à construire un protocole de jeu en réseau - Messages fiables et ordonnés, un tutoriel de Glenn Fiedler traduit par Bousk
    May 31, 2018 at 9:46:50 AM GMT+2 * - permalink -
    QRCode
    - https://bousk.developpez.com/traductions/gafferongames/construire-son-protocole-jeu-reseau/messages-fiables-ordonnes/
    C développement informatique réseau todo todo-lecture tutoriel
  • GitHub - thepracticaldev/orly-full-res: Full resolution images of the O RLY book covers made by The Practical Dev
    Original source after seeing the recent post on Imgur (https://links.thican.net/?Kbh_NQ)
    March 20, 2018 at 3:29:28 PM GMT+1 - permalink -
    QRCode
    - https://github.com/thepracticaldev/orly-full-res
    coup_de_cœur développement humour image informatique livre
  • Maven – Maven in 5 Minutes
    January 3, 2018 at 9:22:46 AM GMT+1 * - permalink -
    QRCode
    - https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
    développement informatique Java programmation todo-lecture tutoriel
  • Semantic Versioning 2.0.0 | Semantic Versioning
    November 13, 2017 at 11:17:45 PM GMT+1 - permalink -
    QRCode
    - https://semver.org/spec/v2.0.0.html
    développement informatique programmation
  • 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
  • How to C (as of 2016)
    Un ensemble de règles pour avoir du code plus stable en C.
    De mon point de vue, je trouve que ça alourdit le code, le compliquant à certains passages (sûrement une question d’habitudes), voire le rend moins portable, mais rend son comportement plus consistent sur de différentes plateformes.
    March 20, 2016 at 6:20:24 PM GMT+1 - permalink -
    QRCode
    - https://matt.sh/howto-c
    C développement programmation
  • vim-utils/vim-troll-stopper - GitHub
    October 26, 2015 at 9:47:44 PM GMT+1 - permalink -
    QRCode
    - https://github.com/vim-utils/vim-troll-stopper
    développement programmation vim
  • Smashing the Stack for Fun and Profit by Aleph One
    July 25, 2014 at 12:23:51 PM GMT+2 - permalink -
    QRCode
    - http://insecure.org/stf/smashstack.html
    C développement sécurité
  • MEM06-C. Ensure that sensitive data is not written out to disk - Secure Coding - CERT Secure Coding Standards
    Quelques instructions à garder, lorsque l'on veut éviter de voir certaines données stockées en mémoire vive se retrouver sur la swap.
    July 18, 2014 at 12:32:58 PM GMT+2 - permalink -
    QRCode
    - https://www.securecoding.cert.org/confluence/display/seccode/MEM06-C.+Ensure+that+sensitive+data+is+not+written+out+to+disk
    C crypto développement sécurité
  • Your syntax highlighter is wrong — Medium
    Un point de vue intéressant sur les schémas de coloration syntaxique de nombreux éditeurs de code actuels, en pointant leurs défauts au sujet de la mise en valeur du code.

    TL;DR:
    - les commentaires devraient être plus visibles ;
    - les outils de diff ne devraient pas changer la coloration syntaxique en mettant en rouge les retraits et vert les ajouts.
    (texte en anglais)
    May 12, 2014 at 10:38:40 PM GMT+2 - permalink -
    QRCode
    - https://medium.com/p/6f83add748c9
    développement programmation
  • The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) - Joel on Software
    Un article, assez ancien mais toujours d'actualité, concernant les encodages des caractères (Unicode et autres).
    April 13, 2014 at 8:32:26 PM GMT+2 - permalink -
    QRCode
    - http://www.joelonsoftware.com/articles/Unicode.html
    développement GNU unicode
  • Hg Init: a Mercurial tutorial by Joel Spolsky
    Une suite d'articles et de tutoriels pour apprendre à utiliser le CVS Mercurial (avec des astuces si vous utilisiez déjà Subversion).
    March 4, 2014 at 3:46:40 PM GMT+1 - permalink -
    QRCode
    - http://hginit.com/
    développement GNU software
  • MVC is dead, it's time to MOVE on.
    Tiens tiens, un avis intéressant sur le mode de développement MVC (Model View Controllers).
    November 12, 2013 at 4:08:27 PM GMT+1 - permalink -
    QRCode
    - http://cirw.in/blog/time-to-move-on.html
    développement informatique programmation todo web
  • socket-c | inetdoc.net
    Un tutoriel pour apprendre les bases du développement réseau en C.

    Pour la version en PDF, regardez en bas de page (http://www.inetdoc.net/pdf/socket-c.pdf)
    September 11, 2013 at 3:43:02 PM GMT+2 - permalink -
    QRCode
    - http://www.inetdoc.net/dev/socket-c/
    C développement GNU/Linux programmation réseau
  • tmpfile()
    September 11, 2013 at 3:41:08 PM GMT+2 - permalink -
    QRCode
    - http://beej.us/guide/bgc/output/html/multipage/tmpfile.html
    développement GNU/Linux programmation
  • Beej's Guides
    Un ensemble de guides et de livres pour apprendre à développer des processus liés au réseau (et aussi à tuer des dragons ;-))
    September 11, 2013 at 3:40:54 PM GMT+2 - permalink -
    QRCode
    - http://beej.us/guide/
    développement GNU/Linux programmation réseau
  • Absolute Horizontal And Vertical Centering In CSS | Smashing Coding
    Quelques astuces en CSS, en fin de compte très simple, pour centrer correctement des blocks en CSS.
    August 13, 2013 at 11:31:14 AM GMT+2 - permalink -
    QRCode
    - http://coding.smashingmagazine.com/2013/08/09/absolute-horizontal-vertical-centering-css/
    astuces développement web
  • forms - Should I use Yes/No or Ok/Cancel on my message box? - User Experience
    Des petits détails qui font toute la différence ; vous faciliterez ainsi l'expérience utilisateur, et même pour vous (pour éviter les contre-sens).

    En résumé, lorsque vous en avez la possibilité, créer des boutons avec un verbe, une action, et dans le champ texte, décrivez l'action qui va se produire selon le choix. Donc, plus besoin de mettre une question, et donc on évite les erreurs de compréhensions ou d'habitudes (regardez les exemples, ce sera plus simple).
    January 7, 2013 at 3:38:14 PM GMT+1 - permalink -
    QRCode
    - http://ux.stackexchange.com/questions/9946/should-i-use-yes-no-or-ok-cancel-on-my-message-box/9960#9960
    développement software
Links per page: 20 50 100
page 1 / 1
Shaarli - The personal, minimalist, super-fast, database free, clarity, bookmarking service by the Shaarli community - Help/documentation