Skip to content
  • Patcher / Launcher

    Archives
    7
    0 Votes
    7 Posts
    354 Views
    M
    <p>Salut, alors comme je développe en C# j'ai décider de faire un patcher  / launcher pour S4League.</p> <p> </p> <p>Il ferra les mises à jours tout seul (vérification des fichiers etc.) il permet de changer de langues (FR / EN / DE) et de lancer le jeu, de voir les news, de visiter le site et de s'inscrire (redirection sur le site).</p> <p> </p> <p>Je vous poste ce screen car iln'est pas fini:</p> <p><img alt="c39b36f452.jpg" src="https://puu.sh/ifTFS/c39b36f452.jpg"/></p> <p> </p> <p>Cordialement Manghao.</p>
  • Problème pour rejoindre un serveur Arma 3

    Aide / Support
    2
    0 Votes
    2 Posts
    3k Views
    T
    <p><strong>Bonjour, </strong>récemment mes amis et moi avons créer un serveur Arma 3 ;</p><p>Tout est bien codé sauf que lorsqu'on tente de rejoindre un slot, en cliquant sur ok, par après il affiche "Setting up client, please wait", et cela pendant l'infini <strong>(voir screen)</strong></p><p>Le serveur est bien en @life_server.pbo <strong>(voir 2eme screen)</strong>. Le serveur a bien été acheté, avec nitrado.</p> <p><a class="attach-link" href="/assets/uploads/ips/monthly_2015_12/2015-12-26_00001.jpg.e68be9a56f60e4efcb08a630025a9c2f.jpg"><img alt="2015-12-26_00001.jpg" class="ipsImage ipsImage_thumbnailed" src="/assets/uploads/ips/monthly_2015_12/2015-12-26_00001.thumb.jpg.eae89087e091043ddfaabf1e8f546c01.jpg" width="1000"/></a></p> <p><a class="attach-link" href="/assets/uploads/ips/monthly_2015_12/Screenshot_2.png.09f7cc4dd3ac536474a9555b0490bd7f.png"><img alt="Screenshot_2.png" class="ipsImage ipsImage_thumbnailed" src="/assets/uploads/ips/monthly_2015_12/Screenshot_2.thumb.png.5c89b7e26a033b4ff88f5bfa8080b1fd.png" width="1000"/></a></p>
  • Votre top 5 d'animes ?

    Manga / Anime
    40
    0 Votes
    40 Posts
    8k Views
    AkimaceA
    <p><span style="color:#2f4f4f;"><span style="font-family:tahoma, geneva, sans-serif;">Bonjour Melinyens !</span></span></p> <p> </p> <p><span style="font-family:tahoma, geneva, sans-serif;"><span style="color:#2f4f4f;">Á fin de mieux voir vos goûts, j'ai eu l'idée de faire </span><iframe data-embed-src="<base_url>/topic/612-vos-5-meilleurs-morceaux/?do=embed" data-embedcontent="" frameborder="0" src="//melinyel.net/applications/core/interface/js/spacer.png"></iframe><span style="color:#2f4f4f;">, un top 5 de vos animés (si possible expliquez rapidement pourquoi vous l'aimez bien). </span></span></p> <p><span style="color:#2f4f4f;"><span style="font-family:tahoma, geneva, sans-serif;">En même temps je regarderai si y en a que j'ai pas vu parce que j'suis à la recherche d'animés actuellement  ^_^  </span></span></p> <p> </p> <p><span style="color:#2f4f4f;"><span style="font-family:tahoma, geneva, sans-serif;">Mon top 5 !</span></span></p> <p style="text-align:center;"> </p> <p style="text-align:center;"><strong><span style="font-family:tahoma, geneva, sans-serif;">5em, <span style="color:#0000ff;">SWORD ART ONLINE</span></span></strong></p> <p style="text-align:center;"><span style="color:#2f4f4f;"><span style="font-family:tahoma, geneva, sans-serif;">Un pote m'en a parlait, et j'ai de suite accroché, l'histoire est vraiment bien.</span></span></p> <p> </p> <p style="text-align:center;"><strong><span style="font-family:tahoma, geneva, sans-serif;">4em, <span style="color:rgb(255,0,0);">BTOOOM!</span></span></strong></p> <p style="text-align:center;">Très bon manga que je recommande ! Le système de combat est vraiment unique. J'espère qu'il y aura une saison 2.</p> <p> </p> <p style="text-align:center;"><strong><span style="font-family:tahoma, geneva, sans-serif;">3em, <span style="color:#ff8c00;">BLEACH</span></span></strong></p> <p style="text-align:center;"><span style="color:#2f4f4f;"><span style="font-family:tahoma, geneva, sans-serif;">Bon là ce qui m'a séduit c'est surtout la vitesse de progression du personnage principal, il devient tellement puissant à la fin c'est impressionnant. </span></span></p> <p style="text-align:center;"> </p> <p style="text-align:center;"><strong><span style="font-family:tahoma, geneva, sans-serif;">2em, DEATH NOTE</span></strong></p> <p style="text-align:center;"><span style="color:#2f4f4f;"><span style="font-family:tahoma, geneva, sans-serif;">L'histoire est cool et ça demande un peu de réflexion.</span></span></p> <p> </p> <p style="text-align:center;"><strong><span style="font-family:tahoma, geneva, sans-serif;">En première position, <span style="color:#ffd700;">ONE PIECE ! </span></span></strong></p> <p style="text-align:center;"><span style="color:#2f4f4f;"><span style="font-family:tahoma, geneva, sans-serif;">Je trouve l'histoire captivante et unique dans les animés du coup ça en fait mon animé préféré.</span></span></p> <p style="text-align:center;"> </p> <p><span style="color:#2f4f4f;"><span style="font-family:tahoma, geneva, sans-serif;">Si jamais vous avez pas vu 5 animés c'est pas grave vous allez pas jusqu'à 5 </span></span></p> <p> </p> <p><span style="color:#2f4f4f;"><span style="font-family:tahoma, geneva, sans-serif;">Akimace.</span></span></p>
  • ViewDNS : une boite à outils pour DNS

    Autres / Divers / Découvertes
    1
    0 Votes
    1 Posts
    2k Views
    SoulalexS
    <p style="text-align: center;"><img alt="viewdns_logo.gif" class="ipsImage" src="<base_url>/applications/sslimageproxy/interface/image.php?url=http://viewdns.info/images/viewdns_logo.gif"/></p><p> </p><p><strong>ViewDNS </strong>est un site ou "une boite à outils" <strong>tout-en-un</strong> indispensable qui vous permet d'obtenir des <strong>informations sur un DNS</strong> :</p><ul><li>Reverse IP Lookup</li><li>Reverse Whois Lookup</li><li>Ip History</li><li>DNS Report</li><li>DNS Propagation Checker</li><li>Reverse NS Lookup</li><li>IP Location Finder</li><li>Chinese Firewall Test</li><li>Port Scanner</li><li>Is My Site Down</li><li>Iran Firewal Test</li><li>Domain / IP Whois</li><li>Get HTTP Headers</li><li>DNS Record Lookup</li><li>Google Pagerank Checker</li><li>Traceroute</li><li>Spam Database Lookup</li><li>Reverse DNS Lookup</li><li>ASN Lookup</li><li>Ping</li><li>DNSSEC Test</li><li>URL / String Decode</li><li>Abuse Contact Lookup</li><li>MAC Address Lookup</li><li>Free Email Lookup</li></ul><p> </p><p><strong>Site web :</strong> <a href="http://viewdns.info/" rel="external nofollow">http://viewdns.info/</a></p><p> </p><p>Il ne vous reste plus qu'à vous amuser avec ! </p>
  • Petit Tchat Web en c# ,html ,css , javascript

    Projets des membres
    6
    0 Votes
    6 Posts
    3k Views
    aurelien974A
    <p>Salut, oui sa fait longtemps que je suis absents, mais je suis la maintenant.</p><p>Je vous présente un petit tchat que j'ai codé vite fait...........</p><p>Petit photo </p><p><img alt="984832Capture.png" class="ipsImage" height="516" src="<base_url>/applications/sslimageproxy/interface/image.php?url=http://img11.hostingpics.net/pics/984832Capture.png" width="1000"/></p><p>Les source !</p><p><a href="https://www.dropbox.com/sh/bq3q096cx2eojm1/AACtH6ijKqBOKl-JTXIt0uLLa?dl=0" rel="external nofollow">https://www.dropbox.com/sh/bq3q096cx2eojm1/AACtH6ijKqBOKl-JTXIt0uLLa?dl=0</a></p>
  • faire son propre BB-Code

    PHP
    7
    0 Votes
    7 Posts
    3k Views
    mars073M
    <p> Bonjour à tous, </p> <p> Donc comme si bien dit dans mon titre je vais vous expliquer comment faire un système de bbcode en php. </p> <p> Et pour ceux qui ne savent pas ce qu'est le bbcode c'est un système de balise utilisé principalement sur les forums par exemple ici si vous voulez mettre un image avec un lien (si comme moi vous écrivez le bbcode à la main à la place d'utiliser l'interface) vous aurez un "code" comme celui-ci: </p> <p>   </p> <pre class="ipsCode prettyprint lang-auto prettyprinted"> <span class="pun">[</span><span class="pln">url</span><span class="pun">=</span><span class="pln">http</span><span class="pun">:</span><span class="com">//mon_utrl/][img=mon_image.png][/url]</span></pre> <p> mais une fois traité il s'affichera sous une forme html: </p> <p>   </p> <pre class="ipsCode prettyprint prettyprinted"> <span class="tag"><a</span><span class="pln"> </span><span class="atn">href</span><span class="pun">=</span><span class="atv">"http://mon_url/"</span><span class="pln"> </span><span class="atn">target</span><span class="pun">=</span><span class="atv">"_blank"</span><span class="tag">></span><span class="pln"> </span><span class="tag"><img</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"mon_image.png"</span><span class="pln"> </span><span class="atn">border</span><span class="pun">=</span><span class="atv">"0"</span><span class="pln"> </span><span class="tag">/></span><span class="pln"> </span><span class="tag"></a></span></pre> <p> ps: dans mon contexte les liens s'ouvrent dans un onglet et le desactive les bords pour IE </p> <p>   </p> <p> Pourquoi ne pas laisser le code html aux utilisateurs/clients? </p> <p> Parce que celà fait une faille XSS (<a href="<base_url>/topic/479-faille-de-s%C3%A9curit%C3%A9-les-plus-fr%C3%A9quente-en-relation-directindirect-php/" rel="">plus d'info sur ce topic</a>) même si vous pouvez aussi en désactiver/activer certaines seulement. </p> <p>   </p> <p> Je vais donc vous expliquer comment faire: </p> <p> - une balise orpheline (ex: [ img=], elle n'a aucune fermeture) </p> <p> - une balise non-orpheline (ex: [ code] </p> <p> - une balise non-orpheline + paramètre (ex: [ url=], il y a un paramètre en plus dans la balise) </p> <p>   </p> <p> Donc pour faire notre bbcode vous allons utiliser ce qui s'appel des expressions régulières (aussi appelé "motif de recherche"), un truc que personnellement je n'aime pas car je me trompe souvent... Et donc une expression c'est en réalité une structure dans un texte (par exemple) on peut donc analyser s'il y a des chiffres, une chaîne de caractères ou autre, c'est souvent utilisé pour les e-mails pour voir si ce que vous avez entré ressemble à un e-mail, je ferais donc peut-être (si j'ai le courage un topic sur ça, sinon je connais <a href="http://www.expreg.com/presentation.php" rel="external nofollow">un site assez bien</a>. </p> <p>   </p> <p> Bref donc nous allons commencer par une balise orpheline: </p> <p>   </p> <pre class="ipsCode prettyprint lang-php prettyprinted"> <span class="com">// Contexte: J'ai fais une shoutbox et je mettre en place une balise [ img=] donc <img... en html</span><span class="pln"> $msg </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Bonjour! [img=heart.gif]"</span><span class="pun">;</span><span class="pln"> $bb </span><span class="pun">=</span><span class="pln"> </span><span class="str">'#[ img=(.+)]#iUs'</span><span class="pun">;</span><span class="pln"> $htm </span><span class="pun">=</span><span class="pln"> </span><span class="str">'<img src="$1" border="0" />'</span><span class="pun">;</span><span class="pln"> $msg </span><span class="pun">=</span><span class="pln"> preg_replace</span><span class="pun">(</span><span class="pln">$bb</span><span class="pun">,</span><span class="pln"> $htm</span><span class="pun">,</span><span class="pln"> $msg</span><span class="pun">);</span></pre> <p> Donc l'expression: '##iUs' </p> <p> - Elle est délimité par des # </p> <p> - On utilise les antislashes ("") avant certains caractères car ils peuvent être utilisé pour la structure (expression), caractères tels "[", "]", "(", ")", ... </p> <p> - "(.+)" : </p> <p> - - les parenthèses "()" symbolise un groupement littéral </p> <p> - - le point (".") symbolise qu'il peut s'agir de n'importe quel caractère et le plus ("+) symbolise qu'il peut y avoir 1 ou plusieurs caractères </p> <p> - "#iUs' : </p> <p> - - "i" effectuer une recherche insensible à la casse (par de différence entre une lettre majuscule et une minuscule). </p> <p> - - "U" cette option inverse la tendance à la gourmandise des expressions rationnelles. </p> <p> - - "s" permet au point "." de correspondre à encore plus de caractères et/ou un retour à la ligne. </p> <p>   </p> <p> > <a href="http://au2.php.net/manual/fr/reference.pcre.pattern.modifiers.php" rel="external nofollow">Documentation PHP::Options de recherche</a> </p> <p>   </p> <p> Maintenant une balise pour center donc [centre][/centre] devient <center></center>, je vais un peux compacter le code pour avoir plus simple: </p> <p>   </p> <pre class="ipsCode prettyprint lang-auto prettyprinted"> <span class="pln">$msg </span><span class="pun">=</span><span class="pln"> </span><span class="str">"[centre]Coucou![/centre]"</span><span class="pun">;</span><span class="pln"> $msg </span><span class="pun">=</span><span class="pln"> preg_replace</span><span class="pun">(</span><span class="str">'#[centre](.+)[/centre]#iUs'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'<center>$1</center>'</span><span class="pun">,</span><span class="pln"> $msg</span><span class="pun">);</span></pre> <p> Il a donc suffit de déplacer "(.+)" et pour ceux qui n'avait pas encore compris la partie trouvée ici va remplacer le "$1", il sagit en réalité d'un tableau donc quand vous cherchez plusieurs expressions vous avez donc "$2", "$3",.. qui arrive. </p> <p>   </p> <p> Nous allons donc maintenant avoir une balise avec un paramètre et pour complexer un peut on va dire que le paramètre est obligatoirement un chiffre décimal ^-^ </p> <p>   </p> <pre class="ipsCode prettyprint lang-auto prettyprinted"> <span class="com">// balise [taille=][/taille] remplacée par <font size=""></font></span><span class="pln"> $msg </span><span class="pun">=</span><span class="pln"> </span><span class="str">"[taille=5]Hello World! [/taille]"</span><span class="pun">;</span><span class="pln"> $msg </span><span class="pun">=</span><span class="pln"> preg_replace</span><span class="pun">(</span><span class="str">'#[taille=(\d+)](.+)[/taille]#iUs'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'<font size="$1">$2</font>'</span><span class="pun">,</span><span class="pln"> $msg</span><span class="pun">);</span></pre> <p> Comme vous le voyait j'ai mis la mettre "\d" à la place d'un "." donc à la place de chercher n'importe quel caractère je dis que c'est un chiffre décimal et le "+" spécifie qu'il peut-être composé de plusieurs chiffres même si je pense que font-size ne peut prendre que une valeur entre 1 et 5 j'aurais pu mettre directement "([1-2-3-4-5])" mais bon je ferais une explication plus détaillée dans un prochain topic </p> <p>   </p> <p> PS: pour les smileys c'est un simple str_replace(): </p> <p>   </p> <pre class="ipsCode prettyprint lang-auto prettyprinted"> <span class="pln">str_replace</span><span class="pun">(</span><span class="str">":D"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"<img src="images/smiley.gif" />"</span><span class="pun">,</span><span class="pln"> $msg</span><span class="pun">);</span></pre> <p> PPS: et si vous avez plusieurs balise directement vous pouvez faire un tableau (si vous voulez vous pouvez mettre par exemple $htm[0] = "<b>$1</b>"; et donc pour reprendre toutes les balises faites + anti-faille XSS dans une fonction: </p> <p>   </p> <pre class="ipsCode prettyprint lang-html prettyprinted"> <span class="pln">function BBCode($msg = '') { $msg = htmlentities($msg); // suprresion des caractères spéciaux (html), à placer avant les modifications sinon vous affichez le message avec les balises (en lisible) $bb = array( '#[img=(.+)]#iUs', '#[centre](.+)[/centre]#iUs', '#[taille=(\d+)](.+)[/taille]#iUs', '#[url=(.*)](.+)[/taille]#iUs' ); $htm = array( '</span><span class="tag"><img</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"$1"</span><span class="pln"> </span><span class="atn">border</span><span class="pun">=</span><span class="atv">"0"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">', '</span><span class="tag"><center></span><span class="pln">$1</span><span class="tag"></center></span><span class="pln">', '</span><span class="tag"><font</span><span class="pln"> </span><span class="atn">size</span><span class="pun">=</span><span class="atv">"$1"</span><span class="tag">></span><span class="pln">$2</span><span class="tag"></font></span><span class="pln">', '</span><span class="tag"><a</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"$1"</span><span class="pln"> </span><span class="atn">target</span><span class="pun">=</span><span class="atv">"_blank"</span><span class="tag">></span><span class="pln">$2</span><span class="tag"></a></span><span class="pln">' ); return preg_replace($bb, $htm, $msg); } echo BBCode("[centre]</span><span class="tag"><b></span><span class="pln">XSS</span><span class="tag"></b></span><span class="pln">[/centre]");</span></pre> <p></p><p> <strong><span style="color:#FF0000;">/!\j'ai mis des espaces dans les balises pour pouvoir publier (ex: "[ img]")!</span></strong> </p> <p>   </p> <p> Bonne programmation à tous! </p> <p> Cordialement, </p> <p> Mars073 </p>
  • Les codes secrets d'Android

    Android
    1
    0 Votes
    1 Posts
    2k Views
    SoulalexS
    <h1 class="western" style="page-break-after: avoid; text-align: center;"><strong><span style="font-size:24px;">Les codes secrets d'Android</span></strong></h1><h1 align="justify" class="western" style="page-break-after: avoid"> </h1><h1 align="justify" class="western" style="page-break-after: avoid"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt"><span style="font-weight: normal;">Les codes secrets Android permettent d'accéder à des fonctionnalités cachées du système d'exploitation. Ils sont utilisés par les développeurs pour connaître l'origine d'une panne ou l'état des composants du téléphone.</span></font></span></h1><p align="justify" style="margin-top: 0.42cm; margin-bottom: 0.21cm"> </p><p align="justify" style="margin-top: 0.42cm; margin-bottom: 0.21cm"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font color="#800000"><font style="font-size: 11pt"><b>Attention :</b></font></font><font style="font-size: 11pt"><span style="font-weight: normal;"> Ces codes peuvent effacer définitivement les données de votre smartphone. Vous devez les utiliser avec précaution.</span></font></span></p><h2 align="justify" class="western"> </h2><h2 align="center" class="western"><strong><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 12pt">Liste des codes secrets sur Android</font></span></strong></h2><h3 align="justify" class="western"><strong><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">Codes d'informations : </font></span></strong></h3><ul><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">#06# – IMEI du téléphone</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">#0*# – Menu d'informations (ne fonctionne pas sur tous les téléphones)</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##4636## – Menu d'informations</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##34971539## – Menu d'informations sur l'appareil photo</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##1111## – Version software FTA </font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##1234## – Version firmware et PDA </font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">#12580369# – Infos sur le logiciel et sur le hardware</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">#7465625# – Statut de verrouillage de l'appareil</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##232338##* – Montre l'adresse MAC de l'appareil</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##2663## – Montre la version de la dalle tactile</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##3264## – Montre la version de la RAM</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##232337## – Montre l'adresse Bluetooth de l'appareil</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##8255##* – État du service Google Talk</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##49862650468##* – Montre les infos sur le téléphone, le hardware et le PDA </font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##1234## – Montre les infos sur le PDA et le firmware</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##2222## – Montre les infos FTA</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##44336## – Montre la date du firmware et la liste des changements</font></span></p></li></ul><h3 align="justify" class="western"><strong><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">Codes de sauvegarde :</font></span></strong></h3><ul><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##273282255663282*## – Sauvegarde de tous les fichiers médias</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##273283255663282*## – Sauvegarde rapide des fichiers médias</font></span></p></li></ul><h3 align="justify" class="western"><strong><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">Codes de test : </font></span></strong></h3><ul><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##197328640## – Mode test</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##232339## – Test wifi</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##0842## – Test de luminosité/vibration</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##2664## – Test de l'écran tactile</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##232331## – Test du Bluetooth</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##7262626## – Field test</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##1472365## – Test GPS rapide</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##1575## – Test GPS complet</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##0283## – Test de packet loopback</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##0*## – Test de l'écran LCD</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##0289## – Test audio</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##0588## – Test du capteur de proximité</font></span></p></li></ul><h3 align="justify" class="western"><strong><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">Codes de configuration :</font></span></strong></h3><ul><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">#9090# – Diagnostique de configuration</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">#301279# – Menu de contrôle HSDPA/HSUPA</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">#872564# – Contrôle de logging USB</font></span></p></li></ul><h3 align="justify" class="western"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt"><strong>Codes utiles au développement : </strong></font></span></h3><ul><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">#9900# – Mode System dump</font></span></p></li><li><p align="justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><font style="font-size: 11pt">##778 (+call) – Montre le menu EPST</font></span></p></li></ul><p align="justify" style="margin-bottom: 0cm; line-height: 100%"> </p><p align="justify" style="margin-bottom: 0cm; line-height: 100%"> </p><p align="justify" style="margin-bottom: 0cm; line-height: 100%"><hr/></p><p align="justify" style="margin-bottom: 0cm; line-height: 100%"><span style="font-size:11px;"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><strong>Source :</strong> </span><a href="http://www.androidpit.fr/codes-secrets-android-informations-cachees" rel="external nofollow">http://www.androidpit.fr/codes-secrets-android-informations-cachees</a></span></p>
  • 0 Votes
    4 Posts
    2k Views
    AlexMogA
    <p>Bonjour à tous,</p><p>Dernièrement, j'étudie dans mon université les réseaux neuraux, aussi appelés Neural Networks. Affin de mieux comprendre mes cours, j'ai décidé de faire un  projet permettant de visualiser l'évolution d'un cerveau virtuel dans un environnement de survie. Bref, un petit projet, mais très sympathique à regarder!</p><p> </p><p><strong>I - Qu'est-ce que le Neural Networks?</strong></p><p>Je vais faire court et concis, mon but n'étant pas de faire un cours sur les réseaux neuraux ici.</p><p>Un réseau neural a pour but de virtualiser des réseaux de neurones, et donc, en finalité, un cerveau.</p><p>Le but, c'est de s'axer sur la biologie neuronale pour l'appliquer à l'informatique. Et, justement, ça tombe bien, puisque les neurones sont très proches des systèmes électroniques!</p><p>Un neurone est constitué d'entrées (appelées Inputs) dont les valeurs varient entre 0 et 1, et de sorties, qui elles aussi, varient entre 0 et 1.</p><p>Il existe 3 "couches" de neurones dans chaque NN (Neural Network).  Une couche d'entrée (appelée "Input"), une couche de logique (appelée "Hidden Layer") et une couche de sortie (appelée "Output").</p><p>Chaque neurones est composé de plusieurs attributs, et c'est ces attributs qui varient pour fournir un nouveau "cerveau". Bref, je n'en parlerais pas ici, google "Neural Networks" devrait répondre à vos questions!</p><p>Pour leur permettre d'"apprendre", j'utilise un algorithme d'évolution génétique, qui sélectionne les individus les plus aptes à survivre.</p><p> </p><p>Bref, un gros bordel.</p><p> </p><p><strong>II - Le projet</strong></p><p>Donc, comme dis plus haut, le projet a pour but de simuler de petites intelligences artificielles.</p><p>Voici les attributs de ces IA:</p><ul><li>Elles possèdent 20 entrées (inputs)<ul><li>L'input 0 leur permet d'avoir leur vie</li><li>Les inputs 1, 2 et 3 leur  permet de connaitre leur couleur (r, g, b )</li><li>Les inputs 3+ sont utilisées pour définit une entité. Ainsi, n correspond au nombre d'entités proches, et l'IA peut voir jusqu'à 4 entités.<ul><li>3 * n est utilisé pour la distance d'une entité par rapport au senseur de l'IA (on reviendra sur le senseur plus tard)</li><li>3 * n + 1, 3 * n + 2, 3 * n + 3 sont utilisés pour récupérer la couleur de l'entité visualisée</li></ul></li></ul></li><li>Elles possèdent 200 neurones logiques (Hiddent Layer) (pour vous donner une idée, un ver de terre a 302 neurones, et c'est le premier "cerveau complet" que les humains ont réussi à virtualiser sur ordinateur. CF: <a href="http://www.artificialbrains.com/openworm" rel="external nofollow">http://www.artificialbrains.com/openworm</a> )</li><li>Elles possèdent 7 sorties (Output)<ul><li>L'output 0 et 1 sont utilisés pour définir l'angle d'orientation de l'IA</li><li>L'output 2 est utilisée pour définir la vitesse de l'IA</li><li>L'output 3, 4 et 5 sont utilisées pour la couleur de l'IA (r, g, b )</li><li>L'output 6 est utilisée pour définir les dégâts que fait l'IA aux autres IA (n'est effectif que pour les carnivores)</li></ul></li></ul><p>Le jeu possède des règles:</p><p>Seules les herbivores peuvent voir la nourriture "herbe" (points blancs dans le projet)</p><p>Les herbivores ne peuvent pas attaquer.</p><p>Les carnivores peuvent se nourrir de n'importe quelle autre entité. Chaque carnivore peut voir toutes les autres entités, sauf l'herbe.</p><p>Chaque IA a deux Senseurs qui correspondes aux yeux/antennes. Chaque senseur peut repérer les 2 entités les plus proches.</p><p>Les IA perdent de la vie tous les ticks, et doivent donc récupérer cette vie en mangeant.</p><p>Chaque IA a un age maximal, l'age est incrémenté à chaque tick de 1.</p><p>Chaque IA peut donner naissance à une nouvelle génération, pour ce faire, elle doit avoir un certain age. Pour donner naissance, on utilise un algorithme de cross generation (génétique). On prend un nombre aléatoires de gènes du parent A, et un nombre aléatoire de gènes du parent B. Le parent A est celui qui a l'age de donner naissance, le parent B est le plus vieux parent (l'"élite") qui est encore vivant. Ceci permet d'avoir des IA qui évoluent constamment.</p><p> </p><p>Enfin, le but du projet est de voir l'évolution des IA à long terme, c'est pour ça que j'utilise un serveur-client, le serveur tourne 24/24 7/7, et on peut voir l'avancement grâce au client.</p><p> </p><p><strong>III - Sources du projet</strong></p><p>Les sources du projet sont disponibles sur Github à cette adresse: <a href="https://github.com/AlexMog/NeuralNetworksClientServer" rel="external nofollow">https://github.com/AlexMog/NeuralNetworksClientServer</a></p><p>Les sources sont sous licence MIT, dont n'hésitez pas à les utiliser comme bon vous semble, il faut juste laisser le copyright quelque part.</p><p>Bien sur, le client est pré-configuré pour se connecter au serveur qui est déjà lancé, si vous souhaitez voir l'évolution des IA :).</p><p> </p><p>Je complèterais le readme du Github plus tard.</p><p> </p><p>Have Fun <img alt=":)" src="emoticons/default_smile.png" title=":)"/></p><p> </p><p>Cordialement,</p><p>AlexMog.</p>
  • Interroger les données (SELECT)

    SQL
    14
    0 Votes
    14 Posts
    11k Views
    PirkoaP
    <p>Bonjour à vous,<br/> On se retrouve pour le deuxième tutoriel sur le SQL et aujourd’hui, on va s'intéresser au SELECT.<br/><br/> Je vous invite vivement à lire le premier chapitre, qui constitue une petite introduction sur ce qu'est le SQL ici : <iframe data-embed-src="<base_url>/topic/1343-introduction-au-sql/?do=embed" data-embedcontent="" frameborder="0" src="//melinyel.net/applications/core/interface/js/spacer.png"></iframe><br/><br/> Revenons à nos moutons, voici de quoi sera composé ce cours :</p> <ul><li>Projection</li> <li>Restriction/Sélection</li> <li>Jointures</li> </ul><p>De plus, pendant ce cours, il se peut que je fasse référence à l'algèbre relationnelle. Ce n'est pas obligatoire, je ne m'attarderai pas dessus, mais si vous connaissez, ça ne peut être qu'un plus pour vraiment bien visualiser ce que vous voulez récupérer comme données.<br/> En ayant vu ça, nous aurons déjà fait pas mal le tour des possibilités offertes par le SELECT.<br/><br/><strong><u><span style="font-size:18px;">I - Cas général :</span></u></strong><br/><br/> Le SELECT est donc une requête SQL. En faisant un SELECT, on réalise une projection des données de la base de données, en fonction de différents critères.<br/><br/> On l'écrit de la forme suivante :<br/>  </p> <pre class="ipsCode prettyprint"> SELECT <liste des attributs projetés> FROM <liste des relations touchées par la projection> [ WHERE <liste des critères de restriction> GROUP BY <liste des attributs d'agrégation> HAVING <liste des critères de restriction des agrégats> ORDER BY <liste des attributs du tri du résultat> ] </pre> <p>Pour ceux qui connaissent l'algèbre relationnelle, il est facile d'établir une correspondance avec un SELECT dans les requêtes simples.<br/><br/> Si vous n'avez pas compris grand chose de ce que je viens d'expliquer, pas de panique, il s'agit juste de la structure de la requête. Les éléments entre crochets sont facultatifs.<br/><br/> Tout au long de ce tutoriel, j'utiliserai le schéma de base de données suivant :</p> <ul><li>DEPT(<u>DEPTNO</u>, DNAME, LOC)</li> <li>EMP(<u>EMPNO</u>, ENAME, JOB, #MGR, HIREDATE, SAL, COMM, #DEPTNO)</li> </ul><p>Les tables soulignées sont des clés primaires, et celles avec un #devant sont des clés étrangères. Pour mieux comprendre, je vous invite à jeter un coup d'oeil par ici : <a href="http://openclassrooms.com/courses/administrez-vos-bases-de-donnees-avec-mysql/cles-primaires-et-etrangeres" rel="external nofollow">http://openclassrooms.com/courses/administrez-vos-bases-de-donnees-avec-mysql/cles-primaires-et-etrangeres</a><br/><br/><strong><u><span style="font-size:18px;">II - Projection :</span></u></strong><br/><br/> On va sélectionner les données à l'aide de la commande SELECT.<br/> Comme vu plus haut, dans un SELECT, il faut au minimum un FROM afin de dire dans quelle table on se situe. L'ordre s'écrit donc :</p> <pre class="ipsCode prettyprint"> SELECT <liste des attributs> FROM <nom des tables> </pre> <p>Pour prendre un exemple, mettons que je veuille récupérer toutes les entrées de la table DEPT, la requête sera la suivante :</p> <pre class="ipsCode prettyprint"> SELECT * FROM dept </pre> <p>J'utilise le joker <strong></strong> afin de dire que je veux tous les attributs de la table. Cependant, il est préférable de ne garder que ce dont on a vraiment besoin lorsque l'on effectue la requête, c'est une question d'optimisation.<br/>  </p> <pre class="ipsCode prettyprint"> SELECT deptno, dname FROM dept </pre> <p>Ici, je sélectionne uniquement les attributs <em>deptno</em> et <em>dname</em> de la table dept.<br/><br/> Ce qui nous embête ici, et contrairement à l'algèbre relationnelle, C'est que cette requête n'élimine pas les doublons. On va donc ajouter un mot-clé juste après le SELECT, il s'agit de DISTINCT.<br/><br/> On obtient donc ;</p> <pre class="ipsCode prettyprint"> SELECT DISTINCT job FROM emp </pre> <p>Voila la différence :<br/> Sans DISTINCT :<br/></p><p></p><blockquote class="ipsStyle_spoiler" data-ipsspoiler=""> <pre class="ipsCode prettyprint"> mysql> SELECT job FROM emp; +-----------+ | job | +-----------+ | EMPLOYE | | VENDEUR | | VENDEUR | | MANAGER | | EMPLOYE | | PRESIDENT | +-----------+ 6 rows in set </pre> <p></p></blockquote><p><br/><br/> Avec Distinct :<br/></p><p></p><blockquote class="ipsStyle_spoiler" data-ipsspoiler=""> <pre class="ipsCode prettyprint"> SELECT DISTINCT job FROM emp; +-----------+ | job | +-----------+ | EMPLOYE | | VENDEUR | | MANAGER | | PRESIDENT | +-----------+ 4 rows in set </pre> <p></p></blockquote><p><br/><br/></p><hr/><br/><br/> Intéressons nous maintenant au FROM, l'utilisation est très simple, mais on va voir comment créer un alias de table.<br/> Concrètement, on va renommer la table <strong>provisoirement</strong> (le temps de la requête). C'est pour plus de lisibilité et plus de simplicité.<br/><br/> Comment on fait ? Il suffit d'écrire ça : <pre class="ipsCode prettyprint"> FROM nomdelatable alias </pre> <p>Ainsi, nous pourrons écrire des requêtes qui ressemblent à ça :<br/>  </p> <pre class="ipsCode prettyprint"> SELECT d.deptno FROM dept d </pre> <p>Le "d.deptno" peut se traduire par "la colonne deptno de la table d".<br/> Simple non ?<br/> Aller, au suivant !<br/><br/></p><hr/><br/><br/> Maintenant qu'on a renommé une table, on va chercher comment renommer une colonne, toujours provisoirement ! C'est un peu plus subtil, mais rien de bien compliqué.<br/> Ca va se passer comme ça : <pre class="ipsCode prettyprint"> SELECT deptno AS Service, dname AS "Nom Service" FROM dept; </pre> <p>On fait suivre le nom de la table par le mot clé "AS" et ensuite, si c'est un seul mot, pas de guillemets, sinon, on en met.<br/> Note : Le AS est optionnel, on peut uniquement séparer le nom de table de l'alias par un espace.<br/><br/> Regardons le résultat :</p> <pre class="ipsCode prettyprint"> mysql> SELECT deptno AS Service, dname AS "Nom Service" FROM dept; +---------+--------------+ | Service | Nom Service | +---------+--------------+ | 1 | Juridique | | 2 | Recherche | | 3 | Comptabilité | | 4 | Support | +---------+--------------+ 4 rows in set </pre> <p>On a bien les colonnes qui sont renommées dans le résultat.<br/><br/></p><hr/><br/><br/> On peut aussi faire des opérations directement dans un SELECT. Attention, on ne modifie pas le contenu de la table, on affiche juste des valeurs !<br/><br/> On retrouve les 4 opérateurs bien connus : <ul><li>+ : Addition</li> <li>- : Soustraction</li> <li> : Multiplication</li> <li>/ : Division</li> </ul><p>Ces opérateurs sont utilisables pour tout <strong>attribut numérique</strong> ! N'essayez pas de jouer avec les chaînes de caractères.<br/><br/> Exemple :</p> <pre class="ipsCode prettyprint"> mysql> SELECT (sal1.1)+comm FROM emp; +----------------+ | (sal1.1)+comm | +----------------+ | 880 | | 2060 | | 2200 | | 3372.5 | | 1430 | | 16000 | +----------------+ 6 rows in set </pre> <p></p><hr/><br/><br/> On va maintenant s'intéresser à comment trier les résultats d'une requête, avec la clause ORDER BY : <ul><li>Le classement par défaut est ascendant (ASC). Pour inverser, on rajoutera DESC (comme descendant).</li> <li><strong>Une seule</strong> clause ORDER BY et <strong>TOUJOURS</strong> à la fin du SELECT</li> <li>Les éléments de tri ne figurent pas forcément dans le SELECT</li> <li>Les valeurs NULL se trouvent à la fin si on a un tri ASC, où au début en cas de tri DESC</li> <li>Les éléments de tri peuvent être le nom des colonnes, le numéro des colonnes ou même une expression.</li> </ul><p>Quelques exemples :<br/></p><p></p><blockquote class="ipsStyle_spoiler" data-ipsspoiler=""><br/> Premier exemple, on trie les résultats par numéro de département, puis par salaire. <pre class="ipsCode prettyprint"> mysql> SELECT ename, sal, deptno FROM emp ORDER BY deptno, sal; +---------+-------+--------+ | ename | sal | deptno | +---------+-------+--------+ | JONES | 2975 | 2 | | FORD | 1300 | 3 | | SMITH | 800 | 4 | | ALLEN | 1600 | 4 | | RICARDO | 2000 | 6 | | KING | 10000 | 6 | +---------+-------+--------+ 6 rows in set </pre> <p></p></blockquote><p><br/><br/></p><p></p><blockquote class="ipsStyle_spoiler" data-ipsspoiler=""><br/> Deuxième exemple, on trie par salaire (du plus petit au plus grand). <pre class="ipsCode prettyprint"> mysql> SELECT ename, sal, deptno FROM emp ORDER BY 2; +---------+-------+--------+ | ename | sal | deptno | +---------+-------+--------+ | SMITH | 800 | 4 | | FORD | 1300 | 3 | | ALLEN | 1600 | 4 | | RICARDO | 2000 | 6 | | JONES | 2975 | 2 | | KING | 10000 | 6 | +---------+-------+--------+ 6 rows in set </pre> <p>2 est le numéro de colonne de sal dans le SELECT (il est a la seconde position)<br/></p></blockquote><p><br/><br/><strong><u><span style="font-size:18px;">III - Restriction/sélection :</span></u></strong><br/><br/> On commence directement par la clause WHERE. Avec le WHERE, on va réduire le nombre de lignes concernées par la recherche.<br/> Par exemple, on sélectionne tous les employés du service 1 :</p> <pre class="ipsCode prettyprint"> SELECT ename, sal FROM emp WHERE deptno = 10 </pre> <p>Les conditions de recherche sont des expressions logiques vraies ou fausses, en fonction des enregistrements de la table. Une condition peut aussi être appelée prédicat.<br/> Une condition est toujours composée de 3 membres : deux expressions encadrant un opérateur de comparaison.<br/> On peut comparer un attribut avec une valeur constante (comme dans l'exemple), mais aussi deux attributs entre eux.<br/><br/> On retrouve les opérateurs de comparaison usuels à savoir :</p> <ul><li>Comparaison : =, !=, <>, >, >=, <, <=</li> <li>Intervalles : BETWEEN</li> <li>Concordance de caractères : LIKE avec les jokers _ et %</li> <li>Gestion des colonnes "NULL" : IS NULL</li> <li>Enumération : IN</li> <li>Négation : NOT IN, NOT LIKE, NOT BETWEEN, IS NOT NULL</li> </ul><p></p><hr/><br/><br/> Intéressons-nous aux opérateurs de comparaison suivants : <, >, <= et >=<br/> On peut les utiliser avec les types suivants : <ul><li>numérique</li> <li>Alphabétique</li> <li>Chronologique (avec les dates)</li> </ul><p>Exemple avec les dates :</p> <pre class="ipsCode prettyprint"> SELECT ename, hiredate FROM emp WHERE hiredate < '1981-01-01' -- Le format de la date depend du SGBD </pre> <p>Pour les comparaisons de chaînes de caractères, les lettres majuscules et minuscules sont supérieures aux nombres et la casse peut importer, tout dépend de comment le SGBD est réglé.<br/><br/> Exemple avec les chaînes :</p> <pre class="ipsCode prettyprint"> SELECT ename FROM emp WHERE ename > 'MARTIN' </pre> <p></p><hr/><br/><br/> Passons au LIKE :<br/> Il est très utilisé, notamment pour tout ce qui est scripts de recherche, le tout est de bien savoir l'utiliser !<br/> Comme vous l'avez vu un peu plus haut, on utilise deux jokers : <ul><li>_ qui remplace une lettre</li> <li>% qui remplace tout chaîne de caractère</li> </ul><p>Peu compréhensible n'est-ce pas ?<br/> Regardons un exemple pour mieux comprendre :</p> <pre class="ipsCode prettyprint"> SELECT ename FROM emp WHERE ename LIKE ('_AR%') </pre> <p>Que demande cette requête ? On cherche les noms d'employés qui ont pour deuxième lettre A et troisième lettre R dans leur nom de famille. soit :</p> <pre class="ipsCode prettyprint"> SELECT ename FROM emp WHERE ename LIKE ('_AR%'); +--------+ | ename | +--------+ | WARD | | MARTIN | +--------+ 2 rows in set </pre> <p>Déjà un peu plus compréhensible non ? C'est en jouant avec ces deux jokers qu'on arrive à trouver ce qu'on veut.<br/><br/></p><hr/><br/><br/> On va maintenant s'intéresser au IN :<br/> Il s'agit en fait d'une énumération. Seulement, on peut l'utiliser avec différents types.<br/> Par exemple, on sélectionne les employés travaillant dans les services 3 et 4 :<br/><p></p><blockquote class="ipsStyle_spoiler" data-ipsspoiler=""> <pre class="ipsCode prettyprint"> SELECT ename, deptno FROM emp WHERE deptno IN (3,4); +--------+--------+ | ename | deptno | +--------+--------+ | SMITH | 4 | | ALLEN | 4 | | FORD | 3 | | WARD | 3 | | MARTIN | 3 | +--------+--------+ 5 rows in set </pre> <p></p></blockquote><p><br/> Les membres sont entre parenthèses et séparés par une virgule, on peut mettre autant de termes qu'on veut.<br/> Le fonctionnement pour le NOT IN est le même. Seulement, on ne prendra que les données dont la valeur du champ n'est pas dans les parenthèses.<br/>  <br/></p><hr/><br/>  <br/><strong>BETWEEN</strong> et <strong>NOT BETWEEN</strong><br/>  <br/> On recherche un champ dont la valeur est entre deux valeurs. Il faut savoir que les bornes du BETWEEN sont inclues dans la recherche.<br/>  <br/><strong>Exemple :</strong> On recherche les employés qui ont un salaire compris entre 1600 et 3000 :<br/><p></p><blockquote class="ipsStyle_spoiler" data-ipsspoiler=""> <pre class="ipsCode prettyprint"> SELECT ename, sal FROM emp WHERE sal BETWEEN 1600 AND 3000; +---------+------+ | ename | sal | +---------+------+ | ALLEN | 1600 | | RICARDO | 2000 | | JONES | 2975 | | MARTIN | 1650 | +---------+------+ 4 rows in set </pre> <p></p></blockquote><p><br/><br/></p><hr/><br/>  <br/> On passe maintenant à l'opérateur de comparaison <strong>IS NULL</strong><br/> Il faut savoir quelques petites choses avant de commencer : <ul><li>Une valeur NULL est une valeur inconnue <ul><li>NULL <> 0</li> <li>NULL = valeur non renseignée</li> <li>On teste par IS NULL et non = NULL</li> </ul></li></ul><p>Exemple : Les employés et leur département qui ont une commission NULL<br/></p><p></p><blockquote class="ipsStyle_spoiler" data-ipsspoiler=""> <pre class="ipsCode prettyprint"> SELECT ename, deptno FROM emp WHERE comm IS NULL; +--------+--------+ | ename | deptno | +--------+--------+ | WARD | 3 | | MARTIN | 3 | +--------+--------+ 2 rows in set </pre> <p> </p></blockquote><p><br/> Seulement, une colonne NULL n'est pas très pratique pour faire des calculs. C'est pourquoi chaque SGBD permet de remplacer NULL par une autre valeur. Seulement, cette fonction dépend des SGBD :</p> <ul><li>Pour Oracle : NVL()</li> <li>Pour SQL Server : ISNULL()</li> <li>Pour PostgreSQL : COALESCE()</li> <li>Pour MySQL : IFNULL()</li> </ul><p>Dans ce tutoriel, j'utilise MySQL donc je prendrai pour exemple IFNULL().<br/> Regardons :</p> <pre class="ipsCode prettyprint"> SELECT ename, sal, comm, sal + comm, sal + IFNULL(comm,0) FROM emp; +---------+-------+------+------------+----------------------+ | ename | sal | comm | sal + comm | sal + IFNULL(comm,0) | +---------+-------+------+------------+----------------------+ | SMITH | 800 | NULL | NULL | 800 | | ALLEN | 1600 | 300 | 1900 | 1900 | | RICARDO | 2000 | NULL | NULL | 2000 | | JONES | 2975 | 100 | 3075 | 3075 | | FORD | 1300 | NULL | NULL | 1300 | | KING | 10000 | 5000 | 15000 | 15000 | | WARD | 1500 | NULL | NULL | 1500 | | MARTIN | 1650 | NULL | NULL | 1650 | +---------+-------+------+------------+----------------------+ 8 rows in set </pre> <p>Pratique non ?<br/> Passons à la suite !<br/>  <br/></p><hr/><br/>  <br/><strong>Les opérateurs logiques</strong><br/> Dans une requête SQL, on pourra utiliser des opérateurs logiques afin de lier deux prédicats. Cela permet d'avoir un résultat plus précis avec des conditions simples.<br/> Les principaux opérateurs logiques sont (par ordre d'évaluation) : <ul><li>NOT</li> <li>AND</li> <li>OR</li> </ul><p>Ils s'utilisent comme cela :</p> <pre class="ipsCode prettyprint"> SELECT * FROM emp WHERE deptno = 1 AND sal > 1000; </pre> <p>Il est plus que conseillé d'utiliser des parenthèses pour "imposer" l'ordre d'exécution des opérateur logiques.<br/>  <br/></p><hr/><br/>  <br/> On arrive à la fin de ce chapitre sur la restriction et la sélection des données. Le prochain chapitre sur les jointures sera plus pointu, et plus complet. N'hésitez pas à relire plusieurs fois certains points, quitte à demander un éclaircissement sur quelque chose que vous n'auriez pas compris.<br/>  <br/> Avant de passer au prochain chapitre, je vais ajouter un dernier point :<br/> Le résultat d'un SELECT est en fait une relation. On pourra donc utiliser le résultat d'un SELECT dans plusieurs cas : <ul><li>Sous requête</li> <li>Jointures</li> <li>UNION (et opérations ensemblistes)</li> </ul><p>Voila, le chapitre est terminé, on passe à la suite !<br/>  <br/><strong><u><span style="font-size:18px;">IV - Jointures</span></u></strong><br/>  <br/> Passons au point le plus marrant de ce tutoriel, et ce sera le dernier. Écoutez bien, les jointures sont des notions importantes pour bien manipuler une base de données !</p> <p>En effet, les jointures vont nous permettre de mettre en corrélation plusieurs tables au sein d'une même requête, donc en économisant (si c'est bien fait) des ressources système et sans avoir besoin de traitement dans un autre langage (tel que PHP, par exemple).</p> <p> </p> <p>Il existe trois "grandes familles" de jointures :</p> <ul><li>Le produit cartésien</li> <li>Les jointures naturelles</li> <li>Les théta-jointures (ou équi-jointures)</li> </ul><p>Je vais tous vous les présenter, mais celui qui nous intéresse est bien évidemment le dernier.</p> <p> </p> <ul><li><strong>Le produit cartésien : </strong>Il s'agit d'une opération entre les relations qui combine toutes les occurrences. C'est à dire que le nombre de lignes du résultat est égal au produit du nombre de lignes de chacune des relations. Autrement dit, si on a une table qui contient 3 entrées, et qu'on fait un produit cartésien avec une autre table qui en contient 4, le résultat fera 12 lignes.</li> </ul><p style="margin-left:40px;">Exemple :</p> <pre class="ipsCode prettyprint"> mysql> SELECT * -> FROM lettre,chiffre; +--------+---------+ | lettre | chiffre | +--------+---------+ | a | 1 | | b | 1 | | c | 1 | | a | 2 | | b | 2 | | c | 2 | | a | 3 | | b | 3 | | c | 3 | | a | 4 | | b | 4 | | c | 4 | +--------+---------+ 12 rows in set </pre> <p style="margin-left:40px;">Vous avouerez que, quand on manipule de grandes bases de données, cette méthode est très gourmande en ressources et en plus, il est très probable que nous n'utilisions pas tous les résultats.</p> <ul><li><strong>La jointure naturelle : </strong>En fait, ce que nous allons appeler jointure peut s'apparenter à un produit cartésien suivi d'une restriction, puis d'une projection. On va combiner des relations ayant des valeurs en commun. Dès maintenant, nous allons beaucoup utiliser les alias afin de simplifier un petit peu nos requêtes. Ne soyez donc pas étonnés lorsque j'en utilise, c'est devenu une habitude.</li> </ul><p style="margin-left:40px;">Dès maintenant, nous utiliserons aussi la syntaxe SQL 2 qui introduit justement ces différents types de jointures. Avant, les jointures n'étaient en fait que des produits cartésiens.</p> <p style="margin-left:40px;">Trêve de papotages futiles, voici comment s'écrit une jointure naturelle :</p> <pre class="ipsCode prettyprint"> SELECT deptno, ename FROM dept NATURAL JOIN emp -- Fonctionne sous MySQL, Oracle et PostgreSQL mais pas sous MS SQL Server </pre> <p style="margin-left:40px;">En fait, une jointure naturelle cherche des champs avec le même nom afin de les mettre en commun. C'est dangereux à utiliser si des colonnes portant le même nom ne se réfèrent pas aux mêmes données. Je vous déconseille de l'utiliser, sauf si vous êtes surs de la base de données que vous utilisez et qu'elle est bien modélisée.</p> <p style="margin-left:40px;"> </p> <ul><li><strong>La thêta-jointure :</strong> C'est le type de jointure le plus souvent utilisé. Nous sommes vraiment maîtres de ce que l'on recherche. La syntaxe est simple à comprendre :</li> </ul><pre class="ipsCode prettyprint"> -- Nom et salaire des employés gagnant plus que l'employé 7566 SELECT e1.ename, e1.sal FROM emp e1 JOIN emp e2 ON e1.sal > e2.sal -- On fait la jointure avec la condition WHERE e2.empno = 7566 </pre> <p style="margin-left:40px;">Plutôt simple non ? </p> <p style="margin-left:40px;">Pour l'équi-jointure, c'est le même principe, juste la condition change !</p> <pre class="ipsCode prettyprint"> -- On cherche le nom de chaque employé avec le nom de son département SELECT e.ename, d.dname FROM emp e JOIN dept d ON e.deptno=d.deptno </pre> <p style="margin-left:40px;">Alors, convaincus ? Ne vous inquiétez pas, j'ai bientôt fini ! Je vous présente juste une dernière notion</p> <ul><li><strong>Left/right join : </strong>En fait,<strong> </strong>une jointure élimine par défaut les résultats ou il n'y a pas de correspondance (exemple, si un employé n'a pas de département, il ne sera pas affiché). Pour pallier ce problème, il faut dire à SQL de garder les champs à gauche, même si il n'y a pas de correspondance.</li> </ul><p style="margin-left:40px;">Exemple :</p> <pre class="ipsCode prettyprint"> mysql> SELECT ename, e.deptno, dname -> FROM emp e -> LEFT JOIN dept d ON e.deptno=d.deptno; +---------+--------+--------------+ | ename | deptno | dname | +---------+--------+--------------+ | JONES | 2 | Recherche | | FORD | 3 | Comptabilité | | WARD | 3 | Comptabilité | | MARTIN | 3 | Comptabilité | | SMITH | 4 | Support | | ALLEN | 4 | Support | | KING | 6 | HeadOffice | | RICARDO | NULL | NULL | +---------+--------+--------------+ 8 rows in set </pre> <p style="margin-left:40px;">Ici, on a dit : "Même si il n'y a pas de correspondance, tu gardes les membres étant à gauche (LEFT) de la jointure" et Ricardo est apparu. C'est exactement le même principe pour RIGHT, tout dépend de comment vous construisez vos requêtes.</p> <p style="margin-left:40px;"> </p> <p></p><p>Voilà, je pense avoir fait le tour pour ce tutoriel. N'hésitez pas à réagir, contester, demander des éclaircissements...</p> <p>Bon courage dans vos requêtes SQL <br/><br/> Merci d'avoir lu,<br/> Pirkoa</p>
  • [Recherche] Site Mockup

    HTML & CSS
    1
    0 Votes
    1 Posts
    2k Views
    F
    <p>Salut à tous,</p><p>Je suis actuellement à la recherche d'un site pour réaliser des maquettes simples et gratuitement.</p><p>Merci à vous,</p><p>FaKe77.</p>
  • Pray for Paris

    Discussions générales
    3
    0 Votes
    3 Posts
    2k Views
    SoulalexS
    <p style="text-align: center;"><img alt="DVCoYn-q.jpg" class="ipsImage" src="https://pbs.twimg.com/profile_images/665295568743309318/DVCoYn-q.jpg"/></p><p style="text-align: center;"><span style="font-size:20px;"><span style="font-family: lucida sans unicode,lucida grande,sans-serif;"><strong>Melinyel souhaite exprimer tout son soutien aux familles des victimes ainsi qu'aux blessés de cette barbarie.</strong></span></span></p><p style="text-align: center;"> </p><p> </p><p><span style="font-family:trebuchet ms,helvetica,sans-serif;">Pour rappeler la situation, 4 attentats ont eu lieu dans Paris le vendredi 13 novembre 2015 causant la mort de plus de 120 personnes et davantage de blessés. Les terroristes ont frappé dans 10ieme arrondissement de Paris, un quartier très fréquenté en ce vendredi. Ils s'en sont pris à deux restaurants <em>Le Petit Cambodge</em> et <em>Le Carillon</em> avant de commettre une prise d'otage au <em>Bataclan</em>, une salle de spectacle pouvant accueillir 1500 personnes, et faisant de nombreuses victimes sur leur passage. Deux explosion ont eu lieu au <em>stade de France</em> où se déroulait un match amical entre la France et l'Allemagne. Le Président de la République a été évacué et les supporters sont restés confinés sur la pelouse du stade.</span></p><p> </p><p>Nous espérons que vous allez bien et qu'aucun de vos proches n'a été victime de cet attentat.</p><p>Melinyel veut remercier toutes les personnes qui sont venues en aide aux victimes car c'est important en ces moments difficiles de pouvoir compter les uns sur les autres.</p><p> </p><p><span style="font-size:18px;"><strong>Unis, nous resterons fort !</strong></span></p>
  • 0 Votes
    8 Posts
    4k Views
    SoulalexS
    <p style="text-align: center;"><img alt="onion.jpg" class="ipsImage" src="https://www.torproject.org/images/onion.jpg"/></p><p> </p><p><strong>Tor est un réseau qui se veut totalement sécurisé et anonyme</strong> pour lutter contre l'espionnage. Dans ce cadre,</p><p>Tor s'étend à la messagerie instantanée avec <strong>Tor Messenger</strong>. Ce logiciel gratuit <strong>disponible sous Windows, Mac et Linux</strong> vous permet de vous connecter<strong> via le réseau Tor sur les protocoles IRC, Facebook Chat, Google Talk, Twitter </strong>et bien d'autres.</p><p><strong>Vos conversations sont ainsi totalement sécurisées</strong>.</p><p> </p><p><span style="color:#B22222;"><strong>Attention :</strong></span> Tor Messenger n'est qu'en version béta. Il peut y avoir encore quelques bugs.</p><p> </p><p style="text-align: center;"><img alt="Tor-Messenger-Beta.jpg" class="ipsImage" src="<base_url>/applications/sslimageproxy/interface/image.php?url=http://digipedia.ro/wp-content/uploads/2015/10/Tor-Messenger-Beta.jpg"/></p>
  • [Présentation] Crown the empire

    Documentation
    11
    0 Votes
    11 Posts
    6k Views
    AkimaceA
    <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Je pense avoir parler à plusieurs reprises de ce groupe et du coup j'avais envie d'approfondir un peu plus.  </span></p> <p> </p> <p style="text-align:center;"><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"><strong>Crown the empire</strong></span></p> <p style="text-align:center;"><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"> <img alt="11-exl.jpg" src="https://cdn.ticketfly.com/i/00/00/47/20/11-exl.jpg"/></span></p> <p style="text-align:center;"> </p> <p style="margin-left:40px;"><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Les membres (par ordre de recrutement) :</span></p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Andrew "Andy Leo" Velasquez le chanteur principal.</span></p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Brandon Hoover guitariste (pour rythme) et aussi soutien vocal</span></p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Hayden Tree guitariste principal et bassiste</span></p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Bennett "Benn Suede" Vogelman 2em guitariste principal et soutien vocal</span></p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"><span style="color:rgb(37,37,37);">Brent Taddie le grand batteur !</span></span></p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"><span style="color:rgb(37,37,37);">David Escamilla le petit dernier , chanteur</span></span></p> <p style="margin-left:40px;"> </p> <p style="margin-left:40px;"><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"><em>[2010]</em></span></p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Ce groupe américain a été former en 2010 à Dallas, Texas.</span></p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">C'est un groupe de metalcore / post-hardcore un peu comme Bullet for my valentine.</span></p> <p> </p> <p style="margin-left:40px;"><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"><em>[2011]</em></span></p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Ils ont commencé à faire du bruit en 2011 avec la sortit de leur premier album "Limitless". Mais c'est en grande partie avec ce son :</span></p> <p> </p> <p style="text-align:center;"><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"><strong>Voices</strong></span></p> <p style="text-align:center;"><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"> </span></p><div class="ipsEmbeddedVideo" contenteditable="false"><div><iframe allowfullscreen="true" data-embed-src="https://www.youtube.com/embed/xyEO8wgsQBM?feature=oembed" frameborder="0" height="270" src="//melinyel.net/applications/core/interface/js/spacer.png" width="480"></iframe></div></div> <p style="text-align:center;"> </p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">D'ailleurs c'est le 2m son qui a eu le plus de vues sur youtube. (5M)</span></p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Ensuite il y a eu quelques musiques qui ont augmenté leur réputation "<span style="color:rgb(37,37,37);">Let It Snow", "</span><span style="color:rgb(37,37,37);">Wake Me Up" (de l'album limitless). </span></span></p> <p> </p> <p style="margin-left:40px;"><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"><em>[2012]</em></span></p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"><span style="color:rgb(37,37,37);">Et surtout le network </span><a href="https://www.youtube.com/user/riserecords" rel="external nofollow">Rise records</a><span style="color:rgb(37,37,37);"> qui les a rendu encore plus célèbre ...</span></span></p> <p> </p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Ensuite, toujours dans l'album Limitless, ils ont mis en ligne une des plus belle perle de l'album :</span></p> <p> </p> <p style="text-align:center;"><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"><strong><span style="color:rgb(37,37,37);">Johnny Ringo</span></strong></span></p> <p style="text-align:center;"><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"> </span></p><div class="ipsEmbeddedVideo" contenteditable="false"><div><iframe allowfullscreen="true" data-embed-src="https://www.youtube.com/embed/tM-knH-r7fo?feature=oembed" frameborder="0" height="270" src="//melinyel.net/applications/core/interface/js/spacer.png" width="480"></iframe></div></div> <p> </p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">L'album a été clôturé en novembre 2012.</span></p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Mais bon.. ils ont de suite enchaîner avec l'annonce de l'album "The fallout":</span></p> <p> </p> <p style="text-align:center;"><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"><strong>Makeshift Chemistry</strong></span></p> <p style="text-align:center;"><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"> </span></p><div class="ipsEmbeddedVideo" contenteditable="false"><div><iframe allowfullscreen="true" data-embed-src="https://www.youtube.com/embed/PoMJ0VkGG1c?feature=oembed" frameborder="0" height="270" src="//melinyel.net/applications/core/interface/js/spacer.png" width="480"></iframe></div></div> <p style="text-align:center;"> </p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Á la fin du mois de Novembre l'album été sur la chaine riserecords   </span></p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Et c'est ici que l'ont retrouve la plus grande réussite de Crown the empire.</span></p> <p> </p> <p style="text-align:center;"><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"><strong>The Fallout </strong></span></p> <p style="text-align:center;"><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"> </span></p><div class="ipsEmbeddedVideo" contenteditable="false"><div><iframe allowfullscreen="true" data-embed-src="https://www.youtube.com/embed/Jvuv_XEZE7o?feature=oembed" frameborder="0" height="270" src="//melinyel.net/applications/core/interface/js/spacer.png" width="480"></iframe></div></div> <p> </p> <p style="margin-left:40px;"><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"><em>[2013]</em></span></p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">On est loin des grands groupes de metal comme Black Veil Brides, Bullet for my valentine etc.. mais ils ont réussi a avoir du succès tout de même. D'ailleurs ils sont rentré en contact avec de grands groupes (Capture the Crown, Palisades, Heartist, Famous Last Words Asking Alexendria et Like Moths to Flames). En général pour des tournés ou pour histoire de pub  ^^  </span></p> <p> </p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Après ça, Crown the empire revient avec un nouveau album, "Limitless EP Deluxe Reissue". Cette fois ci, ils se sont moins cassé la tête à écrire le texte de chaque musiques, ils ont repris l'album Limitless. </span></p> <p> </p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Ont peut le retrouver ici : <a href="https://www.youtube.com/playlist?list=PLKcGEIO7V0rV9mh3-GDnKZrVmbWu4UZyJ" rel="external nofollow">https://www.youtube.com/playlist?list=PLKcGEIO7V0rV9mh3-GDnKZrVmbWu4UZyJ</a></span></p> <p> </p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">C'est pas vraiment le même album parce qu'il est beaucoup plus hard que Limitless l'original. Vous n'avez qu'à voir par vous même avec Voices (voir plus haut, et celui là):</span></p> <p> </p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"> </span></p><div class="ipsEmbeddedVideo" contenteditable="false"><div><iframe allowfullscreen="true" data-embed-src="https://www.youtube.com/embed/mOf0mhr48bc?feature=oembed" frameborder="0" height="270" src="//melinyel.net/applications/core/interface/js/spacer.png" width="480"></iframe></div></div> <p> </p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Ce changement est du à une recrut "<span style="color:rgb(37,37,37);">David Escamilla" chanteur et guitariste </span></span></p> <p> </p> <p style="margin-left:40px;"><em><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">[2014]</span></em></p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Puis, pour finir en beauté, leur dernier album "<a href="https://www.youtube.com/playlist?list=PLKcGEIO7V0rVTpaN8JTEPqTOsDghQH7rw" rel="external nofollow">The Resistance: Rise of the Runaways</a>" </span></p> <p> </p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Il y a eu 2 premiers sons qui ont été mis en ligne "<a href="https://www.youtube.com/watch?v=k0lV79QX_go" rel="external nofollow">Bloodline</a>" et "<a href="https://www.youtube.com/watch?v=ZIUGf1yVD7s" rel="external nofollow">Rise of the Runaways</a>"</span></p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Et tout le reste est arrivé à partir de fin juillet :</span></p> <p> </p> <p style="text-align:center;"><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"><strong>Initiation</strong></span></p> <p style="text-align:center;"><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"> </span></p><div class="ipsEmbeddedVideo" contenteditable="false"><div><iframe allowfullscreen="true" data-embed-src="https://www.youtube.com/embed/BY17Rg0ppKw?feature=oembed" frameborder="0" height="270" src="//melinyel.net/applications/core/interface/js/spacer.png" width="480"></iframe></div></div> <p style="text-align:center;"> </p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Á mon avis c'est l'album qui leur a demandé le plus de temps (et d'argent d'ailleurs). En effet, 13 sons dedans et un nouveau guitariste / chanteur donc plus de matos  ^^  </span></p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Bref, c'est une réussite ! Je rejoins la resistance.</span></p> <p> </p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Si vous avez besoin de précisions, de lien de téléchargement ou quoi que ce soit n'hésitez pas !</span></p> <p> </p> <p><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;">Akimace.</span></p>
  • [Débutant] Numéro de sécurité social

    Exercices
    3
    0 Votes
    3 Posts
    3k Views
    SoulalexS
    <p style="text-align: center;"><strong><span style="font-size:24px;">Numéro de sécurité social</span></strong></p><p style="text-align: center;"><span style="font-size:22px;"><strong>Exercice Java</strong></span></p><p style="text-align: center;"> </p><p style="text-align: center;"> </p><p>Dans cet exercice nous tenterons de restituer les informations d'une personne à partir de son numéro de sécurité social. Si vous souhaitez une correction personnalisé, veuillez me joindre votre fichier .java par mail à l'adresse suivante : [email protected]</p><p> </p><p><span style="font-family:lucida sans unicode,lucida grande,sans-serif;"><strong>Langage :</strong> Java</span></p><p><span style="font-family:lucida sans unicode,lucida grande,sans-serif;"><strong>Niveau :</strong> Débutant (DUT-INFO-S1)</span></p><p><span style="font-family:lucida sans unicode,lucida grande,sans-serif;"><strong>Durée :</strong> 10-15 minutes</span></p><p></p><p><span style="font-size:18px;"><strong>Contexte :</strong></span></p><hr/><p class="java"><strong>Un numéro de sécurité sociale est constitué de 13 chiffres de données :</strong></p><ul><li class="java">Le premier chiffre représente le <strong>sexe </strong>(1 = homme, 2 = femme),</li><li class="java">Les deux chiffres suivants représentent l'<strong>année de naissance</strong>,</li><li class="java">Les deux chiffres suivants représentent le <strong>mois de naissance</strong>,</li><li class="java">Les deux chiffres suivants représentent le <strong>département de naisssance</strong>,</li><li class="java">Les trois chiffres suivants représentent le<strong> numéro de commune de naissance</strong>,</li><li class="java">Les trois derniers chiffres représentent le <strong>numéro d'odre de la naissance dans le mois et la commune.</strong></li></ul><table border=" 0 " class="java" name="class"><tbody><tr class="table-ligne"><td align="" valign="top"> </td><td align="" valign="top"> </td></tr></tbody></table><p>S'ajoute à cela une <strong>clef de contrôle</strong> sur 2 chiffres qui est égale à : <strong>97 – le reste de la division du numéro sur 13 chiffres par 97</strong></p><p> </p><p><span style="font-size:18px;"><strong>Sujet :</strong></span></p><hr/><p>Dans un premier temps, vous deverez, à partir d'un <strong>numéro de sécurité social à 13 chiffres</strong> saisi par l'utilisateur, retrouver le sexe, l'année de naissance, le mois de naissance et le département de naissance de l'utilisateur.</p><p>Dans un second temps, vous calculerez la clef de sécurité en fonction du numéro de sécurité social.</p><p> </p><p><span style="font-size:18px;"><strong>Correction :</strong></span></p><hr/><p><span style="color:#B22222;"><span style="font-size: 16px;">C'est l'heure de la correction !</span></span></p><p> </p><p>Voici donc un correction de ce qui était attendu :</p><blockquote class="ipsStyle_spoiler" data-ipsspoiler="" tabindex="0"><pre class="html ipsCode prettyprint" data-pbcklang="html" data-pbcktabsize="4">import java.util.Scanner; /** SecuriteSocial Détermination des informations sur l'utilisateur à partir du numéro de sécurité social @author Soulalex @version 1 du 06/11/2015 */ public class SecuriteSocial { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long numSecu; int numSexe, anneeNaissance, moisNaissance, deptNaissance; // Variables pour la décomposition du numéro de sécurité social int clef; String sexe; // On lit le numéro de sécurité social System.out.print("Veuillez saisir un numéro de sécurité social à 13 chiffres : "); numSecu = sc.nextLong(); // On décompose notre numéro de sécurité social numSexe = (int)(numSecu / 1000000000000L); anneeNaissance = (int)(numSecu / 10000000000L % 100L); moisNaissance = (int)(numSecu / 100000000L % 100L); deptNaissance = (int)(numSecu / 1000000L % 100L); // Détermination du sexe if (numSexe == 1) sexe = "Homme"; else sexe = "Femme"; // Affichage des informations sur l'utilisateur System.out.println("Sexe : " + sexe); System.out.println("Année de naissance : " + anneeNaissance); System.out.println("Mois de naissance : " + moisNaissance); System.out.println("Département de naissance : " + deptNaissance); // Calcul et affichage de la clef de sécurité clef = (int)(97 - (numSecu % 97)); System.out.println("Votre clef de sécurité : " + clef); } }</pre><p> </p></blockquote><p> </p><p><strong>On peut néanmois apporter certaines modifications :</strong></p><ul><li>Vérification de la validité de la saisie.</li></ul>
  • --

    Système d'exploitation : Ordinateur
    10
    0 Votes
    10 Posts
    6k Views
    OxodaoO
    <p> -- </p>
  • [Terminé - Concours n°5] Favicon Melinyel

    Locked Graphisme
    7
    0 Votes
    7 Posts
    7k Views
    SoulalexS
    <p>Bonjour,</p><p> </p><p>Comme vous avez pu le constater, j'ai remis l'ancien favicon de Melinyel mais celui-ci se fait vieux. Je vous propose donc au travers d'un concours de créer un nouveau favicon <strong>respectant la nouvelle charte graphique de Melinyel</strong>. Les deux nuances de rouge utilisées sur Melinyel sont :<strong> #9C3030 et #7D2524</strong></p><p>Ce favicon devra représenter le "M" de Melinyel comme le précédent.</p><p><a class="attach-link" href="/assets/uploads/ips/monthly_2015_10/6_melinyel.png.a18a8a44cc0d5b517e8cbca7558606fb.png"><img alt="6_melinyel.thumb.png.42e9bc7a1869eebdf28" class="ipsImage ipsImage_thumbnailed" src="/assets/uploads/ips/monthly_2015_10/6_melinyel.thumb.png.42e9bc7a1869eebdf28e50d19a3dc607.png" width="77"/></a></p><p> </p><p><strong>Ce concours prendra fin le 01/11/2015 à 23h59.</strong></p><p> </p><p><span style="font-size:18px;">Bonne chance à tous </span></p><p></p><hr/><p><strong>Les créations :</strong></p><p> </p><p>Par Akimace :</p><p><img alt="axbGQ92.png" class="ipsImage" src="https://i.imgur.com/axbGQ92.png"/></p><p> </p><p><em>Par Soulalex :</em></p><p><img alt="580626Favicon1.png" class="ipsImage" src="<base_url>/applications/sslimageproxy/interface/image.php?url=http://img11.hostingpics.net/pics/580626Favicon1.png"/><img alt="729736Favicon2.png" class="ipsImage" src="<base_url>/applications/sslimageproxy/interface/image.php?url=http://img11.hostingpics.net/pics/729736Favicon2.png"/>  <img alt="512498Favicon3.png" class="ipsImage" src="<base_url>/applications/sslimageproxy/interface/image.php?url=http://img11.hostingpics.net/pics/512498Favicon3.png"/><img alt="996081Favicon4.png" class="ipsImage" src="<base_url>/applications/sslimageproxy/interface/image.php?url=http://img11.hostingpics.net/pics/996081Favicon4.png"/></p>
  • [Sécurité] Sécuriser ses $_POST & $_GET

    PHP
    11
    0 Votes
    11 Posts
    8k Views
    BrokeosB
    <p style="text-align:center;">Bonsoir, vous n'êtes pas sans savoir que, les hackeurs utilisent une méthode appelée "l'injection sql", qui comme son nom l'indique, permet d'injecté du code sql dans une fonction POST ou GET d'une page php.</p> <p style="text-align:center;">Elle est souvent utilisé pour contourner des connexion (par exemple, 'OR "=").</p> <p style="text-align:center;"> </p> <p style="text-align:center;">Mais comment se protégé ?</p> <p style="text-align:center;"> </p> <p style="text-align:center;">Tout simplement, rajoutez dans votre méthode POST ou GET :</p> <pre class="ipsCode prettyprint"> mysql_escape_string(); </pre> <p style="text-align:center;">Ce qui donnerais au final (avec la variable et la méthode) :</p> <pre class="ipsCode prettyprint"> $user = mysql_escape_string($_POST['user']); </pre> <p style="text-align:center;">Voila, j'espère que ça vous auras aidé ! ^^</p>
  • Mettre du nitro

    Tutoriels
    4
    0 Votes
    4 Posts
    2k Views
    hamzadamsH
    <p style="margin:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;text-align:center;"><span style="font-family:georgia, serif;"><span style="font-size:24px;">Mettre du nitro </span></span></p><p style="margin-top:0px;margin-right:0px;margin-left:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;text-align:center;"><span style="font-size:18px;">Adapter pour la version 3.1.4.8 (La dernière de itsyuka)</span></p><p style="margin:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;">Pour commencer on va créée l'item "nitro" :</p><p style="margin-top:0px;margin-right:0px;margin-left:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;">Vous aller dans le fichier fn_VarHandle.sqf pour y rajoutez  dans la case 0 dans le switch</p><pre class="ipsCode prettyprint">case 0: { switch (_mode) do { case 0: { switch (_var) do { case "nitro": {"life_inv_nitro"}; }; };</pre><p><span style="color:rgb(40,40,40);font-family:georgia, serif;line-height:22.4px;">Maintenant vous aller juste en bas dans case 1</span></p><pre class="ipsCode prettyprint">case 1: { switch (_var) do { case "life_inv_nitro": {"nitro"}; }; }; };</pre><p style="margin:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"><span style="font-family:georgia, serif;">Voila maintenant l'items créer on va le configurer pour ça il faut aller dans le fichier Config_Master.hpp</span></p><p style="margin-top:0px;margin-right:0px;margin-left:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"><span style="font-family:georgia, serif;">puis aller dans la class VirtuelItems </span></p><pre class="ipsCode prettyprint">//Virtual Items class VirtualItems { VITEMMACRO(nitro,"Nitro",nitro,5,1500,0,-1,false,-1,"") }; </pre><p style="margin:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"><span style="font-family:georgia, serif;">Voila vous rajouter ça puis vous pouvez configurer le poids le prix ... </span></p><p style="margin:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"><span style="font-family:georgia, serif;">et pour terminer la config il faut aller dans le fichier fn_useItem.sqf</span></p><p style="margin-top:0px;margin-right:0px;margin-left:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"><span style="font-family:georgia, serif;">Vous rajouter ça a la fin avant Default </span>  </p><pre class="ipsCode prettyprint">case (EQUAL(_item,"nitro")): { if(vehicle player != player) exitWith {hint "Nitro Activer"}; [] spawn life_fnc_nitroUse; else { hint format ["Il faut etre dans un vehicule pour utiliser %1",player ] } }; </pre><p style="margin:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"><span style="font-family:georgia, serif;">Puis vous allez dans le fichier de configuration des touches fn_KeyHandler.sqf</span></p><p style="margin-top:0px;margin-right:0px;margin-left:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"><span style="font-family:georgia, serif;">vous rajouter ça ou vous voulez de façon logique bien sur ^^ </span></p><pre class="ipsCode prettyprint">//N Touche Nitro case 49: if([false,"nitro",1] call life_fnc_handleInv) then { [] spawn life_fnc_nitroUse; } }</pre><p><span style="color:rgb(40,40,40);font-family:georgia, serif;line-height:22.4px;">Pour finir vous créer un fichier fn_nitroUse.sqf dans \Altis-Life-master\extDB-Build\Altis_Life.Altis\core\items</span></p><pre class="ipsCode prettyprint">/*fn_nitroUse.sqf Adapter pour altis life par HamzaDams By: Hellop 2008 Copyright: Released to the Public Domain. It would be cool if you gave me credit in your mission if you use it. Purpose: Simulate Nitrous Oxide speed-boost for vehicles. Sets global variable on client computer, cli_nitroLock so that the nitro can't be engaged more than once at at time. Pre: 1. Global var: cli_nitroLock = true; 2. Player's vehicle has an action menu item enabled that runs this script. e.g. in the initline of a car/tank: this addEventHandler ["getin", { if ((_this select 1) == "driver") then { actionIDNitro = _this select 0 addAction ["Nitro", "client\action\fn_nitroUse.sqf"]; }; }]; this addEventHandler ["getout", {_this select 0 removeAction actionIDNitro;}]; Post: cli_nitroLock is set to true; Testing: 5 min. reverse doesn't work. Would be nice if it worked dynamically from vehicle weight/maxspeed. Air Vehicles not tested. */ private ["_obj", "_vel", "_tmrInterval", "_dir", "_maxSpeed"]; _actionID = _this select 2; _obj = vehicle player; //Tanks and stuff get less nitro. _tmrInterval = .1; _maxSpeed = 120; _speedMultiplier = .4; //2 is good for cars, too much for tanks _nitroDuration = 5; if ((typeOf _obj) isKindOf "Car") then { _tmrInterval = .02; _maxSpeed = 180; _speedMultiplier = 1.5; }; if ((typeOf _obj) isKindOf "Air") then { _tmrInterval = .02; _maxSpeed = 500; //What is best val here? _speedMultiplier = .3; }; if ((typeOf _obj) isKindOf "Motorcycle") then { _tmrInterval = .02; _maxSpeed = 140; //What is best val here? _speedMultiplier = .2; }; //Initialize vars; _vel = 0; _velX = 0; _velY = 0; _velZ =0; _dir = 0; _sinDir = 0; _cosDir = 0; _previousVel = velocity _obj; _previousSpeed = speed _obj; _curSpeed = 0; if ((speed _obj) <= 3) then { player sideChat format ["Vous devez être en mouvement pour activer Nitro."]; } else { if (cli_nitroLock) then { cli_nitroLock = false; player sideChat format ["Nitro engagé."]; //player globalchat format["Time: %1, Vehicle Type: %2, MaxSpeed: %3", time, typeOf _obj, _maxSpeed]; _startTime = time; _tmpSpeedMultiplier = _speedMultiplier; while {(time - _startTime) < _nitroDuration} do { sleep _tmrInterval; _vel = velocity _obj; _curSpeed = (speed _obj); if (((abs _curSpeed) - (abs _previousSpeed)) > 30) then {_vel = _previousVel}; //To prevent getting thrown far in collisions _velX = _vel select 0; _velY = _vel select 1; _velZ = _vel select 2; _dir = getdir _obj; //player globalChat format ["Speed: %1", speed _obj]; if ((speed _obj) > _maxSpeed) then {_tmpSpeedMultiplier = 0} else {_tmpSpeedMultiplier = _speedMultiplier}; _sinDir = _tmpSpeedMultiplier*(sin _dir); _cosDir = _tmpSpeedMultiplier*(cos _dir); _obj setvelocity [_velX + _sinDir, _velY + _cosDir, _velZ -.1]; //Keep Z vector moving with gravity _previousSpeed = _curSpeed; _previousVel = _vel; }; cli_nitroLock = true; player sideChat format ["Test Nitro Fait ! Vel: %1. Dir: %2, Speed: %3", velocity _obj, direction _obj, speed _obj]; }; };</pre><p><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;">Voila j’espère ça marchera pour tout le monde et que j'ai été le plus claire ^^ Faite moi des retour</span></p>
  • MeliFramework

    Projets des membres
    102
    0 Votes
    102 Posts
    22k Views
    AzadA
    <p>Bonjour, je rédige ce sujet suite à<iframe data-embed-src="<base_url>/topic/937-projet-commun-cr%C3%A9ation-dun-framework/?do=embed" data-embedcontent="" frameborder="0" src="//melinyel.net/applications/core/interface/js/spacer.png"></iframe> lancée par Soulalex.</p><p> </p><p>L'idée serait de faire un framework PHP réalisé par les membres de Melinyel.</p><p>Ce sujet a pour but de définir clairement nos objectifs et les participants. Si vous voulez participer au développement de ce framework, même un petit peu, précisez-le à la suite de ce message :</p><p> </p><p><strong>Caractéristiques (à débattre) :</strong></p><ul><li><strong>Langage</strong><br/>- PHP5 / MySQL (pour les fonctionnalités).<br/>- HTML5 / CSS3 (pour le web design).<br/> </li><li>Repo GitHub : <a data-ipb="nomediaparse" href="https://github.com/Melinyel-dev/MeliFramework" rel="external nofollow">https://github.com/Melinyel-dev/MeliFramework</a> (vide pour l'instant).</li><li>Site web : <a href="http://meliframework.melinyel.net/" rel="external nofollow">http://meliframework.melinyel.net/</a></li></ul><p> </p><p><strong>Fonctionnalités recherchées (n'hésitez surtout pas à en proposer) : </strong></p><ul><li>Interaction très simplifiée mais sécurisées avec MySQL.</li><li>Gestion des fichiers (upload / download / rename / déplacements)</li><li>Un ORM</li><li>Une gestion dynamique des URLs</li><li>Gérer les appels RESTful</li><li>Évidement adopter une construction MVC</li><li>Pouvoir configurer et gérer différents environnements (test, dev, beta, prod, ....)</li><li>Gérer et capturer les erreurs et exceptions côté serveur (librairie de type Whoops)</li><li>Adopter une construction permettant l'exécution de routines évènementielles</li><li>Un système de profiling et de benchmarking</li><li>Système avancé de gestion de mailing (?)</li></ul>
  • Statut actuel d'Altis Life

    Arma III
    13
    0 Votes
    13 Posts
    4k Views
    vfrzV
    <p>Bonjour, bonsoir,</p> <p> </p> <p>L'heure est grave, Tonic à vraisemblablement arrêter le développement d'Altis Life, ceci n'est pas une mauvaise blague malheureusement </p> <p>Cependant Itsyuka (développeur) va essayer de garder à jour Altis Life jusqu'a qu'il ne puisse plus.</p> <p> </p> <p>Tonic a cessé le développement pour plusieurs raisons, la première étant le non-respect de Bohemia Interactive envers les moddeurs, mais aussi à cause de la communauté qui ne fait que se dégrader, et personnellement je trouve qu'il n'a pas tord. Tout le monde profite des tutoriels mais ne donne rien en échange. Il y a aussi plein de personne ne connaissant rien à la programmation qui veulent créer un serveur, ce qui n'a aucun sens ...</p> <p> </p> <p>Pour plus d'informations (anglais) : <a href="http://www.altisliferpg.com/page/articles.html/_/dev-news/current-standing-of-altis-life-r28" rel="external nofollow">http://www.altisliferpg.com/page/articles.html/_/dev-news/current-standing-of-altis-life-r28</a></p>