Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#101 Le 02/03/2011, à 10:54

Rolinh

Re : /* Topic des codeurs couche-tard [4] */

D'ailleurs, puisque l'on parle d'auto-hébergement, je suis en train de songer à migrer mon blog.
En fait, je compte passer mon serveur de apache+php à nginx+ruby on rails et d'ailleurs peut-être même changer l'OS mais là-dessus je me tâte (Arch? FreeBSD?). Si vous avec des suggestions intéressantes et motivées, je suis preneur smile
Donc l'idée serait de passer de WP à Radiant pour mon site blog/site web. Quelqu'un à déjà utilisé Radiant?

Hors ligne

#102 Le 02/03/2011, à 13:23

The Uploader

Re : /* Topic des codeurs couche-tard [4] */

Кຼزດ a écrit :
The Uploader a écrit :

plop;

<%=hs :Saloperie_de_drivers_nvidia_proprios! mad %>

Utilise un vrai langage de templates
{% trans "Saloperies de drivers nvidia proprios, c'est pour ça que j'utilise les libres" %}

le langage de template de Ruby on Rails est très bien! è_é


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#103 Le 02/03/2011, à 13:23

grim7reaper

Re : /* Topic des codeurs couche-tard [4] */

Ptain, j'ai fait une macro qui fait peur une fois développé…

printf("%u\n", next_highest_pow_of_2(42));

devient

printf("%u\n", ((((((((42)-1) | (((42)-1) >> 1)) | ((((42)-1) | (((42)-1) >> 1)) >> 2)) | (((((42)-1) | (((42)-1) >> 1)) | ((((42)-1) | (((42)-1) >> 1)) >> 2)) >> 4)) | ((((((42)-1) | (((42)-1) >> 1)) | ((((42)-1) | (((42)-1) >> 1)) >> 2)) | (((((42)-1) | (((42)-1) >> 1)) | ((((42)-1) | (((42)-1) >> 1)) >> 2)) >> 4)) >> 8)) | (((((((42)-1) | (((42)-1) >> 1)) | ((((42)-1) | (((42)-1) >> 1)) >> 2)) | (((((42)-1) | (((42)-1) >> 1)) | ((((42)-1) | (((42)-1) >> 1)) >> 2)) >> 4)) | ((((((42)-1) | (((42)-1) >> 1)) | ((((42)-1) | (((42)-1) >> 1)) >> 2)) | (((((42)-1) | (((42)-1) >> 1)) | ((((42)-1) | (((42)-1) >> 1)) >> 2)) >> 4)) >> 8)) >> 16)) + 1));

big_smile

