{"id":12,"date":"2025-08-18T06:45:11","date_gmt":"2025-08-17T21:45:11","guid":{"rendered":"https:\/\/masam.w.waseda.jp\/?page_id=12"},"modified":"2026-08-04T04:18:09","modified_gmt":"2026-08-03T19:18:09","slug":"masayoshi-moteki-%e8%8c%82%e6%9c%a8-%e9%9b%85%e7%a5%a5","status":"publish","type":"page","link":"https:\/\/masam.w.waseda.jp\/","title":{"rendered":"Masayoshi MOTEKI (\u8302\u6728 \u96c5\u7965)"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"ja\">\n<head>\n<meta charset=\"utf-8\">\n<title>Masayoshi Moteki<\/title>\n<style>\n  .masam-site { font-family: -apple-system, \"Hiragino Kaku Gothic ProN\", sans-serif;\n                max-width: 700px; margin: 2em auto; line-height: 1.7; color: #222; }\n  .masam-site img.profile { width: 160px; border-radius: 6px; float: left;\n                             margin: 0 1.5em 1em 0; }\n  .masam-site h1 { font-size: 1.6em; margin-bottom: 0.2em; }\n  .masam-site .links a { margin-right: 0.8em; color: #2c5f8a; text-decoration: none; }\n  .masam-site .links a:hover { text-decoration: underline; }\n  .masam-site .email-btn { margin-right: 0.8em; color: #2c5f8a; text-decoration: none;\n                            background: none; border: none; padding: 0;\n                            font-family: ui-monospace, \"SFMono-Regular\", Menlo, monospace;\n                            font-size: 1em; cursor: pointer; }\n  .masam-site .email-btn:hover { text-decoration: underline; }\n  .masam-site .clearfix { clear: both; }\n  .masam-site .wp-item { margin-bottom: 1em; }\n  .masam-site .wp-status { color: #666; font-size: 0.9em; }\n<\/style>\n<\/head>\n<body>\n<div class=\"masam-site\">\n<p>Research Associate, Faculty of Science and Engineering, Waseda University.<\/p>\n<p class=\"links\">\n<button id=\"email-btn\" class=\"email-btn\" type=\"button\">Email<\/button>\n<noscript>Please enable JavaScript to view the email address.<\/noscript>\n<a href=\"https:\/\/waseda.box.com\/v\/cv-masayoshi-moteki\">Curriculum Vitae (Japanese) <\/a>\n<a href=\"https:\/\/researchmap.jp\/mm11\">Researchmap<\/a>\n<\/p>\n<div class=\"clearfix\"><\/div>\n\n<script>\n\/* ============================================================\n * email-reveal\uff08\u30a4\u30f3\u30e9\u30a4\u30f3\u7d71\u5408\u7248\uff09\n * \u30bd\u30fc\u30b9\u306b\u306f\u3053\u306e EMAIL_TOKEN\uff08\u6697\u53f7\u6587\uff0b\u30cf\u30c3\u30b7\u30e5\uff09\u3057\u304b\u5b58\u5728\u3057\u306a\u3044\uff0e\n * \u30e6\u30fc\u30b6\u540d\u30fb\u30c9\u30e1\u30a4\u30f3\u30fb\u9375\u306f\u4e00\u5207\u66f8\u304b\u308c\u3066\u3044\u306a\u3044\uff0e\n *\n * \u3053\u306e\u30c8\u30fc\u30af\u30f3\u306e\u4f5c\u308a\u65b9:\n *   1. gen-email-token.js \u3092\u30d6\u30e9\u30a6\u30b6\u306e DevTools \u30b3\u30f3\u30bd\u30fc\u30eb\u306b\u8cbc\u308b\n *   2. genEmailToken('\u672c\u7269\u306e\u30e1\u30a2\u30c9@example.com') \u3092\u5b9f\u884c\n *   3. \u51fa\u529b\u3055\u308c\u305f { c: \"...\", h: \"...\", b: 20 } \u3092\u3053\u3053\u306b\u8cbc\u308a\u66ff\u3048\u308b\n * ============================================================ *\/\nvar EMAIL_TOKEN = { c: \"oALB8JWVDSPMbxVQzWnqjlV3pUX1A9tmolygEJUeai+XHSREY170YQ==\", h: \"c4f56f38\", b: 20 };\n\/* \u2191 \u3053\u308c\u306f\u52d5\u4f5c\u30b5\u30f3\u30d7\u30eb\u7528\u306e\u30c0\u30df\u30fc\u5024\u3060\u3088\uff0e\n      \u672c\u756a\u3067\u306f gen-email-token.js \u3067\u81ea\u5206\u306e\u5b9f\u30a2\u30c9\u30ec\u30b9\u306b\u7f6e\u304d\u63db\u3048\u3066\u306d\uff0e *\/\n\n(function () {\n  'use strict';\n\n  var FNV_OFFSET = 0x811c9dc5;\n  var FNV_PRIME = 0x01000193;\n  var SEED_CONST = 0x9e3779b9;\n  var EMAIL_RE = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/;\n  var CHUNK = 32768;                          \/\/ 1\u30d5\u30ec\u30fc\u30e0\u3042\u305f\u308a\u306e\u8a66\u884c\u9375\u6570\n  var SCRAMBLE_CHARS = '!<>-_\\\\\/[]{}\u2014=+*^?#________';\n  var DISPLAY_LEN = 20;                       \/\/ \u63a2\u7d22\u4e2d\u306b\u8868\u793a\u3059\u308b\u6587\u5b57\u6570\uff08\u5b9f\u969b\u306e\u9577\u3055\u306f\u96a0\u3059\uff09\n\n  function base64ToBytes(b64) {\n    var bin = atob(b64);\n    var out = new Uint8Array(bin.length);\n    for (var i = 0; i < bin.length; i++) { out[i] = bin.charCodeAt(i); }\n    return out;\n  }\n\n  function bytesToText(bytes) {\n    var end = bytes.length;\n    while (end > 0 && bytes[end - 1] === 0) { end--; }\n    var s = '';\n    for (var i = 0; i < end; i++) { s += String.fromCharCode(bytes[i]); }\n    return s;\n  }\n\n  function tryKey(k, cipher, out, target) {\n    var s = (k ^ SEED_CONST) >>> 0;\n    var h = FNV_OFFSET;\n    for (var i = 0; i < cipher.length; i++) {\n      s ^= (s << 13); s >>>= 0;\n      s ^= (s >>> 17); s >>>= 0;\n      s ^= (s << 5);  s >>>= 0;\n      var b = cipher[i] ^ (s & 0xff);\n      out[i] = b;\n      h ^= b;\n      h = Math.imul(h, FNV_PRIME) >>> 0;\n    }\n    return h === target;\n  }\n\n  function scrambleText(n) {\n    var s = '';\n    for (var i = 0; i < n; i++) {\n      s += SCRAMBLE_CHARS.charAt(Math.floor(Math.random() * SCRAMBLE_CHARS.length));\n    }\n    return s;\n  }\n\n  var btn = document.getElementById('email-btn');\n\n  btn.addEventListener('click', function () {\n    if (btn.disabled) { return; }\n    btn.disabled = true;\n\n    var cipher = base64ToBytes(EMAIL_TOKEN.c);\n    var target = parseInt(EMAIL_TOKEN.h, 16) >>> 0;\n    var total = Math.pow(2, EMAIL_TOKEN.b);\n    var buf = new Uint8Array(cipher.length);\n    var k = 0;\n\n    function step() {\n      var end = Math.min(k + CHUNK, total);\n      for (; k < end; k++) {\n        if (tryKey(k, cipher, buf, target)) {\n          var text = bytesToText(buf);\n          if (EMAIL_RE.test(text)) { finish(text); return; }\n        }\n      }\n      if (k >= total) { finish(null); return; }\n      btn.textContent = scrambleText(DISPLAY_LEN);\n      requestAnimationFrame(step);\n    }\n\n    function finish(addr) {\n      if (!addr) {\n        btn.textContent = '\u8868\u793a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f';\n        return;\n      }\n      var link = document.createElement('a');\n      link.href = 'mailto:' + addr;\n      link.textContent = addr;\n      link.className = 'email-btn';\n      link.rel = 'nofollow';\n      btn.replaceWith(link);\n    }\n\n    requestAnimationFrame(step);\n  });\n})();\n<\/script>\n<\/div>\n<\/body>\n<\/html>\n\n\n\n<pre class=\"wp-block-code\"><code>(The email unscrambling JavaScript is inspired by Jeff Donahue and Kohei Hayashida.)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Masayoshi Moteki Research Associate, Faculty of Science and Engineering, Waseda University. Email Please enabl [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-12","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/masam.w.waseda.jp\/index.php?rest_route=\/wp\/v2\/pages\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/masam.w.waseda.jp\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/masam.w.waseda.jp\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/masam.w.waseda.jp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/masam.w.waseda.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=12"}],"version-history":[{"count":10,"href":"https:\/\/masam.w.waseda.jp\/index.php?rest_route=\/wp\/v2\/pages\/12\/revisions"}],"predecessor-version":[{"id":29,"href":"https:\/\/masam.w.waseda.jp\/index.php?rest_route=\/wp\/v2\/pages\/12\/revisions\/29"}],"wp:attachment":[{"href":"https:\/\/masam.w.waseda.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}