Apache/MySQL/PHP sur Mac OS X 10.6 Snow Leopard

Pour installer MySQL sur Mac OS X 10.6 :

  • Télécharger la dernière version sur http://dev.mysql.com/downloads/mysq… en tant que fichier DMG
  • Monter ce fichier DMG et lancer l’installateur, et double-cliquer sur le fichier .prefpane pour l’installer
  • Éditer ~/.profile et y ajouter la ligne
    export PATH=/usr/local/mysql/bin:$PATH
  • Éteindre la base de données
    mysqladmin -u root shutdown
    (par défaut, le mot de passe du compte root est vide)
  • Copier les données de l’ancienne base de donneés, si elle est sur un autre système, ce qui se fait en copiant le dossier /usr/local/mysql/data ou en utilisant mysqldump

Pour activer PHP sur Mac OS X 10.6 :

  • Éditer le fichier /etc/apache2/httpd.conf et supprimer le # sur la ligne
    LoadModule php5_module libexec/apache2/libphp5.so
Publié dans Mac

Utiliser StreamTokenizer pour éliminer les commentaires dans du code Java/JavaScript

Comment supprimer automatiquement tous les commentaires dans du code Java ou JavaScript ?
On peut utiliser StreamTokenizer.

import java.io.IOException;
import java.io.StreamTokenizer;
import java.io.StringReader;

public class TestStreamTokenizer {

   public static void main(String[] args) throws IOException {

       String input = "  myMethod(/* 'commented' out */); // Comment on first line" + "\r\n";
       input += "  myOtherMethod(\"a string with plenty of space, \\\"a protected string\\\" , the \\\\ symbol and // in it\");"
                + "\r\n";
       input += "// A pure comment line" + "\r\n";
       input += "myLastMethod(1 + 2);  " + "\r\n";
       input += "/* a multi-line" + "\r\n";
       input += " * comment" + "\r\n";
       input += " */  " + "\r\n";
       input += "var myVar = \'myValue\';" + "\r\n";
       StringReader stringReader = new StringReader(input);

       StreamTokenizer streamTokenizer = new StreamTokenizer(stringReader);
       streamTokenizer.resetSyntax();
       streamTokenizer.whitespaceChars(0, ' ' /* 10 */);
       streamTokenizer.wordChars('!' /* 33 */, '!' /* 33 */);
       streamTokenizer.quoteChar('"' /* 34 */);
       streamTokenizer.wordChars('#' /* 35 */, '&'/* 38 */);
       streamTokenizer.quoteChar('\'' /* 39 */);
       streamTokenizer.wordChars('(' /* 40 */, '.'/* 46 */);
       streamTokenizer.commentChar('/'/* 47 */);
       streamTokenizer.wordChars('0' /* 48 */, '9' /* 57 */);
       streamTokenizer.wordChars(':' /* 58 */, '@'/* 64 */);
       streamTokenizer.wordChars('A' /* 65 */, 'Z' /* 90 */);
       streamTokenizer.wordChars('[' /* 91 */, '`' /* 96 */);
       streamTokenizer.wordChars('a' /* 97 */, 'z' /* 122 */);
       streamTokenizer.wordChars('{' /* 123 */, '~' /* 126 */);
       streamTokenizer.wordChars(128 + 32, 255);
       streamTokenizer.slashSlashComments(true);
       streamTokenizer.slashStarComments(true);

       int type;
       String token = null;
       while ((type = streamTokenizer.nextToken()) != StreamTokenizer.TT_EOF) {
           token = streamTokenizer.sval;

           switch (type) {
               case StreamTokenizer.TT_WORD:

                   System.out.print(token + " ");
                   break;

               case '\'':
                   System.out.print('\'' + token + '\'');
                   break;

               case '\"':
                   System.out.print('\"' + token + '\"');
                   break;

               default:
                   break;
           }

       }

       System.out.println();
   }
}