PageSourceSearch

https://masahiko.info/archive/2020/04/24

html masahiko.info collected 2026-09-24 12:04:30 UTC 21,229 bytes, 679 lines download raw bytes

1<!DOCTYPE html>
2<html
3  lang="ja"
4
5
6data-admin-domain="//blog.hatena.ne.jp"
7data-admin-origin="https://blog.hatena.ne.jp"
8data-author="misshiki"
9data-avail-langs="ja en"
10data-blog="misshiki.hateblo.jp"
11data-blog-host="misshiki.hateblo.jp"
12data-blog-is-public="1"
13data-blog-name="Masahiko Isshiki | 一色政彦"
14data-blog-owner="misshiki"
15data-blog-show-ads=""
16data-blog-show-sleeping-ads=""
17data-blog-uri="https://masahiko.info/"
18data-blog-uuid="26006613555533190"
19data-blogs-uri-base="https://masahiko.info"
20data-brand="pro"
21data-data-layer="{&quot;hatenablog&quot;:{&quot;admin&quot;:{},&quot;analytics&quot;:{&quot;brand_property_id&quot;:&quot;&quot;,&quot;measurement_id&quot;:&quot;&quot;,&quot;non_sampling_property_id&quot;:&quot;&quot;,&quot;property_id&quot;:&quot;&quot;,&quot;separated_property_id&quot;:&quot;UA-29716941-20&quot;},&quot;blog&quot;:{&quot;blog_id&quot;:&quot;26006613555533190&quot;,&quot;content_seems_japanese&quot;:&quot;true&quot;,&quot;disable_ads&quot;:&quot;custom_domain&quot;,&quot;enable_ads&quot;:&quot;false&quot;,&quot;entry_show_footer_related_entries&quot;:&quot;false&quot;,&quot;force_pc_view&quot;:&quot;true&quot;,&quot;is_public&quot;:&quot;true&quot;,&quot;is_responsive_view&quot;:&quot;true&quot;,&quot;is_sleeping&quot;:&quot;false&quot;,&quot;lang&quot;:&quot;ja&quot;,&quot;name&quot;:&quot;Masahiko Isshiki | \u4e00\u8272\u653f\u5f66&quot;,&quot;owner_name&quot;:&quot;misshiki&quot;,&quot;uri&quot;:&quot;https://masahiko.info/&quot;},&quot;brand&quot;:&quot;pro&quot;,&quot;page_id&quot;:&quot;archive&quot;,&quot;permalink_entry&quot;:null,&quot;pro&quot;:&quot;pro&quot;,&quot;router_type&quot;:&quot;blogs&quot;}}"
22data-device="pc"
23data-dont-recommend-pro="false"
24data-global-domain="https://hatena.blog"
25data-globalheader-color="b"
26data-globalheader-type="pc"
27data-has-touch-view="1"
28data-help-url="https://help.hatenablog.com"
29data-hide-header="1"
30data-no-suggest-touch-view="1"
31data-page="archive"
32data-parts-domain="https://hatenablog-parts.com"
33data-plus-available="1"
34data-pro="true"
35data-router-type="blogs"
36data-sentry-dsn="https://[email protected]/1195218"
37data-sentry-environment="production"
38data-sentry-sample-rate="0.1"
39data-static-domain="https://cdn.blog.st-hatena.com"
40data-version="4dd741a907213e900600e22f5c7647"
41
42
43
44
45
46  itemscope
47  itemtype="http://schema.org/Blog"
48
49
50  data-initial-state="{}"
51
52  >
53  <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">
54
55  
56
57  
58  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
59
60
61  
62
63
64  
65
66  <meta name="robots" content="max-image-preview:large" />
67
68
69  <meta charset="utf-8"/>
70  <meta http-equiv="X-UA-Compatible" content="IE=7; IE=9; IE=10; IE=11" />
71  <title>2020-04-24から1日間の記事一覧 - Masahiko Isshiki | 一色政彦</title>
72
73  
74  <link rel="canonical" href="https://masahiko.info/archive/2020/04/24"/>
75
76
77
78  
79
80<meta itemprop="name" content="2020-04-24から1日間の記事一覧 - Masahiko Isshiki | 一色政彦"/>
81
82  <meta itemprop="image" content="https://cdn.blog.st-hatena.com/images/theme/og-image-1500.png"/>
83
84
85  <meta property="og:title" content="2020-04-24から1日間の記事一覧 - Masahiko Isshiki | 一色政彦"/>
86<meta property="og:type" content="blog"/>
87  <meta property="og:url" content="https://masahiko.info/archive/2020/04/24"/>
88
89  
90  
91  
92  <meta property="og:image" content="https://cdn.blog.st-hatena.com/images/theme/og-image-1500.png"/>
93
94<meta property="og:image:alt" content="2020-04-24から1日間の記事一覧 - Masahiko Isshiki | 一色政彦"/>
95  <meta property="og:description" content="一色政彦のプロフィール、ブログ、開発ツール、執筆・活動情報をまとめた個人ポータルサイトです。" />
96<meta property="og:site_name" content="Masahiko Isshiki | 一色政彦"/>
97
98    <meta name="twitter:card" content="summary" />  <meta name="twitter:title" content="2020-04-24から1日間の記事一覧 - Masahiko Isshiki | 一色政彦" />  <meta name="twitter:description" content="一色政彦のプロフィール、ブログ、開発ツール、執筆・活動情報をまとめた個人ポータルサイトです。" />  <meta name="twitter:app:name:iphone" content="はてなブログアプリ" />
99  <meta name="twitter:app:id:iphone" content="583299321" />
100  <meta name="twitter:app:url:iphone" content="hatenablog:///open?uri=https%3A%2F%2Fmasahiko.info%2Farchive%2F2020%2F04%2F24" />
101  
102
103
104  
105<script
106  id="embed-gtm-data-layer-loader"
107  data-data-layer-page-specific=""
108>
109(function() {
110  function loadDataLayer(elem, attrName) {
111    if (!elem) { return {}; }
112    var json = elem.getAttribute(attrName);
113    if (!json) { return {}; }
114    return JSON.parse(json);
115  }
116
117  var globalVariables = loadDataLayer(
118    document.documentElement,
119    'data-data-layer'
120  );
121  var pageSpecificVariables = loadDataLayer(
122    document.getElementById('embed-gtm-data-layer-loader'),
123    'data-data-layer-page-specific'
124  );
125
126  var variables = [globalVariables, pageSpecificVariables];
127
128  if (!window.dataLayer) {
129    window.dataLayer = [];
130  }
131
132  for (var i = 0; i < variables.length; i++) {
133    window.dataLayer.push(variables[i]);
134  }
135})();
136</script>
136
137
138<!-- Google Tag Manager -->
139<script>
vendor: 327 bytes, lines 139-143
139(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
140new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
141j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
142'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
143})(window,document,'script','dataLayer','
143GTM-P4CXTW
vendor: 3 bytes, line 143
143');
143</script>
143
144<!-- End Google Tag Manager -->
145
146
147
148
149
150
151
152
153
154
155
156  <link rel="shortcut icon" href="https://masahiko.info/icon/favicon">
157<link rel="apple-touch-icon" href="https://masahiko.info/icon/touch">
158<link rel="icon" sizes="192x192" href="https://masahiko.info/icon/link">
159
160  
161
162<link rel="alternate" type="application/atom+xml" title="Atom" href="https://masahiko.info/feed"/>
163<link rel="alternate" type="application/rss+xml" title="RSS2.0" href="https://masahiko.info/rss"/>
164
165  
166  
167  <link rel="author" href="http://www.hatena.ne.jp/misshiki/">
168
169
170  
171
172  
173
174
175  
176    
177<link rel="stylesheet" type="text/css" href="https://cdn.blog.st-hatena.com/css/blog.css?version=4dd741a907213e900600e22f5c7647"/>
178
179    
180  <link rel="stylesheet" type="text/css" href="https://usercss.blog.st-hatena.com/blog_style/26006613555533190/13f147c0c2ecf53e0b276a18105b159dee8692b5"/>
181  
182  
183  
184
185  
186
187  
188<script> </script>
188
189
190  
191<style>
192  div#google_afc_user,
193  div.google-afc-user-container,
194  div.google_afc_image,
195  div.google_afc_blocklink {
196      display: block !important;
197  }
198</style>
199
200
201  
202
203  
204
205  
205<script>
206(function() {
207  if (location.pathname !== '/' && location.pathname !== '/index') return;
208  if (window.__lpLandingScriptLoaded) return;
209  window.__lpLandingScriptLoaded = true;
210
211  function lpUpdateTokyoTime() {
212    var el = document.getElementById('tokyo-time');
213    if (!el) return;
214    var fmt = new Intl.DateTimeFormat('en-US', {
215      timeZone: 'Asia/Tokyo',
216      hour: '2-digit',
217      minute: '2-digit',
218      second: '2-digit',
219      hour12: true
220    });
221    el.textContent = fmt.format(new Date());
222  }
223
224  window.lpCopyEmail = function(btn) {
225    var u = btn.getAttribute('data-u');
226    var d = btn.getAttribute('data-d');
227    var display = btn.querySelector('.email-display');
228    if (!u || !d || !display) return;
229
230    var addr = u + String.fromCharCode(64) + d;
231    if (!btn.getAttribute('data-revealed')) {
232      display.textContent = u + ' [at] ' + d;
233      btn.setAttribute('data-revealed', '1');
234      return;
235    }
236
237    if (!navigator.clipboard || !navigator.clipboard.writeText) {
238      display.textContent = addr;
239      return;
240    }
241
242    navigator.clipboard.writeText(addr).then(function() {
243      var prev = display.textContent;
244      display.textContent = 'copied to clipboard!';
245      display.classList.add('copied');
246      setTimeout(function() {
247        display.textContent = prev;
248        display.classList.remove('copied');
249      }, 1600);
250    });
251  };
252
253  function lpBindEmail() {
254    var btn = document.querySelector('[data-lp-email]');
255    if (!btn || btn.getAttribute('data-lp-bound')) return;
256    btn.setAttribute('data-lp-bound', '1');
257    btn.addEventListener('click', function() {
258      window.lpCopyEmail(btn);
259    });
260  }
261
262  function lpInitLanding() {
263    lpUpdateTokyoTime();
264    lpBindEmail();
265    if (!window.__lpTokyoTimer) {
266      window.__lpTokyoTimer = setInterval(lpUpdateTokyoTime, 1000);
267    }
268  }
269
270  if (document.readyState === 'loading') {
271    document.addEventListener('DOMContentLoaded', lpInitLanding);
272  } else {
273    lpInitLanding();
274  }
275})();
276</script>
276
277
278  
279
280</head>
281
282  <body class="page-archive enable-top-editarea globalheader-off globalheader-ng-enabled">
283    
284    
285
286<div id="globalheader-container"
287  data-brand="hatenablog"
288  style="display: none"
289  >
290  <iframe id="globalheader" height="37" frameborder="0" allowTransparency="true"></iframe>
291</div>
292
293
294  
295  
296  
297
298  <div id="container">
299    <div id="container-inner">
300      <header id="blog-title" data-brand="hatenablog">
301  <div id="blog-title-inner" >
302    <div id="blog-title-content">
303      <h1 id="title"><a href="https://masahiko.info/">Masahiko Isshiki | 一色政彦</a></h1>
304      
305        <h2 id="blog-description">一色政彦のプロフィール、ブログ、開発ツール、執筆・活動情報をまとめた個人ポータルサイトです。</h2>
306      
307    </div>
308  </div>
309</header>
310
311      
312
313  <div id="top-editarea">
314    <!--
315  masahiko.info - top edit area landing HTML
316
317  Deploy to:
318  はてなブログ管理画面 -> デザイン -> カスタマイズ -> ヘッダ -> タイトル下
319
320  Notes:
321  - This HTML is rendered as #top-editarea on every page.
322  - design-css.css shows this landing only on body.page-index.
323  - JavaScript lives in header-html.html, deployed to the head_html field.
324-->
325
326<div class="lp">
327  <header class="hero">
328    <div class="hero-meta">
329      <span class="tokyo">
330        <span class="pulse"></span>
331        TOKYO &middot; <span id="tokyo-time">--:--:-- AM</span> JST
332      </span>
333    </div>
334
335    <div class="container">
336      <div class="name-block">
337        <p class="hi">Hi, I'm</p>
338        <h1 class="name">Masahiko <em>Isshiki</em>.</h1>
339        <p class="name-jp" aria-label="一色 政彦">
340          <span class="name-part name-family" aria-hidden="true">一色</span>
341          <span class="name-part name-given" aria-hidden="true">政彦</span>
342        </p>
343        <p class="pronounce">/ MA-sa-HEE-ko EESH-kee /</p>
344      </div>
345
346      <p class="tag">A software engineer focused on <em>data, machine learning, and applied AI</em> &mdash; using real-world data to support better decision-making. Editor-in-chief of ï¼ IT's "Deep Insider," a Japanese tech media on AI and developer tools. Tokyo-based.</p>
347      <p class="tag-jp">データ・機械学習・AI 活用を軸に、実世界のデータを意思決定に活かすソフトウェアエンジニア。@IT「Deep Insider」編集長として、AI と開発者向け情報の発信もしています。東京拠点。</p>
348    </div>
349  </header>
350
351  <main class="body">
352    <div class="container">
353      <section id="tools">
354        <div class="label">Tools</div>
355        <div class="grid3">
356          <a class="tool" href="https://chromewebstore.google.com/detail/smartre-for-gmail/didekpjkeflkjeffikpphaccodoaohid" target="_blank" rel="noopener">
357            <div class="img"><img src="https://re.masahiko.info/img/landing/smartre.png" alt="SmartRe for Gmail screenshot"></div>
358            <div class="body-inner">
359              <h3>SmartRe for Gmail</h3>
360              <span class="platform">Chrome Extension</span>
361              <p>Refines Gmail's reply quoting and headers for cleaner correspondence.</p>
362            </div>
363          </a>
364
365          <a class="tool" href="https://chromewebstore.google.com/detail/smarturls-copy-and-open-u/ekeecbnnlnmjimahpjnfdognobmabbfb" target="_blank" rel="noopener">
366            <div class="img"><img src="https://re.masahiko.info/img/landing/smarturls.png" alt="SmartURLs screenshot"></div>
367            <div class="body-inner">
368              <h3>SmartURLs</h3>
369              <span class="platform">Chrome Extension</span>
370              <p>Copy and open URLs faster with keyboard-first interactions.</p>
371            </div>
372          </a>
373
374          <a class="tool" href="https://addons.thunderbird.net/ja/thunderbird/addon/refwdformatter/" target="_blank" rel="noopener">
375            <div class="img"><img src="https://re.masahiko.info/img/landing/refwdformatter.gif" alt="ReFwdFormatter screenshot"></div>
376            <div class="body-inner">
377              <h3>ReFwdFormatter</h3>
378              <span class="platform">Thunderbird Add-on</span>
379              <p>Tidies up Re/Fwd subject lines in Thunderbird for international threads.</p>
380            </div>
381          </a>
382        </div>
383
384        <div class="other">
385          <a href="https://isshiki.github.io/job-future-explorer/" target="_blank" rel="noopener">job-future-explorer</a>
386          <a href="https://isshiki.github.io/PromptLinker/" target="_blank" rel="noopener">PromptLinker</a>
387          <a href="https://github.com/isshiki/hype-cycle-curve" target="_blank" rel="noopener">hype-cycle-curve</a>
388          <a href="https://github.com/isshiki" class="more" target="_blank" rel="noopener">More on GitHub</a>
389        </div>
390      </section>
391
392      <section id="websites" class="section-spaced">
393        <div class="label">WebSITE</div>
394        <div class="sites">
395          <a class="site" href="https://www.masahiko.info/">
396            <strong>Profile</strong>
397            <em>www.masahiko.info</em>
398            <p class="desc">Personal homepage with profile, works, and contact.</p>
399          </a>
400
401          <a class="site" href="https://blog.masahiko.info/">
402            <strong>BLOG</strong>
403            <em>blog.masahiko.info</em>
404            <p class="desc">Notes on AI, software, and tools &mdash; updated regularly.</p>
405          </a>
406
407          <a class="site" href="https://www.itmedia.co.jp/author/194411/" target="_blank" rel="noopener">
408            <strong>Articles</strong>
409            <em>ITmedia 著者ページ</em>
410            <p class="desc">Long-form articles published on ITmedia (Japanese).</p>
411          </a>
412        </div>
413      </section>
414
415      <section id="connect" class="section-spaced">
416        <div class="label">Connect</div>
417        <div class="connect">
418          <a class="connect-card" href="https://x.com/isshiki" target="_blank" rel="noopener">
419            <span class="icon">X</span>
420            <span><strong>@isshiki</strong><em>X (Twitter)</em></span>
421          </a>
422
423          <a class="connect-card hatena-card" href="https://b.hatena.ne.jp/misshiki/" target="_blank" rel="noopener">
424            <span class="icon">B!</span>
425            <span><strong>misshiki</strong><em>はてなブックマーク</em></span>
426          </a>
427
428          <button class="connect-card email-card" type="button" data-lp-email data-u="masahiko-isshiki" data-d="googlegroups.com">
429            <span class="icon">@</span>
430            <span><strong>Email</strong><em class="email-display">click to reveal</em></span>
431          </button>
432        </div>
433      </section>
434    </div>
435  </main>
436
437  <footer class="footer">
438    <div class="container">
439      <div class="copy">&copy; 2003 Masahiko Isshiki</div>
440    </div>
441  </footer>
442</div>
443
444  </div>
445
446
447      
448      
449
450
451
452<div id="content">
453  <div id="content-inner">
454    <div id="wrapper">
455      <div id="main">
456        <div id="main-inner">
457          
458
459          
460
461
462
463          
464
465
466          
467
468          
469            <h2 class="archive-heading">
470              2020-04-24から1日間の記事一覧
471            </h2>
472          
473
474          
475            <div class="archive-entries">
476              
477                
478                  <section class="archive-entry test-archive-entry autopagerize_page_element" data-uuid="26006613555535306">
479<div class="archive-entry-header">
480  <div class="date archive-date">
481    <a href="https://masahiko.info/archive/2020/04/24" rel="nofollow">
482      <time datetime="2020-04-24" title="2020-04-24">
483        <span class="date-year">2020</span><span class="hyphen">-</span><span class="date-month">04</span><span class="hyphen">-</span><span class="date-day">24</span>
484      </time>
485    </a>
486  </div>
487
488  <h1 class="entry-title">
489    <a class="entry-title-link" href="https://masahiko.info/entry/2020/04/24/181834">下記のサイトがあります</a>
490    
491    
492  </h1>
493</div>
494
495
496
497
498<div class="archive-entry-body">
499  <p class="entry-description">
500    
501      いっしきまさひこWebSITE いっしきまさひこBLOG
502    
503  </p>
504
505  
506    <div class="archive-entry-tags-wrapper">
507  <div class="archive-entry-tags">  </div>
508</div>
509
510  
511
512  <span class="social-buttons">
513    
514    
515
516    <span
517      class="star-container"
518      data-hatena-star-container
519      data-hatena-star-url="https://masahiko.info/entry/2020/04/24/181834"
520      data-hatena-star-title="下記のサイトがあります"
521      data-hatena-star-variant="profile-icon"
522      data-hatena-star-profile-url-template="https://blog.hatena.ne.jp/{username}/"
523    ></span>
524  </span>
525</div>
526</section>
527              
528            </div>
529
530          
531        </div>
532
533        
534      </div>
535    </div>
536
537    
538<aside id="box2">
539  
540  <div id="box2-inner">
541    
542  </div>
543</aside>
544
545
546
547  </div>
548</div>
549
550
551      
552
553      
554
555
556    </div>
557  </div>
558  
559
560  
561
562  
563  
564
565<div class="quote-box">
566  <div class="tooltip-quote tooltip-quote-stock">
567    <i class="blogicon-quote" title="引用をストック"></i>
568  </div>
569  <div class="tooltip-quote tooltip-quote-tweet js-tooltip-quote-tweet">
570    <a class="js-tweet-quote" target="_blank" data-track-name="quote-tweet" data-track-once>
571      <img src="https://cdn.blog.st-hatena.com/images/admin/quote/quote-x-icon.svg?version=4dd741a907213e900600e22f5c7647" title="引用して投稿する" >
572    </a>
573  </div>
574</div>
575
576<div class="quote-stock-panel" id="quote-stock-message-box" style="position: absolute; z-index: 3000">
577  <div class="message-box" id="quote-stock-succeeded-message" style="display: none">
578    <p>引用をストックしました</p>
579    <button class="btn btn-primary" id="quote-stock-show-editor-button" data-track-name="curation-quote-edit-button">ストック一覧を見る</button>
580    <button class="btn quote-stock-close-message-button">閉じる</button>
581  </div>
582
583  <div class="message-box" id="quote-login-required-message" style="display: none">
584    <p>引用するにはまずログインしてください</p>
585    <button class="btn btn-primary" id="quote-login-button">ログイン</button>
586    <button class="btn quote-stock-close-message-button">閉じる</button>
587  </div>
588
589  <div class="error-box" id="quote-stock-failed-message" style="display: none">
590    <p>引用をストックできませんでした。再度お試しください</p>
591    <button class="btn quote-stock-close-message-button">閉じる</button>
592  </div>
593
594  <div class="error-box" id="unstockable-quote-message-box" style="display: none; position: absolute; z-index: 3000;">
595    <p>限定公開記事のため引用できません。</p>
596  </div>
597</div>
598
599<script type="x-underscore-template" id="js-requote-button-template">
600  <div class="requote-button js-requote-button">
601    <button class="requote-button-btn tipsy-top" title="引用する"><i class="blogicon-quote"></i></button>
602  </div>
603</script>
603
604
605
606
607  
608  <div id="hidden-subscribe-button" style="display: none;">
609    <div class="hatena-follow-button-box btn-subscribe js-hatena-follow-button-box"
610  
611  >
612
613  <a href="#" class="hatena-follow-button js-hatena-follow-button">
614    <span class="subscribing">
615      <span class="foreground">読者です</span>
616      <span class="background">読者をやめる</span>
617    </span>
618    <span class="unsubscribing" data-track-name="profile-widget-subscribe-button" data-track-once>
619      <span class="foreground">読者になる</span>
620      <span class="background">読者になる</span>
621    </span>
622  </a>
623  <div class="subscription-count-box js-subscription-count-box">
624    <i></i>
625    <u></u>
626    <span class="subscription-count js-subscription-count">
627    </span>
628  </div>
629</div>
630
631  </div>
632
633  
634
635
636
637    
638
639
640  
640<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
640
641
642<script src="https://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script>
642
643
644
645<script type="text/javascript" src="https://cdn.blog.st-hatena.com/js/external/jquery.min.js?v=1.12.4&amp;version=4dd741a907213e900600e22f5c7647"></script>
645
646
647
648
649
650
651
652
653<script src="https://cdn.blog.st-hatena.com/js/texts-ja.js?version=4dd741a907213e900600e22f5c7647"></script>
653
654
655
656
657  
657<script id="vendors-js" data-env="production" src="https://cdn.blog.st-hatena.com/js/vendors.js?version=4dd741a907213e900600e22f5c7647" crossorigin="anonymous"></script>
657
658
659<script id="hatenablog-js" data-env="production" src="https://cdn.blog.st-hatena.com/js/hatenablog.js?version=4dd741a907213e900600e22f5c7647" crossorigin="anonymous" data-page-id="archive-year-month-day"></script>
659
660
661
662  
662<script>Hatena.Diary.GlobalHeader.init()</script>
662
663
664
665
666
667
668
669
670    
671
672    
673
674
675
676
677
678  </body>
679</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.