/*************************************************************************************
 * javascript.php
 * --------------
 * Author: Ben Keen (ben.keen@gmail.com)
 * Copyright: (c) 2004 Ben Keen (ben.keen@gmail.com), Nigel McNie (http://qbnz.com/highlighter)
 * Release Version: 1.0.8.1
 * Date Started: 2004/06/20
 *
 * JavaScript language file for GeSHi.
 *
 * CHANGES
 * -------
 * 2008/05/23 (1.0.7.22)
 *  -  Added description of extra language features (SF#1970248)
 * 2004/11/27 (1.0.1)
 *  -  Added support for multiple object splitters
 * 2004/10/27 (1.0.0)
 *  -  First Release
 *
 * TODO (updated 2004/11/27)
 * -------------------------
 *
 *************************************************************************************
 *
 *     This file is part of GeSHi.
 *
 *   GeSHi is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *   GeSHi is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with GeSHi; if not, write to the Free Software
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 ************************************************************************************/

$language_data = array (
    'LANG_NAME' => 'Javascript',
    'COMMENT_SINGLE' => array(1 => '//'),
    'COMMENT_MULTI' => array('/*' => '*/'),
    //Regular Expressions
    'COMMENT_REGEXP' => array(2 => "/(?<=[\\s^])s\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])m?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\,\\;\\)])/iU"),
    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
    'QUOTEMARKS' => array("'", '"'),
    'ESCAPE_CHAR' => '\\',
    'KEYWORDS' => array(
        1 => array(
            'as', 'break', 'case', 'catch', 'continue', 'decodeURI', 'delete', 'do',
            'else', 'encodeURI', 'eval', 'finally', 'for', 'if', 'in', 'is', 'item',
            'instanceof', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'void',
            'while', 'write', 'with'
            ),
        2 => array(
            'class', 'const', 'default', 'debugger', 'export', 'extends', 'false',
            'function', 'import', 'namespace', 'new', 'null', 'package', 'private',
            'protected', 'public', 'super', 'true', 'use', 'var'
            ),
        3 => array(
            // common functions for Window object
            'alert', 'back', 'blur', 'close', 'confirm', 'focus', 'forward', 'home',
            'name', 'navigate', 'onblur', 'onerror', 'onfocus', 'onload', 'onmove',
            'onresize', 'onunload', 'open', 'print', 'prompt', 'scroll', 'status',
            'stop',
            )
        ),
    'SYMBOLS' => array(
        '(', ')', '[', ']', '{', '}',
        '+', '-', '*', '/', '%',
        '!', '@', '&', '|', '^',
        '<', '>', '=',
        ',', ';', '?', ':'
        ),
    'CASE_SENSITIVE' => array(
        GESHI_COMMENTS => false,
        1 => false,
        2 => false,
        3 => false
        ),
    'STYLES' => array(
        'KEYWORDS' => array(
            1 => 'color: #000066; font-weight: bold;',
            2 => 'color: #003366; font-weight: bold;',
            3 => 'color: #000066;'
            ),
        'COMMENTS' => array(
            1 => 'color: #006600; font-style: italic;',
            2 => 'color: #009966; font-style: italic;',
            'MULTI' => 'color: #006600; font-style: italic;'
            ),
        'ESCAPE_CHAR' => array(
            0 => 'color: #000099; font-weight: bold;'
            ),
        'BRACKETS' => array(
            0 => 'color: #009900;'
            ),
        'STRINGS' => array(
            0 => 'color: #3366CC;'
            ),
        'NUMBERS' => array(
            0 => 'color: #CC0000;'
            ),
        'METHODS' => array(
            1 => 'color: #660066;'
            ),
        'SYMBOLS' => array(
            0 => 'color: #339933;'
            ),
        'REGEXPS' => array(
            ),
        'SCRIPT' => array(
            0 => '',
            1 => '',
            2 => '',
            3 => ''
            )
        ),
    'URLS' => array(
        1 => '',
        2 => '',
        3 => ''
        ),
    'OOLANG' => true,
    'OBJECT_SPLITTERS' => array(
        1 => '.'
        ),
    'REGEXPS' => array(
        ),
    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
    'SCRIPT_DELIMITERS' => array(
        0 => array(
            '<script type="text/javascript">' => '</script>'
            ),
        1 => array(
            '<script language="javascript">' => '</script>'
            )
        ),
    'HIGHLIGHT_STRICT_BLOCK' => array(
        0 => true,
        1 => true
        )
);

?>
/*************************************************************************************
 * javascript.php
 * --------------
 * Author: Ben Keen (ben.keen@gmail.com)
 * Copyright: (c) 2004 Ben Keen (ben.keen@gmail.com), Nigel McNie (http://qbnz.com/highlighter)
 * Release Version: 1.0.8.1
 * Date Started: 2004/06/20
 *
 * JavaScript language file for GeSHi.
 *
 * CHANGES
 * -------
 * 2008/05/23 (1.0.7.22)
 *  -  Added description of extra language features (SF#1970248)
 * 2004/11/27 (1.0.1)
 *  -  Added support for multiple object splitters
 * 2004/10/27 (1.0.0)
 *  -  First Release
 *
 * TODO (updated 2004/11/27)
 * -------------------------
 *
 *************************************************************************************
 *
 *     This file is part of GeSHi.
 *
 *   GeSHi is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *   GeSHi is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with GeSHi; if not, write to the Free Software
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 ************************************************************************************/

$language_data = array (
    'LANG_NAME' => 'Javascript',
    'COMMENT_SINGLE' => array(1 => '//'),
    'COMMENT_MULTI' => array('/*' => '*/'),
    //Regular Expressions
    'COMMENT_REGEXP' => array(2 => "/(?<=[\\s^])s\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])m?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\,\\;\\)])/iU"),
    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
    'QUOTEMARKS' => array("'", '"'),
    'ESCAPE_CHAR' => '\\',
    'KEYWORDS' => array(
        1 => array(
            'as', 'break', 'case', 'catch', 'continue', 'decodeURI', 'delete', 'do',
            'else', 'encodeURI', 'eval', 'finally', 'for', 'if', 'in', 'is', 'item',
            'instanceof', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'void',
            'while', 'write', 'with'
            ),
        2 => array(
            'class', 'const', 'default', 'debugger', 'export', 'extends', 'false',
            'function', 'import', 'namespace', 'new', 'null', 'package', 'private',
            'protected', 'public', 'super', 'true', 'use', 'var'
            ),
        3 => array(
            // common functions for Window object
            'alert', 'back', 'blur', 'close', 'confirm', 'focus', 'forward', 'home',
            'name', 'navigate', 'onblur', 'onerror', 'onfocus', 'onload', 'onmove',
            'onresize', 'onunload', 'open', 'print', 'prompt', 'scroll', 'status',
            'stop',
            )
        ),
    'SYMBOLS' => array(
        '(', ')', '[', ']', '{', '}',
        '+', '-', '*', '/', '%',
        '!', '@', '&', '|', '^',
        '<', '>', '=',
        ',', ';', '?', ':'
        ),
    'CASE_SENSITIVE' => array(
        GESHI_COMMENTS => false,
        1 => false,
        2 => false,
        3 => false
        ),
    'STYLES' => array(
        'KEYWORDS' => array(
            1 => 'color: #000066; font-weight: bold;',
            2 => 'color: #003366; font-weight: bold;',
            3 => 'color: #000066;'
            ),
        'COMMENTS' => array(
            1 => 'color: #006600; font-style: italic;',
            2 => 'color: #009966; font-style: italic;',
            'MULTI' => 'color: #006600; font-style: italic;'
            ),
        'ESCAPE_CHAR' => array(
            0 => 'color: #000099; font-weight: bold;'
            ),
        'BRACKETS' => array(
            0 => 'color: #009900;'
            ),
        'STRINGS' => array(
            0 => 'color: #3366CC;'
            ),
        'NUMBERS' => array(
            0 => 'color: #CC0000;'
            ),
        'METHODS' => array(
            1 => 'color: #660066;'
            ),
        'SYMBOLS' => array(
            0 => 'color: #339933;'
            ),
        'REGEXPS' => array(
            ),
        'SCRIPT' => array(
            0 => '',
            1 => '',
            2 => '',
            3 => ''
            )
        ),
    'URLS' => array(
        1 => '',
        2 => '',
        3 => ''
        ),
    'OOLANG' => true,
    'OBJECT_SPLITTERS' => array(
        1 => '.'
        ),
    'REGEXPS' => array(
        ),
    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
    'SCRIPT_DELIMITERS' => array(
        0 => array(
            '<script type="text/javascript">' => '</script>'
            ),
        1 => array(
            '<script language="javascript">' => '</script>'
            )
        ),
    'HIGHLIGHT_STRICT_BLOCK' => array(
        0 => true,
        1 => true
        )
);

