1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4
4<script> 5 (function () { 6 var proto = XMLHttpRequest.prototype; 7 var open = proto.open, setRequestHeader = proto.setRequestHeader, send = proto.send; 8 var TOKEN_KEY = 'base44_access_token'; 9 var storedTokenHeader = function () { 10 try { return 'Bearer ' + localStorage.getItem(TOKEN_KEY); } catch (e) { return null; } 11 }; 12 var forgetStoredToken = function () { 13 try { localStorage.removeItem(TOKEN_KEY); localStorage.removeItem('token'); } catch (e) {} 14 }; 15 16 proto.open = function (method, url) { 17 this.__b44IsAuthCheck = /\/entities\/User\/me(\?|$)/.test(url); 18 return open.apply(this, arguments); 19 }; 20 21 proto.setRequestHeader = function (name, value) { 22 if (this.__b44IsAuthCheck && name.toLowerCase() === 'authorization' && value === storedTokenHeader()) { 23 this.__b44SentToken = value; 24 } 25 return setRequestHeader.call(this, name, value); 26 }; 27 28 proto.send = function () { 29 this.addEventListener('loadend', function () { 30 var rejectedTokenStillStored = this.status === 401 && this.__b44SentToken === storedTokenHeader(); 31 if (rejectedTokenStillStored) forgetStoredToken(); 32 }); 33 return send.apply(this, arguments); 34 }; 35})(); 36 </script>
36 37 <meta charset="utf-8"/> 38 <link href="https://media.base44.com/images/public/6a526da1ac0d0bdad8c4ba75/4b37a62f0_generated_image.png" rel="icon" type="image/png"/> 39 <link href="https://media.base44.com/images/public/6a526da1ac0d0bdad8c4ba75/4b37a62f0_generated_image.png" rel="apple-touch-icon"/> 40 <meta content="width=device-width, initial-scale=1.0" name="viewport"/> 41 <link href="/manifest.json" rel="manifest"/> 42 <meta content="index, follow" name="robots"/> 43 <title> 44 Ayman ElTarabishy 45 </title> 46 <meta content="Explore the global leadership, research, and impact of Dr. Ayman ElTarabishy in entrepreneurship, MSMEs, Human-Centered Entrepreneurship, education, and public policy." name="description"/> 47 <!-- Open Graph / Facebook / WhatsApp --> 48 <meta content="website" property="og:type"/> 49 <meta content="Ayman ElTarabishy" property="og:site_name"/> 50 <meta content="Ayman ElTarabishy" property="og:title"/> 51 <meta content="Explore the global leadership, research, and impact of Dr. Ayman ElTarabishy in entrepreneurship, MSMEs, Human-Centered Entrepreneurship, education, and public policy." property="og:description"/> 52 <meta content="https://media.base44.com/images/public/6a526da1ac0d0bdad8c4ba75/a72733593_ChatGPTImageJul11202609_16_19PM.png/v1/fill/w_1200,h_630/a72733593_ChatGPTImageJul11202609_16_19PM.png" property="og:image"/> 53 <meta content="https://aymaneltarabishy.com" property="og:url"/> 54 <!-- Twitter Card --> 55 <meta content="summary_large_image" name="twitter:card"/> 56 <meta content="Ayman ElTarabishy" name="twitter:title"/> 57 <meta content="Explore the global leadership, research, and impact of Dr. Ayman ElTarabishy in entrepreneurship, MSMEs, Human-Centered Entrepreneurship, education, and public policy." name="twitter:description"/> 58 <meta content="https://media.base44.com/images/public/6a526da1ac0d0bdad8c4ba75/a72733593_ChatGPTImageJul11202609_16_19PM.png/v1/fill/w_1200,h_630/a72733593_ChatGPTImageJul11202609_16_19PM.png" name="twitter:image"/> 59 <!-- Google Analytics 4 (gtag.js) -->
vendor: 69 bytes, lines 59-60
59 60 <script async="" src="https://www.googletagmanager.com/gtag/js?id=
60G-MLLFRB2Y0F
vendor: 17 bytes, lines 60-62
60"> 61 </script> 62
62<script> 63 window.dataLayer = window.dataLayer || []; 64 function gtag() { dataLayer.push(arguments); } 65 gtag('js', new Date()); 66 // Disable automatic page_view so the SPA tracker below owns all page_view events 67 // (prevents duplicate page_view on initial load). 68 gtag('config', 'G-MLLFRB2Y0F', { send_page_view: false }); 69 </script>
69 70
70<script crossorigin="" src="/assets/index-ze_7kRxD.js" type="module"> 71 </script>
71 72 <link crossorigin="" href="/assets/index-CzwLMghi.css" rel="stylesheet"/> 73
73<script type="module"> 74 if (window.self === window.top) { 75 let lastPath = ""; 76 function getPageNameFromPath(path) { 77 const segments = path.split("/").filter(Boolean); 78 return segments[0] || null; 79 } 80 function trackPageView() { 81 const path = window.location.pathname; 82 if (path === lastPath) return; 83 lastPath = path; 84 const pageName = getPageNameFromPath(path) || "home"; 85 const appId = "6a526da1ac0d0bdad8c4ba75"; 86 if (!appId) return; 87 fetch(`/api/app-logs/${appId}/log-user-in-app/${pageName}`, { 88 method: "POST", 89 }).catch(() => {}); 90 } 91 const originalPushState = history.pushState.bind(history); 92 history.pushState = function (...args) { 93 originalPushState(...args); 94 trackPageView(); 95 }; 96 const originalReplaceState = history.replaceState.bind(history); 97 history.replaceState = function (...args) { 98 originalReplaceState(...args); 99 trackPageView(); 100 }; 101 window.addEventListener("popstate", trackPageView); 102 trackPageView(); 103} 104 </script>
104 105 <meta content="https://aymaneltarabishy.com" name="twitter:url"/> 106
106<script> 107 (function () { 108 var titles = {"/login": "Login | Ayman ElTarabishy", "/register": "Register | Ayman ElTarabishy", "/forgot-password": "Forgot Password | Ayman ElTarabishy", "/reset-password": "Reset Password | Ayman ElTarabishy", "/": "Ayman ElTarabishy", "/global-trends": "Global Trends | Ayman ElTarabishy", "/biography": "Biography | Ayman ElTarabishy", "/news": "News Articles | Ayman ElTarabishy", "/commentary": "Commentary | Ayman ElTarabishy", "/journal": "Journal | Ayman ElTarabishy", "/research": "Research | Ayman ElTarabishy", "/books": "Books | Ayman ElTarabishy", "/presentations": "Presentations | Ayman ElTarabishy", "/about": "About | Ayman ElTarabishy", "/contact": "Contact | Ayman ElTarabishy", "/admin": "Admin | Ayman ElTarabishy", "/home": "Ayman ElTarabishy"}; 109 // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind 110 // (old Safari fails to PARSE a lookbehind, taking the whole script down). 111 var dashed = function (s) { 112 return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2"); 113 }; 114 var decode = function (s) { 115 // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a 116 // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title. 117 try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; } 118 }; 119 var segments = function (path) { return path.split("/").filter(Boolean).map(decode); }; 120 var norm = function (path) { 121 var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); }); 122 return parts.length ? "/" + parts.join("/") : "/"; 123 }; 124 var lastPath = location.pathname, written = document.title, on = true; 125 var sync = function () { 126 // Path only: a hash/query change is the same page, and the SDK strips its own auth 127 // params with replaceState -- neither must clobber a server-rendered title in place. 128 if (!on || location.pathname === lastPath) return; 129 lastPath = location.pathname; 130 if (document.title !== written) { on = false; return; } 131 // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the 132 // map cannot carry, and writing a placeholder there is destructive, not merely vague: the 133 // prerender worker runs no setUserAgent, so its capture browser reads as human and executes 134 // this script, and coordinator.js's settle wait explicitly tolerates a full navigation -- 135 // a redirect landing on an unmapped path would bake the placeholder into the stored 136 // snapshot. Leaving the title alone degrades to today's behavior instead. 137 // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up 138 // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the 139 // dashes there, and the client cannot tell the two apart. The map emits every reachable 140 // shape per segment instead (_client_url_variants). 141 var title = titles[norm(location.pathname)]; 142 if (title === undefined) return; 143 document.title = title; 144 // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so 145 // keeping the assigned string would make the next sync() read our own write as the app's. 146 written = document.title; 147 }; 148 var wrap = function (fn) { 149 // The history entry is already pushed by the time sync() runs, so a throw here would 150 // surface inside the host app's router and break navigation. This is injected into apps 151 // we cannot test, so it swallows rather than trusting the trace. 152 return function () { 153 var r = fn.apply(this, arguments); 154 try { sync(); } catch (e) {} 155 return r; 156 }; 157 }; 158 history.pushState = wrap(history.pushState); 159 history.replaceState = wrap(history.replaceState); 160 window.addEventListener("popstate", sync); 161})(); 162 </script>
162 163 <meta content="yes" name="mobile-web-app-capable"/> 164 <meta content="black" name="apple-mobile-web-app-status-bar-style"/> 165 <meta content="Ayman ElTarabishy" name="apple-mobile-web-app-title"/> 166 <link href="https://aymaneltarabishy.com" rel="canonical"/> 167
167<script data-seo-source="builder" type="application/ld+json"> 168 {"name": "Ayman ElTarabishy", "@context": "https://schema.org", "@type": "WebSite", "url": "https://aymaneltarabishy.com"} 169 </script>
169 170
170<script data-seo-source="builder" type="application/ld+json"> 171 {"name": "Ayman ElTarabishy", "logo": "https://media.base44.com/images/public/6a526da1ac0d0bdad8c4ba75/7c7909e6a_logo.png", "@context": "https://schema.org", "@type": "Organization", "url": "https://aymaneltarabishy.com"} 172 </script>
172 173 </head> 174 <body> 175 <div id="root"> 176 <div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;"> 177 <main> 178 <header> 179 <h1> 180 Ayman ElTarabishy 181 </h1> 182 <p> 183 Explore the global leadership, research, and impact of Dr. Ayman ElTarabishy in entrepreneurship, MSMEs, Human-Centered Entrepreneurship, education, and public policy. 184 </p> 185 </header> 186 <nav aria-label="Pages"> 187 <h2> 188 Pages 189 </h2> 190 <ul> 191 <li> 192 <a href="/login"> 193 Login 194 </a> 195 â Login on Ayman ElTarabishy. Explore the global leadership, research, and impact of Dr. 196 </li> 197 <li> 198 <a href="/register"> 199 Register 200 </a> 201 â Register on Ayman ElTarabishy. Explore the global leadership, research, and impact of Dr. 202 </li> 203 <li> 204 <a href="/forgot-password"> 205 Forgot Password 206 </a> 207 â Forgot Password on Ayman ElTarabishy. Explore the global leadership, research, and impact of Dr. 208 </li> 209 <li> 210 <a href="/reset-password"> 211 Reset Password 212 </a> 213 â Reset Password on Ayman ElTarabishy. Explore the global leadership, research, and impact of Dr. 214 </li> 215 <li> 216 <a href="/global-trends"> 217 Global Trends 218 </a> 219 â Global Trends on Ayman ElTarabishy. Explore the global leadership, research, and impact of Dr. 220 </li> 221 <li> 222 <a href="/biography"> 223 Biography 224 </a> 225 â Biography on Ayman ElTarabishy. Explore the global leadership, research, and impact of Dr. 226 </li> 227 <li> 228 <a href="/news"> 229 News Articles 230 </a> 231 â News Articles on Ayman ElTarabishy. Explore the global leadership, research, and impact of Dr. 232 </li> 233 <li> 234 <a href="/commentary"> 235 Commentary 236 </a> 237 â Commentary on Ayman ElTarabishy. Explore the global leadership, research, and impact of Dr. 238 </li> 239 <li> 240 <a href="/journal"> 241 Journal 242 </a> 243 â Journal on Ayman ElTarabishy. Explore the global leadership, research, and impact of Dr. 244 </li> 245 <li> 246 <a href="/research"> 247 Research 248 </a> 249 â Research on Ayman ElTarabishy. Explore the global leadership, research, and impact of Dr. 250 </li> 251 <li> 252 <a href="/books"> 253 Books 254 </a> 255 â Books on Ayman ElTarabishy. Explore the global leadership, research, and impact of Dr. 256 </li> 257 <li> 258 <a href="/presentations"> 259 Presentations 260 </a> 261 â Presentations on Ayman ElTarabishy. Explore the global leadership, research, and impact of Dr. 262 </li> 263 <li> 264 <a href="/about"> 265 About 266 </a> 267 â About on Ayman ElTarabishy. Explore the global leadership, research, and impact of Dr. 268 </li> 269 <li> 270 <a href="/contact"> 271 Contact 272 </a> 273 â Contact on Ayman ElTarabishy. Explore the global leadership, research, and impact of Dr. 274 </li> 275 <li> 276 <a href="/admin"> 277 Admin 278 </a> 279 â Admin on Ayman ElTarabishy. Explore the global leadership, research, and impact of Dr. 280 </li> 281 </ul> 282 </nav> 283 </main> 284 </div> 285 </div> 286
286<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"93f38e98de984f47b0e5d163a5bea173","r":1,"spa":2}' crossorigin="anonymous"></script>
286 287</body> 288</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.