<!doctype html>
<!doctype html>
<html lang="en">
<head>
<title>Blog - 2009</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://datacadamia.com/_media/favicon.ico?fetcher=raw&amp;tseed=1616500425" rel="shortcut icon" /><link type="image/png" href="https://datacadamia.com/_media/favicon-32x32.png?fetcher=raw&amp;tseed=1616500424" rel="icon" sizes="32x32" /><link type="image/png" href="https://datacadamia.com/_media/favicon-16x16.png?fetcher=raw&amp;tseed=1616500424" rel="icon" sizes="16x16" /><link type="image/png" href="https://datacadamia.com/_media/apple-touch-icon.png?fetcher=raster&amp;tseed=1616500424" rel="apple-touch-icon" sizes="180x180" /><meta name="generator" content="DokuWiki" />
<meta name="theme-color" content="#008800" />
<meta name="robots" content="noindex,follow" />
<meta name="keywords" content="2009,weblog" />
<meta property="og:url" content="https://datacadamia.com/weblog/2009/start" />
<meta name="apple-mobile-web-app-title" content="Datacadamia - Data and Co" />
<meta name="application-name" content="Datacadamia - Data and Co" />
<meta http-equiv="content-security-policy" content="block-all-mixed-content" />
<meta name="description" content="Blog - 2009" />
<meta property="og:description" content="Blog - 2009" />
<meta property="og:title" content="Blog - 2009" />
<meta property="og:description" content="Blog - 2009" />
<meta property="og:site_name" content="Datacadamia - Data and Co" />
<meta property="og:type" content="website" />
<meta property="fb:app_id" content="486120022012342" />
<meta property="og:locale" content="en_US_POSIX" />
<meta name="generator" content="ComboStrap v1.25.1 (2023-04-28)" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="Blog - 2009" />
<meta name="twitter:creator" content="@combostrapweb" />
<meta name="twitter:creator:id" content="1283330969332842497" />
<meta name="twitter:description" content="Blog - 2009" />
<meta name="twitter:site" content="@datacadamia" />
<meta name="twitter:site:id" content="1269576172670722048" />
<meta name="twitter:image" content="https://datacadamia.com/_media/data_mining/card_puncher_data_processing.jpg?fetcher=raster&amp;tseed=1445105262" />
<meta name="twitter:image:alt" content="Card Puncher Data Processing" />
<meta name="twitter:dnt" content="on" />
<meta name="twitter:widgets:csp" content="on" />
<meta name="twitter:widgets:theme" content="light" />
<meta name="twitter:widgets:border-color" content="#55acee" />
<link rel="search" type="application/opensearchdescription+xml" href="https://datacadamia.com/lib/exe/opensearch.php" title="Datacadamia - Data and Co" />
<link rel="start" href="https://datacadamia.com/" />
<link rel="contents" href="https://datacadamia.com/weblog/2009/start?do=index" title="Sitemap" />
<link rel="manifest" href="https://datacadamia.com/lib/exe/manifest.php" />
<link rel="alternate" type="application/rss+xml" title="Recent Changes" href="https://datacadamia.com/feed.php" />
<link rel="alternate" type="application/rss+xml" title="Current namespace" href="https://datacadamia.com/feed.php?mode=list&amp;ns=weblog:2009" />
<link rel="alternate" type="text/html" title="Plain HTML" href="https://datacadamia.com/_export/xhtml/weblog/2009/start" />
<link rel="canonical" href="https://datacadamia.com/weblog/2009/start" />
<link rel="me" href="https://twitter.com/datacadamia" />
<link class="snippet-minimap-cs" href="https://datacadamia.com/_media/theme/default/components/css/minimap.css?drive=combo&amp;fetcher=raw&amp;tseed=1683084448" crossorigin="anonymous" rel="stylesheet" />
<link class="snippet-bootstrap-cs" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" crossorigin="anonymous" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" rel="stylesheet" />
<!--[if gte IE 9]><!-->
<script class="snippet-bootstrap-cs" src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" crossorigin="anonymous" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" defer=""></script>
<script class="snippet-bootstrap-cs" src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.min.js" crossorigin="anonymous" integrity="sha256-d+FygkWgwt59CFkWPuCB4RE6p1/WiUYCy16w1+c5vKk=" defer=""></script>
<script src="https://code.jquery.com/jquery-3.6.4.min.js" defer="">/*<![CDATA[*/
/*!]]>*/</script>
<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.min.js" defer="">/*<![CDATA[*/
/*!]]>*/</script>
<script>/*<![CDATA[*/var NS='weblog:2009';var JSINFO = {"navigation":"anonymous","ga":{"trackingId":"","gtagId":"UA-6493290-1","anonymizeIp":true,"action":"show","trackOutboundLinks":true,"options":[],"pageview":"\/weblog\/2009\/start","debug":false},"move_renameokay":false,"canonical":":2009:start","id":"weblog:2009:start","namespace":"weblog:2009","ACT":"show","useHeadingNavigation":1,"useHeadingContent":1};
/*!]]>*/</script>
<script src="https://datacadamia.com/lib/exe/js.php?t=dokuwiki&amp;tseed=477657d55ad5255696007c6751ec2807&amp;wcacc=public" defer="">/*<![CDATA[*/
/*!]]>*/</script>
<script type="application/combo+cache+json">/*<![CDATA[*/{":weblog:2009:start":{"metadata":{"result":false,"mtime":"2023-05-03T12:41:44+00:00","file":":b:bb8eb481d6797e1044d410f01e724eae.metadata"},"i":{"result":false,"mtime":"2023-05-03T12:41:44+00:00","file":":b:bb8eb481d6797e1044d410f01e724eae.i"},"xhtml":{"result":false,"mtime":"2023-05-03T12:41:45+00:00","file":":b:bb8eb481d6797e1044d410f01e724eae.xhtml","dependency":[]},"snippet.json":{"result":false,"mtime":"2023-05-03T12:41:45+00:00","file":":b:bb8eb481d6797e1044d410f01e724eae.snippet.json"}},":headerbar":{"metadata":{"result":true,"mtime":"2023-05-03T12:31:09+00:00","file":":e:e99bed79ec512edf8fd9867e50bfa5fe.metadata"},"xhtml":{"result":false,"mtime":"2023-05-03T12:41:45+00:00","file":":e:e99bed79ec512edf8fd9867e50bfa5fe.xhtml","dependency":[]},"snippet.json":{"result":false,"mtime":"2023-05-03T12:41:45+00:00","file":":e:e99bed79ec512edf8fd9867e50bfa5fe.snippet.json"},"i":{"result":true,"mtime":"2023-05-03T12:31:09+00:00","file":":e:e99bed79ec512edf8fd9867e50bfa5fe.i"}},":footerbar":{"metadata":{"result":true,"mtime":"2023-05-03T12:31:09+00:00","file":":5:58dcec51e99dd6f738add266aa56f833.metadata"},"xhtml":{"result":false,"mtime":"2023-05-03T12:41:45+00:00","file":":5:58dcec51e99dd6f738add266aa56f833.xhtml","dependency":[]},"snippet.json":{"result":false,"mtime":"2023-05-03T12:41:45+00:00","file":":5:58dcec51e99dd6f738add266aa56f833.snippet.json"},"i":{"result":true,"mtime":"2023-05-03T12:31:09+00:00","file":":5:58dcec51e99dd6f738add266aa56f833.i"}},":weblog:sidebar":{"metadata":{"result":false,"mtime":"2023-05-03T12:41:45+00:00","file":":8:80c59a3cc90235d5363d2997877ceb12.metadata"},"i":{"result":false,"mtime":"2023-05-03T12:41:45+00:00","file":":8:80c59a3cc90235d5363d2997877ceb12.i"},"xhtml":{"result":false,"mtime":"2023-05-03T12:41:45+00:00","file":":8:80c59a3cc90235d5363d2997877ceb12.xhtml","dependency":[]},"snippet.json":{"result":false,"mtime":"2023-05-03T12:41:45+00:00","file":":8:80c59a3cc90235d5363d2997877ceb12.snippet.json"}}}
/*!]]>*/</script>
<script type="application/ld+json">/*<![CDATA[*/{
    "@context": "https://schema.org",
    "@type": "WebPage",
    "url": "https://datacadamia.com/weblog/2009/start",
    "headline": "Blog - 2009",
    "datePublished": "2018-01-14T16:13:27+00:00",
    "dateModified": "2018-01-14T16:42:23+00:00",
    "publisher": {
        "@type": "Organization",
        "name": "Datacadamia - Data and Co",
        "logo": {
            "@type": "ImageObject",
            "url": "https://datacadamia.com/_media/apple-touch-icon.png?fetcher=raster&amp;tseed=1616500424"
        }
    },
    "speakable": {
        "@type": "SpeakableSpecification",
        "xpath": [
            "/html/head/title"
        ]
    }
}
/*!]]>*/</script>
<script class="snippet-outline-anchor-cs" src="https://cdn.jsdelivr.net/npm/anchor-js@4.3.0/anchor.min.js" crossorigin="anonymous" integrity="sha256-LGOWMG4g6/zc0chji4hZP1d8RxR2bPvXMzl/7oPZqjs=" defer=""></script>
<script class="snippet-outline-anchor-cs">/*<![CDATA[*//* global anchors */
document.addEventListener('DOMContentLoaded', () => {
    anchors.options = {
        placement: 'right',
        icon: '#',
        class: 'anchor-cs',
        visible: "hover"
    };
    anchors
        .add(".outline-heading")
        .add("main section > h2")
        .add("main section > h3")
        .add("main section > h4")
        .add("main section > h5")
        .add("main section > h6")
});

/*!]]>*/</script>
<script class="snippet-menubar-fixed-top-cs">/*<![CDATA[*/(function IIFE() {

    let bodyElementWasChanged = false;
    let fixedMenuSelector = `.navbar[data-type="fixed-top"]`;

    /**
     * anchor scroll:
     * Add the target style before anchor navigation
     * otherwise the content is below the menubar
     */
    window.addEventListener("DOMContentLoaded", function () {

        let fixedNavbar = document.querySelector(fixedMenuSelector)
        if (fixedNavbar == null) {
            return;
        }
        let offsetHeight = fixedNavbar.offsetHeight;
        // correct direct navigation via fragment to heading
        let style = document.createElement("style");
        style.classList.add("menubar-fixed-top")
        // textContent and not innerText (it adds br elements)
        style.textContent = `:target {
  scroll-margin-top: ${offsetHeight}px;
}`;
        document.head.appendChild(style);
    })

    /**
     * We do the work after the first scroll
     * to prevent a bad cls (content layout shift) metrics
     * from Google search
     */
    window.addEventListener("scroll", function () {

        if (bodyElementWasChanged) {
            return;
        }
        // Case on mobile when the menu is expanded
        // in this case, we don't calculate the offset
        // otherwise it would take the height of the menu bar
        let activeElement = document.activeElement;
        if(
            activeElement.classList.contains('navbar-toggler')
            && activeElement.getAttribute("aria-expanded")==="true"
        ){
            return;
        }
        bodyElementWasChanged = true;

        /**
         * The request animation frame is there to
         * update the class on the navbar and the padding on the
         * body at the same time to not have any layout shift
         */
        window.requestAnimationFrame(function () {
            let fixedNavbar = document.querySelector(fixedMenuSelector)
            if (fixedNavbar == null) {
                return;
            }
            let offsetHeight = fixedNavbar.offsetHeight;
            fixedNavbar.classList.add("fixed-top")
            // correct body padding
            document.body.style.setProperty("padding-top", offsetHeight + "px");
        });

    });
})();

/*!]]>*/</script>
<script class="snippet-combo-debounce-cs">/*<![CDATA[*/// noinspection ES6ConvertVarToLetConst
window.combos = (function (module){

    /**
     *
     * @param callBack - the function to debounce
     * @param interval - in ms
     * @param leadingExecution - if true, the execution happens before the interval
     * @returns {(function(): void)|*}
     */
    module.debounce = function (callBack, interval, leadingExecution = false) {

        // the schedule identifier, if it's not null/undefined, a callBack function was scheduled
        let timerId;

        return function () {

            // Does the previous run has schedule a run
            let wasFunctionScheduled = (typeof timerId === 'number');

            // Delete the previous run (if timerId is null, it does nothing)
            clearTimeout(timerId);

            // Capture the environment (this and argument) and wraps the callback function
            let funcToDebounceThis = this, funcToDebounceArgs = arguments;
            let funcToSchedule = function () {

                // Reset/delete the schedule
                clearTimeout(timerId);
                timerId = null;

                // trailing execution happens at the end of the interval
                if (!leadingExecution) {
                    // Call the original function with apply
                    callBack.apply(funcToDebounceThis, funcToDebounceArgs);
                }

            }

            // Schedule a new execution at each execution
            timerId = setTimeout(funcToSchedule, interval);

            // Leading execution
            if (!wasFunctionScheduled && leadingExecution) callBack.apply(funcToDebounceThis, funcToDebounceArgs);

        }

    }

    return module;
}(window.combos || {}));




/*!]]>*/</script>
<script class="snippet-combo-search-box-cs" src="https://datacadamia.com/_media/snippet/js/combo-search-box.js?drive=combo&amp;fetcher=raw&amp;tseed=1683084448" crossorigin="anonymous" defer=""></script>
<script class="snippet-search-cs">/*<![CDATA[*/window.addEventListener('load', function () {


    let getSuggestedPagesAsAnchor = async function (searchTerm) {

        let formData = new URLSearchParams();
        formData.append('call', 'combo');
        formData.append('fetcher', 'page-search');
        formData.append('q', searchTerm);
        let response = await fetch(DOKU_BASE + 'lib/exe/ajax.php',
            {
                method: "POST",
                body: formData,
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
                },
            });
        let htmlSuggestedPages = await response.json();
        if (!Array.isArray(htmlSuggestedPages)) {
            throw Error("The received suggest pages are not in a json array format");
        }
        let divContainer = document.createElement('div');
        for (let suggestPage of htmlSuggestedPages) {
            // Trim to never return a text node of whitespace as the result
            divContainer.insertAdjacentHTML('beforeend',suggestPage.trim())
        }
        return [...divContainer.childNodes];

    }
    combos.searchBox
        .create("internal-search-box", getSuggestedPagesAsAnchor)
        .init();

});
var DOKU_BASE='https://datacadamia.com/';
/*!]]>*/</script>
<script class="snippet-tooltip-cs">/*<![CDATA[*/window.addEventListener('load', function () {
    let namespace = "-bs"
    let version = 5;
    if (typeof jQuery != 'undefined' && typeof jQuery.fn.tooltip.constructor.VERSION !== 'undefined') {
        version = parseInt(jQuery.fn.tooltip.Constructor.VERSION.substr(0, 1), 10);
        if (version < 5) {
            namespace = "";
        }
        jQuery(`[data${namespace}-toggle="tooltip"]`).tooltip();
    } else if (typeof bootstrap.Tooltip.VERSION !== 'undefined') {
        version = parseInt(bootstrap.Tooltip.VERSION.substr(0, 1), 10);
        if (version < 5) {
            namespace = "";
        }
        document.querySelectorAll(`[data${namespace}-toggle="tooltip"]`).forEach(el => new bootstrap.Tooltip(el));
    }
});

/*!]]>*/</script>
<script class="snippet-page-protection-cs">/*<![CDATA[*/window.addEventListener("DOMContentLoaded", function () {
    let navigation = JSINFO["navigation"];
    let acronymPageProtection = "pp";
    let acronymLowQualityPage = "lqpp";
    let acronymLatePublication = "lpp";
    document.querySelectorAll(`[data-${acronymPageProtection}-link="warning"], [data-${acronymPageProtection}-link="login"]`).forEach(element => {
        let tooltipHtml = "";
        let linkType = element.dataset.ppLink;
        let protectionSourceType = element.dataset.ppSource;
        let showTooltip = false;
        switch (linkType) {
            case "warning":
                if (protectionSourceType === acronymLowQualityPage) {
                    showTooltip = true;
                    tooltipHtml = `<h4>Warning: Low Quality Page</h4>
<p>This page has been detected as being of low quality.</p>`;
                    if (element.hasAttribute("title")) {
                        tooltipHtml += "<p>Description: " + element.getAttribute("title") + "</p>";
                    }
                }
                break
            case "login":
                if (navigation === "anonymous") {
                    showTooltip = true;
                    element.addEventListener('click', function (event) {
                        // not pointer-events: none because we need to show a tooltip
                        event.preventDefault();
                    });
                    switch (protectionSourceType) {
                        case acronymLowQualityPage:
                            tooltipHtml = `<h4>Login Required</h4>
<p>This page has been detected as being of low quality. To follow this link, you need to log in.</p>`;
                            break;
                        case acronymLatePublication:
                            tooltipHtml = `<h4>Login Required</h4>
<p>To follow this link, you need to log in (${acronymLatePublication})</p>`;
                            break;
                    }

                }
                break;

        }
        if (showTooltip) {
            // An element may already have a tooltip
            let tooltip = bootstrap.Tooltip.getInstance(element);
            if (tooltip != null) {
                tooltip.dispose();
            }
            element.setAttribute("title", tooltipHtml);
            new bootstrap.Tooltip(element, {
                html: true,
                placement: "top",
                customClass: acronymPageProtection
            });
        }
    });
});

/*!]]>*/</script>
<!--<![endif]-->
<style class="snippet-outline-cs">.outline-heading-cs {
    background-color: inherit;
    /* The content will go outside of the parent
     The border will stop to the end of the content */
    /*noinspection CssInvalidPropertyValue*/
    /* The content may become so long that it goes outside the parent
    max width prevent it */
    max-width: 100%;
    text-decoration: underline #8cacbb solid;
    color: #000;
    font-weight: bold;
}

section.outline-level-3-cs, section.outline-level-4-cs, section.outline-level-5-cs, section.outline-level-6-cs {
    margin-left: 15px;
}

/* No margin left on small screen */
@media (min-width: 0px) and (max-width: 576px) {

    .outline-section-cs {
        margin-left: 0 !important;
    }

}

.outline-section-cs, .outline-header-cs {
    position: relative;
}


</style>
<style class="snippet-outline-heading-numbering-cs">#main-content { counter-set: h2 0 h3 0 h4 0 h5 0 h6 0; }
#main-content h2.outline-heading-cs::before { counter-increment: h2; counter-set: h3 0 h4 0 h5 0 h6 0; content: "" counter(h2, decimal) " - \A"; }
#main-content h3.outline-heading-cs::before { counter-increment: h3; counter-set: h4 0 h5 0 h6 0; content: "" counter(h2, decimal) "." counter(h3,decimal) " - \A"; }
#main-content h4.outline-heading-cs::before { counter-increment: h4; counter-set: h5 0 h6 0; content: "" counter(h2, decimal) "." counter(h3,decimal) "." counter(h4,decimal) " - \A"; }
#main-content h5.outline-heading-cs::before { counter-increment: h5; counter-set: h6 0; content: "" counter(h2, decimal) "." counter(h3,decimal) "." counter(h4,decimal) "." counter(h5,decimal) " - \A"; }
#main-content h6.outline-heading-cs::before { counter-increment: h6; content: "" counter(h2, decimal) "." counter(h3,decimal) "." counter(h4,decimal) "." counter(h5,decimal) "." counter(h6,decimal) " - \A"; }</style>
<style class="snippet-heading-cs">h1, h2, h3, h4, h5, h6 {
    /** same as p */
    margin-bottom: 1rem;
}
</style>
<style class="snippet-toc-cs">.toc-cs ul {
    list-style: none;
}
.toc-cs > ul {
    padding-left: 0;
}

.toc-cs li {
    padding-left: initial;
}

/*Interactive elements like buttons and links should be large enough (48x48px)*/
.toc-cs a {
    display: inline-block;
    padding-top: 0.375rem;
    padding-bottom: 0.375rem;
    font-size: 1rem;
    line-height: 1.8;
}

.toc-cs a:not(:hover) {
    text-decoration: none;
}

.toc-cs .toc-header-cs {
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
    text-decoration: underline;
    text-underline-offset: 0.4rem;
    font-size: 1rem;
    font-weight: 500;
}
</style>
<style class="snippet-toc-numbering-cs">.toc-cs ul li { counter-increment: toc2; }
.toc-cs ul li li { counter-increment: toc3; }
.toc-cs ul li li li { counter-increment: toc4; }
.toc-cs ul li li li li { counter-increment: toc5; }
.toc-cs ul li li li li li { counter-increment: toc6; }
.toc-cs ul li a::before { content: "" counter(toc2, decimal) " - \A"; }
.toc-cs ul li li a::before { content: "" counter(toc2, decimal) "." counter(toc3,decimal) " - \A"; }
.toc-cs ul li li li a::before { content: "" counter(toc2, decimal) "." counter(toc3,decimal) "." counter(toc4,decimal) " - \A"; }
.toc-cs ul li li li li a::before { content: "" counter(toc2, decimal) "." counter(toc3,decimal) "." counter(toc4,decimal) "." counter(toc5,decimal) " - \A"; }
.toc-cs ul li li li li li a::before { content: "" counter(toc2, decimal) "." counter(toc3,decimal) "." counter(toc4,decimal) "." counter(toc5,decimal) "." counter(toc6,decimal) " - \A"; }</style>
<style class="snippet-brand-current-link-solid-cs">.brand-current-link-solid-cs {
    padding:0.375rem 0.375rem;
    vertical-align:middle;
    display:inline-block;
    color:#075EBB!important;
}</style>
<style class="snippet-dokuwiki-cs">/**
 * A stylesheet to fight the dokuwiki template css rules
 *
 * Reversing Bad height default: https://github.com/splitbrain/dokuwiki/issues/3690
 * In all.css
 */
.svg-cs { height: auto; }

.blockquote-cs { padding: initial }
</style>
<style class="snippet-link-cs">a.link-external:not(.btn):not(.nav-link):not(.dropdown-item) {
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAABdklEQVR4AWMgAVRo1zY3rGk41rC+rqvCBCJWBpPM4WoomLHtdtuv/t9Lfk263TtrQ0t7Oj9cbzZDc/W6s/8T7khD+P+F/8bv29PZlswJVVBu0vPuVZyNYHFZbmAqE1SR0cbjXR6pjGBO58am962Ta3e3ftqy6B5LCcMasOj7gInrm9jBzI4vTX+bfjT/7/4/p/w/zFXybUmt71u4wJzGfxP/t/xvA+KaP2XnQSKVFpWPav/U/6+HKJjz++OVJUDp1n9N/+r+19QyMCz1mPC/8X/X/26Igrn3GiUeL5n/v+F/8//6/9NOMTC0hDUDefP/L4MoOL6ickVeSQ1QqAGooPdBJE/lnloge/fhixBHftFd9bLkR83/+n/1QAXVP8qX1Pyv/L/s/12f/4xQNz8s3Pa/6X/Vvzqgour/5f/r/q//f2fmLy54WP7lfJN74eMSoKIyoNFz/5/+9ar+Px9aZL3Xfjvz7aO3/96+eLvsnSVE7CPhOAYA9nvIX0UoNU8AAAAASUVORK5CYII=);
    background-repeat: no-repeat;
    background-position: 0 center;
    padding: 0 0 0 18px;
}

a.link-mail:not(.btn):not(.nav-link):not(.dropdown-item) {
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAABOUlEQVR4AaXJMWoUUQDG8f/33ltldyZB3E2xaCAxIQREFKwD2lhb6QmsxMIL6BlU8AhCjmBADdqlWLyACKZKF7LZmUzmzXwiSMTKwl/7478Jng9OXa5fviRzwTS5/j40OcHo2fSofH10tUcXHVg9q54cj3kleOnRj/uHh3e+FVgCbK2drX/dn5xuogAD8uqnyfXZRi3J+tXN2uxj2WwkEgFw0vnW3srmwbU2K2uat2fvi/ObSbII0Kl3VL+9O975PPXEOwe7sb8dZXfqSGB6YWm89Wb+dF+jt+3K3ZoeYUDwwgOjK14wV7tHNXhYUvgEqzUhQeegZVcsSOYBRFeCIXN3ggBoiYYTJBOJIHmhhiWEEHzwl3ycIhjxm5y1nO8FYoJbj268A0D8ISAWj0HQyEOE+Zuwasy//ATU93+97E8p8AAAAABJRU5ErkJggg==);
    background-repeat: no-repeat;
    background-position: 0 center;
    padding: 0 0 0 18px;
}
</style>
<style class="snippet-anchor-cs">.link-primary {
    color: var(--bs-link-color)
}

.link-primary:hover {
    color: var(--bs-link-hover-color)
}

#page-main a {
    color: var(--bs-link-color)
}

#page-main a:hover {
    color: var(--bs-link-hover-color)
}

#page-footer a {
    color: var(--bs-link-color)
}

@media (prefers-reduced-motion: reduce) {
    .anchorjs-link {
        transition: none
    }
}
</style>
<style class="snippet-bar-cs">.bar {
    position: relative;
    overflow: auto;
    margin: 0;
    width: 100%;
    display: block;
    border-radius: 0; /* not rounded */
}



</style>
<style class="snippet-hero-cs">@media (max-width:576px) {

    .hero-sm {
        padding: 1rem 1rem
    }

    .hero-md {
        padding: 2rem 1rem;
    }

    .hero-xl {
        padding: 4rem 1rem;
    }

    .hero-lg {
        padding: 3rem 1rem;
    }

}

@media (min-width: 576px) {

    .hero-sm {
        padding: 1rem 1rem
    }

    .hero-md {
        padding: 2rem 1rem;
    }

    .hero-lg {
        padding: 3rem 1rem;
    }

    .hero-xl {
        padding: 4rem 1rem;
    }

}

@media (min-width: 768px) {

    .hero-sm {
        padding: 2rem 1rem;
    }

    .hero-md {
        padding: 4rem 2rem;
    }

    .hero-lg {
        padding: 6rem 3rem;
    }

    .hero-xl {
        padding: 8rem 4rem;
    }

}
</style>
<style class="snippet-lqpp-cs">.low-quality-page-cs {
    text-decoration: none;
}
</style>
<style class="snippet-tooltip-cs">.tooltip-inner {
    text-align:unset;
}
.tooltip-inner>p:last-child {
    margin-bottom: 0.25rem
}
.tooltip-inner>h1,.tooltip-inner>h2,.tooltip-inner>h3,.tooltip-inner>h4,.tooltip-inner>h5,.tooltip-inner>h6 {
    text-transform: capitalize;
}
/** same as abbr **/
span[data-bs-toggle="tooltip"] { text-decoration: underline dotted; }
span[data-toggle="tooltip"] { text-decoration: underline dotted; }
</style>
<style class="snippet-template-cs">main > *, #page-core {
    min-width: 0; /** not auto */
}

@media (min-width: 768px) {

    #page-core {
        display: grid;
        gap: 1.5rem;
        grid-template-areas: "page-side page-main";
        grid-template-columns: minmax(min-content,1fr) 3fr;
    }

    #page-side {
        grid-area: page-side;
    }

    #page-main {
        grid-area: page-main;
        display: grid;
        grid-auto-flow: row;
    }

}


</style>
<style class="snippet-dokuwiki-smiley-cs">/** Smiley */
img.smiley { max-height: 1.2em; }
</style>
<style>
        body {
            font-size: 16px
        }
    </style>
<style>
        :root {
            --bs-primary: #075EBB;
            --bs-link-color: #476585;
            --bs-link-hover-color: #0d6bcf;
            --cs-primary-color-text: #476585;
            --cs-primary-color-text-hover: #0d6bcf;
        }
        .btn-primary {
            --bs-btn-bg: #075EBB;
            --bs-btn-border-color: #075EBB;
        }
    </style>

<style>
    .page-side-toggle:not(.collapsed) .page-side-expand {
        display: none;
    }
    .page-side-toggle .page-side-expand {
        display: inline-block;
    }
    .page-side-toggle:not(.collapsed) .page-side-collapse {
        display: inline-block;
    }
    .page-side-toggle .page-side-collapse {
        display: none;
    }
    #page-side-control {
        border: 1px solid #dee2e6;
        border-radius: 0.375rem;
        padding: 0.375rem 0.75rem;
        color: #6c757d;
        font-size: smaller;
    }
</style>
</head>
<body>
<header id="page-header" class="d-print-none mb-3">
<nav class="navbar navbar-expand-lg navbar-light" data-type="fixed-top" style="background-color:var(--bs-light)">
<div class="container"><a class="btn brand-current-link-solid-cs navbar-brand link-cs link-brand-cs" href="https://datacadamia.com" title="Home" accesskey="h">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" data-name="logo" width="36" height="36" fill="currentColor" class="svg-cs d-inline-block align-text-top svg-icon-cs"><path fill="#075EBB" d="M9,7V17H13A2,2 0 0,0 15,15V9A2,2 0 0,0 13,7H9M11,9H13V15H11V9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z" class="logo-0" /></svg>ataCadamia
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarcollapse" aria-controls="navbarcollapse" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div id="navbarcollapse" class="collapse navbar-collapse">
<a class="link-external btn btn-secondary me-2 mb-2 mt-2 mb-lg-0 mt-lg-0 link-cs link-secondary-cs" href="http://eepurl.com/gEIaJj" role="button" rel="noopener nofollow ugc" target="_blank" style="color:#fff;background-color:#6c757d;border-color:#6c757d">Subscribe</a>
<ul class="navbar-nav me-auto">
</ul>
<form id="dw__search" action="https://datacadamia.com/start" accept-charset="utf-8" method="get" role="search" class="search-cs d-flex align-middle mb-0 mr-0 pr-0 pl-3">
<input type="hidden" name="do" value="search" />
<input type="hidden" name="id" value="weblog:2009:start" />
<label class="visually-hidden" for="internal-search-box">Search Term</label>
<input class="edit form-control" type="text" id="internal-search-box" name="q" placeholder="Search... (Alt+Shift+F)" autocomplete="off" accesskey="f" title="[F]" />
</form></div>
</div></nav>
</header>
<div id="page-core" class="container position-relative">
 <aside id="page-side" class="d-print-none">
<button id="page-side-control" class="btn page-side-toggle d-md-none collapsed mb-3" type="button" data-bs-toggle="collapse" data-bs-target="#page-side-collapsable" aria-controls="page-side-collapsable" aria-expanded="false" aria-label="Toggle Page Side">
<span class="page-side-expand">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" viewBox="0 0 16 16">
<title>Expand</title>
<path fill-rule="evenodd" d="M1 8a.5.5 0 0 1 .5-.5h13a.5.5 0 0 1 0 1h-13A.5.5 0 0 1 1 8zM7.646.146a.5.5 0 0 1 .708 0l2 2a.5.5 0 0 1-.708.708L8.5 1.707V5.5a.5.5 0 0 1-1 0V1.707L6.354 2.854a.5.5 0 1 1-.708-.708l2-2zM8 10a.5.5 0 0 1 .5.5v3.793l1.146-1.147a.5.5 0 0 1 .708.708l-2 2a.5.5 0 0 1-.708 0l-2-2a.5.5 0 0 1 .708-.708L7.5 14.293V10.5A.5.5 0 0 1 8 10z"></path>
</svg>
Expand Sidebar
</span>
<span class="page-side-collapse">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" viewBox="0 0 16 16">
<title>Collapse</title>
<path fill-rule="evenodd" d="M1 8a.5.5 0 0 1 .5-.5h13a.5.5 0 0 1 0 1h-13A.5.5 0 0 1 1 8zm7-8a.5.5 0 0 1 .5.5v3.793l1.146-1.147a.5.5 0 0 1 .708.708l-2 2a.5.5 0 0 1-.708 0l-2-2a.5.5 0 1 1 .708-.708L7.5 4.293V.5A.5.5 0 0 1 8 0zm-.5 11.707l-1.146 1.147a.5.5 0 0 1-.708-.708l2-2a.5.5 0 0 1 .708 0l2 2a.5.5 0 0 1-.708.708L8.5 11.707V15.5a.5.5 0 0 1-1 0v-3.793z"></path>
</svg>
Collapse Sidebar
</span>
</button>
<div id="page-side-collapsable" class="collapse d-md-block">
<div id="minimap__plugin"><div class="panel panel-default"><div class="panel-heading"><a class="link-internal low-quality-page-cs link-cs" data-pp-link="warning" data-pp-source="lqpp" data-wiki-id="weblog:2009:start" href="https://datacadamia.com/weblog/2009/start" title="Blog - 2009 (LQPP)">Blog - 2009</a> <span class="label label-primary">8 pages</span></div><ul class="list-group"><li class="list-group-item "><a class="link-internal low-quality-page-cs link-cs" data-pp-link="warning" data-pp-source="lqpp" data-wiki-id="weblog:2009:0410-obiee-how-to-suppress-detail-rows-of-a-master-group-in-a-pivot-view" href="https://datacadamia.com/weblog/2009/0410-obiee-how-to-suppress-detail-rows-of-a-master-group-in-a-pivot-view" title="You have detail row of a group in a pivot table that you want suppress as this :    We have two solutions :    if you don’t need a total by “promo Category” (by post or by internet), you can create a new dimension with a formueach (LQPP)">Obiee 10G – How to suppress detail rows of a master group in a pivot view ?</a></li><li class="list-group-item "><a class="link-internal low-quality-page-cs link-cs" data-pp-link="warning" data-pp-source="lqpp" data-wiki-id="weblog:2009:0417-a-special-subject-area-to-handle-the-dashboard-parameters-prompts" href="https://datacadamia.com/weblog/2009/0417-a-special-subject-area-to-handle-the-dashboard-parameters-prompts" title="All the prompts in OBIEE are column based prompt. You can’t create a prompt if you don’t select a column. And as it’s the only way to set up a variable for a formula, it’s impossible to bypass this constraint.  In our case, we don’t care  the value in the dimension column as we want parameter values as for instance the hierarchy level :TWO (LQPP)">Obiee 10G – A special subject area to handle the dashboard parameters prompts</a></li><li class="list-group-item "><a class="link-internal link-cs" data-wiki-id="weblog:2009:0418-obiee-period-to-period-comparison-with-the-analytical-function-laglead" href="https://datacadamia.com/weblog/2009/0418-obiee-period-to-period-comparison-with-the-analytical-function-laglead" title="During &lt;http://forums.oracle.com/forums/message.jspa?messageID=3403773#3403773&gt;this thread on the Obiee forum, &lt;http://108obiee.blogspot.com/&gt;Goran point out a solution for a period to period comparison with the analytical function lag. It was time for me to drill down in this analytical function and to compare it with the obiee time function :aglag and leaMoredensewith sparse datdensObiee Ago Functioevaluate…">Obiee 10G – Period to period comparison with the analytical function Lag/Lead</a></li><li class="list-group-item "><a class="link-internal low-quality-page-cs link-cs" data-pp-link="warning" data-pp-source="lqpp" data-wiki-id="weblog:2009:0425-obiee-and-apex-integration" href="https://datacadamia.com/weblog/2009/0425-obiee-and-apex-integration" title="You may have sometime the need to change some data in your application.  Apex is a great tool that allow you to develop and deploy rapidly a web based application.  Here for our example, we must access to a vendor Apex form to change some values on it.pocserver01:7777plsmod_plsqlapexf?p=10321451367446716618P2_MDM_SOURCE_SYSTEM_ID,P2_VENDOR_IDSAP7:DEC-001 (LQPP)">Obiee 10g and Apex Integration</a></li><li class="list-group-item "><a class="link-internal low-quality-page-cs link-cs" data-pp-link="warning" data-pp-source="lqpp" data-wiki-id="weblog:2009:0426-obiee-how-to-configure-the-mail-server-of-oracle-bi-schedulerdelivers" href="https://datacadamia.com/weblog/2009/0426-obiee-how-to-configure-the-mail-server-of-oracle-bi-schedulerdelivers" title="This article talk  the configuration of the smtp mail server of Oracle BI Scheduler. To set up the smtp server, you must enter at least this information as :    the sender address   the smtp server   the smtp port  To be able to save an Ibot, you must have performed theinitial configurationWhy ?Smtp Ssl AolSmtp Ssl Oranadministration tooperiod to period comparison lag report (LQPP)">Obiee 10G – How to configure the Mail server of Oracle BI Scheduler/Delivers</a></li><li class="list-group-item "><a class="link-internal low-quality-page-cs link-cs" data-pp-link="warning" data-pp-source="lqpp" data-wiki-id="weblog:2009:0512-densification-with-obiee-logical-sql-spare-to-dense-data" href="https://datacadamia.com/weblog/2009/0512-densification-with-obiee-logical-sql-spare-to-dense-data" title="You may want to view the data in dense form, with rows for all combination of dimension values displayed even when no fact data exist for them.  And it’s also the most problem that you have when you work with time series calculations as the lag/lead function, is that the data are not dense.  This article show the capability of theOBIEE logical sqdensifyVenkatakrishnOBIEE logical sqthe densification solution with cross and right outer josh schema (LQPP)">Obiee 10G - Densification with the OBIEE logical Sql (Sparse to dense data)</a></li><li class="list-group-item "><a class="link-internal low-quality-page-cs link-cs" data-pp-link="warning" data-pp-source="lqpp" data-wiki-id="weblog:2009:0528-obi-forum-live-second-edition" href="https://datacadamia.com/weblog/2009/0528-obi-forum-live-second-edition" title="I’m going to present in the &lt;http://www.obi-forumlive.nl/&gt;OBI Forum Live the next week on the 3th Wednesday of Juny 2009.  This second edition is really impressive and as I see that we will have parallel sessions, I’m already very disappointed because I couldn’t assist to all presentations :John MinkjanEmiel van BockelGerard BraatMark Rittmanthe Brighton BI Foruma strange ducObieMaster Data Management Projectsign up / schrijf je nu in ! (LQPP)">OBI Forum Live Second Edition</a></li><li class="list-group-item "><a class="link-internal low-quality-page-cs link-cs" data-pp-link="warning" data-pp-source="lqpp" data-wiki-id="weblog:2009:1029-oracle-warehouse-builder-11g-getting-started-paperback-by-robert-griesemer" href="https://datacadamia.com/weblog/2009/1029-oracle-warehouse-builder-11g-getting-started-paperback-by-robert-griesemer" title="&lt;http://www.packtpub.com/getting-started-with-oracle-warehouse-builder-11g?utm_source=gerardnico.com&amp;utm_medium=bookrev&amp;utm_content=blog&amp;utm_campaign=mdb_001193&gt;  &lt;http://www.packtpub.com/getting-started-with-oracle-warehouse-builder-11g?utm_source=gerardnico.com&amp;utm_medium=bookrev&amp;utm_content=blog&amp;utm_campaign=mdb_001193&gt;Oracle Warehouse Builder 11g: Getting Started by Robert Griesemer – ISBN 1847195741  Packt Publishing offer me the chance to review this book and I want to thank them as the au… (LQPP)">Book review: Oracle Warehouse Builder 11g: Getting Started by Robert Griesemer</a></li></ul></div></div>
</div>
</aside>
<main id="page-main">
<div id="main-content">
<section class="outline-section-cs outline-level-0-cs section-cs"><section class="outline-section-cs outline-level-1-cs section-cs"><h1 class="outline-heading-cs heading-cs" id="blog_-_2009">Blog - 2009</h1></section></section>
</div>
</main>
<div id="page-tool" class="d-print-none">
</div>
</div>
<footer id="page-footer" class="d-print-none">
<div class="bar hero-sm bar-cs"><div class="bar-body position-relative container"><div class="row-cols-1 row-cols-sm-2 row-cols-md-3 row-cols-lg-4 row gy-5 justify-content-center m-3 grid-cs grid-max-cs"><div class="col box-cs"><strong>Data (State)</strong><br />
<a class="link-internal link-cs" data-wiki-id="data:data" href="https://datacadamia.com/data/data" title="This section is   and state management as opposed to code.  System that manages data are called database.  In a computer, there is two kinds of byte    instruction byte   and data byte.  This section is  data byte also known as:   operanvaluvalueDatadatumthing givendatadatumeasurementrusstructured informatiomeaningInteractive Data Visualization for the Web - Chapter 5. DataAlways keep one hand firmly on datasmall amount (OLTP data…">Data (State)</a><br />
<a class="link-internal link-cs" data-wiki-id="data:database:start" href="https://datacadamia.com/data/database/start" title="A Database_management_systemDBMS is a set of software programs that controls the organization, storage, management, and retrieval of data.  A database is a collection of permanently stored data used by an application or enterprise. A database contains logically related data, which means that the database was created to represent the rea">DataBase</a><br />
<a class="link-internal link-cs" data-wiki-id="data:processing:processing" href="https://datacadamia.com/data/processing/processing" title="Data processing is a more general term for manipulating data whereas data integration is the integration of data between two systems.        Data Integration has roughly two data processing model:  Model  stream processing  Send a message to another process, to be handled asynchronouslybatch processinSelectivitOLAad-hooperationsCard punchelineage reportMagic Quadrant for Data Integration Tools - Gartner">Data Processing</a><br />
<a class="link-internal link-cs" data-wiki-id="data:quality:quality" href="https://datacadamia.com/data/quality/quality" title="measures the quality of data through  metrics and try to improve them.    You will find it in two main domains :    The management of attribute data with the Master Data Management (MDM)   The management of data during the loading process.       &lt;https://www.ucar.edu/learn/1_6_1.htm&gt;National Center for Atmospheric Research">Data Quality</a><br />
<a class="link-internal link-cs" data-wiki-id="data:type:type" href="https://datacadamia.com/data/type/type" title="A type is the classification of value according to:    how they are represented (the structure)   the properties that they have (the operations)  A data structure is a complex data type that can not be compared/represented by a unique value.        Rows and columns (Matrix, TableNodes and edgeCommit Lokey-value pairbytProcedural languaMike BostockPure functional data structures">Data Structure</a><br />
<a class="link-internal link-cs" data-wiki-id="data:type:type" href="https://datacadamia.com/data/type/type" title="A type is the classification of value according to:    how they are represented (the structure)   the properties that they have (the operations)  A data structure is a complex data type that can not be compared/represented by a unique value.        Rows and columns (Matrix, TableNodes and edgeCommit Lokey-value pairbytProcedural languaMike BostockPure functional data structures">Data Type</a><br />
<a class="link-internal link-cs" data-wiki-id="data:warehouse:start" href="https://datacadamia.com/data/warehouse/start" title="A data warehouse is a large central data repository  of current, history and summarised data coming from operational and external sources used primarily for analysis.  s is large historical databases for decision-support that are loaded with new data on a periodic basisSingle Version of the trutBBusiness Intelligenceon-line analytical processing (OLAPcommutativlayers (Staging Area, DataWarehouse, Data Mart,lookup tablegranularitiegranularitDataWarehouse Platform F…">Data Warehouse</a><br />
<a class="link-internal link-cs" data-wiki-id="data:viz:viz" href="https://datacadamia.com/data/viz/viz" title="The Utah Teapot.    Data visualization is the process of mapping quantitative data to visuals (shapes, color, position, etc) to create a graph made of geometric object.    Information visualization:    is defined as “visual representations of abstract data to amplify cognition”.   is not useful when the information is specific (for asingle instancpictureTess FlandescenecharVisual EncodinData TypTablRing ChartFlow ChartsA periodic table of visualization methor…">Data Visualization</a><br />
<a class="link-internal link-cs" data-wiki-id="data:partition:partition" href="https://datacadamia.com/data/partition/partition" title="A partition cut out the storage in several part according to a predicate.   You can have two types of partition :    horizontal (sharding) (related to a cutting by row)   vertical (related to a cutting by column)  Partition can be located: with more than 20 million rows">Data Partition</a><br />
<a class="link-internal link-cs" data-wiki-id="data:persistence:persistence" href="https://datacadamia.com/data/persistence/persistence" title="Persistence refers to the ability to store code objects on the disk. In an enterprise application, data is typically stored and persisted in the data tier, in a relational database.   is the ability to maintain data between application/process executionJava Persistence  (JPAobject-relational mappinEJB 3.0">Data Persistence</a><br />
<a class="link-internal link-cs" data-wiki-id="data:concurrency:start" href="https://datacadamia.com/data/concurrency/start" title="application  Asynchronous programming is notoriously difficult because the order of operations is highly unpredictable.   From a classic computing perspective, concurrent and parallel are clearly synonyms but:    concurrency is  data structure   and parallel is  procesparalleconcurrency desigfunctional programmintransactiosynchronizatioShared-memory (shared-dataTransactional Data Structure Libraries - Alexander Spiegelman, Guy G…">Data Concurrency</a><br />
</div><div class="col box-cs"><strong>Data Science</strong><br />
<a class="link-internal link-cs" data-wiki-id="data_mining:start" href="https://datacadamia.com/data_mining/start" title="The terms pattern recognition, machine learning, data mining and knowledge discovery in databases (KDD) are hard to separate, as they largely overlap in their scope.Machine Learninsupervised learning methodKDD and data mininunsupervised methodcomputer vMachine LearninKnowledge DiscoverData DiscoveJohn Hopcroftheidelberg laureate forum 2014New York Times in 2009st…">Data Analysis</a><br />
<a class="link-internal link-cs" data-wiki-id="data_mining:start" href="https://datacadamia.com/data_mining/start" title="The terms pattern recognition, machine learning, data mining and knowledge discovery in databases (KDD) are hard to separate, as they largely overlap in their scope.Machine Learninsupervised learning methodKDD and data mininunsupervised methodcomputer vMachine LearninKnowledge DiscoverData DiscoveJohn Hopcroftheidelberg laureate forum 2014New York Times in 2009st…">Statistics</a><br />
<a class="link-internal link-cs" data-wiki-id="data_mining:start" href="https://datacadamia.com/data_mining/start" title="The terms pattern recognition, machine learning, data mining and knowledge discovery in databases (KDD) are hard to separate, as they largely overlap in their scope.Machine Learninsupervised learning methodKDD and data mininunsupervised methodcomputer vMachine LearninKnowledge DiscoverData DiscoveJohn Hopcroftheidelberg laureate forum 2014New York Times in 2009st…">Data Science</a><br />
<a class="link-internal link-cs" data-wiki-id="linear_algebra:linear_algebra" href="https://datacadamia.com/linear_algebra/linear_algebra" title="“Linear” “algebra” is the branch of mathematics:     concerning vector spaces, often finite or countably infinite dimensional,    as well as linear mappings between such spaces.   Such an investigation is initially motivated by a system of linear equations in several unknowns. Such equations are naturally represented using the formalism ofmatricevectorsCoding the Matrix - CourseraCoding the Matrix:  through Computer Science Applications by Philip N. Klein…">Linear Algebra</a>
<a class="link-internal low-quality-page-cs link-cs" data-pp-link="warning" data-pp-source="lqpp" data-wiki-id="mathematics:mathematics" href="https://datacadamia.com/mathematics/mathematics" title="Math is a language. Its algorithms are logical, its concepts proven by deductive and inductive reasoning.  Math models the world.                    &lt;https://www.youtube.com/watch?v=xRJCOz3AfYY&amp;feature=youtu.be&gt;The Math of Intelligence   &lt;https://github.com/pim-book/programmers-introduction-to-mathematics&gt; (LQPP)">Mathematics</a><br />
<a class="link-internal low-quality-page-cs link-cs" data-pp-link="warning" data-pp-source="lqpp" data-wiki-id="trigonometry:trigonometry" href="https://datacadamia.com/trigonometry/trigonometry" title="(from Greek trigōnon, triangle and metron, “measure”) is a branch of mathematics that studies relationships involving:    lengths    and angles   of triangles. (LQPP)">Trigonometry</a></div><div class="col box-cs"><strong>Modeling</strong><br />
<a class="link-internal link-cs" data-wiki-id="process:process" href="https://datacadamia.com/process/process" title="A process may be:    a natural process (ie organizational) performed by human:    or a machine process:                 A process may be seen as a succession:    of state:    of event:   Several processes working together forms a system  It&apos;s ultimately a serie ofoperatiodirected grapgraph visualization tool or librarflow chSankey diagramBusiness process vizualizatioWorkfloSystems_analysis Grap">Process</a><br />
<a class="link-internal link-cs" data-wiki-id="data:modeling:modeling" href="https://datacadamia.com/data/modeling/modeling" title="A data model in software engineering is a graph of entity that try to represent the reality and describes how data are represented and accessed.   the real world consists of entities and relationships.  Way of modeling data:    similar things are calledentitorganized by a nominal attributpackageclassesdata modelinglogical levelimplementation leveprimary keprimary key constrainmadata entitrelationshipprocess-orienteevent-orienteperformanceGay marriage: the database engi…">Logical Data Modeling</a><br />
<a class="link-internal link-cs" data-wiki-id="data:type:relation:modeling:modeling" href="https://datacadamia.com/data/type/relation/modeling/modeling" title="This section is  data Modeling applied to a relational structure (mostly table).  Relational databases normalize data, removing as much duplication as possible.   A relational database’s approach to data modeling is table-centric whereas the NoSql approach is query centric, in which specific queries define the structuredimensional data modeling sectiomultidimen">Relational Modeling</a><br />
<a class="link-internal link-cs" data-wiki-id="data:type:cube:modeling:modeling" href="https://datacadamia.com/data/type/cube/modeling/modeling" title="This section is  dimensional data modeling, That is the building of a cube (hypercube)  A dimensional schema is a schema based on dimension.      The dimensional schema can modeled:    in a relational database as:   a star schema   a snowflake schema    in a OLAP database as a                               dimensiofacdenormalized schemdimension tablefact tableE-R schemaE-R schemadimensiostar schemsnowflak…">Dimensional Modeling</a><br />
<a class="link-internal link-cs" data-wiki-id="automata:automata" href="https://datacadamia.com/automata/automata" title="Automaton (State Machine)    Automata theory is the study of abstract computing devices or machines.  The word automata (the plural of automaton) comes from the Greek word αὐτόματα, which means self-acting  An automaton consists of:    states (represented by circles)    andtransitiondirected grapnode (verticeedgformal language (and therefore computer languageChomsky hierarchRegular expressionused widelFinite automatContext-free grammarUndecidable thingIntractable thingspdf">Automata</a>
</div><div class="col box-cs"><strong>Data Type</strong><br />
<a class="link-internal link-cs" data-wiki-id="data:type:number:number" href="https://datacadamia.com/data/type/number/number" title="A number is a mathematical object used to:    count,    label,    and measure.   Example: When we are interested in the total number of each species of tortoise, or how many individuals there are per square kilometre.   This type of data  is called commonlynumeral system (or system of numerationnumber systefielmathematical functiona + x = ba &amp;gt; Fractionsax = bbRealsx² = Complex numbersx² = -number systenumber sysnumeral system (or system of numerationbase 10:…">Number</a><br />
<a class="link-internal link-cs" data-wiki-id="data:type:time:time" href="https://datacadamia.com/data/type/time/time" title="This section is  time (as time that occurs against a timeline)  It&apos;s a coordinate that orders the occurrence of events.     A time on a timeline is called an instant   A amount of time is called a duration or period.  Every event occurrence can be given a time coordinate value and, based on this, can be said to beYearelapsed ti">Time</a><br />
<a class="link-internal link-cs" data-wiki-id="data:type:text:text" href="https://datacadamia.com/data/type/text/text" title="A character is an atomic unit of text as specified by ISO/IEC 10646:2000 [ISO/IEC 10646]  Every unit of text (character) is assigned a unique integer known as a code point.  All the characters within a string have a common coding representation (ie character set) that translate a code point to a glyph (visual character representation).  A Text representation in computer is aStrindata schemunstructureprogrammatinaturaRegular Expressionstructure of texCode PagCollatioloc…">Text</a><br />
<a class="link-internal link-cs" data-wiki-id="data:type:collection:collection" href="https://datacadamia.com/data/type/collection/collection" title="A collection is a abstract data type for grouping together multiple values.   It&apos;s therefore sometime known as a container and creates a aggregation relationship  A collection is:    an object that groups multiple elements into a single unit.   just a grouping of some objects with the same typeaggregate dataggregate datscalaarraabstract data typeCollection that can be seen as a seSeBaSequencOrderedSeMatrequeustacsequencefirstlasgrapst…">Collection</a><br />
<a class="link-internal link-cs" data-wiki-id="data:type:relation:start" href="https://datacadamia.com/data/type/relation/start" title="This section is based on the relation data structure must well known under the term of table.  The system that manages this structure are called Relational databases (or RDMS) .  They are founded on Set Theory and are based  on the Relational Model, which is a set of principles for relational  databases formalized by Dr. E.F. Codd (an IBM Engineer). The concept was introduced in the late 1960s through a paper titled A Relational Model of Data for Large Shared B…">Relation (Table)</a><br />
<a class="link-internal link-cs" data-wiki-id="data:type:cube:cube" href="https://datacadamia.com/data/type/cube/cube" title="A cube can be thought of as extensions to the two-dimensional array of a spreadsheet.   A cube is also known as:    a multidimensional cube    or a hypercube  It consists of numeric facts called measures which are categorized by dimensions.  The term cube is used because it describes the multidimensional nature of the data, as opposed to the one-dimensional or two-dimensional nature ofrelational tabledimensiodimensionDimensional modelinOLAP csemantic layerDiff…">Cube</a><br />
<a class="link-internal link-cs" data-wiki-id="data:type:tree:tree" href="https://datacadamia.com/data/type/tree/tree" title="A tree is a node that may have children. Tree&apos;s are inherently recursive by definition as each child of a node is a Tree itself, with or without children nodes.    A tree is a special case of a graph structure as this is the only graph that have ahierarchical relationshirooteacycliundirectesymmetrielement (nodeparenroot nodelement (nodechilleaf nodnode (items)abovancestorbelodescendantat the samelevel asiblinf">Tree</a><br />
<a class="link-internal link-cs" data-wiki-id="data:type:key_value:key_value" href="https://datacadamia.com/data/type/key_value/key_value" title="Key value data (known also as Property) are value that have a direct relation with their key.  They can be seen as a set of data modeling attribute.  This kind of data is stored:    in code as:   an collection structure called a associative array or a map.   the fields of an object (ie Javascript property)   variable: a variable has a name and holds also avaluekey valuini fi">Key/Value</a><br />
<a class="link-internal link-cs" data-wiki-id="data:type:graph:graph" href="https://datacadamia.com/data/type/graph/graph" title="A graph is a set of vertices connected by edges. See   Data representation that naturally captures complex relationships is a graph (or network).   Except of the special graph that a tree is, the data structure of a graph is non-hierarchical.  Points are callednodeedData ModelinSocial InteractioworkfloUflowchartdependency trecyclspanninforesGay marriage: the database engineering perspectiveSocial Network Analysis using Oracle Big Data Spatial &amp;amp; Graph (inc…">Graph</a><br />
<a class="link-internal link-cs" data-wiki-id="data:type:spatial:start" href="https://datacadamia.com/data/type/spatial/start" title="Spatial or geographical data:    point,    line,    polygon,    multi-point,    multi-line,    etc.    Spatial data represents the essential location characteristics of real or conceptual objects as those objects relate to the real or conceptual space in which they existraster imagevectoOpenStreet Map Boundary (Country, Postchexmapr - Maps to hexagon withOpen Geospatial Consortium, Inc.® (OGC)Nederlands MapCBS Provincie 2012Geografische oplossi…">Spatial</a><br />
<a class="link-internal link-cs" data-wiki-id="data:type:color:color" href="https://datacadamia.com/data/type/color/color" title="A color is:    a light wave in a range called the visual spectrum (that our eye see)   the absence of light or mixed (achromatic colors (white, black, gray)   in computer a data type that denotes a color.  A color can be called by its name (or the color name of its most obvious, or dominant hue).  s arediscrete valuepropertiehusaturatiolightnescolorspaccoordinates (known also as channelHSadditive propertRGprimarsaturatiosubtractive propertmcontrasluminancspace conversiosoftwa…">Color</a><br />
<a class="link-internal link-cs" data-wiki-id="data:type:log:log" href="https://datacadamia.com/data/type/log/log" title="Log - Logging    A log is a text file with:    a timed list of message (activities)   that an application has performed      execution/request log:   web server:   web log ( - that stores the Http request   error     cron    connection log:  /var/log/securDebugginlog statementMonitoriAnalytieventime serilog platormJava Logger LibrarSimple Logging Facade for Java (SLF4JLog4J Manualogbaclocollect therotate theRFC5424 - The Syslog ProtocoACM The logic of Logging">Log</a><br />
</div><div class="col box-cs"><strong>Measure Levels</strong><br />
<a class="link-internal link-cs" data-wiki-id="data:type:ordinal:order" href="https://datacadamia.com/data/type/ordinal/order" title="Ordering is the process of finding the position of an element of ordinal data type in a sequence.  Order and Equivalence are a special kind of binary relation (ie relation between two entities)  With the order notion, you get immediately a sort and merge problem.  Comparison operator are at the heart of sort and merge problem problem.      Natural order is the default attribute of a data type that will drive thesort process">Order</a><br />
<a class="link-internal link-cs" data-wiki-id="data:type:nominal:nominal" href="https://datacadamia.com/data/type/nominal/nominal" title="(Nominal|Category|Reference) data carries contextual information.  Mapping a category value in an attribute of an business entity instance requires often human judgementdiscretclassesnominal valueaggregation relationsoutlindiscrete, categorical variablebusiness proces">Nominal</a><br />
<a class="link-internal link-cs" data-wiki-id="data:type:nominal:discrete" href="https://datacadamia.com/data/type/nominal/discrete" title="A discrete variable can only have values at specific values. See:   Discrete_time_and_continuous_time   Continuous vs Discretecontinuous          numerical variables can be discrete. For instance, an integer is a discrete data type. The number of person on the planet must be a whole number.   All categorical variables are discrete.    Any-time you measure a variable that can only be measured in discrete values, you are using a variable that is not trulycontinuou">Discrete</a><br />
<a class="link-internal link-cs" data-wiki-id="data_mining:distance" href="https://datacadamia.com/data_mining/distance" title="is a numerical description of how far apart objects are.   Same as:            In most cases, “distance from A to B” is interchangeable with “distance between B and A”.        In physics or everyday usage, distance may refer to a physical length, or an estimation based on other criteria (e.gdistance (in cartesian coordinatestheta join">Distance</a><br />
<a class="link-internal link-cs" data-wiki-id="data_mining:ratio" href="https://datacadamia.com/data_mining/ratio" title="Ratio measurement gets its name from the fact that meaningful fraction (ratio or rational number) can be constructed with a ratio variable.   Ratio is the deepest, most meaningful level of measurement, and consequently, the most useful.   A variable measured at this level not only includes the concepts of order and distance, but also adds the idea ofnothingness, absolute zero or True Zerabsolute zero value (true zerorelative(the Kelvin scale)">Ratio</a><br />
</div><div class="col box-cs"><strong>Code</strong><br />
<a class="link-internal link-cs" data-wiki-id="code:compiler:compiler" href="https://datacadamia.com/code/compiler/compiler" title="Computer Language are written in plain text. However, computers interpret only particular sequence of instructions.   This transformation from a plain text language to instructions is called compilation and is done by a compiler. Once a program&apos;s code is compiled, the program&apos;s code has been turned intomachine languagsource codbinarsyntasemanticinterpretLexical analysis (Lexertokevocabulary of the languagSyntax analysis (Parser)…">Compiler</a><br />
<a class="link-internal link-cs" data-wiki-id="code:compiler:parser" href="https://datacadamia.com/code/compiler/parser" title="A parser create a parse tree data structure from a series of token created by the lexer.  The creation of the tree is based on the rules declared in the grammar (which defines the syntactic structure of the source).  A parser is generally generated from the grammar. See   A parser is the component of acompilerecursively nested featuresa = a  + Abstract Syntax Tree (ASTpart (of speechsyntatype correctnesLR parsingLL p">Lexical Parser</a><br />
<a class="link-internal link-cs" data-wiki-id="code:grammar:grammar" href="https://datacadamia.com/code/grammar/grammar" title="This section regroups the entity of a computer language from a lexical point of view. It&apos;s the same as  Parts of the speech for a natural language.   Grammars are useful models when designing software that processes data with a recursive structure.  To see how a grammar is defined to be able to parse it in a compiler. Selexerulestructursemantistatementokeexpressionvariablestattypevaluconditionals floloopfunctionclaslogical and reusable chunkoperatorcommenfunc…">Grammar</a><br />
<a class="link-internal link-cs" data-wiki-id="code:function:function" href="https://datacadamia.com/code/function/function" title="Section  computable function.   A function is a callable unit that may be called:    a procedure,    a subrontine   a routine,    a method (belong to an objectmacrocomputablalgorithreusable blocargumentdevelopment languagoperatcontinuousmoothMike Bostockmethod chainingetter-setter methobinary reldeclarationamsignAggregate functiodeterministic propertiesmathematical function">Function</a><br />
<a class="link-internal link-cs" data-wiki-id="code:test:test" href="https://datacadamia.com/code/test/test" title="A test is performed to verify that the system is conformed to the specification and is the most important part of code quality.  In a “Test-driven_developmenttest-driven software development (tdd)” model, unit tests are written first.  Testing is questioning a product in order to evaluate itlevels of abstractionVenkat SubramaniamDavid WhittakerManisha AgarwalDavid WhittakerMartin ThompsorefactorinobservabilityBarry Boehm@tastap…">Testing</a><br />
<a class="link-internal link-cs" data-wiki-id="code:debugging:debugging" href="https://datacadamia.com/code/debugging/debugging" title="debugging is the process of removing bug software bugs        SashaLaundy/status/936661004137635840Sasha Laundy    Rubber_duck_debugging">Debugging</a><br />
<a class="link-internal link-cs" data-wiki-id="code:shipping:shipping" href="https://datacadamia.com/code/shipping/shipping" title="Deployment pipelines describe how a change in your application moves through your infrastructure into production. It lays out all necessary automated and manual steps. Every step that can be automated should be, to make the deployments as productive as possibleProductionJason Friecode freezes don&amp;apos; t prevent ouAll dev goes in the trunpeer reviebrancchat roomsgit clone depthdatabase migrationsGitHub Cycle Tim…">Shipping</a><br />
<a class="link-internal link-cs" data-wiki-id="code:type:type" href="https://datacadamia.com/code/type/type" title="Variables, parameters, and function may be typed (static typing) and return values that are typed (as do a database column).  The type of a variable or expression defines the characteristics of the values it may take on, such asvariablexpressiovalua columa fielNUMBER datatypRAW datatypSQL specificationull valustatic checkincode refactoringType inferencinterfacestypnamedomain of valuenumbestrinboolean (true or falseprimitivscalarclasDV modeling for CLOB, L…">Data Type</a><br />
<a class="link-internal link-cs" data-wiki-id="code:version:start" href="https://datacadamia.com/code/version/start" title="Versioning permits to tell which code is newer than another.   Every versioning schema will then tell which version is newer than the other one.  Code is:    versioned by making commit to a repository.   released with a specific version which can be the commit hash or not. Seversion control systeGisvbranch (Line of development)">Versioning</a><br />
<a class="link-internal link-cs" data-wiki-id="code:design_pattern:design_pattern" href="https://datacadamia.com/code/design_pattern/design_pattern" title="This section regroups all articles about the known design pattern.">Design Pattern</a><br />
</div><div class="col box-cs"><strong>Infrastructure</strong><br />
<a class="link-internal link-cs" data-wiki-id="os:os" href="https://datacadamia.com/os/os" title="An operating system is a computer program that manages hardware automatically to free application program of doing it.  See               Linux op Windows:           (Git)  C is generally a language of choice for writing an operating system because it doesn&apos;t abstract the underlyinghardware devicdevicemotherboarCPUOperating System: From 0 to 1">Operating System</a><br />
<a class="link-internal link-cs" data-wiki-id="monitoring:monitoring" href="https://datacadamia.com/monitoring/monitoring" title="Computer Monitoring / Operational Intelligence / Real Time Monitoring    Monitoring is the process of defining metrics and alerts in order to respond to a performance degradation where the acceptable level was defined in service level agreement.  Monitoring system implements operational intelligence that provides a picture of what is currently happening within a system (event view)event-data applicatioresourceperformancperformance analysicapacity planniMetricLoTractime serie datobservabilitMetri…">Monitoring</a><br />
<a class="link-internal link-cs" data-wiki-id="crypto:crypto" href="https://datacadamia.com/crypto/crypto" title="graphy is the science of cryptographic algorithms (known as Cipher) that implements the following functionalities:    Data Integrity - the message (data) was not altered during transit   Authenticity - the owner of the message is who he claimed to be   Secrecy - no one could read the message in transit      graphic algorithms transforms:    plaintext into ciphertext known asencryption (forwarddecryption (backwardgraphic algorithmplaintexhassignatursecret (priv…">Cryptography</a><br />
<a class="link-internal link-cs" data-wiki-id="code:design:security" href="https://datacadamia.com/code/design/security" title="Security regroups many subject area.  The most known are:    Identity management with:   authentication (user/password) and its method (ldap, table, ...)   authorization (group, privileges and role, object and information access)     with:   data secrecy   data integrity   data authenticity    Code: Don&amp;apos;t hire assholesTwittebugsoftware developmentSecurity Problem Solved? Solutions to many of our security problems already exist, so why are we still…">Security</a><br />
<a class="link-internal link-cs" data-wiki-id="file:start" href="https://datacadamia.com/file/start" title="This section is based on the File data structure.   A file is:    a logical grouping of related data (at the cluster size)   identified through a path   managed through a file system   transferred through a transfer protocol   may have children if it&apos;s a directory   may have acontendata operatiometadata (attributeresourcfile systebytblocalias / symbolic linsockefile systemDirectorieVolumes">File System</a><br />
<a class="link-internal link-cs" data-wiki-id="network:start" href="https://datacadamia.com/network/start" title="This section group all articles over networking.  In the internet age, all networks may be considered as subnet.      To transmit data between two hosts in one network, you need two network adapters (network interface card, NIC).   One adapter sends a data packet and the other one receivetransport layeosi modeapplication protocols (http, sftp, scp, ssh,)">Network</a><br />
<a class="link-internal link-cs" data-wiki-id="os:process:process" href="https://datacadamia.com/os/process/process" title="OS   A process is the first thread started (called the main thread). It&apos;s the only thread that is authorized to start a new threads.  A process is a unit of resources, while a thread is a unit of:    scheduling    and execution.  A process is also known as:Task Manageresourceprograms or applicationcooperating processes (ie a systexecutable filcoCPU timInter Process Communication Network Monitoring Proccall stacthwmithreadProcesses and Thread">Process (Thread)</a><br />
<a class="link-internal link-cs" data-wiki-id="computer:computer" href="https://datacadamia.com/computer/computer" title="A computer is a device of device controlled by a special device called a CPU.  It consists then of:    at least a processor (CPU),    a memory device where:   primary storage holds data only temporarily, at the time the computer is executing a program.    secondary storage holds permanent data    andinput/output interfaces (also devicetransistoHardwaorganizatioinstructionsdeviclogic gateboolean functiohardware lev">Computer</a><br />
<a class="link-internal link-cs" data-wiki-id="code:shipping:infra" href="https://datacadamia.com/code/shipping/infra" title="Infrastructure as code means that all ops operations are scripted and are found in code.   They are used in DevOps pipeling for continuous deployment      You will find three kind of software in this area:    orchestration tool to automates server creationconfiguration managemenapplication deploymenprocedural styldeclarative stylAnsibleSalt (Python)SucheForemanPublish Over SSH pluginWindows PowerShell Desired State…">Infra As Code</a><br />
</div><div class="col box-cs"><strong>Marketing</strong><br />
<a class="link-internal link-cs" data-wiki-id="marketing:ad:start" href="https://datacadamia.com/marketing/ad/start" title="is a component of marketing.      The Browser contact the Ad Server with an AdTag (code snippet) - It&apos;s a little tag that defines what ads to put on the site or app.   AdTag has parameters that permits to lookup the ads   The server looks to all ads available based on the browser and ip addresimpressio">Advertising</a><br />
<a class="link-internal link-cs" data-wiki-id="marketing:analytics:analytics" href="https://datacadamia.com/marketing/analytics/analytics" title="Web analytics is a event-data application based on event send via HTTP request (hence the web name).  The event may be created by:    the user such as click, page load, ..   or the app (performance, ...)        Tracker - fire events   Collectors receive events from trackers.    Tracking Pixel Log collectorAkka Http for Scala (play framework is built on int)Microsoft Clarity - Free Heatmaps &amp;amp; Session RecordinSegmensnowplowPiwikOpen We…">Analytics</a><br />
<a class="link-internal link-cs" data-wiki-id="marketing:email:email" href="https://datacadamia.com/marketing/email/email" title="An Email is just a document known as the MimeMessage or Internet Message Format that:    is send and received between email server    and managed via a client known as the Mail User Agent  This is in the marketing session because this is an important customer channel that is used for campaign but also in every guided process such as:    account creation,    mailing list subscriptiomental burnout">Email</a>
</div><div class="col box-cs"><strong>Web</strong><br />
<a class="link-internal link-cs" data-wiki-id="web:html:start" href="https://datacadamia.com/web/html/start" title="What is HTML ? the HyperText markup Language ">Html</a><br />
<a class="link-internal link-cs" data-wiki-id="web:dom:dom" href="https://datacadamia.com/web/dom/dom" title="W3CAPI   The domDocument Object Model (DOM) is one of the two programming models used to represent a XML document.  DOM defines the interface description of a Document Object that represents an XML document (and therefore of also all descendant technology such as HTML document, SVG, ...).   It&apos;s the output of the parsing of a document (for instance, fohierarchical structurMathematical Markup LanguagScalable Vector Graphicscripts language (javasc…">Dom</a><br />
<a class="link-internal link-cs" data-wiki-id="web:http:http" href="https://datacadamia.com/web/http/http" title="Hypertext Transfer Protocol (HTTP)   is the transfer protocol to exchange or transfer web resource between nodes (host).  The H in HTTP means  an hypertext (ie HTML).   The protocol was first designed to transport hypertext (ie HTML) but it has been extended to be able to fetch any type of resources.  HTTP was originally designed to be usable as an interface to distributed object systems.common protocoweb resource (contentserveclient (user agent)HT…">Http</a><br />
<a class="link-internal link-cs" data-wiki-id="web:resource:url" href="https://datacadamia.com/web/resource/url" title="An Uniform Resource Locator (URL) is a universal identifier for a resource.  Because the resource can be created dynamically, an URL is also logically a request.  It&apos;s the string that is understood by a browser when you put it in the address bar.  When the HTTP protocol is used as scheme, it&apos;s a identifier for a Web resource.  An URL was originally created to provide a method for finding an item such as a person&apos;s street addressThe Web’s Inventor Regrets One Small Thing By STEVE LOHRschemschemeh…">Url</a><br />
<a class="link-internal link-cs" data-wiki-id="web:css:start" href="https://datacadamia.com/web/css/start" title="CSSHTML   CSS is a language for describing the rendering of structured documents (such as HTML and XML) on screen, on paper, in speech, etc.   CSS = Skin of    HTML    SVG   XML World Wide Web Consortium (documenmarkup languagmediubinline variancontainer bloc Compatibility and Internet Explorer contents and browser compatibility specification and documentation (from Box model to getting started)Css ReferenceCss Specificatio…">Css</a><br />
<a class="link-internal link-cs" data-wiki-id="web:javascript:javascript" href="https://datacadamia.com/web/javascript/javascript" title="Javascript  was born to run in the browser but may know with the advent of node run on the server side. See   JavaScript is also known as:    Mocha,    LiveScript,    JScript (Windows Implementation),   ECMAScript  This is the world&apos;s most popular programming languages due to its role as thescripting language of the webrowsersBrendan EichJavaScripECMA262 (official term ECMAScriptdynamically typed scripting languaDocument Object Model (DOMDObrowseDOnon-browse…">Javascript</a><br />
<a class="link-internal link-cs" data-wiki-id="web:selector:selector" href="https://datacadamia.com/web/selector/selector" title="API   A selector is a boolean expression (known also as predicate) that match against elements in a DOM tree in order to select one or several node.  This API was known before as the CSS  and was renamed to show that the selection is not only used by CSS but also by other technoclogy such as Javascript DOM selection.basic selectotree structureselectogroupetag (“tag”) (for elementclass (“.className”unique identifier (“#idName”node relationshicomposition (ie containmentchi…">Selector</a><br />
<a class="link-internal link-cs" data-wiki-id="web:browser:browser" href="https://datacadamia.com/web/browser/browser" title="A browser is a user agent.      The figure shows some of the components you will find in a browser. To the left, there is the user interface. The browser needs a rendering engine to display pages, and to interpret user input such as mouse clicks somewhere on the displayed page. There is a layout engine which computes how aweb clientXenocodcachinsecuritySecurity in the Browseuser agent striChromFirefoWebkitopenBrowser.jJsdomawt.DesktopExamplPuppeteerChromeHTMLftypClient HTTP Prog…">Browser</a><br />
<a class="link-internal link-cs" data-wiki-id="web:service:service" href="https://datacadamia.com/web/service/service" title="A Web service is a set of functions packaged into a single application programming interfaces (API) that is available to other systems on a network.  The term generally refers to clients (consumer) and servers (provider) that communicate over theHTTP protocoweb form procesHTTP requesname of a browsesoa architecSUN&amp;apos;s Java/Remote Method Invocation (RMI)Web Services: Promises and CompromisesOracle® Fusion Middleware Introducing Web Services 11g Release 1 (11.1…">Web Services</a><br />
<a class="link-internal link-cs" data-wiki-id="iam:oauth:oauth" href="https://datacadamia.com/iam/oauth/oauth" title="The OAuth 2.0 Authorization Framework specification together with the OAuth 2.0 Bearer Token Usage provide a general framework for third-party applications (know as the client) to obtain and use limited access to HTTP resources (page, image,...).      Oauth authentication protocols is defined in    OAuth 1.0 (5849RFC 5849) - The OAuth 1.0 protocol published as an informational document, was the result of a small ad hoc community effort. 6749 The OAuth 2.0 Authorization Framework">OAuth</a>
</div><div class="col box-cs"><strong>Contact</strong><br />
<a class="link-mail link-cs" href="/cdn-cgi/l/email-protection#563f3830397d73631437227363127d32372237353732373b3f377d7363143239227363127d35393b692523343c3335226b153938223735227d203f377d32372237353732373b3f37" title="info [at] datacadamia [dot] com"><span class="__cf_email__" data-cfemail="cea7a0a8a18eaaafbaafadafaaafa3a7afe0ada1a3">[email&#160;protected]</span></a> <br />
<a class="link-internal link-cs" data-wiki-id="legal:privacy" href="https://datacadamia.com/legal/privacy" title="To deliver functionalities, data is used and collected:    by us   but also by       We may collect personal information as defined in GDPR (such as IP address and a unique id in a cookie)  visitors to our website for the purposes of statistics, analytics and personnalisation. legaconsentfunctionamarketing platformGoogle Analyticanalyze the trafficGoogle Analytics PrivacyCloudflarcdnCookie">Privacy Policy</a> <br />
<a class="link-external link-cs" href="https://status.datacadamia.com" rel="noopener nofollow ugc" target="_blank">Status</a>
</div></div></div></div>
</footer>
<img class="d-none" id="task-runner" src="https://datacadamia.com/lib/exe/taskrunner.php?id=weblog%3A2009%3Astart&amp;1683117705" alt="Task Runner" width="2" height="1" />
<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>(function(){var js = "window['__CF$cv$params']={r:'7c1a2ccb5abb02b8',m:'aA6XnUQGeCnoarIaPZjDJq0aIBqFrTXQr1bz01toCCk-1683134430-0-AdjsiJ8V62MrhKP7QLsWkOf2JShveJg9wSVKALgAWW/y',u:'/cdn-cgi/challenge-platform/h/g'};_cpo=document.createElement('script');_cpo.nonce='',_cpo.src='/cdn-cgi/challenge-platform/scripts/invisible.js',document.getElementsByTagName('head')[0].appendChild(_cpo);";var _0xh = document.createElement('iframe');_0xh.height = 1;_0xh.width = 1;_0xh.style.position = 'absolute';_0xh.style.top = 0;_0xh.style.left = 0;_0xh.style.border = 'none';_0xh.style.visibility = 'hidden';document.body.appendChild(_0xh);function handler() {var _0xi = _0xh.contentDocument || _0xh.contentWindow.document;if (_0xi) {var _0xj = _0xi.createElement('script');_0xj.nonce = '';_0xj.innerHTML = js;_0xi.getElementsByTagName('head')[0].appendChild(_0xj);}}if (document.readyState !== 'loading') {handler();} else if (window.addEventListener) {document.addEventListener('DOMContentLoaded', handler);} else {var prev = document.onreadystatechange || function () {};document.onreadystatechange = function (e) {prev(e);if (document.readyState !== 'loading') {document.onreadystatechange = prev;handler();}};}})();</script><script defer src="https://static.cloudflareinsights.com/beacon.min.js/v52afc6f149f6479b8c77fa569edb01181681764108816" integrity="sha512-jGCTpDpBAYDGNYR5ztKt4BQPGef1P0giN6ZGVUi835kFF88FOmmn8jBQWNgrNd8g/Yu421NdgWhwQoaOPFflDw==" data-cf-beacon='{"rayId":"7c1a2ccb5abb02b8","version":"2023.4.0","r":1,"b":1,"token":"ec09712394d049109135f7536beee240","si":100}' crossorigin="anonymous"></script>
</body>
</html>