?>
/*************************************************************************************
 * javascript.php
 * --------------
 * Author: Ben Keen (ben.keen@gmail.com)
 * Copyright: (c) 2004 Ben Keen (ben.keen@gmail.com), Nigel McNie (http://qbnz.com/highlighter)
 * Release Version: 1.0.8.1
 * Date Started: 2004/06/20
 *
 * JavaScript language file for GeSHi.
 *
 * CHANGES
 * -------
 * 2008/05/23 (1.0.7.22)
 *  -  Added description of extra language features (SF#1970248)
 * 2004/11/27 (1.0.1)
 *  -  Added support for multiple object splitters
 * 2004/10/27 (1.0.0)
 *  -  First Release
 *
 * TODO (updated 2004/11/27)
 * -------------------------
 *
 *************************************************************************************
 *
 *     This file is part of GeSHi.
 *
 *   GeSHi is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *   GeSHi is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with GeSHi; if not, write to the Free Software
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 ************************************************************************************/

$language_data = array (
    'LANG_NAME' => 'Javascript',
    'COMMENT_SINGLE' => array(1 => '//'),
    'COMMENT_MULTI' => array('/*' => '*/'),
    //Regular Expressions
    'COMMENT_REGEXP' => array(2 => "/(?<=[\\s^])s\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])m?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\,\\;\\)])/iU"),
    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
    'QUOTEMARKS' => array("'", '"'),
    'ESCAPE_CHAR' => '\\',
    'KEYWORDS' => array(
        1 => array(
            'as', 'break', 'case', 'catch', 'continue', 'decodeURI', 'delete', 'do',
            'else', 'encodeURI', 'eval', 'finally', 'for', 'if', 'in', 'is', 'item',
            'instanceof', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'void',
            'while', 'write', 'with'
            ),
        2 => array(
            'class', 'const', 'default', 'debugger', 'export', 'extends', 'false',
            'function', 'import', 'namespace', 'new', 'null', 'package', 'private',
            'protected', 'public', 'super', 'true', 'use', 'var'
            ),
        3 => array(
            // common functions for Window object
            'alert', 'back', 'blur', 'close', 'confirm', 'focus', 'forward', 'home',
            'name', 'navigate', 'onblur', 'onerror', 'onfocus', 'onload', 'onmove',
            'onresize', 'onunload', 'open', 'print', 'prompt', 'scroll', 'status',
            'stop',
            )
        ),
    'SYMBOLS' => array(
        '(', ')', '[', ']', '{', '}',
        '+', '-', '*', '/', '%',
        '!', '@', '&', '|', '^',
        '<', '>', '=',
        ',', ';', '?', ':'
        ),
    'CASE_SENSITIVE' => array(
        GESHI_COMMENTS => false,
        1 => false,
        2 => false,
        3 => false
        ),
    'STYLES' => array(
        'KEYWORDS' => array(
            1 => 'color: #000066; font-weight: bold;',
            2 => 'color: #003366; font-weight: bold;',
            3 => 'color: #000066;'
            ),
        'COMMENTS' => array(
            1 => 'color: #006600; font-style: italic;',
            2 => 'color: #009966; font-style: italic;',
            'MULTI' => 'color: #006600; font-style: italic;'
            ),
        'ESCAPE_CHAR' => array(
            0 => 'color: #000099; font-weight: bold;'
            ),
        'BRACKETS' => array(
            0 => 'color: #009900;'
            ),
        'STRINGS' => array(
            0 => 'color: #3366CC;'
            ),
        'NUMBERS' => array(
            0 => 'color: #CC0000;'
            ),
        'METHODS' => array(
            1 => 'color: #660066;'
            ),
        'SYMBOLS' => array(
            0 => 'color: #339933;'
            ),
        'REGEXPS' => array(
            ),
        'SCRIPT' => array(
            0 => '',
            1 => '',
            2 => '',
            3 => ''
            )
        ),
    'URLS' => array(
        1 => '',
        2 => '',
        3 => ''
        ),
    'OOLANG' => true,
    'OBJECT_SPLITTERS' => array(
        1 => '.'
        ),
    'REGEXPS' => array(
        ),
    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
    'SCRIPT_DELIMITERS' => array(
        0 => array(
            '<script type="text/javascript">' => '</script>'
            ),
        1 => array(
            '<script language="javascript">' => '</script>'
            )
        ),
    'HIGHLIGHT_STRICT_BLOCK' => array(
        0 => true,
        1 => true
        )
);

?>
/*************************************************************************************
 * javascript.php
 * --------------
 * Author: Ben Keen (ben.keen@gmail.com)
 * Copyright: (c) 2004 Ben Keen (ben.keen@gmail.com), Nigel McNie (http://qbnz.com/highlighter)
 * Release Version: 1.0.8.1
 * Date Started: 2004/06/20
 *
 * JavaScript language file for GeSHi.
 *
 * CHANGES
 * -------
 * 2008/05/23 (1.0.7.22)
 *  -  Added description of extra language features (SF#1970248)
 * 2004/11/27 (1.0.1)
 *  -  Added support for multiple object splitters
 * 2004/10/27 (1.0.0)
 *  -  First Release
 *
 * TODO (updated 2004/11/27)
 * -------------------------
 *
 *************************************************************************************
 *
 *     This file is part of GeSHi.
 *
 *   GeSHi is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *   GeSHi is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with GeSHi; if not, write to the Free Software
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 ************************************************************************************/

$language_data = array (
    'LANG_NAME' => 'Javascript',
    'COMMENT_SINGLE' => array(1 => '//'),
    'COMMENT_MULTI' => array('/*' => '*/'),
    //Regular Expressions
    'COMMENT_REGEXP' => array(2 => "/(?<=[\\s^])s\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])m?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\,\\;\\)])/iU"),
    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
    'QUOTEMARKS' => array("'", '"'),
    'ESCAPE_CHAR' => '\\',
    'KEYWORDS' => array(
        1 => array(
            'as', 'break', 'case', 'catch', 'continue', 'decodeURI', 'delete', 'do',
            'else', 'encodeURI', 'eval', 'finally', 'for', 'if', 'in', 'is', 'item',
            'instanceof', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'void',
            'while', 'write', 'with'
            ),
        2 => array(
            'class', 'const', 'default', 'debugger', 'export', 'extends', 'false',
            'function', 'import', 'namespace', 'new', 'null', 'package', 'private',
            'protected', 'public', 'super', 'true', 'use', 'var'
            ),
        3 => array(
            // common functions for Window object
            'alert', 'back', 'blur', 'close', 'confirm', 'focus', 'forward', 'home',
            'name', 'navigate', 'onblur', 'onerror', 'onfocus', 'onload', 'onmove',
            'onresize', 'onunload', 'open', 'print', 'prompt', 'scroll', 'status',
            'stop',
            )
        ),
    'SYMBOLS' => array(
        '(', ')', '[', ']', '{', '}',
        '+', '-', '*', '/', '%',
        '!', '@', '&', '|', '^',
        '<', '>', '=',
        ',', ';', '?', ':'
        ),
    'CASE_SENSITIVE' => array(
        GESHI_COMMENTS => false,
        1 => false,
        2 => false,
        3 => false
        ),
    'STYLES' => array(
        'KEYWORDS' => array(
            1 => 'color: #000066; font-weight: bold;',
            2 => 'color: #003366; font-weight: bold;',
            3 => 'color: #000066;'
            ),
        'COMMENTS' => array(
            1 => 'color: #006600; font-style: italic;',
            2 => 'color: #009966; font-style: italic;',
            'MULTI' => 'color: #006600; font-style: italic;'
            ),
        'ESCAPE_CHAR' => array(
            0 => 'color: #000099; font-weight: bold;'
            ),
        'BRACKETS' => array(
            0 => 'color: #009900;'
            ),
        'STRINGS' => array(
            0 => 'color: #3366CC;'
            ),
        'NUMBERS' => array(
            0 => 'color: #CC0000;'
            ),
        'METHODS' => array(
            1 => 'color: #660066;'
            ),
        'SYMBOLS' => array(
            0 => 'color: #339933;'
            ),
        'REGEXPS' => array(
            ),
        'SCRIPT' => array(
            0 => '',
            1 => '',
            2 => '',
            3 => ''
            )
        ),
    'URLS' => array(
        1 => '',
        2 => '',
        3 => ''
        ),
    'OOLANG' => true,
    'OBJECT_SPLITTERS' => array(
        1 => '.'
        ),
    'REGEXPS' => array(
        ),
    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
    'SCRIPT_DELIMITERS' => array(
        0 => array(
            '<script type="text/javascript">' => '</script>'
            ),
        1 => array(
            '<script language="javascript">' => '</script>'
            )
        ),
    'HIGHLIGHT_STRICT_BLOCK' => array(
        0 => true,
        1 => true
        )
);

?>
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="/blog/templates/default/atom.css" type="text/css" ?>

<feed version="0.3" 
   xmlns="http://purl.org/atom/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    
    <link href="http://www.gizmola.com/blog/rss.php?version=atom0.3" rel="service.feed" title="GizmoLA.com" type="application/x.atom+xml" />
    <link href="http://www.gizmola.com/blog/"                        rel="alternate"    title="GizmoLA.com" type="text/html" />
    <link href="http://www.gizmola.com/blog/rss.php?version=2.0"     rel="alternate"    title="GizmoLA.com" type="application/rss+xml" />
    <title mode="escaped" type="text/html">GizmoLA.com</title>
    <tagline mode="escaped" type="text/html"></tagline>
    <id>http://www.gizmola.com/blog/</id>
    <modified>2013-01-12T07:04:46Z</modified>
    <generator url="http://www.s9y.org/" version="1.5.5">Serendipity 1.5.5 - http://www.s9y.org/</generator>
    <dc:language>en</dc:language>
    <info mode="xml" type="text/html">
        <div xmlns="http://www.w3.org/1999/xhtml">You are viewing an ATOM formatted XML site feed. Usually this file is inteded to be viewed in an aggregator or syndication software. If you want to know more about ATOM, please visist <a href="http://atomenabled.org/">Atomenabled.org</a></div>
    </info>

    <entry>
        <link href="http://www.gizmola.com/blog/archives/112-XDebug-for-developing,-debugging-and-profiling-PHP.html" rel="alternate" title="XDebug for developing, debugging and profiling PHP" type="text/html" />
        <author>
            <name>David Rolston</name>
                    </author>
    
        <issued>2013-01-12T05:53:32Z</issued>
        <created>2013-01-12T05:53:32Z</created>
        <modified>2013-01-12T07:04:46Z</modified>
        <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=112</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=atom0.3&amp;type=comments&amp;cid=112</wfw:commentRss>
    
        <id>http://www.gizmola.com/blog/archives/112-guid.html</id>
        <title mode="escaped" type="text/html">XDebug for developing, debugging and profiling PHP</title>
        <content type="application/xhtml+xml" xml:base="http://www.gizmola.com/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                XDebug is one of the essential PHP extensions for PHP developers.  The name is a bit misleading, as it implies that it is just a debugging tool.  This can put people off, since getting the debugger to work with your personal editor requires an understanding of networking, and can often be confusing.  Even if you can't immediately get XDebug to work as a debugger, it is still valuable as a stack trace tool, or as a color coded replacement for PHP's var_dump, or as a code coverage analysis tool, and most importantly as a profiler.  In this tutorial I'll attempt to cover installation, and most of XDebug's standard features.  <br />
<br />
 <br /><a href="http://www.gizmola.com/blog/archives/112-XDebug-for-developing,-debugging-and-profiling-PHP.html#extended">Continue reading "XDebug for developing, debugging and profiling PHP"</a>
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://www.gizmola.com/blog/archives/111-system-switch-mail-is-gone,-so-use-alternatives.html" rel="alternate" title="system-switch-mail is gone, so use alternatives" type="text/html" />
        <author>
            <name>David Rolston</name>
                    </author>
    
        <issued>2012-11-10T19:53:26Z</issued>
        <created>2012-11-10T19:53:26Z</created>
        <modified>2012-11-10T20:12:40Z</modified>
        <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=111</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=atom0.3&amp;type=comments&amp;cid=111</wfw:commentRss>
    
        <id>http://www.gizmola.com/blog/archives/111-guid.html</id>
        <title mode="escaped" type="text/html">system-switch-mail is gone, so use alternatives</title>
        <content type="application/xhtml+xml" xml:base="http://www.gizmola.com/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                When I setup a new Centos or Amazon Linux server, one of the first tasks I want to accomplish is installing postfix.  There used to be a package named system-switch-mail that made this easy to do from the shell.  If you've tried to yum install this package recently you might have been surprised to find that it has disappeared.  Instead there is a tool that lets you do essentailly the same thing which is part of the <strong>chkconfig</strong> package.  <br />
<br />
<br />
For this to work you need to have the chkconfig package installed:<br />
<br />
<div class="bb-code-title">CODE:</div><div class="bb-code">&#91;root@&#160;~&#93;#&#160;rpm&#160;-qa&#160;|&#160;grep&#160;chkconfig<br />
chkconfig-1.3.49.3-2.10.amzn1.x86_64</div><br />
<br />
If you don't see it, then yum install chkconfig!<br />
<br />
With chkconfig installed you have access to the alternatives system.  Of course to be able to switch your mta you first have to install your sendmail alternative.  In my case it's typically:<br />
<br />
<div class="bash geshi" style="text-align: left"><br />yum <span style="color: #c20cb9; font-weight: bold;">install</span> postfix<br />&#160;</div><br />
<br />
<br />
Now you can switch your system to use postfix as the default MTA!<br />
<br />
<div class="bash geshi" style="text-align: left"><br />alternatives <span style="color: #660033;">--config</span> mta<br />&#160;</div><br />
<br />
Choose Postfix and hit enter and you're done.  Don't forget to remove sendmail, as you no longer need it.<br />
<br />
<div class="bash geshi" style="text-align: left"><br />yum remove postfix<br />&#160;</div><br />
<br />
 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://www.gizmola.com/blog/archives/110-AWS-EC2-Amazon-Linux-or-Where-is-my-ephemeral-storage.html" rel="alternate" title="AWS EC2 Amazon Linux or Where is my ephemeral storage?" type="text/html" />
        <author>
            <name>David Rolston</name>
                    </author>
    
        <issued>2012-08-24T08:22:22Z</issued>
        <created>2012-08-24T08:22:22Z</created>
        <modified>2012-11-11T07:24:48Z</modified>
        <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=110</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=atom0.3&amp;type=comments&amp;cid=110</wfw:commentRss>
    
        <id>http://www.gizmola.com/blog/archives/110-guid.html</id>
        <title mode="escaped" type="text/html">AWS EC2 Amazon Linux or Where is my ephemeral storage?</title>
        <content type="application/xhtml+xml" xml:base="http://www.gizmola.com/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                I like <a href="http://www.gizmola.com/blog/exit.php?url_id=1381&amp;entry_id=110"  onmouseover="window.status='http://aws.amazon.com/amazon-linux-ami/';return true;" onmouseout="window.status='';return true;" title="Amazon Linux">Amazon Linux</a>.  It is basically Centos with a bit of Fedora mixed in.  Thus it comes with yum, and even better yet, with amazon supported repositories preconfigured.  Because amazon provides it, they support it, and answer questions about it, and fix problems with it and keep it up to date and patched so that it runs well as a paravirtualized guest inside Amazon's Xen based infrastructure.  They insure that it's fairly secure, has a fairly minimal set of installed packages, and comes with the ec2 api tools already installed, which can be a daunting task to setup for people new to aws and ec2.  <br />
<br />
However one thing they don't do by default is configure their AMI's to make the ephemeral storage you are entitled to available by default.  When you boot up an instance, you find yourself with a 10 GB EBS volume, and that can become pretty filled once you've installed a few packages.<br />
<br />
<strong>What is Ephemeral storage?</strong><br />
Ephemeral storage is the "instance storage" that's advertised for each instance type and can range from 150 GB on up to over a terabyte depending on the instance type you're running.  This storage is called "Ephemeral" by Amazon because it comes from the local hard drives in the server your instance is running on, but does not persist or survive an instance stop.  If you put anything important on it, you'll need to back that data up using traditional means, and won't have the ability to snapshot it like you can with EBS volumes.  Although ephemeral drives can provide excellent IO performance and a substantial storage at no extra cost, they are subject to the types of failures that you'd expect with single server disks.   <br />
<br />
In spite of these concerns, they certainly are a great place for things like temporary files, or swap files, or logs that you're going to rotate or purge anyways.<br />
<br />
<strong>So how can you use Amazon Linux and still get access to the ephemeral disks?</strong><br />
<br />
You need to utilize the Amazon API and use the "-b" parameter to map one or more block devices to your ephemeral storage.  Although the web interface "Launch Instance" wizard includes a tab for storage options, the instance storage tab is not accessible. I typically use the command line api to start aws instances. <br />
<br />
For example, this command will launch a large instance based on an Amazon Linux AMI, only, while at the same time adding back mappings to the ephemeral storage that is part of the Large instance profile.<br />
<br />
<div class="bash geshi" style="text-align: left"><br />ec2-run-instances <span style="color: #660033;">--region</span> us-east-<span style="color: #000000;">1</span> ami-aecd60c7 <span style="color: #660033;">-k</span> yourkey <span style="color: #660033;">-t</span> <span style="color: #ff0000;">&quot;m1.large&quot;</span> <span style="color: #660033;">-z</span> us-east-1d <span style="color: #660033;">-g</span> your-security-group <span style="color: #660033;">-b</span> <span style="color: #ff0000;">&quot;/dev/sdb=ephemeral0&quot;</span> <span style="color: #660033;">-b</span> <span style="color: #ff0000;">&quot;/dev/sdc=ephemeral1&quot;</span><br />&#160;</div><br />
<br />
The important parameters to note, are the two "-b" parameters, which specify that ec2 should establish block device mappings to our two ephemeral drives.<br />
<br />
When your instance starts, you'll find that you now have a formated ext3 volume ready for use:<br />
<br />
<blockquote>/dev/xvdb             414G  199M  393G   1% /media/ephemeral0</blockquote><br />
<br />
You might have noticed that we specified a mapping for 2 different block devices.  You'll find that /dev/sdc is configured, but you'll have to format it and mount it yourself.<br />
<br />
If this is the first time you've seen the command line api used, amazon linux is a great way to get started.  Just start up a micro instance using the recommended Amazon Linux AMI, add your certs, and you're ready to go.<br />
<br />
In summary, Amazon Linux is an excellent choice for your EBS backed instances -- just remember that unless you override the default, you'll be missing out on the Instance storage you're paying for! 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://www.gizmola.com/blog/archives/109-Centos,-Amazon-Linux,-NFS-and-the-dreaded-nobody-problem.html" rel="alternate" title="Centos, Amazon Linux, NFS and the dreaded &quot;nobody&quot; problem" type="text/html" />
        <author>
            <name>David Rolston</name>
                    </author>
    
        <issued>2012-02-01T07:34:34Z</issued>
        <created>2012-02-01T07:34:34Z</created>
        <modified>2012-02-01T08:18:13Z</modified>
        <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=109</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=atom0.3&amp;type=comments&amp;cid=109</wfw:commentRss>
    
        <id>http://www.gizmola.com/blog/archives/109-guid.html</id>
        <title mode="escaped" type="text/html">Centos, Amazon Linux, NFS and the dreaded &quot;nobody&quot; problem</title>
        <content type="application/xhtml+xml" xml:base="http://www.gizmola.com/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                I have been fighting a problem with mounting volumes from an NFS Server in AWS for a few days.  With more pressing issues at hand, I had to try and google for solutions for an hour or so before bed, and nothing I was doing was having any effect.  Curiously, an Ubuntu based machine that was mounting the drive using NFS3 was not having the same problem.  Only the Amazon Linux servers that were using NFS4 were having the issue, and were showing all files and directories as being owned by nobody:nobody.<br />
<br />
<div class="bash geshi" style="text-align: left"><br />drwxr-xr-x &#160; &#160;<span style="color: #000000;">2</span> nobody nobody &#160; <span style="color: #000000;">22</span> Jan &#160;<span style="color: #000000;">9</span> <span style="color: #000000;">19</span>:<span style="color: #000000;">58</span> installervc<br />drwxr-xr-x &#160; &#160;<span style="color: #000000;">2</span> nobody nobody 4.0K Jan &#160;<span style="color: #000000;">9</span> <span style="color: #000000;">19</span>:<span style="color: #000000;">56</span> avatar<br />drwxr-xr-x &#160; &#160;<span style="color: #000000;">2</span> nobody nobody 4.0K Jan &#160;<span style="color: #000000;">9</span> <span style="color: #000000;">19</span>:<span style="color: #000000;">56</span> accessories<br />&#160;</div><br />
<br />
I had previously insured that the user UID and group GID for the user that would be writing files (in my case "apache" was the same (with the same UID and GID) on the NFS server and the servers mounting the nfs volume.<br />
<br />
As it turned out the problem was with the configuration (or lack thereof) of the rpcidmapd service.  NFS4 relies on this service to map users between machines.  The "idmapd" requires that the domain of both the client and server should match for the UID/GID mapping to work, and in my case it wasn't.  Probably many people with proper DNS configuration don't hit this problem, but we did not have a proper DNS setup, as these machines are part of a growing cluster.  Compounding the problem I had set the configuration files to have meaningless host names rather than a domain.<br />
<br />
You can tweak this setup by editing the: <strong>/etc/idmapd.conf</strong> file, and find the "Domain" variable:<br />
<br />
<div class="bash geshi" style="text-align: left"><br />Domain = &#160;yourdomain.com<br />&#160;</div><br />
<br />
Set these to be the same for the server and all the clients.<br />
<br />
The last problem was that I had to restart the idmapd process, which has an /etc/init.d control script named  /etc/rpcidmapd<br />
<br />
<div class="bash geshi" style="text-align: left"><br /><span style="color: #7a0874; font-weight: bold;">&#91;</span>root<span style="color: #000000; font-weight: bold;">@</span>web1 init.d<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;"># ls -lath | grep rpcid</span><br /><span style="color: #660033;">-rwxr-xr-x</span> &#160;<span style="color: #000000;">1</span> root root 2.7K Jul <span style="color: #000000;">28</span> &#160;<span style="color: #000000;">2011</span> rpcidmapd<br />&#160;</div><br />
<br />
Restart the process on both the nfs server and any nfs clients.  If the source of your problem is the same as mine, your user &amp; group mapping problems should be solved:<br />
<br />
<div class="bash geshi" style="text-align: left"><br /><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>inti.d<span style="color: #000000; font-weight: bold;">/</span>rpcidmapd restart<br />&#160;</div><br />
<br />
Finally!!!!<br />
<br />
<div class="bash geshi" style="text-align: left"><br />drwxr-xr-x &#160; &#160;<span style="color: #000000;">2</span> apache apache &#160; <span style="color: #000000;">22</span> Jan &#160;<span style="color: #000000;">9</span> <span style="color: #000000;">19</span>:<span style="color: #000000;">58</span> installervc<br />drwxr-xr-x &#160; &#160;<span style="color: #000000;">2</span> apache apache 4.0K Jan &#160;<span style="color: #000000;">9</span> <span style="color: #000000;">19</span>:<span style="color: #000000;">56</span> avatar<br />drwxr-xr-x &#160; &#160;<span style="color: #000000;">2</span> apache apache 4.0K Jan &#160;<span style="color: #000000;">9</span> <span style="color: #000000;">19</span>:<span style="color: #000000;">56</span> accessories<br />&#160;</div><br />
 
            </div>
        </content>

        <dc:subject>Amazon Linux</dc:subject>
<dc:subject>Centos</dc:subject>
<dc:subject>IDMAPD</dc:subject>
<dc:subject>Linux</dc:subject>
<dc:subject>NFS</dc:subject>
<dc:subject>NFS Nobody</dc:subject>
<dc:subject>NFS4</dc:subject>
<dc:subject>Redhat</dc:subject>
<dc:subject>RPCIDMAPD</dc:subject>

    </entry>
    <entry>
        <link href="http://www.gizmola.com/blog/archives/108-Calculate-a-persons-age-in-a-MySQL-query-continued.html" rel="alternate" title="Calculate a person's age in a MySQL query -- continued" type="text/html" />
        <author>
            <name>David Rolston</name>
                    </author>
    
        <issued>2011-08-19T22:07:24Z</issued>
        <created>2011-08-19T22:07:24Z</created>
        <modified>2011-08-20T01:54:45Z</modified>
        <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=108</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=atom0.3&amp;type=comments&amp;cid=108</wfw:commentRss>
    
        <id>http://www.gizmola.com/blog/archives/108-guid.html</id>
        <title mode="escaped" type="text/html">Calculate a person's age in a MySQL query -- continued</title>
        <content type="application/xhtml+xml" xml:base="http://www.gizmola.com/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <em>The serendipity cache blew up on me for this article so I had to split it into 2 parts.</em><br />
<br />
<h2>DATE_ADD to the rescue</h2><br />
MySQL knows how to work with the Gregorian calender, and I believe it is easier to let MySQL do the work, rather than trying to figure out how to implement the different cases.  I chose to implement the "last day of the month" technique.  In this case, we'll do this by creating a mysql date based on March 1st of the current year, and subtract one day from it to get to the last day of February.<br />
<br />
If you read my article on <a href="http://www.gizmola.com/blog/archives/99-Finding-Next-Monday-using-MySQL-Dates.html" title="Calculating week start using MySQL">"Finding next monday" using mysql date functions</a>, you would have seen how DATE_ADD() can be used to help solve a lot of problems, even though the name can be misleading when you are actually using it to subtract. Using it with the following test dates proves that mysql has fully implemented the leap year logic accurately:<br />
<br />
 <br /><a href="http://www.gizmola.com/blog/archives/108-Calculate-a-persons-age-in-a-MySQL-query-continued.html#extended">Continue reading "Calculate a person's age in a MySQL query -- continued"</a>
            </div>
        </content>

        <dc:subject>concat</dc:subject>
<dc:subject>curdate</dc:subject>
<dc:subject>date_add</dc:subject>
<dc:subject>day</dc:subject>
<dc:subject>month</dc:subject>
<dc:subject>mysql</dc:subject>
<dc:subject>mysql if()</dc:subject>
<dc:subject>sql</dc:subject>
<dc:subject>str_to_date</dc:subject>
<dc:subject>year</dc:subject>

    </entry>
    <entry>
        <link href="http://www.gizmola.com/blog/archives/107-Calculate-a-persons-age-in-a-MySQL-query.html" rel="alternate" title="Calculate a person's age in a MySQL query" type="text/html" />
        <author>
            <name>David Rolston</name>
                    </author>
    
        <issued>2011-08-12T07:40:29Z</issued>
        <created>2011-08-12T07:40:29Z</created>
        <modified>2011-08-19T22:14:39Z</modified>
        <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=107</wfw:comment>
        <slash:comments>3</slash:comments>
        <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=atom0.3&amp;type=comments&amp;cid=107</wfw:commentRss>
    
        <id>http://www.gizmola.com/blog/archives/107-guid.html</id>
        <title mode="escaped" type="text/html">Calculate a person's age in a MySQL query</title>
        <content type="application/xhtml+xml" xml:base="http://www.gizmola.com/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Recently a question was posed on the <a href="http://www.gizmola.com/blog/exit.php?url_id=1371&amp;entry_id=107"  onmouseover="window.status='http://www.phpfreaks.com/forums/';return true;" onmouseout="window.status='';return true;" title="Phpfreaks.com forums">Phpfreaks.com forums</a>, as to the best way for someone to store a user's birth date using the MySQL database.  One person suggested using a varchar as they were most familiar with string functions.  My answer was to use the MySQL date type.  <br />
<br />
I provided a quick "advantages of using date" comparison list:<br />
<strong>Storing as a DATE</strong><br />
&bull;A MySQL Date requires 3 Bytes of storage<br />
&bull;You can do Date arithmetic inside mysql (search for dates within ranges) and use mysql functions to calculate values directly in a query<br />
&bull;It intrinsically will only store valid dates<br />
&bull;You can format it in numerous ways<br />
<br />
<strong>Storing as a Varchar</strong><br />
&bull;A string will require minimum 8 bytes, or 10 with separators<br />
&bull;can't do any form of efficient native range queries<br />
&bull;can't reformat it easily in SQL<br />
&bull;will allow completely invalid dates<br />
<br />
I thought a great proof of the benefit of this approach was to show that you could have MySQL calculate the person's current age in a query, using their birthday.  Certainly with a string, using PHP for example, you would typically query the database to pull out the string and for each row, turn it into a PHP date and do some calculations in your code, and you'd arrive at the same place, but I wanted to show just how capable SQL -- and in this case MySQL can be especially when you use the native data types and some functions.<br />
 <br /><a href="http://www.gizmola.com/blog/archives/107-Calculate-a-persons-age-in-a-MySQL-query.html#extended">Continue reading "Calculate a person's age in a MySQL query"</a>
            </div>
        </content>

        <dc:subject>concat</dc:subject>
<dc:subject>curdate</dc:subject>
<dc:subject>date_add</dc:subject>
<dc:subject>day</dc:subject>
<dc:subject>month</dc:subject>
<dc:subject>mysql</dc:subject>
<dc:subject>mysql if()</dc:subject>
<dc:subject>sql</dc:subject>
<dc:subject>str_to_date</dc:subject>
<dc:subject>year</dc:subject>

    </entry>
    <entry>
        <link href="http://www.gizmola.com/blog/archives/106-SQL-UPDATE-for-strings-in-MongoDB.html" rel="alternate" title="SQL UPDATE for strings in MongoDB" type="text/html" />
        <author>
            <name>David Rolston</name>
                    </author>
    
        <issued>2011-05-20T08:01:53Z</issued>
        <created>2011-05-20T08:01:53Z</created>
        <modified>2011-05-20T08:36:01Z</modified>
        <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=106</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=atom0.3&amp;type=comments&amp;cid=106</wfw:commentRss>
    
        <id>http://www.gizmola.com/blog/archives/106-guid.html</id>
        <title mode="escaped" type="text/html">SQL UPDATE for strings in MongoDB</title>
        <content type="application/xhtml+xml" xml:base="http://www.gizmola.com/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                MongoDB currently does not offer the equivalent of a SQL Update statement when you want to change the value of a string to something that is based on the current value.  In my case I needed to find spaces and change them to underscores -- something done easily in php with str_replace(), and in MySQL with REPLACE.<br />
<br />
If you had a table named foo with a column named "mystr" you could do this sort of update like this:<br />
<br />
<div class="sql geshi" style="text-align: left"><br /><span style="color: #993333; font-weight: bold;">UPDATE</span> foo <span style="color: #993333; font-weight: bold;">SET</span> mystr <span style="color: #66cc66;">=</span> <span style="color: #993333; font-weight: bold;">REPLACE</span><span style="color: #66cc66;">&#40;</span>mystr<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">' '</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'_'</span><span style="color: #66cc66;">&#41;</span>;<br />&#160;</div><br />
<br />
MongoDB does have collection.update() that works with a series of "modifier" operations, but none of them are useful for doing modifications to the current value of a document field when that field is a string.<br />
<br />
MongoDB does however support javascript, and the javascript replace() function implements a regular expression search and replace.  I was able to accomplish the update using the forEach() method to process the resulting documents one at a time.  While not as efficient as having mongo do this internally with a specially built update modifier, at least this method only needs to operate on documents that are known to require modifications, and could be run in the mongo interactive client easily.<br />
<br />
Again, assuming the collection is named "foo" and the document field is named "mystr"<br />
<br />
<div class="javascript geshi" style="text-align: left"><br />db.foo.find<span class="br0">&#40;</span><span class="br0">&#123;</span> mystr: /<span class="br0">&#91;</span> <span class="br0">&#93;</span>+/ <span class="br0">&#125;</span><span class="br0">&#41;</span>.forEach<span class="br0">&#40;</span> function<span class="br0">&#40;</span>u<span class="br0">&#41;</span> <span class="br0">&#123;</span> u.mystr = u.mystr.replace<span class="br0">&#40;</span>/<span class="br0">&#91;</span> <span class="br0">&#93;</span>/g, &quot;_&quot;<span class="br0">&#41;</span>; db.foo.save<span class="br0">&#40;</span>u<span class="br0">&#41;</span>; <span class="br0">&#125;</span> <span class="br0">&#41;</span>;<br />&#160;</div><br />
<br />
An existing patch promises to add a new update() modifier but until such a time as it exists, this approach can be used when you need to update strings in a collection, referencing the existing values in the transformation. 
            </div>
        </content>

        <dc:subject>javascript</dc:subject>
<dc:subject>mongodb</dc:subject>
<dc:subject>MySQL</dc:subject>
<dc:subject>nosql</dc:subject>
<dc:subject>SQL</dc:subject>
<dc:subject>update</dc:subject>
<dc:subject>web development</dc:subject>

    </entry>
    <entry>
        <link href="http://www.gizmola.com/blog/archives/105-Load-the-Url-symfony-helper-in-a-model-or-form-class.html" rel="alternate" title="Load the Url symfony helper in a model or form class " type="text/html" />
        <author>
            <name>David Rolston</name>
                    </author>
    
        <issued>2011-01-18T22:01:38Z</issued>
        <created>2011-01-18T22:01:38Z</created>
        <modified>2011-01-18T22:01:38Z</modified>
        <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=105</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=atom0.3&amp;type=comments&amp;cid=105</wfw:commentRss>
    
        <id>http://www.gizmola.com/blog/archives/105-guid.html</id>
        <title mode="escaped" type="text/html">Load the Url symfony helper in a model or form class </title>
        <content type="application/xhtml+xml" xml:base="http://www.gizmola.com/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                I'm doing some symfony work and needed to use the Url helper in a form class to return an error message that included a link.  I would consider this one of those exceptions where you really need to be able to have markup in a class rather than in a template.  <br />
<br />
I should probably mention that this is the way that works in version 1.4.3, and that the method that works in actions will not work in a form class. That method is:<br />
<br />
<div class="php geshi" style="text-align: left"><br />sfContext<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getConfiguration</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">loadHelpers</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">...</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />&#160;</div><br />
<br />
That method was deprecated and there is also <a href="http://www.gizmola.com/blog/exit.php?url_id=1369&amp;entry_id=105"  onmouseover="window.status='http://webmozarts.com/2009/07/01/why-sfcontextgetinstance-is-bad/';return true;" onmouseout="window.status='';return true;" title="problems with sfContext">this article to consider</a>.<br />
<br />
In this case, the solution was to access the sfApplicationConfiguration object.  In order to use the Url helper so you can call link_to() you need to also include the 'Tag' helper.  <br />
<br />
<div class="php geshi" style="text-align: left"><br />sfApplicationConfiguration<span style="color: #339933;">::</span><span style="color: #004000;">getActive</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">loadHelpers</span><span style="color: #009900;">&#40;</span><a href="http://www.gizmola.com/blog/exit.php?url_id=1370&amp;entry_id=105" title="http://www.php.net/array"  onmouseover="window.status='http://www.php.net/array';return true;" onmouseout="window.status='';return true;"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Url'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Tag'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br /><br /><span style="color: #666666; font-style: italic;">// now you can use link_to(...)</span><br />&#160;</div><br />
<br />
Obviously this would allow you to load other helpers in the same way ... i18n for example.<br />
<br />
<br />
 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://www.gizmola.com/blog/archives/103-How-to-configure-AVReloaded-to-work-with-Longtails-JW-Player-Google-Analytics-Pro-plugin.html" rel="alternate" title="How to configure AVReloaded to work with Longtail's JW Player Google Analytics Pro plugin" type="text/html" />
        <author>
            <name>David Rolston</name>
                    </author>
    
        <issued>2010-09-14T07:37:49Z</issued>
        <created>2010-09-14T07:37:49Z</created>
        <modified>2010-09-14T21:03:41Z</modified>
        <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=103</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=atom0.3&amp;type=comments&amp;cid=103</wfw:commentRss>
    
        <id>http://www.gizmola.com/blog/archives/103-guid.html</id>
        <title mode="escaped" type="text/html">How to configure AVReloaded to work with Longtail's JW Player Google Analytics Pro plugin</title>
        <content type="application/xhtml+xml" xml:base="http://www.gizmola.com/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <a href="http://www.gizmola.com/blog/exit.php?url_id=1359&amp;entry_id=103" title="http://allvideos.fritz-elfert.de/"  onmouseover="window.status='http://allvideos.fritz-elfert.de/';return true;" onmouseout="window.status='';return true;" >Allvideos Reloaded  (AVReloaded)</a> is a really nice piece of software engineering from Fritz Elfert.  Rather than hardcode for all the individual players out there, Fritz created a macro system that allows you describe the parameters for any player, so it can be configured and updated.<br />
<br />
<div class="serendipity_imageComment_left" style="width: 110px"><div class="serendipity_imageComment_img"><a class='serendipity_image_link' href='http://www.gizmola.com/blog/uploads/images/gap_scrn.png'><!-- s9ymdb:241 --><img width='110' height='20'  src="http://www.gizmola.com/blog/uploads/images/gap_scrn.tn.png" alt="" /></a></div><div class="serendipity_imageComment_txt">Click for screenshot of Google Analytics Event categories, generated by the Longtail GA Pro plugin</div></div>Like the Allvideos plugin, AVReloaded comes bundled with the ubiquitous <a href="http://www.gizmola.com/blog/exit.php?url_id=1361&amp;entry_id=103" title="http://www.longtailvideo.com/players/"  onmouseover="window.status='http://www.longtailvideo.com/players/';return true;" onmouseout="window.status='';return true;" >JW Player for Flash</a>.  If you are streaming flash movies from your website, one <a href="http://www.gizmola.com/blog/exit.php?url_id=1362&amp;entry_id=103" title="http://www.longtailvideo.com/addons/plugins/107/Google-Analytics-Pro?q="  onmouseover="window.status='http://www.longtailvideo.com/addons/plugins/107/Google-Analytics-Pro?q=';return true;" onmouseout="window.status='';return true;" >worthwhile plugin is longtail's Google Analytics Pro</a>.  The current license price for the plugin is $19 from longtail's site.  If you're already using Google Analytics, the plugin feeds "Content" events from the player to Google Analytics which will show up under the "Event Tracking" menu.  Ever have questions like:  "I wonder what videos people are actually watching on my site" or "for this new video, how many seconds do they watch before they get bored and close it?"  If so, then this plugin is for you.   The player will generate events that GA groups into 3 categories: "Video Plays", "Percentage Played" and "Seconds Played".  Drilling down you get a nice list of the Videos on your site.   For example, finding out that people only watch on average 10% of that promotional video for your product is probably a sign that you may need some better material. <br /><a href="http://www.gizmola.com/blog/archives/103-How-to-configure-AVReloaded-to-work-with-Longtails-JW-Player-Google-Analytics-Pro-plugin.html#extended">Continue reading "How to configure AVReloaded to work with Longtail's JW Player Google Analytics Pro plugin"</a>
            </div>
        </content>

        <dc:subject>AllVideos Reloaded</dc:subject>
<dc:subject>AVReloaded</dc:subject>
<dc:subject>Event Tracking</dc:subject>
<dc:subject>Flash</dc:subject>
<dc:subject>Flash Video</dc:subject>
<dc:subject>Google Analytics</dc:subject>
<dc:subject>Google Analytics Pro</dc:subject>
<dc:subject>Joomla</dc:subject>
<dc:subject>JW Player</dc:subject>
<dc:subject>Longtail</dc:subject>

    </entry>
    <entry>
        <link href="http://www.gizmola.com/blog/archives/102-Joomla-K2-Component-ERD-Schema-and-Tree-traversal-optimization-with-Catalog-Mode.html" rel="alternate" title="Joomla K2 Component ERD Schema and Tree traversal optimization with Catalog Mode" type="text/html" />
        <author>
            <name>David Rolston</name>
                    </author>
    
        <issued>2010-09-09T09:30:57Z</issued>
        <created>2010-09-09T09:30:57Z</created>
        <modified>2010-09-09T12:12:42Z</modified>
        <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=102</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=atom0.3&amp;type=comments&amp;cid=102</wfw:commentRss>
    
        <id>http://www.gizmola.com/blog/archives/102-guid.html</id>
        <title mode="escaped" type="text/html">Joomla K2 Component ERD Schema and Tree traversal optimization with Catalog Mode</title>
        <content type="application/xhtml+xml" xml:base="http://www.gizmola.com/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <div class="serendipity_imageComment_left" style="width: 300px"><div class="serendipity_imageComment_img"><a class='serendipity_image_link' href='http://www.gizmola.com/blog/uploads/images/k2_schema.png' onclick="F1 = window.open('/blog/uploads/images/k2_schema.png','Zoom','height=1199,width=1263,top=8,left=336,toolbar=no,menubar=no,location=no,resize=1,resizable=1,scrollbars=yes'); return false;"><!-- s9ymdb:234 --><img width='300' height='285'  src="http://www.gizmola.com/blog/uploads/images/k2_schema.tn.png" alt="" /></a></div><div class="serendipity_imageComment_txt">Joomla K2 component Schema in png format</div></div>In the recent profile of GB4K.com, I talked about the use of the K2 component from the Folks at JoomlaWorks.  While doing some customization, I decided to reverse engineer the K2 tables that are created and used by the component.  I provide the diagrams for interested parties and developers looking to understand how K2 is designed.  Keep in mind that these are logical diagrams, since Joomla and K2 have no intrinsic support for MySQL other than using the MyISAM engine, which doesn't support key constraints.  Click on the image to get the .png version, or <a href="http://www.gizmola.com/blog/exit.php?url_id=1331&amp;entry_id=102"  onmouseover="window.status='http://www.gizmola.com/blog/index.php?serendipity[subpage]=downloads&amp;thiscat=4&amp;file=23';return true;" onmouseout="window.status='';return true;"  title="Download the .pdf version of the Schema here">this link for a .pdf</a>.<br />
<br />
One thing I noticed about K2, is that its tree traversal code can require a lot of queries to be run, especially if you have a lot of categories.  Over on the K2 forums, one K2 user with a large number of subcategories was complaining about the substantial overhead involved in displaying the top level Category for their site.  With over 1000 subcategories, the site was being hammered with an equal number of queries.<br />
<br />
This is because by default K2 will do a query for every category to find its child categories and items.  Since this is a recursive problem there's no inherent MySQL solution that would allow the developers to solve this problem in SQL (like the Oracle Start With ... Connect By syntax) so it's somewhat understandable that the JoomlaWorks developers provided a short circuit mechanism into the category configuration they call "Catalog Mode".  The description of this configuration flag, which defaults to "No" is: <br />
<br />
<blockquote>If you select 'yes' then only the items directly belonging to this category will be retrieved. If you select 'no' then items from all sub-categories will be retrieved. Setting this option to 'no' is ideal for news/portal/magazine/blog layouts.</blockquote><br />
<br />
This setting simply shuts off the recursion behavior for the category. 
            </div>
        </content>

        <dc:subject>ERD</dc:subject>
<dc:subject>getK2.org</dc:subject>
<dc:subject>Joomla</dc:subject>
<dc:subject>JoomlaWorks</dc:subject>
<dc:subject>K2</dc:subject>
<dc:subject>Schema</dc:subject>

    </entry>
    <entry>
        <link href="http://www.gizmola.com/blog/archives/101-Profile-of-the-GB4k.com-launch-Joomla-reborn.html" rel="alternate" title="Profile of the GB4k.com launch -- Joomla reborn" type="text/html" />
        <author>
            <name>David Rolston</name>
                    </author>
    
        <issued>2010-09-03T02:52:57Z</issued>
        <created>2010-09-03T02:52:57Z</created>
        <modified>2010-09-03T02:52:57Z</modified>
        <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=101</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=atom0.3&amp;type=comments&amp;cid=101</wfw:commentRss>
    
        <id>http://www.gizmola.com/blog/archives/101-guid.html</id>
        <title mode="escaped" type="text/html">Profile of the GB4k.com launch -- Joomla reborn</title>
        <content type="application/xhtml+xml" xml:base="http://www.gizmola.com/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <!-- s9ymdb:220 --><a href="http://www.gizmola.com/blog/exit.php?url_id=1327&amp;entry_id=101"  onmouseover="window.status='http://www.gb4k.com/';return true;" onmouseout="window.status='';return true;"  title="Check out the Global Broadcast 4 Kids website."><img width='350' height='239' style="float: left; border: 0px; padding-left: 5px; padding-right: 5px;" src="http://www.gizmola.com/blog/uploads/images/gb4klaunch.png" alt="" /></a>I've been helping out Scott McGinnis with a revamp of his web-videos-for-kids and tweens site, <a href="http://www.gizmola.com/blog/exit.php?url_id=1320&amp;entry_id=101" title="http://www.gb4k.com"  onmouseover="window.status='http://www.gb4k.com';return true;" onmouseout="window.status='';return true;" >Global Broadcast 4 Kids</a>, aka <a href="http://www.gizmola.com/blog/exit.php?url_id=1320&amp;entry_id=101" title="http://www.gb4k.com"  onmouseover="window.status='http://www.gb4k.com';return true;" onmouseout="window.status='';return true;" >GB4K.com</a>.  <br />
<br />
Scott was a pretty successful actor in the 1980's, who transitioned to directing in the 90's, and like a lot of directors in Hollywood, got his first chance behind the camera courtesy of Roger Corman.  After a stint making low budget features, he went on to direct episodes of "Angel" and the TV series "Honey I Shrunk the Kids", and for the last few years, has been producing educational webisodes using Prosumer video equipment, and editing the episodes on a Mac with Final Cut Pro.  <br />
<br />
The subject matter and production values aren't that much different from what you might expect to find on basic cable networks like The History Channel or Disney Channel.  The GB4K "twist" is that all the segments feature kids and teens as the newscasters, reporters and narrators.  GB4K has already proven to be a great training ground for a number of its young "stars", as GB4K alumni have gone on to success at the Disney Channel, and in feature films.  There's lots of material in the archive, and he creates a number of new episodes each week, from sports and entertainment news, movie premier "red carpet" interviews, how-to videos on dancing and skateboarding, history channel-esq features on subjects like Guitars and Merry-go-rounds, and environmental science and the latest in Green living practices and Green news.  The site also includes music videos he directed and produced for Amber Lily and Jadagrace Berry.  A great example of what Scott is able to accomplish as a one-man directing, production and post production crew, is the <a href="http://www.gizmola.com/blog/exit.php?url_id=1321&amp;entry_id=101" title="http://www.gb4k.com/gbk4channels/gb4kentertainment/item/28-express-yourself-jadagrace"  onmouseover="window.status='http://www.gb4k.com/gbk4channels/gb4kentertainment/item/28-express-yourself-jadagrace';return true;" onmouseout="window.status='';return true;" >Jadagrace "Express Yourself" </a>video, which in my opinion compares favorably with music videos costing 10-20x as much.<br />
<br />
Despite having a substantial library of video content, frequent updates, and a clear cut audience, problems with the website had put GB4K into a holding pattern. <br />
<br />
 <br /><a href="http://www.gizmola.com/blog/archives/101-Profile-of-the-GB4k.com-launch-Joomla-reborn.html#extended">Continue reading "Profile of the GB4k.com launch -- Joomla reborn"</a>
            </div>
        </content>

        <dc:subject>AllVideos</dc:subject>
<dc:subject>AVReloaded</dc:subject>
<dc:subject>GB4k.com</dc:subject>
<dc:subject>Joomla</dc:subject>
<dc:subject>JW Player</dc:subject>
<dc:subject>K2</dc:subject>
<dc:subject>PHP</dc:subject>

    </entry>
    <entry>
        <link href="http://www.gizmola.com/blog/archives/100-Get-files-from-subversion-without-creating-a-sandbox-using-svn-export.html" rel="alternate" title="Get files from subversion without creating a sandbox using svn export" type="text/html" />
        <author>
            <name>David Rolston</name>
                    </author>
    
        <issued>2010-02-23T07:27:59Z</issued>
        <created>2010-02-23T07:27:59Z</created>
        <modified>2010-02-23T09:47:52Z</modified>
        <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=100</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=atom0.3&amp;type=comments&amp;cid=100</wfw:commentRss>
    
        <id>http://www.gizmola.com/blog/archives/100-guid.html</id>
        <title mode="escaped" type="text/html">Get files from subversion without creating a sandbox using svn export</title>
        <content type="application/xhtml+xml" xml:base="http://www.gizmola.com/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                One of the first things people learn about using subversion is how to do a "checkout" using <a href="http://www.gizmola.com/blog/exit.php?url_id=1297&amp;entry_id=100"  onmouseover="window.status='http://svnbook.red-bean.com/en/1.4/svn-book.html#svn.ref.svn.c.checkout';return true;" onmouseout="window.status='';return true;"  title="svn checkout">svn co</a>.  The svn checkout command pulls files from the subversion repository into your "sandbox" and in so doing creates what subversion calls a "working copy".  A working copy includes a <em>.svn</em> directory in every subdirectory of the working copy, which is chock full of directories and files that svn uses to determine what you're doing in your sandbox.<br />
<br />
A "working copy" is designed to be just that -- a copy of the source tree built with the assumption that you will be making changes and committing them back to subversion. But what do you do if you want the files, but you don't need or want a sandbox?<br />
<br />
 <br /><a href="http://www.gizmola.com/blog/archives/100-Get-files-from-subversion-without-creating-a-sandbox-using-svn-export.html#extended">Continue reading "Get files from subversion without creating a sandbox using svn export"</a>
            </div>
        </content>

        <dc:subject>php</dc:subject>
<dc:subject>subversion</dc:subject>
<dc:subject>svn</dc:subject>
<dc:subject>svn checkout</dc:subject>
<dc:subject>svn co</dc:subject>
<dc:subject>svn export</dc:subject>
<dc:subject>web development</dc:subject>
<dc:subject>Zend Framework</dc:subject>

    </entry>
    <entry>
        <link href="http://www.gizmola.com/blog/archives/99-Finding-Next-Monday-using-MySQL-Dates.html" rel="alternate" title="Finding &quot;Next Monday&quot; using MySQL Dates" type="text/html" />
        <author>
            <name>David Rolston</name>
                    </author>
    
        <issued>2009-12-02T06:18:39Z</issued>
        <created>2009-12-02T06:18:39Z</created>
        <modified>2009-12-02T09:34:01Z</modified>
        <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=99</wfw:comment>
        <slash:comments>6</slash:comments>
        <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=atom0.3&amp;type=comments&amp;cid=99</wfw:commentRss>
    
        <id>http://www.gizmola.com/blog/archives/99-guid.html</id>
        <title mode="escaped" type="text/html">Finding &quot;Next Monday&quot; using MySQL Dates</title>
        <content type="application/xhtml+xml" xml:base="http://www.gizmola.com/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Several people who read my article on <a href="blog/archives/51-Exploring-Mysql-CURDATE-and-NOW.-The-same-but-different..html"  title="Exploring Mysql CURDATE and NOW. The same but different">Exploring Mysql CURDATE and NOW. The same but different</a> posed questions regarding how to return a valid MySQL date equivalent to "Next Monday" given any particular day, as determined by MySQL's CURDATE().  This is a little bit tricky, but can be done entirely in MySQL syntax, making it usable with Calendar applications built on top of MySQL queries, without the need to use serverside date functions.  This builds upon concepts discussed in my prior article, so if you have trouble understanding the implications of using CURDATE or DATE_ADD, you should probably take a minute and read that article. <br /><a href="http://www.gizmola.com/blog/archives/99-Finding-Next-Monday-using-MySQL-Dates.html#extended">Continue reading "Finding &quot;Next Monday&quot; using MySQL Dates"</a>
            </div>
        </content>

        <dc:subject>CURDATE</dc:subject>
<dc:subject>DateTime</dc:subject>
<dc:subject>DATE_ADD</dc:subject>
<dc:subject>DAYOFWEEK</dc:subject>
<dc:subject>MySQL</dc:subject>
<dc:subject>MySQL IF</dc:subject>
<dc:subject>Next Monday</dc:subject>
<dc:subject>Previous Monday</dc:subject>

    </entry>
    <entry>
        <link href="http://www.gizmola.com/blog/archives/97-Centos-Virtual-LAMP-server-Part-II.html" rel="alternate" title="Centos Virtual LAMP server -- Part II" type="text/html" />
        <author>
            <name>David Rolston</name>
                    </author>
    
        <issued>2009-08-05T01:10:08Z</issued>
        <created>2009-08-05T01:10:08Z</created>
        <modified>2010-03-09T19:51:28Z</modified>
        <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=97</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=atom0.3&amp;type=comments&amp;cid=97</wfw:commentRss>
    
        <id>http://www.gizmola.com/blog/archives/97-guid.html</id>
        <title mode="escaped" type="text/html">Centos Virtual LAMP server -- Part II</title>
        <content type="application/xhtml+xml" xml:base="http://www.gizmola.com/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <a href="blog/archives/95-Run-a-Centos-Lamp-development-server-on-XP-using-VirtualBox.html"  title="Part  1 LAMP on VirtualBox">*Part 1 of this series is here*</a><br />
<br />
<h3>Customizing your LAMP server</h3><br />
Unix people are probably familiar with the father of the DNS system -- the /etc/hosts file.  The hosts file has a simple format:<br />
<br />
ipaddress hostname<br />
<br />
In the days prior to DNS, people would update a master hosts file and copy it around to all the servers in the enterprise.  Surprisingly Windows versions also support this file, as a way of overriding DNS, so we can use this to our advantage, by adding an entry for our development server.  In this example, I'm going to use dev.gizmola.com, which is not a real server.<br />
<br />
One important reason to do this is that Apache and other web servers, use a feature of HTTP 1.1 that specifies a header field named "Host:".  This mechanism facilitates the service of multiple domains from a single apache server, through the configuration of apache virtual host (or vhost) entires.  The server uses the Host name in the HTTP header to determine how to route requests, so without host name resolution. you have to use non-standard ports and other mechanisms that are more trouble than they're worth. a<br />
<br />
 <br /><a href="http://www.gizmola.com/blog/archives/97-Centos-Virtual-LAMP-server-Part-II.html#extended">Continue reading "Centos Virtual LAMP server -- Part II"</a>
            </div>
        </content>

        <dc:subject>apache</dc:subject>
<dc:subject>LAMP</dc:subject>
<dc:subject>mysql</dc:subject>
<dc:subject>php</dc:subject>
<dc:subject>remi</dc:subject>
<dc:subject>virtualbox</dc:subject>
<dc:subject>virtualization</dc:subject>
<dc:subject>yum</dc:subject>

    </entry>
    <entry>
        <link href="http://www.gizmola.com/blog/archives/96-Intels-T6500-No-VT-for-you!-Sony-You-got-Vaio-VT-We-turn-it-off..html" rel="alternate" title="Intel's T6500 -- No VT for you!  Sony: You got Vaio VT? We turn it off." type="text/html" />
        <author>
            <name>David Rolston</name>
                    </author>
    
        <issued>2009-07-30T21:48:49Z</issued>
        <created>2009-07-30T21:48:49Z</created>
        <modified>2009-07-31T08:48:42Z</modified>
        <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=96</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=atom0.3&amp;type=comments&amp;cid=96</wfw:commentRss>
    
        <id>http://www.gizmola.com/blog/archives/96-guid.html</id>
        <title mode="escaped" type="text/html">Intel's T6500 -- No VT for you!  Sony: You got Vaio VT? We turn it off.</title>
        <content type="application/xhtml+xml" xml:base="http://www.gizmola.com/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                At the time I'm writing this, you can easily find websites still listing the specifications for Intel's T6500 chip as including Intel VT.  The T6500 is prevalent in the consumer Notebook space particularly because it was built to work with an 800mhz front side bus, allowing it to go in cheaper motherboards.  You'll find the T6500 in a lot of midrange and budget 64bit notebook computers, from nearly all the major notebook manufacturers.  Whether or not you care about VT depends on your interest in 64bit Virtualization software from Parallels to VMWare to Sun Virtualbox to Xen to VirtualPC.  <br />
<br />
VT is a marketing name for the hardware assisted virtualization workaround, originally named Vanderpool, that adds the Virtual Machine Extensions (VMX) instructions needed by VM's like Xen and Sun VirtualBox to provide 64bit OS virtualization.   AMD has a similar set of extensions it added, marketed as AMD-V, although they built in the memory segmentation support that alleviates the problem with 64bit memory virtualization as far back as the D revisions of their AMD64 chips.   One such website includes this boilerplate--<br />
<br />
<blockquote><br />
T6500 contain Advanced Technologies about Intel Virtualization Technology that increasing manageability, security, and flexibility in IT environments, virtualization technologies like hardware-assisted Intel Virtualization Technology (Intel® VT)<br />
</blockquote><br />
<br />
<div class="serendipity_imageComment_left" style="width: 110px"><div class="serendipity_imageComment_img"><a class='serendipity_image_link' href='http://www.gizmola.com/blog/uploads/images/T6500spec20july2009.JPG'><!-- s9ymdb:193 --><img width='110' height='88'  src="http://www.gizmola.com/blog/uploads/images/T6500spec20july2009.tn.JPG" alt="" /></a></div><div class="serendipity_imageComment_txt">Click to see full size screenshot of original Intel specification.</div></div>If you were to have visited Intel's own site prior to July 20th of 2009, you would have found information indicating that the chip had VT support.  This is a fairly mind boggling omission when you consider that the chip was manufactured, delivered to customers, and has been sold to customers for well over a month before Intel corrected its own site!  On July 21st, Intel updated its website, and VT support is now removed from the specs.  An Intel representative agreed that the information on the site was incorrect, once challenged by a consumer with a T6500 based machine, who had used Intel's own tools to enumerate the features on the chip.<br />
<br />
<blockquote><br />
I am sorry, I was mistaken. Thanks for bringing this to my attention.<br />
<br />
The T6500 does not support VT. I used ark.intel.com as my reference, but as you pointed out, the information turned out to be incorrect. The processor feature information for the T6500 contained within ark.intel.com has been corrected. VT is actually not a feature of the T6500.<br />
<br />
The processor identification tool is correctly reporting that VT is not a supported feature of the Intel® Core2 Duo Processor T6500.<br />
<br />
John S.<br />
Intel Customer Support<br />
</blockquote> <br /><a href="http://www.gizmola.com/blog/archives/96-Intels-T6500-No-VT-for-you!-Sony-You-got-Vaio-VT-We-turn-it-off..html#extended">Continue reading "Intel's T6500 -- No VT for you!  Sony: You got Vaio VT? We turn it off."</a>
            </div>
        </content>

        <dc:subject>64bit</dc:subject>
<dc:subject>Intel T6500</dc:subject>
<dc:subject>Intel VT</dc:subject>
<dc:subject>Sony Vaio</dc:subject>
<dc:subject>T6500</dc:subject>
<dc:subject>Virtualization</dc:subject>

    </entry>
</feed>