De toute façon, je vais sûrement passer ça en fonction ça sera plus propre (et je pourrait gérer le 64 bits via un #ifdef)


Édit : ha bah en fait non, je devrais pouvoir faire un truc portable sans #ifdef, je pense pouvoir me débrouiller avec sizeof et CHAR_BIT smile.
Ptain, sans le savoir je suis arrivé au même algo que dans Hacker's Delight cool


Sinon, voilà un gars qui c'est amusé à coder un programme pour deternimer la « pornittude » (traduction approximative faite maison hmm) d'un nom ^^.

Dernière modification par grim7reaper (Le 02/03/2011, à 13:51)

Hors ligne

#104 Le 02/03/2011, à 14:59

Pylades

Re : /* Topic des codeurs couche-tard [4] */

Rolinh a écrit :

[…]
@Pylade: j'ai été voir alwaysdata mais... leurs offres en hébergement mutualisés ne sont pas vraiment intéressantes comparé à l'hébergeur avec qui je collabore actuellement.

Ben, c'est de l'hébergement haut de gamme, quoi… Je pensais que pour un professionnel, le prix est tellement minime comparé au bénéfice de pouvoir choisir son framework et à la grande qualité du service que la question ne se posait même pas…


Wah, mon nom est vachement porny (mais pas autant que celui de Grim) ! yikes


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#105 Le 02/03/2011, à 15:13

Rolinh

Re : /* Topic des codeurs couche-tard [4] */

@Pylade: au final, c'est le client qui paie l'hébergement... Donc, si on prend son point de vue, il n'a pas de raison de payer annuellement plus cher alors que finalement le confort de développement ne profite qu'au dev. Lui se contente du produit final alors la technologie qu'il y a derrière il s'en fout...

Hors ligne

#106 Le 02/03/2011, à 15:40

Pylades

Re : /* Topic des codeurs couche-tard [4] */

Ah, OK, je comprends… ^^


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#107 Le 02/03/2011, à 17:05

tshirtman

Re : /* Topic des codeurs couche-tard [4] */

If you look at these languages in order, Java, Perl, Python, you notice an interesting pattern. At least, you notice this pattern if you are a Lisp hacker. Each one is progressively more like Lisp. Python copies even features that many Lisp hackers consider to be mistakes. You could translate simple Lisp programs into Python line for line. It's 2002, and programming languages have almost caught up with 1958.

Huhu

http://www.paulgraham.com/icad.html

Dernière modification par tshirtman (Le 02/03/2011, à 17:06)

Hors ligne

#108 Le 02/03/2011, à 17:07

Rolinh

Re : /* Topic des codeurs couche-tard [4] */

Hey, j'ai une question à propos des masques de sous-réseaux. En fait, juste un doute et comme je dois expliquer à des élèves ^^

Si , en IPV4, j'ai une adresse de classe B avec un masque /26. J'ai donc 2^(32-26) = 2^6 interfaces adressables (auxquelles on enlève le broadcast et l'adresse réseau ce qui donne 62 interfaces disponibles) et 2^(26-16) = 2^10 sous-réseaux possibles du fait que la classe B, on s'étend sur 16bits. Juste histoire d'avoir une confirmation parce que ça fait un moment que je n'ai plus fait ça. ^^

Hors ligne

#109 Le 02/03/2011, à 17:17

tshirtman

Re : /* Topic des codeurs couche-tard [4] */

hum, le nombre de réseaux que tu fais dépends de combien de bits tu alloue à ça (autant que tu veux, si j'ai bien tout suivis) sur les 6 disponibles, et le nombre d'adresses possibles par réseaux est 2^(le nombre de bits qui restent), moins deux.

si j'ai tout bien compris…

Hors ligne

#110 Le 02/03/2011, à 18:24

Rolinh

Re : /* Topic des codeurs couche-tard [4] */

Hum pas exactement. Les 6 derniers bits, donc ceux après le masque, servent à adresser les interfaces réseaux. Si j'applique un masque /26, je passe les 26 premiers bits à un (ce qui me permet de déterminer le masque de sous-réseau) et il me reste 6 bits pour adresser les interfaces.
Là où je ne suis pas sûr, c'est sur le nombre de sous-réseaux que l'on a avec ce masque.
Pour moi, j'ai donc 26 bits pour les réseaux et sous-réseaux et 6 bits pour les interfaces. Comme je suis en classe B, je réserve les 16 premiers bits de ces 26 pour le réseau et les 10 restants sont là pour les sous-réseaux.
Donc en fait, j'ai, dans l'ordre, 16 bits pour le réseau suivit de 10 bits pour le sous-réseau et enfin de mes 6 bits pour les interfaces ce qui me fait bien un total de 32bits.
Je suis presque sûr mais si quelqu'un pouvait confirmer smile

Hors ligne

#111 Le 02/03/2011, à 18:26

Hors ligne

#112 Le 02/03/2011, à 18:29

Rolinh

Re : /* Topic des codeurs couche-tard [4] */

^^ merci d'avoir essayé wink

Dernière modification par Rolinh (Le 02/03/2011, à 18:30)

Hors ligne

#113 Le 02/03/2011, à 18:53

grim7reaper

Re : /* Topic des codeurs couche-tard [4] */

@Rolhin : j'arrive à la même conclusion que toi smile
1024 sous-réseaux qui peuvent contenir 62 machines chacun.

Les 16 premiers bits c'est bien le réseau (car classe B donc 2 octets), les 10 suivants c'est bien l'adressage des sous-réseaux (donc 2^10 = 1024 sous-réseaux dispo) et les 6 derniers servent à adresser les machines dans le sous-réseaux (donc 2^6 = 64 adresses disponibles, soit 62 machines une fois que l'on retire l'adresse de broadcast et l'adresse du réseau)

Dernière modification par grim7reaper (Le 02/03/2011, à 18:57)

Hors ligne

#114 Le 02/03/2011, à 18:56

Rolinh

Re : /* Topic des codeurs couche-tard [4] */

@grim: merci smile

Hors ligne

#115 Le 02/03/2011, à 19:04

Pylades

Re : /* Topic des codeurs couche-tard [4] */

Si je fais (en C89) :

0 && i++;

est-ce qu'il est garanti que l'expression de droite ne sera pas évaluée, ou est-ce laissé au choix du compilateur ?


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#116 Le 02/03/2011, à 19:08

Rolinh

Re : /* Topic des codeurs couche-tard [4] */

Je suis quasiment sûr que la partie de droite ne sera pas évaluée puisque c'est parfaitement inutile et que ce serait vraiment bizarre qu'elle le soit. Néanmoins, je n'ai rien pour étayer mon propos.

Hors ligne

#117 Le 02/03/2011, à 19:14

grim7reaper

Re : /* Topic des codeurs couche-tard [4] */

Pylade a écrit :

Si je fais (en C89) :

0 && i++;

est-ce qu'il est garanti que l'expression de droite ne sera pas évaluée, ou est-ce laissé au choix du compilateur ?

C'est garanti.
Encore une fois je cite mon draft du C99 (mais ça reste valable car il n'y a pas eu de changement à ce niveau lors du passage du C89 au C99)

ISO/IEC 9899:TC3 a écrit :

Unlike the bitwise binary & operator, the && operator guarantees left-to-right evaluation;
there is a sequence point after the evaluation of the first operand. If the first operand
compares equal to 0, the second operand is not evaluated.

De même avec ||, si une des conditions est vrai les suivantes ne sont pas évaluées (ce qui m'a d'ailleurs obligé à réecrire un bout de code de mon analyseur lexical de manière moins élégante >_<).

Dernière modification par grim7reaper (Le 02/03/2011, à 19:16)

Hors ligne

#118 Le 02/03/2011, à 19:16

Rolinh

Re : /* Topic des codeurs couche-tard [4] */

Ah, ben v'la une confirmation bien étayée smile

Hors ligne

#119 Le 02/03/2011, à 19:20

Pylades

Re : /* Topic des codeurs couche-tard [4] */

OK, merci ! \o/


Je devrais prendre le réflexe d'aller voir dans ton draft, maintenant que je l'ai téléchargé. tongue


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#120 Le 02/03/2011, à 20:12

The Uploader

Re : /* Topic des codeurs couche-tard [4] */

COUUUUUUUUURRS DOTNUT!

Introduction

1.Généralités
*Historique

En parralèle de 1986 à 1998 :
-C avec API WIN32
-C++ MFC
-VB
-ASP (dérivé VB) [de '95 à '98]

J++ : Java MS avec les WFC en 1997 avec la JVM Microsoft (procès Sun)

2000 : .NET/C# +20 langages

*Objectif
Langages et classes unifiés pour tout type d'applications sur système Microsoft.

*Architecture
[Application][composant]
[Machine virtuelle CLR/DLR]
[OS]

Le CLR/DLR gère:
-l'application
-et les composants
-le chargement des assemblys
-Compilation à la volée par le JIT du MSIL(=bytecode)

Il n'y a pas de JAR, l'application compilée est un PE/EXE qui appelle le CLR dans un stub de code natif au début du PE/EXE

Comme dans Java il y a un manifeste qui donne les dépendances de l'assembly.
Une grande différence avec Java est la gestion des versions : on quitte le DLL-HELL pour avoir des assemblys qui peuvent avoir plusieurs versions concurrentes installés sur un même système.

Possibilité de redirection de version par :
-le fabricant
-l'administrateur réseau Microsoft
-le gestionnaire du poste de travail

Si les 3 définissent une redirection de version la propriété sera : admin, gestionnaire, fabricant.

Sécurité des accès (contrôle logiciel par le CLR/DLR) couplé au domaine.

-Garbage Collector

2.Framework .NET
*Définition
Ensemble de classes et de composants logiciels (CLR, ADO.NET, ...) servant de base pour le développement d'applications.

Clients:
-Lourd (Windows Forms)
-Riche (WPF : Windows Presentation Fondation)
-Léger (ASP .NET)
-Console
-Office
-Cartes à puce (.NET Card. Mais Java Card est mieux)

Composants:
-Service Windows (équivalents des daemons Unix)
-Bibliothèques de classes
-Extensiosn du système
-Drivers (faisaibles en .NET pour certains)

Pour les mobiles et tablettes, ce sera le .NET Compact Framework.

Serveur (IIS):
-Services web (SOAP, REST, ...)
-Pages (ASP .NET)
-Sharepoint (gestion de documents)


*Versions
-1.0 : VS .NET
-1.1 : VS 2003
-2.0 : VS 2005 (Nouveautés langages : génériques (:templates), classes partielles, nullables)
-3.0/3.5 : VS 2008 (3.0 : WPF, WCF, Workflow Fondation, WMF. 3.5 : LINQ)
-4.0 : VS2010 (DLR, meilleure intégration WPF/WCF, Entity Framework)

Langage C#
----------
1.Généralités
Langage qui s'inspire à la fois du C++ et du Java (surtout ce dernier).
Pas de lien entre structure physique des fichiers et structure logique des classes/packages (ici les packages sont des espaces de noms).

2.Types, variables, opérations
-entiers : byte, short, int, long
-Réels : float (sur 64 bits), double (sur 32 bits), decimal
-Chaînes : char, string
-Booléens : bool
-nullables : {int? n; n=null; //correct} - utilisé pour le mapping de données avec une BDD.

Ces types primitifs doivent exister et avoir la même tailles dans tous les langages supportés par le CLR/DLR selon les specs.

Selon le langages, seuls les noms de ces types primitifs changent (exemple : float devient single en VB .NET).

NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOON.... sad

Toutes mes dernières années de Windowsien sont revenues... >_<
@T'Man : Tiens d'ailleurs, c'est VS 2010 Ultimate obligatoire dans mon cours... [ah ben faut bien que ça serve le MSDNAA de l'école <_<' ] sad exit vim/Mono! hmm
Pourtant j'étais parti pour essayer.. Mais nooon, je l'ai bien profond! mad


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#121 Le 02/03/2011, à 20:17

Rolinh

Re : /* Topic des codeurs couche-tard [4] */

Boah, je peux m'estimer heureux avec mon cours utilisant des BDD oracle tongue
Enfin, il y a encore quand même aussi un cours de POO en java pour lequel on est obligé de rendre les TP en projets eclipse sad

Hors ligne

#122 Le 02/03/2011, à 20:32

Pylades

Re : /* Topic des codeurs couche-tard [4] */

Quelle horreur, les écoles d'info ! tongue


Bon, petit message à l'attention d'ArkSeth : je viens de changer le type d'une de mes variables, de size_t vers char**. Comme je faisais mes malloc et realloc de la forme plop = malloc(sizof *plop * SIZE);, je n'ai eu à changer qu'un prototype de fonction, une ligne dans la définition d'une structure, et un passage d'argument. C'est tout. Avec ta manière de faire, j'aurais dû changer au moins cinquante lignes…
Quand je dis que c'est mieux, ce n'est pas pour rien. tongue


Bon, OK, j'exagère : il a aussi fallu changer le type d'une variable temporaire pour un realloc et transformer deux 0 en NULL. tongue

Dernière modification par Pylade (Le 02/03/2011, à 21:35)


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#123 Le 02/03/2011, à 20:44

grim7reaper

Re : /* Topic des codeurs couche-tard [4] */

static size_t next_highest_power_of_2(size_t n)
{
    if(n != 0)
    {
        size_t i;

        --n;
        for(i = 1; i < sizeof n * CHAR_BIT; i <<= 1)
            n |= n >> i;
        ++n;
    }
    else
        n = 0;

    return n;
}

Yeah, it works! Et en plus c'est élégant (et lisible, enfin plus que la version en macro quoi big_smile).
Si quelqu'un en 64 bits veux bien tester (avec des valeurs supérieures à 4294967295 bien sûr), ça m'ôterait un doute.
Je suis quasiment sûr que ça fonctionne, mais je ne peux pas tester.



Bon sinon j'ai presque fini d'implémenter ma table des symboles.
Je suis parti sur une table de hachage à adressage ouvert (moins chiant et plus efficace que la résolution des collisions par chaînage, le seul bémol c'est la suppression d'élement mais ça n'aura jamais lieu dans mon cas donc le problème n'en est pas un) avec une sonde quadratique (bon compromis entre l'utilisation du cache et la non-formation de cluster).
Dans l'idéal je devrai faire un hachage parfait, mais dans la pratique je suis déjà à court de temps (et puis vu la taille de ma table, la différence ne devrait pas trop se sentir)…


@Pylade : bien sûr que cette façon de faire est meilleure, mais tu sais j'en vois encore en école d'info qui sont surpris de l'utilisation de sizeof sans parenthèses…
Il m'assurait que mon code ne compilerai pas lol
M'enfin c'est pas pire qu'un de mes profs qui me disait que je ne faisait pas du C89 car je déclarai des variables en cours de fonction roll (alors que je le faisait toujours en début de bloc, comme l'autorise la norme). Je lui ai rendu mon TP avec un petit rappel à la norme, citation à l'appui, dans le README. J'ai aussi argumenté mon utilisation de quelques goto dans le code pour la gestion des erreurs.

Dernière modification par grim7reaper (Le 02/03/2011, à 20:55)

Hors ligne

#124 Le 02/03/2011, à 21:33

Rolinh

Re : /* Topic des codeurs couche-tard [4] */

@grim: j'ai loupé un ou deux épisodes là (c'est quoi et ça sert à quoi ce machin?).
J'ai bien fait un test mais je sais pas si c'est ce que tu attends... un petit bout de code complet aurait été sympa smile
As-tu des valeurs références pour des test?

#include <stdlib.h>
#include <stdio.h>
#include <limits.h>

static size_t next_highest_power_of_2(size_t n)
{
    if(n != 0)
    {
        size_t i;

        --n;
        for(i = 1; i < sizeof n * CHAR_BIT; i <<= 1)
            n |= n >> i;
        ++n;
    }
    else
        n = 0;

    return n;
}

int
main (void)
{
    size_t x;

    x = next_highest_power_of_2(42949672963459875);

    printf("%ld\n",x);

    return EXIT_SUCCESS;
    /* NOTREACHED */
}

Là ça me donne 72057594037927936

Dernière modification par Rolinh (Le 02/03/2011, à 21:34)

Hors ligne

#125 Le 02/03/2011, à 21:35

Pylades

Re : /* Topic des codeurs couche-tard [4] */

@Grim : OK ; je te teste ça après manger.


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne