301 status code means that the requested resource has been permanently moved to a new URL. All future requests should use the new address.
The browser will automatically redirect the user to the new address, and search engines will update their indexes.
302 status code indicates that the requested resource is temporarily available at a different URL.
The user is automatically redirected to the new URL, but search engines continue to index the old address.
200 status code is a standard successful HTTP server response. It means that the client’s request (e.g., from a browser) was successfully processed, and the server is delivering the requested data.
The user receives content without errors, and the page or application functions properly. If Code 200 is accompanied by data, the browser or program processes and displays it to the user.
GET / HTTP/1.1 Host: cdr2.com Accept: */* User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="apple-mobile-web-app-title" content="Christopher Robison Portal"> <link rel="canonical" href="https://cdr2.com/crblog/index.html"> <link rel="apple-touch-icon" href="touch-icon-iphone.png"> <link rel="apple-touch-icon" sizes="152x152" href="assets/touch-icon-152.png"> <link rel="apple-touch-icon" sizes="180x180" href="assets/touch-icon-180.png"> <link rel="apple-touch-icon" sizes="167x167" href="assets/touch-icon-167.png"> <link rel="apple-touch-icon" sizes="120x120" href="assets/touch-icon-120.png"> <link rel="apple-touch-icon" sizes="114x114" href="assets/touch-icon-114.png"> <link rel="apple-touch-icon" sizes="87x87" href="assets/touch-icon-87.png"> <link rel="apple-touch-icon" sizes="80x80" href="assets/touch-icon-80.png"> <title>Christopher Robison's Incredibly Amazing Website</title> <link rel="icon" href="/crblog/assets/img/crlogo.svg" /> <!-- Google Font: Source Sans Pro --> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Lexend:wght@100;200;300;400;500;600;700;800;900&family=Titillium+Web:wght@200;300;400;600;700;900&display=swap" rel="stylesheet"> <!-- Font Awesome --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"> <link rel="stylesheet" href="assets/fontawesome-free-6.4.0-web/css/all.min.css"> <!-- Theme style --> <link rel="stylesheet" href="assets/css/adminlte.min.css"> <!-- overlayScrollbars --> <link rel="stylesheet" href="assets/overlayScrollbars/css/OverlayScrollbars.min.css"> <link rel="stylesheet" href="assets/css/notifications.css"> <style> body { } #overlay { position: absolute; z-index: 99999; top: 0px; left: 0px; height: 100vh; width: 100vw; background-color: #0002; display:none; } #loader { position: absolute; z-index: 99999; top: 50%; left: 50%; } #Business { width: 12em; } label { color: #eee; } .main-footer { } .navbar-nav[role=tablist] .nav-item { border-right: 1px solid #0006; border-left: 1px solid #fff6; background: #333; border-top-left-radius: 1rem; position: relative; border-top-right-radius: 1rem; top: 0.6rem; } .navbar-nav[role=tablist] .nav-item.active { background: #f9f9f9; color: #222; top: 5px; box-shadow: -2px 0px 2px #0003; z-index: 999; transform: scale(1.1); position: relative; } .dark-mode .navbar-nav[role=tablist] .nav-item.active { background: #666; color: #fff; text-shadow: 1px 1px 0px #0006; box-shadow: 3px 0px 3px #0006; top: 5px; box-shadow: -2px 0px 2px #0003; z-index: 999; } .content-wrapper.iframe-mode .navbar-nav { overflow:hidden; } .nav-sidebar .nav-treeview { line-height: 1; } .social-links a { margin: 0 0.25rem; } .social-links { } #sidemenu li.nav-item.active li a.nav-link { text-indent: -0.65rem; padding-left: 1.5rem; white-space: nowrap; } #sidemenu li.nav-item.active.menu-open li.nav-item.active.menu-open a.nav-link { padding-left: 2.5rem; width: 100%; } #sidemenu li.nav-item.active.menu-open li.nav-item.active.menu-open { margin-left: -1rem; } .nav-sidebar .nav-link p { white-space: nowrap; text-overflow: ellipsis; display: inline-block; } .sidebar-mini.sidebar-collapse .nav-sidebar .nav-link p, .nav-item .nav-item p { overflow: hidden; display: inline-block; width: 100%; padding-left: 1rem; } .user-panel div.image { display: flex; flex-direction: column; justify-content: center; } .crlogo { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='19.5 17 165.5 130'%3E%3Cpath d='M103 130Q103 131 103 117 94 119 83 119 49 120 49 83 46 46 71 42 87 41 100 42L142 42Q155 42 155 54 155 69 143 69L117 69 117 91 149 145 185 145 150 92Q180 92 180 55 180 17 136 17L98 17 69 17Q22 18 20 63 19 81 20 95 22 143 75 147 94 146 103 143Z' fill='%23000'/%3E%3C/svg%3E"); background-repeat: no-repeat no-repeat; background-position: center center; background-size: 2rem; width: 2.5rem; padding: 4px; height: 2.5rem; display: flex; border-radius: 5px; background-color: #fff; border: 0rem solid #fff; align-content: center; align-items: center; margin-right: 1rem; margin-left: 0.6rem; } .sidebar-collapse .brand-text { display: none; } .cdr.pacjob { /* background-color: #FFFFFF; */ background-image: url('data:image/svg+xml,<%3Fxml version="1.0" encoding="UTF-8" standalone="no"%3F><!-- Created with Inkscape (http://www.inkscape.org/) --><svg width="210mm" height="297mm" viewBox="0 0 210 297" version="1.1" id="svg528" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><defs id="defs525" /><g id="layer1" transform="matrix(0.5392214,0,0,0.5392214,18.892735,27.612465)"><circle style="fill:%23000000;stroke-width:0.264583" id="path645" cx="105.13274" cy="124.05664" r="64.130974" /><path style="fill:%23ffffff;stroke-width:0.264583" d="m 105.12924,125.11847 54.35445,-35.731119 c 0,0 10.73844,15.840259 10.6492,34.208769 -0.0892,18.36851 -10.46774,34.50255 -10.46774,34.50255 l -54.53241,-31.41372 z" id="path707" /><circle style="fill:%23ffffff;stroke-width:0.264583" id="path761" cx="115.30214" cy="83.544724" r="10.779311" /><circle style="fill:%23000000;stroke-width:0.264583" id="path765" cx="121.54603" cy="84.004288" r="2.973603" /></g></svg>'); /* background-attachment: fixed | scroll; */ /* background-size: auto | cover | contain | 500px 250px; */ /* background-position: center | right 30px bottom 15px; */ /* background-repeat: no-repeat | repeat | repeat-x; */ /* background-origin: border-box | padding-box | content-box; */ /* background-clip: border-box | padding-box | content-box; */ /* background-blend-mode: multiply | screen | overlay; */ } .bee { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='151.622' height='141.827' viewBox='0 0 151.622 141.827'%3E%3Cpath id='Path_1' data-name='Path 1' d='M149.131,115.847c-.956.767-.3,5.731,1.406,12.459a105.857,105.857,0,0,0,10.037,24.878c8.493,15.045,16.639,21.591,24.44,23.4,7.688,1.777,15.471-1.021,23.009-4.767,2.143-1.064,2.736-3.007,2.208-5.466-.8-3.712-3.622-8.389-7.667-13.4a128.021,128.021,0,0,0-15.711-15.883c-15.494-13.355-33.366-24.473-37.722-21.219Zm14.628-50.626a3.534,3.534,0,1,1,1.44,6.919c-5.2,1.1-8.994,3.053-11.49,5.795a15.4,15.4,0,0,0-3.718,8.252c6.666,3.981,11.286,12.154,11.286,18.709a9.745,9.745,0,0,1-1.959,6.2c9.512,3.656,21.564,11.494,32.158,20.626a134.977,134.977,0,0,1,16.6,16.795c4.7,5.82,8.035,11.495,9.08,16.36,1.244,5.8-.39,10.489-6,13.274-8.769,4.356-17.972,7.575-27.717,5.321a30.708,30.708,0,0,1-10.459-4.685,38.166,38.166,0,0,1-7.91,17.138,30.167,30.167,0,0,1-46.668,0,38.156,38.156,0,0,1-7.91-17.138,30.692,30.692,0,0,1-10.459,4.685c-9.745,2.254-18.948-.965-27.717-5.321-5.608-2.785-7.242-7.477-6-13.274,1.045-4.865,4.378-10.54,9.078-16.36a135.029,135.029,0,0,1,16.594-16.794c10.6-9.132,22.65-16.971,32.162-20.627a9.753,9.753,0,0,1-1.96-6.2c0-6.555,4.619-14.726,11.286-18.707a15.387,15.387,0,0,0-3.718-8.254c-2.5-2.742-6.293-4.7-11.49-5.795a3.534,3.534,0,1,1,1.44-6.919c6.727,1.42,11.779,4.106,15.283,7.952a21.873,21.873,0,0,1,5.251,10.688,14.569,14.569,0,0,1,2.982,0,21.884,21.884,0,0,1,5.253-10.688c3.5-3.845,8.555-6.532,15.283-7.952Zm-13.133,84.014H132.84c-1.159,2.483-2.412,4.943-3.75,7.317h25.286c-1.338-2.374-2.591-4.834-3.75-7.317Zm15.986,24.184q-1.243-1.259-2.489-2.694h-44.78q-1.244,1.434-2.489,2.694a40.112,40.112,0,0,0,.709,4.621H165.9a40.112,40.112,0,0,0,.709-4.621Zm-33.683-45.113c1.7-6.728,2.363-11.692,1.406-12.459-4.357-3.254-22.23,7.867-37.725,21.221A127.85,127.85,0,0,0,80.9,152.949c-4.045,5.009-6.87,9.686-7.667,13.4-.527,2.459.066,4.4,2.209,5.466,7.538,3.746,15.321,6.544,23.009,4.767,7.8-1.805,15.946-8.353,24.44-23.4a105.9,105.9,0,0,0,10.037-24.878Zm26.017,63.907H124.52a23.144,23.144,0,0,0,34.426,0Z' transform='translate(-65.922 -65.146)' fill='%23c2c7d0' fill-rule='evenodd'/%3E%3C/svg%3E%0A"); background-repeat: no-repeat no-repeat; background-position: center bottom; background-size: contain; width: 1.2rem; height: 1.2rem; } </style> </head> <body class="hold-transition sidebar-mini layout-fixed dark-mode" data-panel-auto-height-mode="height"> <div class="wrapper"> <!-- Navbar --> <nav class="main-header navbar navbar-expand navbar-black navbar-dark"> <!-- Left navbar links --> <ul id="navbar-top-left" class="navbar-nav"> <li class="nav-item"> <a class="nav-link" data-widget="pushmenu" onclick="saveMenuState()" href="#" role="button"><i class="fas fa-bars"></i></a> </li> <li class="nav-item d-none d-sm-inline-block"><a href="home.html" class="nav-link">Home</a></li><li class="nav-item d-none d-sm-inline-block"><a href="about.html" class="nav-link">About</a></li><li class="nav-item d-none d-sm-inline-block"><a href="contact.html" class="nav-link">Contact</a></li> </ul> <!-- Right navbar links --> <ul class="navbar-nav ml-auto"> <!-- Navbar Search --> <li class="nav-item"> <a class="nav-link" data-widget="navbar-search" href="#" role="button"> <i class="fas fa-search"></i> </a> <div class="navbar-search-block"> <form class="form-inline" action="search-results.php" method="POST" onsubmit="doSearch(); return false;"> <div class="input-group input-group-sm"> <input class="form-control form-control-navbar" type="search" placeholder="Search" aria-label="Search" id="bigsearch"> <div class="input-group-append"> <button class="btn btn-navbar" type="submit"> <i class="fas fa-search"></i> </button> <button class="btn btn-navbar" type="button" data-widget="navbar-search"> <i class="fas fa-times"></i> </button> </div> </div> </form> <div id="search-results"></div> </div> </li> <!-- Messages Dropdown Menu --> <li class="nav-item dropdown"> <a class="nav-link" data-toggle="dropdown" href="#"> <i class="far fa-comments"></i> <span class="badge badge-danger navbar-badge notification-count"></span> </a> <div id="notificationList" class="dropdown-menu dropdown-menu-lg dropdown-menu-right "> <div class="dropdown-divider"></div> <a href="#" class="dropdown-item dropdown-footer">Notifications</a> </div> </li> <!-- Notifications Dropdown Menu --> <!--li class="nav-item dropdown"> <a class="nav-link" data-toggle="dropdown" href="#"> <i class="far fa-bell"></i> <span class="badge badge-warning navbar-badge">5</span> </a> <div class="dropdown-menu dropdown-menu-lg dropdown-menu-right"> <span class="dropdown-item dropdown-header">5 Notifications</span> <div class="dropdown-divider"></div> <a href="#" class="dropdown-item"> <i class="fas fa-envelope mr-2"></i> 3 new messages <span class="float-right text-muted text-sm">3 mins</span> </a> <div class="dropdown-divider"></div> <a href="#" class="dropdown-item"> <i class="fas fa-file mr-2"></i> 2 new trips <span class="float-right text-muted text-sm">2 days</span> </a> <div class="dropdown-divider"></div> <a href="#" class="dropdown-item dropdown-footer">See All Notifications</a> </div> </li--> <li class="nav-item"> <a class="nav-link" data-widget="fullscreen" href="#" role="button"> <i class="fas fa-expand-arrows-alt"></i> </a> </li> <li class="nav-item"> <a class="nav-link" data-widget="control-sidebar" data-slide="true" href="#" role="button"> <i class="fas fa-th-large"></i> </a> </li> </ul> </nav> <!-- /.navbar --> <!-- Main Sidebar Container --> <aside class="main-sidebar sidebar-dark-primary elevation-4"> <!-- Brand Logo --> <a href="/crblog" class="brand-link" style="display:flex;align-items:center;justify-content:flex-start;"> <div class="crlogo"></div> <span class="brand-text font-weight-light">CR Website</span> </a> <!-- Sidebar --> <div class="sidebar"> <!-- Sidebar user panel (optional) --> <div class="user-panel mt-3 pb-3 mb-3 d-flex"> <div class="image"> <img src="assets/img/user2-160x160.jpg" class="img-circle elevation-2" alt="User Image"> </div> <div class="info"> <a href="#" class="d-block">Christopher Robison</a> <span style="display:flex;" class="social-links"> <a href="https://linkedin.com/in/crobison" target="_blank"><i class="fa-brands fa-linkedin"></i></a> <a href="https://github.com/chrisrobison" target="_blank"><i class="fa-brands fa-github"></i></a> <a href="https://codepen.io/ChristopherRobison" target="_blank"><i class="fa-brands fa-codepen"></i></a> <a href="https://cdr2.com/crblog/blog/rss" target="_blank"><i class="fas fa-square-rss"></i></a> </span> </div> </div> <div class="form-inline"> <div class="input-group" data-widget="sidebar-search"> <input class="form-control form-control-sidebar" type="search" placeholder="Search" aria-label="Search"> <div class="input-group-append"> <button class="btn btn-sidebar"> <i class="fas fa-fw fa-search"></i> </button> </div> </div><div class="sidebar-search-results"><div class="list-group"><a href="#" class="list-group-item"><div class="search-title"><strong class="text-light"></strong>N<strong class="text-light"></strong>o<strong class="text-light"></strong> <strong class="text-light"></strong>e<strong class="text-light"></strong>l<strong class="text-light"></strong>e<strong class="text-light"></strong>m<strong class="text-light"></strong>e<strong class="text-light"></strong>n<strong class="text-light"></strong>t<strong class="text-light"></strong> <strong class="text-light"></strong>f<strong class="text-light"></strong>o<strong class="text-light"></strong>u<strong class="text-light"></strong>n<strong class="text-light"></strong>d<strong class="text-light"></strong>!<strong class="text-light"></strong></div><div class="search-path"></div></a></div></div> </div> <!-- Sidebar Menu --> <nav id='sidemenu' class="mt-2"> <ul class="nav nav-treeview nav-pills nav-sidebar flex-column nav-child-indent nav-collapse-hide-child" data-widget="treeview" role="menu" data-accordion="false"> <li class="nav-item"> <a href="/crblog/home.html" title="Home" onclick="return app.doClick(this, event)" class="nav-link"><i class= "nav-icon fas fa-home"></i> <p> Home </p></a> </li> <li class="nav-item"> <a href="/crblog/about.html" title="About" onclick="return app.doClick(this, event)" class="nav-link"><i class= "nav-icon fas fa-circle-info"></i> <p> About </p></a> </li> <li class="nav-item"> <a href="/crblog/contact.html" title="Contact" onclick="return app.doClick(this, event)" class="nav-link"><i class= "nav-icon fas fa-envelope"></i> <p> Contact </p></a> </li> <li class="nav-item" style='display:none;'> <a href="#" title="Links" class="nav-link"><i class="nav-icon fas fa-link"></i> <p> Links<i class="right fas fa-angle-left" onclick= "console.log(this.closest('li'));this.closest('li').classList.add('menu-open');"></i> </p></a> <ul class="nav nav-treeview nav-pills nav-sidebar flex-column nav-child-indent nav-collapse-hide-child" data-widget= "treeview" role="menu" data-accordion="false"> <li class="nav-item"> <a href="https://linkedin.com/in/crobison" title="LinkedIn" onclick="return app.doClick(this, event)" class= 'nav-link' target='_blank'> <p> LinkedIn </p></a> </li> <li class="nav-item"> <a href="https://github.com/chrisrobison" title="Github" onclick="return app.doClick(this, event)" class= 'nav-link' target='_blank'> <p> Github </p></a> </li> <li class="nav-item"> <a href="https://codepen.io/ChristopherRobison" title="CodePen" onclick="return app.doClick(this, event)" class= 'nav-link' target='_blank'> <p> CodePen </p></a> </li> </ul> </li> <li class="nav-item"> <a href="/cv/resumes/list2.html" title="Resume" onclick="return app.doClick(this, event)" class="nav-link"><i class= "nav-icon fa-regular fa-file"></i> <p> Resume<i class="right fas fa-angle-left" onclick= "console.log(this.closest('li'));this.closest('li').classList.add('menu-open');"></i> </p></a> <ul class="nav nav-treeview nav-pills nav-sidebar flex-column nav-child-indent nav-collapse-hide-child" data-widget= "treeview" role="menu" data-accordion="false"> <li class="nav-item"> <a href="/cv/resumes/list.php" title="Styled Resumes" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-rectangle-list"></i> <p> Styled Resumes </p></a> </li> <li class="nav-item"> <a href="/cv/resumes/spartan.html" title="Plain Resume" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-envelope-open-text"></i> <p> Plain Resume </p></a> </li> <li class="nav-item"> <a href="/jobhunt/questions.html" title="Questions to ask" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-file-lines"></i> <p> Questions to ask </p></a> </li> <li class="nav-item"> <a href="/jobhunt/coverletter/" title="Coverletter Tool" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-clipboard-question"></i> <p> Coverletter Tool </p></a> </li> <li class="nav-item"> <a href="/crblog/work.html" title="Work Sample" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-code"></i> <p> Work Sample<i class="right fas fa-angle-left" onclick= "console.log(this.closest('li'));this.closest('li').classList.add('menu-open');"></i> </p></a> <ul class="nav nav-treeview nav-pills nav-sidebar flex-column nav-child-indent nav-collapse-hide-child" data-widget="treeview" role="menu" data-accordion="false"> <li class="nav-item"> <a href="https://bouncingbutton.com" title="Button Game" onclick="return app.doClick(this, event)" class= 'nav-link' target='_blank'> <p> Button Game </p></a> </li> <li class="nav-item"> <a href="https://bouncingbutton.com/doc/" title="Button Docs" onclick="return app.doClick(this, event)" class='nav-link' target='_blank'> <p> Button Docs </p></a> </li> <li class="nav-item"> <a href="/crblog/assets/img/buttongame-flowchart.svg" title="Code Flowchart" onclick= "return app.doClick(this, event)" class="nav-link"><i class= "nav-icon fas fa-arrows-split-up-and-left"></i> <p> Code Flowchart </p></a> </li> <li class="nav-item"> <a href="https://github.com/chrisrobison/buttongame/" title="Button Code" onclick= "return app.doClick(this, event)" class='nav-link' target='_blank'> <p> Button Code </p></a> </li> </ul> </li> </ul> </li> <li class="nav-item"> <a href="/crblog/work.html" title="Work Sample" onclick="return app.doClick(this, event)" class="nav-link"><i class= "nav-icon fas fa-code"></i> <p> Work Sample<i class="right fas fa-angle-left" onclick= "console.log(this.closest('li'));this.closest('li').classList.add('menu-open');"></i> </p></a> <ul class="nav nav-treeview nav-pills nav-sidebar flex-column nav-child-indent nav-collapse-hide-child" data-widget= "treeview" role="menu" data-accordion="false"> <li class="nav-item"> <a href="https://bouncingbutton.com" title="Button Game" onclick="return app.doClick(this, event)" class= 'nav-link' target='_blank'> <p> Button Game </p></a> </li> <li class="nav-item"> <a href="https://bouncingbutton.com/doc/" title="Button Docs" onclick="return app.doClick(this, event)" class= 'nav-link' target='_blank'> <p> Button Docs </p></a> </li> <li class="nav-item"> <a href="/crblog/assets/img/buttongame-flowchart.svg" title="Code Flowchart" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-arrows-split-up-and-left"></i> <p> Code Flowchart </p></a> </li> <li class="nav-item"> <a href="https://github.com/chrisrobison/buttongame/" title="Button Code" onclick= "return app.doClick(this, event)" class='nav-link' target='_blank'> <p> Button Code </p></a> </li> </ul> </li> <li class="nav-item"> <a href="/crblog/blog/" title="Blog Posts" onclick="return app.doClick(this, event)" class="nav-link"><i class= "nav-icon fa-regular fa-message"></i> <p> Blog Posts<i class="right fas fa-angle-left" onclick= "console.log(this.closest('li'));this.closest('li').classList.add('menu-open');"></i> </p></a> <ul class="nav nav-treeview nav-pills nav-sidebar flex-column nav-child-indent nav-collapse-hide-child" data-widget= "treeview" role="menu" data-accordion="false"> <li class="nav-item"> <a href="/crblog/blog/calendar.html" title="Our Modern Calendar" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-code"></i> <p> Our Modern Calendar </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/game-idea.html" title="Game Concept" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-code"></i> <p> Game Concept </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/vigilance-committees.html" title="The Vigilance Committees of San Francisco" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> The Vigilance Committees of San Francisco </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/ideas.html" title="Blog Post Ideas" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-code"></i> <p> Blog Post Ideas </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/font-design.html" title="Font Fundamentals" onclick="return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> Font Fundamentals </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/cheap-https.html" title="Encrypt Everything!" onclick="return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> Encrypt Everything! </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/ml-maintenance.html" title="Machine Learning for Fleet Maintenance" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> Machine Learning for Fleet Maintenance </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/mini-mosfet.html" title="Broke Down" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-code"></i> <p> Broke Down </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/index.html" title="Older Posts..." onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-box-archive"></i> <p> Older Posts...<i class="right fas fa-angle-left" onclick= "console.log(this.closest('li'));this.closest('li').classList.add('menu-open');"></i> </p></a> <ul class="nav nav-treeview nav-pills nav-sidebar flex-column nav-child-indent nav-collapse-hide-child" data-widget="treeview" role="menu" data-accordion="false"> <li class="nav-item"> <a href="/crblog/blog/ai-logistics.html" title="AI and the Art of Logistics" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> AI and the Art of Logistics </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/fleet-security.html" title="Cybersecurity for the Road" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> Cybersecurity for the Road </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/fleet-iot.html" title="Leveraging IoT" onclick="return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> Leveraging IoT </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/eld.html" title="DOT Compliance" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-code"></i> <p> DOT Compliance </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/fleet-communication.html" title="Tech Talk" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> Tech Talk </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/compliance.html" title="Tech-Enabled Compliance" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> Tech-Enabled Compliance </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/modern-js.html" title="Unpacking Modern JavaScript" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> Unpacking Modern JavaScript </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/haunted-sf.html" title="Haunted History" onclick="return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> Haunted History </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/modules.html" title="Client-Side JavaScript Modules" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> Client-Side JavaScript Modules </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/renegade-rbls.html" title="Realtime Black Lists (RBLs)" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> Realtime Black Lists (RBLs) </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/service-workers.html" title="Caching Assets" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> Caching Assets </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/fun.html" title="Balancing Fun and Functionality" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> Balancing Fun and Functionality </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/mobile-frameworks.html" title="Cross-Platform Mobile Frameworks" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> Cross-Platform Mobile Frameworks </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/eventloop.html" title="The JS Event Loop" onclick="return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> The JS Event Loop </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/async-fetch.html" title="Async/Await and Fetch" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> Async/Await and Fetch </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/rockart.html" title="Ancient Petroglyphs" onclick="return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-palette"></i> <p> Ancient Petroglyphs </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/ai-ads.html" title="AI for Ads" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-rectangle-ad"></i> <p> AI for Ads </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/scaling-up.html" title="Scaling Up" onclick="return app.doClick(this, event)" class="nav-link"><i class="nav-icon fa-solid fa-arrow-up-right-dots"></i> <p> Scaling Up </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/stellar-dev.html" title="From 0 to 100" onclick="return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-hand-holding-dollar"></i> <p> From 0 to 100 </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/honeypot.html" title="Unmasking Data Sellers" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> Unmasking Data Sellers </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/agile-howto.html" title="Adapting to Agile" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-diagram-project"></i> <p> Adapting to Agile </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/digital-divide.html" title="Crossing the Divide" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-gears"></i> <p> Crossing the Divide </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/codereview.html" title="Code Review Culture" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-code"></i> <p> Code Review Culture </p></a> </li> <li class="nav-item"> <a href="/crblog/blog/rtb-thoughts.html" title="Real-Time Bidding" onclick= "return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-rectangle-ad"></i> <p> Real-Time Bidding </p></a> </li> </ul> </li> </ul> </li> <li class="nav-item"> <a href="#" title="Fun" class="nav-link"><i class="nav-icon fas fa-bolt"></i> <p> Fun<i class="right fas fa-angle-left" onclick= "console.log(this.closest('li'));this.closest('li').classList.add('menu-open');"></i> </p></a> <ul class="nav nav-treeview nav-pills nav-sidebar flex-column nav-child-indent nav-collapse-hide-child" data-widget= "treeview" role="menu" data-accordion="false"> <li class="nav-item"> <a href="/crblog/fun.html?type=games" title="Games" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-dice"></i> <p> Games<i class="right fas fa-angle-left" onclick= "console.log(this.closest('li'));this.closest('li').classList.add('menu-open');"></i> </p></a> <ul class="nav nav-treeview nav-pills nav-sidebar flex-column nav-child-indent nav-collapse-hide-child" data-widget="treeview" role="menu" data-accordion="false"> <li class="nav-item"> <a href="https://quickconquest.com/" title="Quick Conquest" onclick="return app.doClick(this, event)" class='nav-link' target='_blank'> <p> Quick Conquest </p></a> </li> <li class="nav-item"> <a href="https://cdr2.com/jobfun/" title="Job Hunt Simulator" onclick="return app.doClick(this, event)" class='nav-link' target='_blank'> <p> Job Hunt Simulator </p></a> </li> <li class="nav-item"> <a href="https://bouncingbutton.com/" title="Bouncing Button" onclick="return app.doClick(this, event)" class='nav-link' target='_blank'> <p> Bouncing Button </p></a> </li> <li class="nav-item"> <a href="https://cdr2.com/bees/" title="The Bees" onclick="return app.doClick(this, event)" class= 'nav-link' target='_blank'> <p> The Bees </p></a> </li> <li class="nav-item"> <a href="https://gridlockpanic.com/" title="Gridlock Panic" onclick="return app.doClick(this, event)" class='nav-link' target='_blank'> <p> Gridlock Panic </p></a> </li> <li class="nav-item"> <a href="https://atcpanic.com/" title="ATC Panic" onclick="return app.doClick(this, event)" class= 'nav-link' target='_blank'> <p> ATC Panic </p></a> </li> <li class="nav-item"> <a href="https://cdr2.com/wordoku/" title="Wordoku" onclick="return app.doClick(this, event)" class= 'nav-link' target='_blank'> <p> Wordoku </p></a> </li> <li class="nav-item"> <a href="https://cdr2.com/grapple/grapple.html" title="Grapple" onclick="return app.doClick(this, event)" class='nav-link' target='_blank'> <p> Grapple </p></a> </li> <li class="nav-item"> <a href="/balloon-pop/" title="Balloon Pop" onclick="return app.doClick(this, event)" class= "nav-link"><img alt="Balloon Pop" class="nav-icon" src="assets/img/balloon.svg"> <p> Balloon Pop </p></a> </li> </ul> </li> <li class="nav-item"> <a href="/crblog/doodles.html?type=doodle" title="Doodles" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-palette"></i> <p> Doodles<i class="right fas fa-angle-left" onclick= "console.log(this.closest('li'));this.closest('li').classList.add('menu-open');"></i> </p></a> <ul class="nav nav-treeview nav-pills nav-sidebar flex-column nav-child-indent nav-collapse-hide-child" data-widget="treeview" role="menu" data-accordion="false"> <li class="nav-item"> <a href="https://cdr2.com/parallax/parallax.html" title="Parallax" onclick= "return app.doClick(this, event)" class='nav-link' target='_blank'> <p> Parallax </p></a> </li> <li class="nav-item"> <a href="https://cdr2.com/carlton-css/" title="Carlton Dance" onclick="return app.doClick(this, event)" class='nav-link' target='_blank'> <p> Carlton Dance </p></a> </li> <li class="nav-item"> <a href="/waterfall/" title="Waterfall" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-image"></i> <p> Waterfall </p></a> </li> <li class="nav-item"> <a href="/chladni/" title="Chladni Patterns" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-image"></i> <p> Chladni Patterns </p></a> </li> <li class="nav-item"> <a href="/phantomzone.html" title="Phantom Zone" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-image"></i> <p> Phantom Zone </p></a> </li> <li class="nav-item"> <a href="/butterchurn/examples/demo.html" title="Butterchurn" onclick="return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-image"></i> <p> Butterchurn </p></a> </li> <li class="nav-item"> <a href="/arrows.html" title="Arrows Illusion" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-image"></i> <p> Arrows Illusion </p></a> </li> </ul> </li> <li class="nav-item"> <a href="/crblog/pics/carousel.html" title="Photography" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-camera-retro"></i> <p> Photography </p></a> </li> </ul> </li> <li class="nav-item"> <a href="/crblog/tools.html" title="Tools" onclick="return app.doClick(this, event)" class="nav-link"><i class= "nav-icon fas fa-gear"></i> <p> Tools<i class="right fas fa-angle-left" onclick= "console.log(this.closest('li'));this.closest('li').classList.add('menu-open');"></i> </p></a> <ul class="nav nav-treeview nav-pills nav-sidebar flex-column nav-child-indent nav-collapse-hide-child" data-widget= "treeview" role="menu" data-accordion="false"> <li class="nav-item"> <a href="/sfhistory/" title="SF Street History" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-map-location-dot"></i> <p> SF Street History </p></a> </li> <li class="nav-item"> <a href="/encode-img/" title="Base64 Image Encoder" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-image"></i> <p> Base64 Image Encoder </p></a> </li> <li class="nav-item"> <a href="/qrcode/" title="QR Code Generator" onclick="return app.doClick(this, event)" class="nav-link"><i class= "nav-icon fas fa-qrcode"></i> <p> QR Code Generator </p></a> </li> <li class="nav-item"> <a href="/invoice/" title="Invoice Generator" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-file-invoice-dollar"></i> <p> Invoice Generator </p></a> </li> <li class="nav-item"> <a href="/autonomic/carousel/" title="Album Explorer" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-music"></i> <p> Album Explorer </p></a> </li> <li class="nav-item"> <a href="https://boozecluez.com" title="Booze Cluez" onclick="return app.doClick(this, event)" class='nav-link' target='_blank'> <p> Booze Cluez </p></a> </li> <li class="nav-item"> <a href="/crblog/thesaurus1.html" title="Thesaurus" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-book"></i> <p> Thesaurus </p></a> </li> </ul> </li> <li class="nav-item"> <a href="#" title="Miscellaneous" class="nav-link"><i class="nav-icon fas fa-box-open"></i> <p> Miscellaneous<i class="right fas fa-angle-left" onclick= "console.log(this.closest('li'));this.closest('li').classList.add('menu-open');"></i> </p></a> <ul class="nav nav-treeview nav-pills nav-sidebar flex-column nav-child-indent nav-collapse-hide-child" data-widget= "treeview" role="menu" data-accordion="false"> <li class="nav-item"> <a href="/crblog/policies/privacy.html" title="Privacy Policy" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fas fa-book"></i> <p> Privacy Policy </p></a> </li> <li class="nav-item"> <a href="/crblog/policies/cookie-policy.html" title="Cookie Policy" onclick="return app.doClick(this, event)" class="nav-link"><i class="nav-icon fas fa-passport"></i> <p> Cookie Policy </p></a> </li> <li class="nav-item"> <a href="/crblog/policies/tos.html" title="Terms of Service" onclick="return app.doClick(this, event)" class= "nav-link"><i class="nav-icon fa-solid fa-bell-concierge"></i> <p> Terms of Service </p></a> </li> </ul> </li> <li class="nav-item" style='display:none;'> <a href="/crblog/help.html" title="Help" onclick="return app.doClick(this, event)" class="nav-link"><i class= "nav-icon fa-solid fa-circle-question"></i> <p> Help </p></a> </li> </ul> </nav> <!-- /.sidebar-menu --> </div> <!-- /.sidebar --> </aside> <!-- Content Wrapper. Contains page content --> <div class="content-wrapper iframe-mode" data-widget="iframe" data-loading-screen="false"> <div class="nav navbar navbar-dark navbar-expand navbar-white navbar-light border-bottom p-0"> <a style="display:none;" class="nav-link bg-dark" href="#" data-widget="iframe-scrollleft"><i class="fas fa-angle-double-left"></i></a> <ul class="navbar-nav" role="tablist" style="background:#222;"> <li class="nav-item active" role="presentation"><a class="nav-link active" data-toggle="row" id="tab-index" href="#panel-index" role="tab" aria-controls="panel-index" aria-selected="true">Hello!</a></li> </ul> <a class="nav-link bg-dark" href="#" data-widget="iframe-scrollright"><i class="fas fa-angle-double-right"></i></a> <a class="nav-link bg-dark" href="#" data-widget="iframe-fullscreen"><i class="fas fa-expand"></i></a> </div> <div class="tab-content"> <div class="tab-pane fade active show" id="panel-index" role="tabpanel" aria-labelledby="tab-index"><iframe id='home-iframe' src="home2.html" style="height: 84vh;"></iframe></div> <div class="tab-empty"> <h2 class="display-4">No tab selected!</h2> </div> <div class="tab-loading"> <div> <h2 class="display-4">Tab is loading <i class="fa fa-sync fa-spin"></i></h2> </div> </div> </div> </div> <!-- /.content-wrapper --> <footer class="main-footer" style="display:none;"> <div class="float-right d-none d-sm-block"> <strong>Copyright © 2024 <a href="https://cdr2.com">Christopher Robison</a>.</strong> All rights reserved. </div> </footer> <!-- Control Sidebar --> <aside class="control-sidebar control-sidebar-dark"> <!-- Control sidebar content goes here --> </aside> <!-- /.control-sidebar --> </div> <!-- ./wrapper --> <div id="overlay"><div class="loader" id="loader"></div></div> <!-- jQuery --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <!-- jQuery UI 1.11.4 --> <!--script src="assets/jquery-ui/jquery-ui.min.js"></script--> <script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script> <!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip --> <script> $.widget.bridge('uibutton', $.ui.button) </script> <!-- Bootstrap 4 --> <!--script src="assets/bootstrap/js/bootstrap.bundle.min.js"></script--> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> <!-- overlayScrollbars --> <!--script src="assets/overlayScrollbars/js/jquery.overlayScrollbars.min.js"></script--> <!-- AdminLTE App --> <script src="assets/js/adminlte.min.js"></script> <script src="main.js"></script> <script> function saveMenuState() { let state = 1; if (document.body.classList.contains("sidebar-collapse")) { state = 0; } console.log(`saving menu state as ${state}`); localStorage.setItem("menustate", state); } function getMenuState() { let state = localStorage.getItem("menustate"); console.log(`Menu state: ${state}`); if (state==0) { document.body.classList.remove("sidebar-collapse"); } else if (state==1) { document.body.classList.add("sidebar-collapse"); } } function fixIframeHeight() { let newheight = window.innerHeight - document.querySelector(".nav.navbar").getBoundingClientRect()['height'] - document.querySelector("nav.main-header").getBoundingClientRect()['height']; document.querySelectorAll("iframe").forEach(el=>{ el.style.height = newheight + 'px'; }); } async function doSearch() { let query = document.querySelector("#bigsearch").value; query = encodeURIComponent(query); app.loadTab( "search-results.php?q="+query, "Search Results", "searchresults", true) /* let req1 = await fetch("/crblog/search.php?q="+query); let data = await req1.json(); if (data) { let out = "<h1>Search Results</h1><hr>"; let keys = Object.keys(data); keys.forEach(key=>{ let item = data[key]; out += `<div class='result'><a href="${item.url}" target="_blank" alt="${item.title}">${item.title}</a><br><p>${item.snippet}</p></div>`; }); document.querySelector("#search-results").innerHTML = out; } */ } app.init(app.getNav); getMenuState(); </script> </body> </html>