CINXE.COM
Hatena Developer Blog[B!]新着記事・評価 - はてなブックマーク
<!DOCTYPE html> <html lang="ja" data-page-scope="EntryList" data-stable-request-url="https://b.hatena.ne.jp/site/developer.hatenastaff.com/" data-device-type="PC" data-sentry-environment="production" data-sentry-sample-rate="0.1" data-category-name="all" data-issue-name="" data-page-subtype="recententry" data-page-type="entrylist" > <head> <!-- Google Tag Manager --> <script> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5TDHQX'); </script> <!-- End Google Tag Manager --> <meta charset="UTF-8"> <title>Hatena Developer Blog[B!]新着記事・評価 - はてなブックマーク</title> <script src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/js/v4/bookmark.js" async></script> <link type="text/css" rel="stylesheet" href="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/css/v4/bookmark.css" /> <link type="text/css" rel="stylesheet" href="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/css/v4/bookmark.star.css" /> <link rel="canonical" href="https://b.hatena.ne.jp/site/developer.hatenastaff.com/" /> <link rel="next" href="/site/developer.hatenastaff.com/?page=2"> <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> <meta name="viewport" content="width=device-width"> <link rel="search" type="application/opensearchdescription+xml" title="はてなブックマーク検索" href="/opensearch.xml" /> <link rel="apple-touch-icon-precomposed" href="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/apple-touch-icon-precomposed.png" /> <link rel="mask-icon" href="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/safari-pinned-tab-icon.svg" color="#00A4DE" /> <meta name="msapplication-navbutton-color" content="#2C6EBD" /> <meta name="msapplication-task" content="name=はてなブックマーク; action-uri=/; icon-uri=https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/icons/bookmark.ico" /> <meta name="msapplication-task" content="name=マイブックマーク; action-uri=/my; icon-uri=https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/icons/my-bookmark.ico" /> <meta name="msapplication-task" content="name=お気に入りのブックマーク; action-uri=/my/favorite; icon-uri=https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/icons/favorite-bookmark.ico" /> <meta name="msapplication-task" content="name=人気エントリー; action-uri=/hotentry; icon-uri=https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/icons/hotentry.ico" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="referrer" content="always"> <link rel="alternate" type="application/rss+xml" href="/site/developer.hatenastaff.com/?sort=hot&threshold=3&mode=rss" /> <script> function isMobile() { const html = document.documentElement; const deviceType = html.dataset.deviceType || ''; if (deviceType.length > 0) { return deviceType === 'MOBILE'; } else { const maxMobileWidth = 480; const windowWidth = window.innerWidth; return maxMobileWidth >= windowWidth; } } </script> </head> <body class=" fixed-header"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5TDHQX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div class="link-app-banner js-dynamic-link-app-banner is-hidden"> <button class="link-app-banner-btn-close js-dynamic-link-app-banner-close-button"><span>close</span></button> <a class="link-app-banner-btn" href="https://hatenabookmark.page.link/app"> <div class="link-app-banner-btn-detail"> <div class="link-app-banner-icon"><img src="/images/v4/public/app/ic-ios.svg" alt="はてなブックマークアプリ"></div> <p class="link-app-banner-text">サクサク読めて、<br class="link-app-banner-text-newline">アプリ限定の機能も多数!</p> </div> <div class="link-app-banner-btn-open">アプリで開く</div> </a> </div> <header id="global-header" data-portal-static-origin="//cdn.www.st-hatena.com"> <div id="header" class="global-header-inner js-global-header-inner"> <h2 id="gh-logo"><a href="/" data-gtm-label="gh-blogo"><span>はてなブックマーク</span></a></h2> <div class="is-guest js-guest is-hidden"> <input id="gh-search-icon-check" type="checkbox" checked="checked" /> <label class="gh-search-icon" for="gh-search-icon-check" aria-label="検索を閉じる"><span>閉じる</span></label> <form class="gh-searchbox" method="get" action="/search_dwim" role="search"> <input value="" name="q" type="search" class="gh-inputtext" placeholder="キーワード・URLを検索" size="40" /> <input value="" type="submit" class="gh-search-button" /> </form> <ul class="gh-service-menu"> <li><a href="/guide" data-gtm-label="gh-guest-guide">はてなブックマークって?</a></li> <li><a href="/guide/tools" data-gtm-label="gh-guest-tools">アプリ・拡張の紹介</a></li> <li><a href="https://www.hatena.ne.jp/register?location=https%3A%2F%2Fb.hatena.ne.jp%2F%3Fregistered_from%3Dglobal-header&via=201037" class="gh-guest-register" data-gtm-label="gh-guest-register">ユーザー登録</a></li> <li><a href="https://www.hatena.ne.jp/login?location=https%3A%2F%2Fb.hatena.ne.jp%2Fsite%2Fdeveloper.hatenastaff.com%2F" rel="nofollow" class="gh-guest-login" data-gtm-label="gh-guest-login">ログイン</a></li> <li class="gh-hatena-logo"><a href="http://www.hatena.ne.jp/"><img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/logo/logo-global-white.svg" alt="Hatena" width="74px" height="13px"/></a></li> </ul> </div> <noscript> <ul class="gh-service-menu"> <li><a href="https://www.hatena.ne.jp/logout?location=https%3A%2F%2Fb.hatena.ne.jp%2F">ログアウト</a></li> </ul> </noscript> <script type="text/x-template" id="template-menu-hatena-user"> <form class="gh-searchbox" method="get" action="/search_dwim" role="search"> <input value="" name="q" type="search" class="gh-inputtext" placeholder="キーワード・URLを検索" size="40" /> <input value="" type="submit" class="gh-search-button" /> </form> <ul class="gh-service-menu"> <li><a class="hotentry" data-gtm-label="gh-mypage" href="{{hotentry_url}}"><img src="{{user_image_url}}" class="header-profile-icon" width="16" height="16" alt="{{username}}" /></a><a class="hotentry" data-gtm-label="gh-mypage" href="{{hotentry_url}}">マイページ</a></li> <li><a class="bookmark" data-gtm-label="gh-bookmark" href="{{bookmark_url}}">ブックマーク</a></li> <li><a class="unread_bookmark" data-gtm-label="gh-ril" href="{{bookmark_stock_url}}">あとで読む</a></li> <li><a class="add" data-gtm-label="gh-add" href="{{add_bookmark_url}}">追加</a></li> <li><a class="tools" data-gtm-label="gh-tools" href="/guide/tools">ツール</a></li> <li><a class="config" data-gtm-label="gh-config" href="/-/my/config/profile">設定</a></li> <li><a class="feedback" data-gtm-label="gh-feedback" href="/-/feedback/hatena_bookmark" target="_blank">フィードバック</a></li> <li id="header-username" class="gh-dropdown-services" data-gtm-label="gh-services" title="利用中のサービス" data-name="{{username}}"> <span class="header-dropdown gh-dropdown" tabindex="0"> <img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/common/usermenu-wh.svg" alt="利用中のサービス" width="24" height="24" /> </span> <dl class="header-window" id="username-window"></dl> </li> <li id="header-notify" data-gtm-label="gh-notify" class="gh-dropdown-notify" title="あなたへのお知らせ"> <span class="header-dropdown gh-dropdown" tabindex="0"> <img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/common/notify-wh.svg" alt="あなたへのお知らせ" width="25" height="25" /> <span class="notify-count"></span> </span> <div id="notify-window" class="header-window header-notify"></div> </li> <li class="gh-hatena-logo"><a href="http://www.hatena.ne.jp/"><img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/logo/logo-global-white.svg" alt="Hatena" width="74px" height="13px"/></a></li> </ul> </script> </div> </header> <div id="info-header"><div id="info-header-message"></div><span></span></div> <div class="global-notification is-hidden js-global-notification"></div> <script type="text/javascript"> (function() { var layout = "tile"; if (!isMobile()) { try { layout = window.localStorage.getItem("bstn.entrylist.layout") || "tile"; // default } catch (ignore) { layout = "tile" } if (layout === "list") { document.body.classList.add("style-list") } if (layout === "headline") { document.body.classList.add("style-headline") } (dataLayer = window.dataLayer || []).push({ event: 'boston:entrylist:layout', boston: { entrylist: { layout: layout, } } }); } document.body.setAttribute("data-entrylist-layout", layout) })() </script> <ul class="is-hidden"> </ul> <div class="is-hidden"> <div class="river-placement entrylist-image-entry" data-river-placement="url_search_1"></div> </div> <script type="text/javascript" src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/js/v4/bookmark.river.js" async></script> <script type="text/x-template" id="template-ad-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> <script> (function() { function hideAndRegister(configuration, callback) { var styleElement = document.createElement('style'); var selector = configuration.selector; var ads = configuration.ads; var css = ''; for (var i = 0; i < ads.length; i++) { var row = ads[i].row; css += selector + '.is-nativeads-loading > li:nth-child(' + row + ') > .entrylist-contents > * { display: none; }\n'; } styleElement.textContent = css; document.head.appendChild(styleElement); (nativeAds = window.nativeAds || []).push(function(nativeAds) { nativeAds.register(configuration).then(callback || function(){}); }); } if (isMobile()) { } else { var waitContentLoaded = function(callback) { if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', callback); } else { callback(); } }; (nativeAds = window.nativeAds || []).push(function(nativeAds) { nativeAds.register( { selector: ".js-right-top-native-ad", ads: [ { placement: 'url_search_1', row: 1 } ], options: { insert: true, group: true } } ).catch(function() { waitContentLoaded(function() { var layout = document.body.getAttribute('data-entrylist-layout'); if (layout === 'tile') { var nativeAdContainer = document.querySelector('.js-right-top-native-ad'); if (nativeAdContainer) { nativeAdContainer.classList.add('is-hidden'); } var adContainer = document.querySelector('#entrylist-ad-right-top'); if (adContainer) { adContainer.classList.remove('is-hidden'); } var valve = window.valve || []; valve.push(function(v) { v.displayDFPSlot("entrylist-ad-right-top"); }); } else if (layout === 'list' || layout === 'headline') { var container = document.querySelector('.js-right-top-native-ad'); if (container) { container.classList.add('is-hidden'); } } }); }); }); } })(); </script> <script type="text/javascript"> // ---------------- dfp section ---------------- function showAdRightTopDFPSlot() { var nativeAdContainer = document.querySelector('.js-right-top-native-ad'); if (nativeAdContainer) { nativeAdContainer.classList.add('is-hidden'); } var adContainer = document.querySelector('#entrylist-ad-right-top'); if (adContainer) { adContainer.classList.remove('is-hidden'); } }; var valve = valve || []; if (isMobile()) { valve.push(function(v) { v.defineDFPSlot({ unit: '/4374287/bookmark_overlay_sp', sizes: [[320,80],[320,70],[320,50]], slotId: 'touch-footer-ad' }); v.defineDFPSlot({ unit: '/4374287/bookmark_entrylist_middle_rectangle_sp', sizes: [[300,250]], slotId: 'entrylist-ad-rectangle-middle' }); v.defineDFPSlot({ unit: '/4374287/bookmark_entrylist_bottom_rectangle_sp', sizes: [[300,250]], slotId: 'entrylist-ad-rectangle-bottom' }); v.sealDFPSlots(); }); } else { var layout = document.body.getAttribute('data-entrylist-layout'); if (layout === 'tile') { valve.push(function(v) { v.defineDFPSlot({ unit: '/4374287/bookmark_entrylist_middle_super_pc', sizes: [[728,90]], slotId: 'entrylist-ad-banner-middle' }); v.defineDFPSlot({ unit: '/4374287/bookmark_entrylist_bottom_super_pc', sizes: [[728,90]], slotId: 'entrylist-ad-banner-bottom' }); v.defineDFPSlot({ unit: '/4374287/bookmark_entrylist_top_right_rectangle_pc', sizes: [[300,250]], slotId: 'entrylist-ad-right-top', lazy: true }); v.sealDFPSlots(); }); } else if (layout === 'list' || layout === 'headline') { valve.push(function(v) { v.defineDFPSlot({ unit: '/4374287/bookmark_entrylist_sidebar_top_pc', sizes: [[300,250]], slotId: 'entrylist-ad-sidebar-top' }); v.defineDFPSlot({ unit: '/4374287/bookmark_entrylist_sidebar_bottom_pc', sizes: [[300,250]], slotId: 'entrylist-ad-sidebar-bottom' }); v.sealDFPSlots(); }); } } </script> <script> var valve = window.valve || []; valve.push(function(v) { var pageKeyValues = {}; if (document.cookie.split(';').some(function(item) { return item.indexOf('202011_guest_status=register_incomplete') >= 0})) { pageKeyValues.bookmark_status = 'register_incomplete'; } v.config({ pageKeyValues: pageKeyValues, textSelector: ".entrylist-wrapper", content: { result: "ng" }, service: 'bookmark' }); }); </script> <script src="https://cdn.pool.st-hatena.com/valve/valve.js" async></script> <div id="container"> <div class="branding js-branding" class="__FIXME__"> <div class="branding-header"> <h1 class="branding-title"> <a href="/"><span>はてなブックマーク</span></a> </h1> <p class="gototop"><a href="/" data-gtm-click-label="branding-left-top-blogo">トップへ戻る</a></p> </div> <form class="branding-searchbox" method="get" action="/search_dwim"> <input value="https://developer.hatenastaff.com/" name="q" type="text" class="inputtext" id="searchtext" placeholder="キーワード・URLを検索" size="40" aria-label="キーワード・URLを検索" /> <input value="" type="submit" class="search-button" /> </form> <div class="navi-layout js-entrylist-layout-switcher"> <button type="button" class="navi-layout-tile js-entrylist-layout-switcher-item" data-layout="tile" aria-label="表示レイアウトをタイル形式に変更"></button> <button type="button" class="navi-layout-list js-entrylist-layout-switcher-item" data-layout="list" aria-label="表示レイアウトをリスト形式に変更"></button> <button type="button" class="navi-layout-headline js-entrylist-layout-switcher-item" data-layout="headline" aria-label="表示レイアウトをヘッドライン形式に変更"></button> </div> </div> <div class="navi-wrapper js-navi-category-wrapper is-unscrolled noscript"> <ul class="navi-body js-navi-category"> <li class="js-navi-category-item cat-all" data-category-name="cat-all"> <div class="navi-link js-navi-link"> <a href="/hotentry/all" class="navi-link-text cat-all" data-gtm-click-label="global-navi-all"><span>総合</span></a> <span class="gnavi-button js-gnavi-button" data-category-name="cat-all" data-gtm-click-label="global-navi-button-all"></span> </div> <div class="navi-item-detail js-navi-item-detail is-hidden"> <div class="navi-item-detail-inner js-navi-item-detail-inner"> <ul class="navi-item-list"> <li class="navi_hotentry"><a href="/hotentry/all" data-gtm-click-label="global-navi-hotentry">人気</a></li> <li class="navi_entrylist"><a href="/entrylist/all" data-gtm-click-label="global-navi-recententry">新着</a></li> </ul> <ul class="navi-item-issue"> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/all/IT" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/cc8a7601a91ad3a4427e352619a7bfc5c78f547a/height=288;version=1;width=512/https%3A%2F%2Fi.gzn.jp%2Fimg%2F2025%2F02%2F25%2Fiot-bed-backdoor%2F00.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/all/IT">IT</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/all/%E6%9C%80%E6%96%B0%E3%82%AC%E3%82%B8%E3%82%A7%E3%83%83%E3%83%88" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/31ac6776686de274c63778c69f83390256fa02d6/height=288;version=1;width=512/https%3A%2F%2Fkaden.watch.impress.co.jp%2Fimg%2Fkdw%2Flist%2F1664%2F914%2F0.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/all/%E6%9C%80%E6%96%B0%E3%82%AC%E3%82%B8%E3%82%A7%E3%83%83%E3%83%88">最新ガジェット</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/all/%E8%87%AA%E7%84%B6%E7%A7%91%E5%AD%A6" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/e724513184670a24e6a7c8981a3a72e22034043e/height=288;version=1;width=512/https%3A%2F%2Fimages.forbesjapan.com%2Fmedia%2Farticle%2F77327%2Fimages%2Fmain_image_f9e263015679c3a9db19332e41ae183b4e8de190.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/all/%E8%87%AA%E7%84%B6%E7%A7%91%E5%AD%A6">自然科学</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/all/%E7%B5%8C%E6%B8%88%E3%83%BB%E9%87%91%E8%9E%8D" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/b28ae00d84c6f7d78d7424f2eb6b7fda5c226436/height=288;version=1;width=512/https%3A%2F%2Farticle-image-ix.nikkei.com%2Fhttps%253A%252F%252Fimgix-proxy.n8s.jp%252FDSXZQO5962133005022025000000-1.jpg%3Fixlib%3Djs-2.3.2%26auto%3Dformat%26q%3D45%26w%3D1600%26s%3D6d8a79b26e9f95c3e676450c991452e3);"></a> </span> <span class="issue"> <a href="/entrylist/all/%E7%B5%8C%E6%B8%88%E3%83%BB%E9%87%91%E8%9E%8D">経済・金融</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/all/%E3%81%8A%E3%82%82%E3%81%97%E3%82%8D" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/da71a8304370dbf7d940f1e9540ab418d1aa4d31/height=288;version=1;width=512/https%3A%2F%2Fav.watch.impress.co.jp%2Fimg%2Favw%2Flist%2F1665%2F474%2F3.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/all/%E3%81%8A%E3%82%82%E3%81%97%E3%82%8D">おもしろ</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/all/%E3%83%9E%E3%83%B3%E3%82%AC" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/b1638cdb5807a4788e4ba3c1109a984166e095fc/height=288;version=1;width=512/https%3A%2F%2Fanond.hatelabo.jp%2Fimages%2Fog-image-1500.gif);"></a> </span> <span class="issue"> <a href="/entrylist/all/%E3%83%9E%E3%83%B3%E3%82%AC">マンガ</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/all/%E3%82%B2%E3%83%BC%E3%83%A0" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/b1638cdb5807a4788e4ba3c1109a984166e095fc/height=288;version=1;width=512/https%3A%2F%2Fanond.hatelabo.jp%2Fimages%2Fog-image-1500.gif);"></a> </span> <span class="issue"> <a href="/entrylist/all/%E3%82%B2%E3%83%BC%E3%83%A0">ゲーム</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/all/%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%96%E3%83%AD%E3%82%B0%EF%BC%88%E7%B7%8F%E5%90%88%EF%BC%89" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/7b50fbf1584a3f35dda4d9134389bae0c6a3db82/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2F97ba5ac8d7f271300339f0a8de1de5f93053ed58%2Fbackend%3Dimagemagick%3Bversion%3D1%3Bwidth%3D1300%2Fhttps%253A%252F%252Fcdn-ak.f.st-hatena.com%252Fimages%252Ffotolife%252Fo%252Foitech%252F20250218%252F20250218092003.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/all/%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%96%E3%83%AD%E3%82%B0%EF%BC%88%E7%B7%8F%E5%90%88%EF%BC%89">はてなブログ(総合)</a> </span> </li> </ul> </div> </div> </li> <li class="js-navi-category-item cat-general" data-category-name="cat-general"> <div class="navi-link js-navi-link"> <a href="/hotentry/general" class="navi-link-text cat-general" data-gtm-click-label="global-navi-general"><span>一般</span></a> <span class="gnavi-button js-gnavi-button" data-category-name="cat-general" data-gtm-click-label="global-navi-button-general"></span> </div> <div class="navi-item-detail js-navi-item-detail is-hidden"> <div class="navi-item-detail-inner js-navi-item-detail-inner"> <ul class="navi-item-list"> <li class="navi_hotentry"><a href="/hotentry/general" data-gtm-click-label="global-navi-hotentry">人気</a></li> <li class="navi_entrylist"><a href="/entrylist/general" data-gtm-click-label="global-navi-recententry">新着</a></li> </ul> <ul class="navi-item-issue"> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/general/%E7%A4%BE%E4%BC%9A%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/0b20e8f3ae46be22549f1c3a2d622631c7e3cf8b/height=288;version=1;width=512/https%3A%2F%2Fwww.yomiuri.co.jp%2Fmedia%2F2025%2F02%2F20250225-OYT1I50132-1.jpg%3Ftype%3Dogp);"></a> </span> <span class="issue"> <a href="/entrylist/general/%E7%A4%BE%E4%BC%9A%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9">社会ニュース</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/general/%E5%9C%B0%E5%9F%9F" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/442206744fb97566cf5481bc013a9321f65d7170/height=288;version=1;width=512/https%3A%2F%2Fwww3.nhk.or.jp%2Flnews%2Fmito%2F20250225%2F1070026524_20250225122111_m.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/general/%E5%9C%B0%E5%9F%9F">地域</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/general/%E5%9B%BD%E9%9A%9B" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/0b20e8f3ae46be22549f1c3a2d622631c7e3cf8b/height=288;version=1;width=512/https%3A%2F%2Fwww.yomiuri.co.jp%2Fmedia%2F2025%2F02%2F20250225-OYT1I50132-1.jpg%3Ftype%3Dogp);"></a> </span> <span class="issue"> <a href="/entrylist/general/%E5%9B%BD%E9%9A%9B">国際</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/general/%E5%A4%A9%E6%B0%97" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/d7b484bfbff3dbab19a8397b703f871f187ed1a9/height=288;version=1;width=512/https%3A%2F%2Farticle-image-ix.nikkei.com%2Fhttps%253A%252F%252Fimgix-proxy.n8s.jp%252FDSXZQO6044206024022025000000-4.jpg%3Fauto%3Dformat%26bg%3DFFFF%26crop%3Dfocalpoint%26fit%3Dcrop%26h%3D630%26w%3D1200%26s%3Dc2dd9c46a1dfab4a1feb5c7dfa19d6fc);"></a> </span> <span class="issue"> <a href="/entrylist/general/%E5%A4%A9%E6%B0%97">天気</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/general/%E3%82%B0%E3%83%AB%E3%83%A1" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/31ac6776686de274c63778c69f83390256fa02d6/height=288;version=1;width=512/https%3A%2F%2Fkaden.watch.impress.co.jp%2Fimg%2Fkdw%2Flist%2F1664%2F914%2F0.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/general/%E3%82%B0%E3%83%AB%E3%83%A1">グルメ</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/general/%E6%98%A0%E7%94%BB%E3%83%BB%E9%9F%B3%E6%A5%BD" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/c7c9b27de4ffef40acfb3aabfd5452d00a239827/height=288;version=1;width=512/https%3A%2F%2Feiga.k-img.com%2Fimages%2Fanime%2Fnews%2F123150%2Fphoto%2F0e3f8311d5a8f51c%2Fcredit.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/general/%E6%98%A0%E7%94%BB%E3%83%BB%E9%9F%B3%E6%A5%BD">映画・音楽</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/general/%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%84" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/b1638cdb5807a4788e4ba3c1109a984166e095fc/height=288;version=1;width=512/https%3A%2F%2Fanond.hatelabo.jp%2Fimages%2Fog-image-1500.gif);"></a> </span> <span class="issue"> <a href="/entrylist/general/%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%84">スポーツ</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/general/%E3%81%AF%E3%81%A6%E3%81%AA%E5%8C%BF%E5%90%8D%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AA%E3%83%BC" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/b1638cdb5807a4788e4ba3c1109a984166e095fc/height=288;version=1;width=512/https%3A%2F%2Fanond.hatelabo.jp%2Fimages%2Fog-image-1500.gif);"></a> </span> <span class="issue"> <a href="/entrylist/general/%E3%81%AF%E3%81%A6%E3%81%AA%E5%8C%BF%E5%90%8D%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AA%E3%83%BC">はてな匿名ダイアリー</a> </span> </li> </ul> </div> </div> </li> <li class="js-navi-category-item cat-social" data-category-name="cat-social"> <div class="navi-link js-navi-link"> <a href="/hotentry/social" class="navi-link-text cat-social" data-gtm-click-label="global-navi-social"><span>世の中</span></a> <span class="gnavi-button js-gnavi-button" data-category-name="cat-social" data-gtm-click-label="global-navi-button-social"></span> </div> <div class="navi-item-detail js-navi-item-detail is-hidden"> <div class="navi-item-detail-inner js-navi-item-detail-inner"> <ul class="navi-item-list"> <li class="navi_hotentry"><a href="/hotentry/social" data-gtm-click-label="global-navi-hotentry">人気</a></li> <li class="navi_entrylist"><a href="/entrylist/social" data-gtm-click-label="global-navi-recententry">新着</a></li> </ul> <ul class="navi-item-issue"> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/social/%E6%96%B0%E5%9E%8B%E3%82%B3%E3%83%AD%E3%83%8A%E3%82%A6%E3%82%A4%E3%83%AB%E3%82%B9" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/b94f58da95d9c82b6929b071f77f92f8c8fdbdb8/height=288;version=1;width=512/https%3A%2F%2Fi0.wp.com%2Fecon101.jp%2Fwp-content%2Fuploads%2F2025%2F02%2F%25E6%2589%25B9%25E5%2588%25A4%25E7%2590%2586%25E8%25AB%2596.webp%3Ffit%3D1200%252C777%26ssl%3D1);"></a> </span> <span class="issue"> <a href="/entrylist/social/%E6%96%B0%E5%9E%8B%E3%82%B3%E3%83%AD%E3%83%8A%E3%82%A6%E3%82%A4%E3%83%AB%E3%82%B9">新型コロナウイルス</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/social/%E5%83%8D%E3%81%8D%E6%96%B9" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/613c11c5c8d19bc8d858fcc3a423cf55f1573fa6/height=288;version=1;width=512/https%3A%2F%2Fnordot-res.cloudinary.com%2Fc_fill%2Cw_400%2Ch_210%2Cg_faces%2Cq_auto%3Aeco%2Fch%2Fimages%2F1262280078019461992%2Forigin_1.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/social/%E5%83%8D%E3%81%8D%E6%96%B9">働き方</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/social/%E7%94%9F%E3%81%8D%E6%96%B9" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/df79583b7cf5ef8653520c7708879ee1fdac8b73/height=288;version=1;width=512/https%3A%2F%2Fnewsatcl-pctr.c.yimg.jp%2Ft%2Famd-img%2F20250222-00076971-bunshun-000-1-view.jpg%3Fexp%3D10800);"></a> </span> <span class="issue"> <a href="/entrylist/social/%E7%94%9F%E3%81%8D%E6%96%B9">生き方</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/social/%E5%9C%B0%E5%9F%9F" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/442206744fb97566cf5481bc013a9321f65d7170/height=288;version=1;width=512/https%3A%2F%2Fwww3.nhk.or.jp%2Flnews%2Fmito%2F20250225%2F1070026524_20250225122111_m.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/social/%E5%9C%B0%E5%9F%9F">地域</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/social/%E5%8C%BB%E7%99%82%E3%83%BB%E3%83%98%E3%83%AB%E3%82%B9" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/599a9740a249224179d62a9a03717cd13964ffac/height=288;version=1;width=512/https%3A%2F%2Fs.tgstc.com%2Fogp3%2Fa2f848e4b0be043547d0d0548f566833-1200x630.jpeg);"></a> </span> <span class="issue"> <a href="/entrylist/social/%E5%8C%BB%E7%99%82%E3%83%BB%E3%83%98%E3%83%AB%E3%82%B9">医療・ヘルス</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/social/%E6%95%99%E8%82%B2" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/0d84a92d18bdadfb37adf7e2c822fffdedb84a88/height=288;version=1;width=512/https%3A%2F%2Fs.tgstc.com%2Fogp3%2F8edc8cf184214b590d5e0557cbfc3a75-1200x630.jpeg);"></a> </span> <span class="issue"> <a href="/entrylist/social/%E6%95%99%E8%82%B2">教育</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/social/%E3%81%AF%E3%81%A6%E3%81%AA%E5%8C%BF%E5%90%8D%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AA%E3%83%BC" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/b1638cdb5807a4788e4ba3c1109a984166e095fc/height=288;version=1;width=512/https%3A%2F%2Fanond.hatelabo.jp%2Fimages%2Fog-image-1500.gif);"></a> </span> <span class="issue"> <a href="/entrylist/social/%E3%81%AF%E3%81%A6%E3%81%AA%E5%8C%BF%E5%90%8D%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AA%E3%83%BC">はてな匿名ダイアリー</a> </span> </li> </ul> </div> </div> </li> <li class="js-navi-category-item cat-economics" data-category-name="cat-economics"> <div class="navi-link js-navi-link"> <a href="/hotentry/economics" class="navi-link-text cat-economics" data-gtm-click-label="global-navi-economics"><span>政治と経済</span></a> <span class="gnavi-button js-gnavi-button" data-category-name="cat-economics" data-gtm-click-label="global-navi-button-economics"></span> </div> <div class="navi-item-detail js-navi-item-detail is-hidden"> <div class="navi-item-detail-inner js-navi-item-detail-inner"> <ul class="navi-item-list"> <li class="navi_hotentry"><a href="/hotentry/economics" data-gtm-click-label="global-navi-hotentry">人気</a></li> <li class="navi_entrylist"><a href="/entrylist/economics" data-gtm-click-label="global-navi-recententry">新着</a></li> </ul> <ul class="navi-item-issue"> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/economics/%E6%94%BF%E6%B2%BB" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/34b936b3400a73628dc1772e33be9c1a38fe8c44/height=288;version=1;width=512/https%3A%2F%2Fwww.jcp.or.jp%2Fakahata%2Fweb_img%2Fakahata-kakusan.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/economics/%E6%94%BF%E6%B2%BB">政治</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/economics/%E7%B5%8C%E6%B8%88%E3%83%BB%E9%87%91%E8%9E%8D" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/b28ae00d84c6f7d78d7424f2eb6b7fda5c226436/height=288;version=1;width=512/https%3A%2F%2Farticle-image-ix.nikkei.com%2Fhttps%253A%252F%252Fimgix-proxy.n8s.jp%252FDSXZQO5962133005022025000000-1.jpg%3Fixlib%3Djs-2.3.2%26auto%3Dformat%26q%3D45%26w%3D1600%26s%3D6d8a79b26e9f95c3e676450c991452e3);"></a> </span> <span class="issue"> <a href="/entrylist/economics/%E7%B5%8C%E6%B8%88%E3%83%BB%E9%87%91%E8%9E%8D">経済・金融</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/economics/%E4%BC%81%E6%A5%AD" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/5e6bd2af45d55616590fa09a5f3a04dae380954c/height=288;version=1;width=512/https%3A%2F%2Fs.tgstc.com%2Fogp3%2F18489a001e6d825972dfd4ce1c07d63c-1200x630.jpeg);"></a> </span> <span class="issue"> <a href="/entrylist/economics/%E4%BC%81%E6%A5%AD">企業</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/economics/%E4%BB%95%E4%BA%8B%E3%83%BB%E5%B0%B1%E8%81%B7" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/5e6bd2af45d55616590fa09a5f3a04dae380954c/height=288;version=1;width=512/https%3A%2F%2Fs.tgstc.com%2Fogp3%2F18489a001e6d825972dfd4ce1c07d63c-1200x630.jpeg);"></a> </span> <span class="issue"> <a href="/entrylist/economics/%E4%BB%95%E4%BA%8B%E3%83%BB%E5%B0%B1%E8%81%B7">仕事・就職</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/economics/%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%83%E3%83%88" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/3347cb363a2a39e37a5df984095f31d2f10104d7/height=288;version=1;width=512/https%3A%2F%2Fnews.tv-asahi.co.jp%2Farticles_img%2F900019219_1200.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/economics/%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%83%E3%83%88">マーケット</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/economics/%E5%9B%BD%E9%9A%9B" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/0b20e8f3ae46be22549f1c3a2d622631c7e3cf8b/height=288;version=1;width=512/https%3A%2F%2Fwww.yomiuri.co.jp%2Fmedia%2F2025%2F02%2F20250225-OYT1I50132-1.jpg%3Ftype%3Dogp);"></a> </span> <span class="issue"> <a href="/entrylist/economics/%E5%9B%BD%E9%9A%9B">国際</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/economics/%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%96%E3%83%AD%E3%82%B0%EF%BC%88%E6%94%BF%E6%B2%BB%E3%81%A8%E7%B5%8C%E6%B8%88%EF%BC%89" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/469d878d7931c46f6193b7514d6006ed0523d3b2/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F6653458415124667212%2F6802418398330974374%2F1740393369);"></a> </span> <span class="issue"> <a href="/entrylist/economics/%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%96%E3%83%AD%E3%82%B0%EF%BC%88%E6%94%BF%E6%B2%BB%E3%81%A8%E7%B5%8C%E6%B8%88%EF%BC%89">はてなブログ(政治と経済)</a> </span> </li> </ul> </div> </div> </li> <li class="js-navi-category-item cat-life" data-category-name="cat-life"> <div class="navi-link js-navi-link"> <a href="/hotentry/life" class="navi-link-text cat-life" data-gtm-click-label="global-navi-life"><span>暮らし</span></a> <span class="gnavi-button js-gnavi-button" data-category-name="cat-life" data-gtm-click-label="global-navi-button-life"></span> </div> <div class="navi-item-detail js-navi-item-detail is-hidden"> <div class="navi-item-detail-inner js-navi-item-detail-inner"> <ul class="navi-item-list"> <li class="navi_hotentry"><a href="/hotentry/life" data-gtm-click-label="global-navi-hotentry">人気</a></li> <li class="navi_entrylist"><a href="/entrylist/life" data-gtm-click-label="global-navi-recententry">新着</a></li> </ul> <ul class="navi-item-issue"> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/life/%E3%82%AB%E3%83%AB%E3%83%81%E3%83%A3%E3%83%BC%E3%83%BB%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/74f1155000a26102046c304716ab255c31522391/height=288;version=1;width=512/https%3A%2F%2Fs.tgstc.com%2Fogp3%2F20b0868a3d80f5e8ceefb928558a3e8e-1200x630.jpeg);"></a> </span> <span class="issue"> <a href="/entrylist/life/%E3%82%AB%E3%83%AB%E3%83%81%E3%83%A3%E3%83%BC%E3%83%BB%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB">カルチャー・ライフスタイル</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/life/%E3%83%95%E3%82%A1%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/e26db70ed1b3a15629e188770dbc2aed0d824b67/height=288;version=1;width=512/https%3A%2F%2Fdailyportalz.jp%2Fapplication%2Ffiles%2F6717%2F3973%2F1525%2Ftop004.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/life/%E3%83%95%E3%82%A1%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3">ファッション</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/life/%E9%81%8B%E5%8B%95%E3%83%BB%E3%82%A8%E3%82%AF%E3%82%B5%E3%82%B5%E3%82%A4%E3%82%BA" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/0f99f6be1d55092a4eea4e256a88f0257c3bfe81/height=288;version=1;width=512/https%3A%2F%2Fferret-one.akamaized.net%2Fimages%2F66692b0af9df32513f465bf2%2Flarge.png%3Futime%3D1718168330);"></a> </span> <span class="issue"> <a href="/entrylist/life/%E9%81%8B%E5%8B%95%E3%83%BB%E3%82%A8%E3%82%AF%E3%82%B5%E3%82%B5%E3%82%A4%E3%82%BA">運動・エクササイズ</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/life/%E7%B5%90%E5%A9%9A%E3%83%BB%E5%AD%90%E8%82%B2%E3%81%A6" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/fed52183affc128f33792db2a111f1ab48a35c91/height=288;version=1;width=512/https%3A%2F%2Fs.tgstc.com%2Fogp3%2F22b62249388aab84420f067603d40aa8-1200x630.jpeg);"></a> </span> <span class="issue"> <a href="/entrylist/life/%E7%B5%90%E5%A9%9A%E3%83%BB%E5%AD%90%E8%82%B2%E3%81%A6">結婚・子育て</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/life/%E4%BD%8F%E3%81%BE%E3%81%84" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/837fe0b2bac00d80404c2b2b759e398aa7e28cb1/height=288;version=1;width=512/https%3A%2F%2Fs.tgstc.com%2Fogp3%2F3c379cc6e70047b8cb6571868617f9a3-1200x630.jpeg);"></a> </span> <span class="issue"> <a href="/entrylist/life/%E4%BD%8F%E3%81%BE%E3%81%84">住まい</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/life/%E3%82%B0%E3%83%AB%E3%83%A1" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/31ac6776686de274c63778c69f83390256fa02d6/height=288;version=1;width=512/https%3A%2F%2Fkaden.watch.impress.co.jp%2Fimg%2Fkdw%2Flist%2F1664%2F914%2F0.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/life/%E3%82%B0%E3%83%AB%E3%83%A1">グルメ</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/life/%E7%9B%B8%E7%B6%9A" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/79b9eceff062b368b4f1d15d957d666d298e47ae/height=288;version=1;width=512/https%3A%2F%2Fwww3.nhk.or.jp%2Fnews%2Fhtml%2F20250225%2FK10014732141_2502250408_0225064428_01_02.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/life/%E7%9B%B8%E7%B6%9A">相続</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/life/%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%96%E3%83%AD%E3%82%B0%EF%BC%88%E6%9A%AE%E3%82%89%E3%81%97%EF%BC%89" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/469d878d7931c46f6193b7514d6006ed0523d3b2/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F6653458415124667212%2F6802418398330974374%2F1740393369);"></a> </span> <span class="issue"> <a href="/entrylist/life/%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%96%E3%83%AD%E3%82%B0%EF%BC%88%E6%9A%AE%E3%82%89%E3%81%97%EF%BC%89">はてなブログ(暮らし)</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/life/%E6%8E%83%E9%99%A4%E3%83%BB%E6%95%B4%E7%90%86%E6%95%B4%E9%A0%93" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/31ac6776686de274c63778c69f83390256fa02d6/height=288;version=1;width=512/https%3A%2F%2Fkaden.watch.impress.co.jp%2Fimg%2Fkdw%2Flist%2F1664%2F914%2F0.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/life/%E6%8E%83%E9%99%A4%E3%83%BB%E6%95%B4%E7%90%86%E6%95%B4%E9%A0%93">掃除・整理整頓</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/life/%E9%9B%91%E8%B2%A8" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/31ac6776686de274c63778c69f83390256fa02d6/height=288;version=1;width=512/https%3A%2F%2Fkaden.watch.impress.co.jp%2Fimg%2Fkdw%2Flist%2F1664%2F914%2F0.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/life/%E9%9B%91%E8%B2%A8">雑貨</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/life/%E8%B2%B7%E3%81%A3%E3%81%A6%E3%82%88%E3%81%8B%E3%81%A3%E3%81%9F%E3%82%82%E3%81%AE" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/c40811d42a57e9a6d29d86afaa6c78d54b2efee9/height=288;version=1;width=512/https%3A%2F%2Fmedia.loom-app.com%2Froomie%2Fdist%2Fimages%2F2025%2F02%2FDSC01874.jpg%3Fw%3D1200);"></a> </span> <span class="issue"> <a href="/entrylist/life/%E8%B2%B7%E3%81%A3%E3%81%A6%E3%82%88%E3%81%8B%E3%81%A3%E3%81%9F%E3%82%82%E3%81%AE">買ってよかったもの</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/life/%E6%97%85%E8%A1%8C" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/2bdca6895afb7eeabcb683438a230111c5cddc8e/height=288;version=1;width=512/https%3A%2F%2Fimgopt.asahi.com%2Fogp%2FAS20250224004253_comm.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/life/%E6%97%85%E8%A1%8C">旅行</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/life/%E3%82%A2%E3%82%A6%E3%83%88%E3%83%89%E3%82%A2" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/cf9bd169f71c7c87aa9702759631d0f82589d9dd/height=288;version=1;width=512/https%3A%2F%2Fbiz.chunichi.co.jp%2Fpic%2F10%2Fp1%2F100479_0_10.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/life/%E3%82%A2%E3%82%A6%E3%83%88%E3%83%89%E3%82%A2">アウトドア</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/life/%E8%B6%A3%E5%91%B3" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/f859ce0cc12e6604c4b461e501c18ea90a5bbf1b/height=288;version=1;width=512/https%3A%2F%2Fautomaton-media.com%2Fwp-content%2Fuploads%2F2025%2F02%2Flushfoil-photography-sim-20250225-329490-header.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/life/%E8%B6%A3%E5%91%B3">趣味</a> </span> </li> </ul> </div> </div> </li> <li class="js-navi-category-item cat-knowledge" data-category-name="cat-knowledge"> <div class="navi-link js-navi-link"> <a href="/hotentry/knowledge" class="navi-link-text cat-knowledge" data-gtm-click-label="global-navi-knowledge"><span>学び</span></a> <span class="gnavi-button js-gnavi-button" data-category-name="cat-knowledge" data-gtm-click-label="global-navi-button-knowledge"></span> </div> <div class="navi-item-detail js-navi-item-detail is-hidden"> <div class="navi-item-detail-inner js-navi-item-detail-inner"> <ul class="navi-item-list"> <li class="navi_hotentry"><a href="/hotentry/knowledge" data-gtm-click-label="global-navi-hotentry">人気</a></li> <li class="navi_entrylist"><a href="/entrylist/knowledge" data-gtm-click-label="global-navi-recententry">新着</a></li> </ul> <ul class="navi-item-issue"> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/knowledge/%E4%BA%BA%E6%96%87%E7%A7%91%E5%AD%A6" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/df79583b7cf5ef8653520c7708879ee1fdac8b73/height=288;version=1;width=512/https%3A%2F%2Fnewsatcl-pctr.c.yimg.jp%2Ft%2Famd-img%2F20250222-00076971-bunshun-000-1-view.jpg%3Fexp%3D10800);"></a> </span> <span class="issue"> <a href="/entrylist/knowledge/%E4%BA%BA%E6%96%87%E7%A7%91%E5%AD%A6">人文科学</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/knowledge/%E7%A4%BE%E4%BC%9A%E7%A7%91%E5%AD%A6" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/2df1125c700f2f6367fac182993af98817972399/height=288;version=1;width=512/https%3A%2F%2Fcourrier.jp%2Fmedia%2F2025%2F02%2F18001849%2FGettyImages-692740076-e1739773159172-1600x900.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/knowledge/%E7%A4%BE%E4%BC%9A%E7%A7%91%E5%AD%A6">社会科学</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/knowledge/%E8%87%AA%E7%84%B6%E7%A7%91%E5%AD%A6" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/e724513184670a24e6a7c8981a3a72e22034043e/height=288;version=1;width=512/https%3A%2F%2Fimages.forbesjapan.com%2Fmedia%2Farticle%2F77327%2Fimages%2Fmain_image_f9e263015679c3a9db19332e41ae183b4e8de190.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/knowledge/%E8%87%AA%E7%84%B6%E7%A7%91%E5%AD%A6">自然科学</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/knowledge/%E8%AA%9E%E5%AD%A6" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/d2ca3437137f53959a065b365d6fd0b145a02148/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2Fa3917c435f37bcb73c9246042bf53599ccddf154%2Fbackend%3Dimagemagick%3Bversion%3D1%3Bwidth%3D1300%2Fhttps%253A%252F%252Fcdn-ak.f.st-hatena.com%252Fimages%252Ffotolife%252Fs%252Fsh_sakurako_ogawa%252F20250219%252F20250219122631.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/knowledge/%E8%AA%9E%E5%AD%A6">語学</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/knowledge/%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E3%83%BB%E7%B5%8C%E5%96%B6%E5%AD%A6" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/a5b3520237e3152bf78ee18c8bac71181d55f170/height=288;version=1;width=512/https%3A%2F%2Fhatena.zoom.us%2Fw_p%2F88220012401%2F267cceba-6555-49a5-acff-dc9e2cc5e9fd.png);"></a> </span> <span class="issue"> <a href="/entrylist/knowledge/%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E3%83%BB%E7%B5%8C%E5%96%B6%E5%AD%A6">ビジネス・経営学</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/knowledge/%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/b1638cdb5807a4788e4ba3c1109a984166e095fc/height=288;version=1;width=512/https%3A%2F%2Fanond.hatelabo.jp%2Fimages%2Fog-image-1500.gif);"></a> </span> <span class="issue"> <a href="/entrylist/knowledge/%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3">デザイン</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/knowledge/%E6%B3%95%E5%BE%8B" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/d1382597bb5c51bbef39c56f41a209fa6641c6b2/height=288;version=1;width=512/https%3A%2F%2Fstorage.bengo4.com%2Fnews%2Fimages%2F20768.png%3F1740464600);"></a> </span> <span class="issue"> <a href="/entrylist/knowledge/%E6%B3%95%E5%BE%8B">法律</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/knowledge/%E6%9C%AC%E3%83%BB%E6%9B%B8%E8%A9%95" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/df79583b7cf5ef8653520c7708879ee1fdac8b73/height=288;version=1;width=512/https%3A%2F%2Fnewsatcl-pctr.c.yimg.jp%2Ft%2Famd-img%2F20250222-00076971-bunshun-000-1-view.jpg%3Fexp%3D10800);"></a> </span> <span class="issue"> <a href="/entrylist/knowledge/%E6%9C%AC%E3%83%BB%E6%9B%B8%E8%A9%95">本・書評</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/knowledge/%E5%B0%86%E6%A3%8B%E3%83%BB%E5%9B%B2%E7%A2%81" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/6aff4db10fe100f2177bde11d1e8d92f75870c60/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak-img.shonenjumpplus.com%2Fpublic%2Fseries-thumbnail%2F14079602755559711664-089fcc8ea8937f785797f51334ad24ec%3F1735904042);"></a> </span> <span class="issue"> <a href="/entrylist/knowledge/%E5%B0%86%E6%A3%8B%E3%83%BB%E5%9B%B2%E7%A2%81">将棋・囲碁</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/knowledge/%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%96%E3%83%AD%E3%82%B0%EF%BC%88%E5%AD%A6%E3%81%B3%EF%BC%89" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/ad43a2dad07eb75e6578f01c8a363e448b1f2337/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2F08b74000ce4500ec7a6238e8e1f4cd1d68d9b6fd%2Fbackend%3Dimagemagick%3Bversion%3D1%3Bwidth%3D1300%2Fhttps%253A%252F%252Fcdn-ak.f.st-hatena.com%252Fimages%252Ffotolife%252Fs%252Fsh_moe_kobayashi%252F20250109%252F20250109175316.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/knowledge/%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%96%E3%83%AD%E3%82%B0%EF%BC%88%E5%AD%A6%E3%81%B3%EF%BC%89">はてなブログ(学び)</a> </span> </li> </ul> </div> </div> </li> <li class="js-navi-category-item cat-it" data-category-name="cat-it"> <div class="navi-link js-navi-link"> <a href="/hotentry/it" class="navi-link-text cat-it" data-gtm-click-label="global-navi-it"><span>テクノロジー</span></a> <span class="gnavi-button js-gnavi-button" data-category-name="cat-it" data-gtm-click-label="global-navi-button-it"></span> </div> <div class="navi-item-detail js-navi-item-detail is-hidden"> <div class="navi-item-detail-inner js-navi-item-detail-inner"> <ul class="navi-item-list"> <li class="navi_hotentry"><a href="/hotentry/it" data-gtm-click-label="global-navi-hotentry">人気</a></li> <li class="navi_entrylist"><a href="/entrylist/it" data-gtm-click-label="global-navi-recententry">新着</a></li> </ul> <ul class="navi-item-issue"> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/it/IT" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/cc8a7601a91ad3a4427e352619a7bfc5c78f547a/height=288;version=1;width=512/https%3A%2F%2Fi.gzn.jp%2Fimg%2F2025%2F02%2F25%2Fiot-bed-backdoor%2F00.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/it/IT">IT</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/it/%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E6%8A%80%E8%A1%93" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/cc8a7601a91ad3a4427e352619a7bfc5c78f547a/height=288;version=1;width=512/https%3A%2F%2Fi.gzn.jp%2Fimg%2F2025%2F02%2F25%2Fiot-bed-backdoor%2F00.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/it/%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E6%8A%80%E8%A1%93">セキュリティ技術</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/it/%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%96%E3%83%AD%E3%82%B0%EF%BC%88%E3%83%86%E3%82%AF%E3%83%8E%E3%83%AD%E3%82%B8%E3%83%BC%EF%BC%89" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/7b50fbf1584a3f35dda4d9134389bae0c6a3db82/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2F97ba5ac8d7f271300339f0a8de1de5f93053ed58%2Fbackend%3Dimagemagick%3Bversion%3D1%3Bwidth%3D1300%2Fhttps%253A%252F%252Fcdn-ak.f.st-hatena.com%252Fimages%252Ffotolife%252Fo%252Foitech%252F20250218%252F20250218092003.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/it/%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%96%E3%83%AD%E3%82%B0%EF%BC%88%E3%83%86%E3%82%AF%E3%83%8E%E3%83%AD%E3%82%B8%E3%83%BC%EF%BC%89">はてなブログ(テクノロジー)</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/it/AI%E3%83%BB%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/278e886c8384a67a9677adc9c9b7331b879817e6/height=288;version=1;width=512/https%3A%2F%2Fassets.st-note.com%2Fproduction%2Fuploads%2Fimages%2F176292319%2Frectangle_large_type_2_e3a497cb51e4cb19336022748a2a6f23.png%3Ffit%3Dbounds%26quality%3D85%26width%3D1280);"></a> </span> <span class="issue"> <a href="/entrylist/it/AI%E3%83%BB%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92">AI・機械学習</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/it/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/b6569c459d7d3a84b979286cc252253ad086fa06/height=288;version=1;width=512/https%3A%2F%2Fi.gzn.jp%2Fimg%2F2025%2F02%2F25%2Fnull-last-name-system%2F00.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/it/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0">プログラミング</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/it/%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/dcd2d057152be5f9fbbc8b01f2c3b4edcfc12387/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2F96435d93232dd1f1ccdb4ea8964460c85aeb6b72%2Fbackend%3Dimagemagick%3Bversion%3D1%3Bwidth%3D1300%2Fhttps%253A%252F%252Fcdn-ak.f.st-hatena.com%252Fimages%252Ffotolife%252Ft%252Ft_mimura%252F20250221%252F20250221115619.png);"></a> </span> <span class="issue"> <a href="/entrylist/it/%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2">エンジニア</a> </span> </li> </ul> </div> </div> </li> <li class="js-navi-category-item cat-fun" data-category-name="cat-fun"> <div class="navi-link js-navi-link"> <a href="/hotentry/fun" class="navi-link-text cat-fun" data-gtm-click-label="global-navi-fun"><span>おもしろ</span></a> <span class="gnavi-button js-gnavi-button" data-category-name="cat-fun" data-gtm-click-label="global-navi-button-fun"></span> </div> <div class="navi-item-detail js-navi-item-detail is-hidden"> <div class="navi-item-detail-inner js-navi-item-detail-inner"> <ul class="navi-item-list"> <li class="navi_hotentry"><a href="/hotentry/fun" data-gtm-click-label="global-navi-hotentry">人気</a></li> <li class="navi_entrylist"><a href="/entrylist/fun" data-gtm-click-label="global-navi-recententry">新着</a></li> </ul> <ul class="navi-item-issue"> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/fun/%E3%81%BE%E3%81%A8%E3%82%81" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/da78a05937633f7a2b4b2219826151c370cd607b/height=288;version=1;width=512/https%3A%2F%2Fparts.blog.livedoor.jp%2Fimg%2Fusr%2Fcmn%2Fogp_image%2Flivedoor.png);"></a> </span> <span class="issue"> <a href="/entrylist/fun/%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/fun/%E3%83%8D%E3%82%BF" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/e26db70ed1b3a15629e188770dbc2aed0d824b67/height=288;version=1;width=512/https%3A%2F%2Fdailyportalz.jp%2Fapplication%2Ffiles%2F6717%2F3973%2F1525%2Ftop004.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/fun/%E3%83%8D%E3%82%BF">ネタ</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/fun/%E3%81%8A%E3%82%82%E3%81%97%E3%82%8D" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/da71a8304370dbf7d940f1e9540ab418d1aa4d31/height=288;version=1;width=512/https%3A%2F%2Fav.watch.impress.co.jp%2Fimg%2Favw%2Flist%2F1665%2F474%2F3.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/fun/%E3%81%8A%E3%82%82%E3%81%97%E3%82%8D">おもしろ</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/fun/%E3%81%93%E3%82%8C%E3%81%AF%E3%81%99%E3%81%94%E3%81%84" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/b79f043d6a2697ae18531df65d00cd3bd36f59cf/height=288;version=1;width=512/https%3A%2F%2Fmedia.loom-app.com%2Fgizmodo%2Fdist%2Fimages%2F2025%2F02%2F21%2F250224_origami.jpg%3Fw%3D1280%26h%3D630%26f%3Djpg);"></a> </span> <span class="issue"> <a href="/entrylist/fun/%E3%81%93%E3%82%8C%E3%81%AF%E3%81%99%E3%81%94%E3%81%84">これはすごい</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/fun/%E3%81%8B%E3%82%8F%E3%81%84%E3%81%84" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/25604b8c565faf68c43bd8043a3a3b9448e61480/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak-img.shonenjumpplus.com%2Fpublic%2Fseries-thumbnail%2F316112896905499392-f6cccdc0e0d8fde0e0ae919fce49496b%3F1738582466);"></a> </span> <span class="issue"> <a href="/entrylist/fun/%E3%81%8B%E3%82%8F%E3%81%84%E3%81%84">かわいい</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/fun/%E9%9B%91%E5%AD%A6" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/7bacff34f25c26db80310887c0e7e6533973874c/height=288;version=1;width=512/https%3A%2F%2Fgrapee.jp%2Fwp-content%2Fuploads%2F2024%2F03%2F99790_main09.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/fun/%E9%9B%91%E5%AD%A6">雑学</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/fun/%E7%99%92%E3%82%84%E3%81%97" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/b1bf13ac4613d2d839c157f15a29575c3cef8759/height=288;version=1;width=512/https%3A%2F%2Fnewsatcl-pctr.c.yimg.jp%2Ft%2Famd-img%2F20250223-00010008-elleonline-000-1-view.jpg%3Fexp%3D10800);"></a> </span> <span class="issue"> <a href="/entrylist/fun/%E7%99%92%E3%82%84%E3%81%97">癒やし</a> </span> </li> </ul> </div> </div> </li> <li class="js-navi-category-item cat-entertainment" data-category-name="cat-entertainment"> <div class="navi-link js-navi-link"> <a href="/hotentry/entertainment" class="navi-link-text cat-entertainment" data-gtm-click-label="global-navi-entertainment"><span>エンタメ</span></a> <span class="gnavi-button js-gnavi-button" data-category-name="cat-entertainment" data-gtm-click-label="global-navi-button-entertainment"></span> </div> <div class="navi-item-detail js-navi-item-detail is-hidden"> <div class="navi-item-detail-inner js-navi-item-detail-inner"> <ul class="navi-item-list"> <li class="navi_hotentry"><a href="/hotentry/entertainment" data-gtm-click-label="global-navi-hotentry">人気</a></li> <li class="navi_entrylist"><a href="/entrylist/entertainment" data-gtm-click-label="global-navi-recententry">新着</a></li> </ul> <ul class="navi-item-issue"> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/entertainment/%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%84" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/b1638cdb5807a4788e4ba3c1109a984166e095fc/height=288;version=1;width=512/https%3A%2F%2Fanond.hatelabo.jp%2Fimages%2Fog-image-1500.gif);"></a> </span> <span class="issue"> <a href="/entrylist/entertainment/%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%84">スポーツ</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/entertainment/%E6%98%A0%E7%94%BB" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/b032675062060f9e86860323d203faf29f361d67/height=288;version=1;width=512/https%3A%2F%2Fassets.st-note.com%2Fproduction%2Fuploads%2Fimages%2F176244112%2Frectangle_large_type_2_80cbd958ad6a8429345d8771f01f9d8e.png%3Ffit%3Dbounds%26quality%3D85%26width%3D1280);"></a> </span> <span class="issue"> <a href="/entrylist/entertainment/%E6%98%A0%E7%94%BB">映画</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/entertainment/%E9%9F%B3%E6%A5%BD" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/5917317ca28742ac2157a9654b2fe9e4df598a72/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2F00a8878ff7964df2a55b71c5f2df7563b2553518%2Fbackend%3Dimagemagick%3Bversion%3D1%3Bwidth%3D1300%2Fhttps%253A%252F%252Fm.media-amazon.com%252Fimages%252FI%252F618OsZz9THL._SL500_.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/entertainment/%E9%9F%B3%E6%A5%BD">音楽</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/entertainment/%E3%82%A2%E3%82%A4%E3%83%89%E3%83%AB" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/99885d969d25a724b5eeb16374ad8673aa7c80e4/height=288;version=1;width=512/https%3A%2F%2Fnikkan-spa.jp%2Fwp-content%2Fuploads%2F2025%2F02%2FNGK-4R3A6056_3p_20250222_1.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/entertainment/%E3%82%A2%E3%82%A4%E3%83%89%E3%83%AB">アイドル</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/entertainment/%E8%8A%B8%E8%83%BD" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/da71a8304370dbf7d940f1e9540ab418d1aa4d31/height=288;version=1;width=512/https%3A%2F%2Fav.watch.impress.co.jp%2Fimg%2Favw%2Flist%2F1665%2F474%2F3.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/entertainment/%E8%8A%B8%E8%83%BD">芸能</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/entertainment/%E3%81%8A%E7%AC%91%E3%81%84" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/1dc340ea08fe72232a572423b2ccfb0535ad56d5/height=288;version=1;width=512/https%3A%2F%2Fogre.natalie.mu%2Fmedia%2Fnews%2Fowarai%2F2025%2F0222%2Fthesecond0222.jpg%3Fimpolicy%3Dtwitter_card_face_crop);"></a> </span> <span class="issue"> <a href="/entrylist/entertainment/%E3%81%8A%E7%AC%91%E3%81%84">お笑い</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/entertainment/%E3%82%B5%E3%83%83%E3%82%AB%E3%83%BC" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/f1662813fdb1971bccf7547b68fe56dc76c3f386/height=288;version=1;width=512/https%3A%2F%2Fnishispo-static.nishinippon.co.jp%2Fimage%2Farticle%2Fsize1%2Fd%2F9%2F6%2F9%2Fd96990047d328bd3d0570c8903dac8eb_1.jpg%3F20250225003720);"></a> </span> <span class="issue"> <a href="/entrylist/entertainment/%E3%82%B5%E3%83%83%E3%82%AB%E3%83%BC">サッカー</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/entertainment/%E8%A9%B1%E9%A1%8C%E3%81%AE%E5%8B%95%E7%94%BB" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/c2aad7c04581a8225f1fd66729ca71e723eb3b83/height=288;version=1;width=512/https%3A%2F%2Fi.ytimg.com%2Fvi%2FnSycIDlsOsQ%2Fhqdefault.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/entertainment/%E8%A9%B1%E9%A1%8C%E3%81%AE%E5%8B%95%E7%94%BB">話題の動画</a> </span> </li> </ul> </div> </div> </li> <li class="js-navi-category-item cat-game" data-category-name="cat-game"> <div class="navi-link js-navi-link"> <a href="/hotentry/game" class="navi-link-text cat-game" data-gtm-click-label="global-navi-game"><span>アニメとゲーム</span></a> <span class="gnavi-button js-gnavi-button" data-category-name="cat-game" data-gtm-click-label="global-navi-button-game"></span> </div> <div class="navi-item-detail js-navi-item-detail is-hidden"> <div class="navi-item-detail-inner js-navi-item-detail-inner"> <ul class="navi-item-list"> <li class="navi_hotentry"><a href="/hotentry/game" data-gtm-click-label="global-navi-hotentry">人気</a></li> <li class="navi_entrylist"><a href="/entrylist/game" data-gtm-click-label="global-navi-recententry">新着</a></li> </ul> <ul class="navi-item-issue"> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/game/%E3%83%9E%E3%83%B3%E3%82%AC" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/b1638cdb5807a4788e4ba3c1109a984166e095fc/height=288;version=1;width=512/https%3A%2F%2Fanond.hatelabo.jp%2Fimages%2Fog-image-1500.gif);"></a> </span> <span class="issue"> <a href="/entrylist/game/%E3%83%9E%E3%83%B3%E3%82%AC">マンガ</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/game/Web%E3%83%9E%E3%83%B3%E3%82%AC" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/693563eccd9fbc8042a191eef2d082df161a0ab5/height=288;version=1;width=512/https%3A%2F%2Fcdn-img.comic-days.com%2Fpublic%2Fseries-thumbnail%2F2550689798333862446-d8daabeb1238dd641718aceb871f6777%3F1711348419);"></a> </span> <span class="issue"> <a href="/entrylist/game/Web%E3%83%9E%E3%83%B3%E3%82%AC">Webマンガ</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/game/%E3%82%B2%E3%83%BC%E3%83%A0" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/b1638cdb5807a4788e4ba3c1109a984166e095fc/height=288;version=1;width=512/https%3A%2F%2Fanond.hatelabo.jp%2Fimages%2Fog-image-1500.gif);"></a> </span> <span class="issue"> <a href="/entrylist/game/%E3%82%B2%E3%83%BC%E3%83%A0">ゲーム</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/game/%E4%BB%BB%E5%A4%A9%E5%A0%82" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/32c610387d26fd607d65e1f0d05a93025a0ef889/height=288;version=1;width=512/https%3A%2F%2Fi.gzn.jp%2Fimg%2F2025%2F02%2F25%2Fanthropic-claude-3-7-sonnet%2F00_m.png);"></a> </span> <span class="issue"> <a href="/entrylist/game/%E4%BB%BB%E5%A4%A9%E5%A0%82">任天堂</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/game/PlayStation" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/b1638cdb5807a4788e4ba3c1109a984166e095fc/height=288;version=1;width=512/https%3A%2F%2Fanond.hatelabo.jp%2Fimages%2Fog-image-1500.gif);"></a> </span> <span class="issue"> <a href="/entrylist/game/PlayStation">PlayStation</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/game/%E3%82%A2%E3%83%8B%E3%83%A1" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/c7c9b27de4ffef40acfb3aabfd5452d00a239827/height=288;version=1;width=512/https%3A%2F%2Feiga.k-img.com%2Fimages%2Fanime%2Fnews%2F123150%2Fphoto%2F0e3f8311d5a8f51c%2Fcredit.jpg);"></a> </span> <span class="issue"> <a href="/entrylist/game/%E3%82%A2%E3%83%8B%E3%83%A1">アニメ</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/game/%E3%83%90%E3%83%BC%E3%83%81%E3%83%A3%E3%83%ABYouTuber" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/b032675062060f9e86860323d203faf29f361d67/height=288;version=1;width=512/https%3A%2F%2Fassets.st-note.com%2Fproduction%2Fuploads%2Fimages%2F176244112%2Frectangle_large_type_2_80cbd958ad6a8429345d8771f01f9d8e.png%3Ffit%3Dbounds%26quality%3D85%26width%3D1280);"></a> </span> <span class="issue"> <a href="/entrylist/game/%E3%83%90%E3%83%BC%E3%83%81%E3%83%A3%E3%83%ABYouTuber">バーチャルYouTuber</a> </span> </li> <li class="navi-item-unit" data-gtm-click-label="global-navi-issue-item"> <span class="thumbnail"> <a href="/entrylist/game/%E3%82%AA%E3%82%BF%E3%82%AF%E3%82%AB%E3%83%AB%E3%83%81%E3%83%A3%E3%83%BC" style="background-image: url(https://cdn-ak-scissors.b.st-hatena.com/image/square/fbd1b70c1cde64b46fb08ef157a169c34a57ce9c/height=288;version=1;width=512/https%3A%2F%2Fs.tgstc.com%2Fogp3%2F01f40c4a2ddff3bce35cc37f1e68717b-1200x630.jpeg);"></a> </span> <span class="issue"> <a href="/entrylist/game/%E3%82%AA%E3%82%BF%E3%82%AF%E3%82%AB%E3%83%AB%E3%83%81%E3%83%A3%E3%83%BC">オタクカルチャー</a> </span> </li> </ul> </div> </div> </li> <li class="recommend"> <a href="/entrylist/all/iPhone%2016e" class="navi-link-text recommend" title="おすすめ" data-gtm-click-label="global-navi-recommended"><span>おすすめ</span></a> <p class="pickup"><a href="/hotentry/all/iPhone%2016e">iPhone 16e</a></p> </li> </ul> </div> <div class="navi-page"> <h2 class="navi-page-title">『Hatena Developer Blog』</h2> <ul class="navi-page-mode"> <li class=""> <a href="/site/developer.hatenastaff.com/?sort=count" data-gtm-click-label="hotentry-button-beneath-global-navi">人気</a> </li> <li class="is-current"> <a href="/site/developer.hatenastaff.com/" data-gtm-click-label="entrylist-button-beneath-global-navi">新着</a> </li> <li class=""> <a href="/site/developer.hatenastaff.com/?sort=eid" data-gtm-click-label="all-button-beneath-global-navi">すべて</a> </li> </ul> </div> <div class="entrylist-wrapper"> <div class="entrylist-wrapper"> <div class="entrylist-main"> <section class="entrylist-unit"> <div class="entrylist-header"> <ul class="entrylist-header-main"> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/inside-gigaviewer-for-apps-2"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/inside-gigaviewer-for-apps-2" title="様々なマンガアプリを素早く開発できる「GigaViewer for Apps」のしくみ iOS 編 - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4766480955132068001" data-entry-category="テクノロジー">様々なマンガアプリを素早く開発できる「GigaViewer for Apps」のしくみ iOS 編 - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/inside-gigaviewer-for-apps-2" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>39</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2Finside-gigaviewer-for-apps-2" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/inside-gigaviewer-for-apps-2" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">こんにちは。iOS アプリエンジニアの id:gurrium です。『Inside GigaViewer for Apps』連載2回目は、同じく iOS エンジニアの id:fxwx23 と一緒に出版社向けマンガビューワのアプリ版である「GigaViewer for Apps」(以下 GigaApps)の iOS アプリを実現するしくみについて紹介します。 GigaApps とは アーキテクチャ (id:fxwx23) マルチモジュール 画面構築と遷移 アプリに合わせたカスタマイズ (id:gurrium) ローカライズインジェクション アセットインジェクション パラメータでの DI Needle での DI 終わりに ※ 見出しの ID は執筆担当 GigaApps とは 前回の記事でも紹介しましたが、GigaApps はビューワだけでなく、作品詳細やマイページなどのマンガアプリの基本的</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/4048883f34af64d3d3f49ca5ce650b61f604be5d/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F12704346814673975483%2F6802418398311296779%2F1739934046');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2025/02/19 12:07</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/iOS" rel="tag" data-gtm-click-label="entry-info-tag">iOS</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> <li><a href="/q/techfeed" rel="tag" data-gtm-click-label="entry-info-tag">techfeed</a></li> <li><a href="/q/%E9%96%8B%E7%99%BA" rel="tag" data-gtm-click-label="entry-info-tag">開発</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/inside-gigaviewer-for-apps-2"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> </ul> <div class="entrylist-header-sub js-right-top-native-ad is-nativeads-loading"> </div> <div id="entrylist-ad-right-top" class="entrylist-header-sub is-hidden"></div> </div> <ul class="entrylist-item js-hotentries is-nativeads-loading"> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2025/02/07/180711"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2025/02/07/180711" title="はてなアイコンの裏側の紹介 CloudflareとHonoX - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4765936656839553601" data-entry-category="テクノロジー">はてなアイコンの裏側の紹介 CloudflareとHonoX - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2025/02/07/180711" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>63</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2025%2F02%2F07%2F180711" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2025/02/07/180711" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">先日、はてラボで「はてなアイコン」をリリースしました。普段はスマートフォンアプリを書いていることが多い id:kouki_dan です。 labo.hatenastaff.com サービスの紹介はリリース時のエントリを参照してください。このエントリでは技術的な裏側の紹介をしていきます! Cloudflareスタックを試したかった 2年くらい前に、Cloudflare D1などが発表されて盛り上がっていた頃、Cloudflareを使ってなんか作りたいな〜と思っていました。はてなの社内には自由研究用のリソースとして、AWS, Google Cloudをはじめ、様々なクラウドサービスを特段の申請不要でエンジニアが自由に試せる環境が用意されています。もちろん費用は会社が出してくれて、常識的な範囲で使ってねということになっています。2年くらい前にCloudflareも追加してもらい、社内で自由にCl</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/a520b93f5237dc161b72ed4e684a2b8d89d70861/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F12704346814673975483%2F6802418398325577934%2F1738919237');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2025/02/07 18:30</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/Cloudflare" rel="tag" data-gtm-click-label="entry-info-tag">Cloudflare</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> <li><a href="/q/JavaScript" rel="tag" data-gtm-click-label="entry-info-tag">JavaScript</a></li> <li><a href="/q/cloud" rel="tag" data-gtm-click-label="entry-info-tag">cloud</a></li> <li><a href="/q/%E3%81%AF%E3%81%A6%E3%81%AA" rel="tag" data-gtm-click-label="entry-info-tag">はてな</a></li> <li><a href="/q/hatena" rel="tag" data-gtm-click-label="entry-info-tag">hatena</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2025/02/07/180711"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/inside-gigaviewer-for-apps-1"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/inside-gigaviewer-for-apps-1" title="『Inside GigaViewer for Apps』連載開始! #GigaViewer - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4765831531546599361" data-entry-category="テクノロジー">『Inside GigaViewer for Apps』連載開始! #GigaViewer - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/inside-gigaviewer-for-apps-1" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>5</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2Finside-gigaviewer-for-apps-1" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/inside-gigaviewer-for-apps-1" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">皆様こんにちは。 Hatena Developer Blogはじめまして。 マンガアプリチームのディレクター id:tanaka-a 、プロダクトマネージャー id:s-takanori の共著でお送りします。 マンガアプリチームでは『GigaViewer for Apps』の開発をしています。 今日は、過去記事でも何度か取り上げているこの『GigaViewer for Apps』について、改めてご紹介をしたいと思います。 はてなが提供しているマンガビューワ GigaViewer ですが、2017年にWebマンガサービス向けビューワ『GigaViewer for Web』の提供を開始しました。 マンガサービスを提供する出版社様へ採用していただき、2025年1月現在で17社・25サービスを提供しています。 hatena.co.jp それに続く形で2021年にアプリ向けビューワ『GigaVie</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/b96055a78e351cbb520ab063a72b40f89d0a7fba/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F12704346814673975483%2F6802418398322918311%2F1738726549');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2025/02/05 12:06</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/%E3%81%AF%E3%81%A6%E3%81%AA" rel="tag" data-gtm-click-label="entry-info-tag">はてな</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/inside-gigaviewer-for-apps-1"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/engineer-seminar-32"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/engineer-seminar-32" title="Hatena Engineer Seminar #32 「はてなブログ新機能基盤の開発編」を2月25日にオンライン開催します #hatenatech - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4765799616699307361" data-entry-category="テクノロジー">Hatena Engineer Seminar #32 「はてなブログ新機能基盤の開発編」を2月25日にオンライン開催します #hatenatech - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/engineer-seminar-32" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>14</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2Fengineer-seminar-32" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/engineer-seminar-32" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">こんにちは。EM の id:yigarashi です。 2025年2月25日(火)に Hatena Engineer Seminar #32 「はてなブログ新機能基盤の開発編」を開催しますので、お知らせします。 Hatena Engineer Seminar #32 では、はてなブログチームのエンジニア3名が登壇し、2025年2月3日にリリースされた「はてなCMS」の開発について発表します。 「はてなCMS」では、はてながこれまで提供してきたオウンドメディアCMS「はてなブログMedia」の各種機能に加え、ノーコードで手軽にWebサイトを制作できる機能を新たに実装し提供しています。 参考:2025-02-03 はてなプレスリリース はてな、Webサイト制作のための「はてなCMS」をリリース - プレスリリース - 株式会社はてな 「はてなCMS」の開発にあたっては、これまでのブログ基盤にそ</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/7a0f1266e943dc6c87c4ea7c6c4e94df80bf1ebd/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2F66e02ff40d1d5a32f52fbf3be10ed80c31e687fa%2Fbackend%3Dimagemagick%3Bversion%3D1%3Bwidth%3D1300%2Fhttps%253A%252F%252Fcdn-ak.f.st-hatena.com%252Fimages%252Ffotolife%252Fh%252Fhatenatech%252F20220111%252F20220111165252.png');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2025/02/04 19:35</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/engineer-seminar-32"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2025/01/31/185936"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2025/01/31/185936" title="2024年に始めたSRE連載について - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4765613101723930849" data-entry-category="テクノロジー">2024年に始めたSRE連載について - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2025/01/31/185936" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>52</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2025%2F01%2F31%2F185936" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2025/01/31/185936" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">id:cohalzです。この記事は、はてなのSREが毎月交代で書いているSRE連載の2025年1月号の記事です。 2024年にはこのHatena Developer BlogにてSRE連載と言う毎月一回交代でSRE関連のブログ記事を書く企画を開始しました。 今回はその連載記事の紹介と工夫について紹介していきます。 記事一覧 id:hagihala はてなブログの DB を RDS for MySQL 8.0 にアップグレードした話 developer.hatenastaff.com readonlyメンテはめちゃくちゃ強力な武器だなと思っているので社内外でももっと広まって欲しいですね。あと0年や10000年も考慮しないといけないというのはまず役に立たない知識でこれも面白かったです。 id:masayosu はてなにおけるEKSの運用と自動化 (2024年版) developer.haten</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/d955db0e3ce0d40a27ffcde5fd05440a6210569e/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F12704346814673975483%2F6802418398322541798%2F1738318183');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2025/01/31 19:05</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/SRE" rel="tag" data-gtm-click-label="entry-info-tag">SRE</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> <li><a href="/q/%E3%81%AF%E3%81%A6%E3%81%AA" rel="tag" data-gtm-click-label="entry-info-tag">はてな</a></li> <li><a href="/q/hatena" rel="tag" data-gtm-click-label="entry-info-tag">hatena</a></li> <li><a href="/q/blog" rel="tag" data-gtm-click-label="entry-info-tag">blog</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2025/01/31/185936"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2025/01/29/170000"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2025/01/29/170000" title="マネタイズが得意なエンジェル投資家として活躍中の id:kawasaki を訪問 | はてな卒業生訪問企画 [#13] - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4765517303346657984" data-entry-category="テクノロジー">マネタイズが得意なエンジェル投資家として活躍中の id:kawasaki を訪問 | はてな卒業生訪問企画 [#13] - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2025/01/29/170000" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>69</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2025%2F01%2F29%2F170000" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2025/01/29/170000" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">こんにちは、取締役の id:onishi です。 Hatena Developer Blogの連載企画「卒業生訪問インタビュー」では、創業からはてなの開発に関わってきた取締役の id:onishi、CTOの id:motemen、エンジニアリングマネージャーの id:onkが、いま会いたい元はてなスタッフを訪問してお話を伺っていきます。 id:onishiが担当する第13回のゲストは、「マネタイズが得意なエンジェル投資家(@yukawasa)」のid:kawasakiさんこと、川崎裕一さんです。 kawasakiさんは、慶応義塾大学経済学部卒業後、インターネット企業数社を経て、2004年8月にはてなに入社。同年12月には取締役副社長に就任し、ゼロから広告事業を立ち上げるなど、マネタイズを中心に創業期のはてなの成長を支えてくださいました。 2009年に起業のためはてなを卒業後、株式会社kam</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/eb4c6311db05a4ea75ebcfb897bec818968f90d9/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2F431d7000303b281f8d0c828b5724febc85de77f9%2Fbackend%3Dimagemagick%3Bversion%3D1%3Bwidth%3D1300%2Fhttps%253A%252F%252Fcdn-ak.f.st-hatena.com%252Fimages%252Ffotolife%252Fh%252Fhatenatech%252F20241205%252F20241205170418.jpg');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2025/01/29 17:31</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/hatena" rel="tag" data-gtm-click-label="entry-info-tag">hatena</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> <li><a href="/q/%E6%8A%95%E8%B3%87" rel="tag" data-gtm-click-label="entry-info-tag">投資</a></li> <li><a href="/q/%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9" rel="tag" data-gtm-click-label="entry-info-tag">サービス</a></li> <li><a href="/q/%E3%81%AF%E3%81%A6%E3%81%AA" rel="tag" data-gtm-click-label="entry-info-tag">はてな</a></li> <li><a href="/q/blog" rel="tag" data-gtm-click-label="entry-info-tag">blog</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2025/01/29/170000"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/12/31/233000"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/12/31/233000" title="2024年のはてなスタッフのアウトプットまとめ - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4764183759236043072" data-entry-category="テクノロジー">2024年のはてなスタッフのアウトプットまとめ - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/12/31/233000" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>27</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F12%2F31%2F233000" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/12/31/233000" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">こんにちは、id:onk です。 去年 に引き続き、はてなスタッフの登壇まとめをします。去年は 88 件でしたが、今年は 119 件あるようです。実に 1.3 倍ですね。いや素朴に凄いな。発表の場が増えたのもあるし、発表しようと動いたのもあるなー、とまとめていて思いました。 それでは見ていきましょー。 1/12 ToKyoto.js #02 - Kyoto.js in Tokyo 1/26 Nextbeat Tech Bar:第五回関数型プログラミング(仮)の会 1/30 Hatena Engineer Seminar #28 個人開発編 1/30 Mackerel Drink UP #14 アラート対応やSLI/SLO、エラーバジェットの運用を学ぼう 1/31 hatena.go #1 2/10 YAPC::Hiroshima 2024 2/15 OpenTelemetry Meetup</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/311628a7a5490b250bdc6a1e6173a081ef19420b/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F12704346814673975483%2F6802418398316370734%2F1735657149');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/12/31 23:32</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/hatena" rel="tag" data-gtm-click-label="entry-info-tag">hatena</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> <li><a href="/q/%E3%81%BE%E3%81%A8%E3%82%81" rel="tag" data-gtm-click-label="entry-info-tag">まとめ</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/12/31/233000"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/12/26/104403"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/12/26/104403" title="AWSリザーブドインスタンスの購入時にチームメンバーのレビューを通す - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4763928243425958304" data-entry-category="テクノロジー">AWSリザーブドインスタンスの購入時にチームメンバーのレビューを通す - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/12/26/104403" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>25</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F12%2F26%2F104403" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/12/26/104403" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">システムプラットフォームチーム所属の id:k1s1eeeです。 この記事は、はてなのSREが毎月交代で書いているSRE連載の12月号、かつはてなエンジニア Advent Calendar 2024 の12月26日の記事です。 SRE連載 11月の記事は id:rskmm0chang さんの「GitHub ActionsのSelf Hosted Runner向けにImage Cache Proxyを導入しました」でした。 はてなエンジニア Advent Calendar 2024 12月25日は id:yujiorama さんの「Implementing Google BigQuery REST API (v2) jobs.query」でした。 AWS リザーブドインスタンス とは AWS リザーブドインスタンス(以下 RIと表記します)は、AWSの使用料金を節約するためのオプションで、A</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/eb842c298e453cfe3f499c38bda384ebdca8f012/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F12704346814673975483%2F6802418398313889479%2F1735179225');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/12/26 11:20</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/AWS" rel="tag" data-gtm-click-label="entry-info-tag">AWS</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> <li><a href="/q/hatena" rel="tag" data-gtm-click-label="entry-info-tag">hatena</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/12/26/104403"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/12/23/120000"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/12/23/120000" title="Flatt Securityで活躍中のid:akiymを訪問 | はてな卒業生訪問企画 [#12] - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4763790734064729824" data-entry-category="テクノロジー">Flatt Securityで活躍中のid:akiymを訪問 | はてな卒業生訪問企画 [#12] - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/12/23/120000" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>26</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F12%2F23%2F120000" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/12/23/120000" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">こんにちは、エンジニアリングマネージャーの id:onk です。 Hatena Developer Blogの連載企画「卒業生訪問インタビュー」では、創業からはてなの開発に関わってきた取締役の id:onishi、CTOの id:motemen、エンジニアリングマネージャーの id:onkが、いま会いたい元はてなスタッフを訪問してお話を伺っていきます。 id:onkが担当する第12回のゲストは、株式会社Flatt Securityでセキュリティエンジニアとして活躍するid:akiymさんこと、秋山卓巳さんです。 2017年にはてなに新卒で開発エンジニアとして入社し、受託系のWeb開発などを中心にご活躍いただきました。 2021年にはてなを卒業後、2021年9月、株式会社Flatt Securityに入社し、セキュリティエンジニアとして、主にWebアプリケーション診断やFirebase診断な</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/dc44069effe8af9c4d79afc8bf5b6ca2593819aa/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2F1fd225e103df1df17c92f823617236459d88c906%2Fbackend%3Dimagemagick%3Bversion%3D1%3Bwidth%3D1300%2Fhttps%253A%252F%252Fcdn-ak.f.st-hatena.com%252Fimages%252Ffotolife%252Fh%252Fhatenatech%252F20241219%252F20241219153655.png');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/12/23 12:11</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/perl" rel="tag" data-gtm-click-label="entry-info-tag">perl</a></li> <li><a href="/q/hatena" rel="tag" data-gtm-click-label="entry-info-tag">hatena</a></li> <li><a href="/q/security" rel="tag" data-gtm-click-label="entry-info-tag">security</a></li> <li><a href="/q/%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2" rel="tag" data-gtm-click-label="entry-info-tag">エンジニア</a></li> <li><a href="/q/%E3%81%AF%E3%81%A6%E3%81%AA" rel="tag" data-gtm-click-label="entry-info-tag">はてな</a></li> <li><a href="/q/%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3" rel="tag" data-gtm-click-label="entry-info-tag">セキュリティ</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> <li><a href="/q/%E9%96%8B%E7%99%BA" rel="tag" data-gtm-click-label="entry-info-tag">開発</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/12/23/120000"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/12/18/120000"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/12/18/120000" title="はてなの在宅リモート中心の働き方を競争戦略で切り取る - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4763558684910712352" data-entry-category="テクノロジー">はてなの在宅リモート中心の働き方を競争戦略で切り取る - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/12/18/120000" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>208</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F12%2F18%2F120000" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/12/18/120000" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">こんにちは。コンテンツ本部 エンジニアリングマネージャーの id:yigarashi です。EMとして企業の働き方について考えを巡らせていたところ、勉強中の競争戦略との結びつきから示唆を得たので記事にまとめようと思います。 2020年の初頭から世界を襲った新型コロナウイルス感染症により、多くの企業がリモートワークへの移行を余儀なくされました。それから5年弱、感染症の脅威は相対的に小さくなりコロナ禍以前の生活を取り戻す動きが増えています。企業の働き方についても、リモートワークと出社勤務の両方を経験した上で、改めて両方の選択肢を検討できる時期と言えるでしょう。しかしながら、リモートワークと出社勤務のどちらが優れているか、私の知る範囲では絶対的な結論というのは現れていないように思います。各社がどんな歴史を歩み、現状をどう捉え、そしてどんなメリットを志向するかによって判断は変わるだろうと考えます。</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/7297e818e0c9b0d26c0235e7492da56f791d11bc/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F12704346814673975483%2F6802418398311984611%2F1734658685');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/12/18 12:08</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF" rel="tag" data-gtm-click-label="entry-info-tag">リモートワーク</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> <li><a href="/q/%E3%81%AF%E3%81%A6%E3%81%AA" rel="tag" data-gtm-click-label="entry-info-tag">はてな</a></li> <li><a href="/q/hatena" rel="tag" data-gtm-click-label="entry-info-tag">hatena</a></li> <li><a href="/q/%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3" rel="tag" data-gtm-click-label="entry-info-tag">コミュニケーション</a></li> <li><a href="/q/work" rel="tag" data-gtm-click-label="entry-info-tag">work</a></li> <li><a href="/q/%E5%8A%B4%E5%83%8D" rel="tag" data-gtm-click-label="entry-info-tag">労働</a></li> <li><a href="/q/communication" rel="tag" data-gtm-click-label="entry-info-tag">communication</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/12/18/120000"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/12/12/120000"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/12/12/120000" title="「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の読書会や質問会を開催して分かったこと - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4763280421882680288" data-entry-category="テクノロジー">「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の読書会や質問会を開催して分かったこと - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/12/12/120000" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>71</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F12%2F12%2F120000" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/12/12/120000" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">株式会社はてなのマンガ投稿チームでエンジニアリングマネージャーとして働いている id:shimobayashi です。 普段はジャンプルーキー!やマンガノといったマンガを投稿するサービスの開発に携わっています。 先日社内でリモートワークに関する読書会を完走し、最後には監修者の方々と質問会を開催させていただきました。 本記事では、それらの過程で分かったことなどを共有します。 読書会をどのように実施したのか 読書会の進行例 開催中に試行錯誤したこと 完走して感じたこと 監修者との質問会はどのような内容になったのか 一問一答の一部 まとめ 読書会をどのように実施したのか 今回の読書会ではこの本を選びました。 GitLabに学ぶ 世界最先端のリモート組織のつくりかた ドキュメントの活用でオフィスなしでも最大の成果を出すグローバル企業のしくみ 作者:千田 和央翔泳社Amazon 選んだ理由としては、</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/2da390fab8d5e09638983bba51c855424c97dd93/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2F2e4e2c8c931008a8ddbeecd1c9704e9931b6b2f9%2Fbackend%3Dimagemagick%3Bversion%3D1%3Bwidth%3D1300%2Fhttps%253A%252F%252Fm.media-amazon.com%252Fimages%252FI%252F51QKaEkkSHL._SL500_.jpg');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/12/12 12:09</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/gitlab" rel="tag" data-gtm-click-label="entry-info-tag">gitlab</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> <li><a href="/q/book" rel="tag" data-gtm-click-label="entry-info-tag">book</a></li> <li><a href="/q/%E7%B5%84%E7%B9%94" rel="tag" data-gtm-click-label="entry-info-tag">組織</a></li> <li><a href="/q/%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2" rel="tag" data-gtm-click-label="entry-info-tag">エンジニア</a></li> <li><a href="/q/%E3%83%9E%E3%83%8D%E3%82%B8%E3%83%A1%E3%83%B3%E3%83%88" rel="tag" data-gtm-click-label="entry-info-tag">マネジメント</a></li> <li><a href="/q/communication" rel="tag" data-gtm-click-label="entry-info-tag">communication</a></li> <li><a href="/q/%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3" rel="tag" data-gtm-click-label="entry-info-tag">コミュニケーション</a></li> <li><a href="/q/%E6%9C%AC" rel="tag" data-gtm-click-label="entry-info-tag">本</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/12/12/120000"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/11/26/151801"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/11/26/151801" title="GitHub ActionsのSelf Hosted Runner向けにImage Cache Proxyを導入しました - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4762578968493419488" data-entry-category="テクノロジー">GitHub ActionsのSelf Hosted Runner向けにImage Cache Proxyを導入しました - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/11/26/151801" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>12</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F11%2F26%2F151801" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/11/26/151801" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">システムプラットフォームチームの id:rskmm0chang です。9月に入社しました。 15年前にはてなのインフラ部でアルバイトをしておりまして、それ以来の入社となります。時の流れは早いですね。 この記事は、はてなのSREが毎月交代で書いているSRE連載の11月号です。10月の記事はid:s-shiroさんの既存のDeploy Preview環境をmirage-ecsに移行する - 設計編 -でした。 はてなでは、GitHub Actionsを多用しており、コスト削減などを期待し、Actions Runner Controllerを利用して、Self Hosted Runnerを使い始めています。 GitHub Actionsの中でdockerコマンドを使うようなジョブも多く、DinD*1の構成を取っていますが、その際に問題になるのがジョブ実行時のImageの取得です。各ジョブにおいて</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/6b7441df6e1045cd59becab8354d5fd5073e4779/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F12704346814673975483%2F6802418398305591430%2F1732601891');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/11/27 09:13</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/CI" rel="tag" data-gtm-click-label="entry-info-tag">CI</a></li> <li><a href="/q/docker" rel="tag" data-gtm-click-label="entry-info-tag">docker</a></li> <li><a href="/q/github" rel="tag" data-gtm-click-label="entry-info-tag">github</a></li> <li><a href="/q/hatena" rel="tag" data-gtm-click-label="entry-info-tag">hatena</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/11/26/151801"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/11/11/170000"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/11/11/170000" title="はてなサマーインターンシップ2024のレポートサイトと講義資料を公開しました! - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4761852000327118336" data-entry-category="テクノロジー">はてなサマーインターンシップ2024のレポートサイトと講義資料を公開しました! - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/11/11/170000" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>20</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F11%2F11%2F170000" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/11/11/170000" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">はてなサマーインターン2024実行委員のid:cohalzです。 8月から9月にかけて「はてなサマーインターンシップ2024」を実施しました。本日、そのレポートサイトを公開しました! hatena.co.jp 今年のインターンでは最初の一週間に京都オフィスに集まりオフラインで講義や課題をするというパートを設けました。 はてなのインターンといえばオフィスで集まってわいわいするのが楽しかったという感想を持ってくれる人も多く、今年はそれを一週間だけですが復活することができました。 ちなみに、京都オフィスは2022年に移転したため、新しいオフィスでオフラインのインターンを実施するのは今年が初となりました。 hatena.co.jp 講義資料 講義資料についても公開しました! 講義「Web/HTTP/API」 by id:motemen Web技術の基本となる用語について解説しています。HTTPから</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/7cc07d3adf16cc3c60bf1224d3c9d4e83b1724de/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F12704346814673975483%2F6802418398303140982%2F1731312006');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/11/11 17:05</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/hatena" rel="tag" data-gtm-click-label="entry-info-tag">hatena</a></li> <li><a href="/q/slide" rel="tag" data-gtm-click-label="entry-info-tag">slide</a></li> <li><a href="/q/%E8%B3%87%E6%96%99" rel="tag" data-gtm-click-label="entry-info-tag">資料</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/11/11/170000"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/11/01/125934"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/11/01/125934" title="はてなサマーインターンシップ2024講義「チーム開発」 - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4761380437866878560" data-entry-category="テクノロジー">はてなサマーインターンシップ2024講義「チーム開発」 - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/11/01/125934" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>3</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F11%2F01%2F125934" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/11/01/125934" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">こんにちは。組織・基盤開発本部エンジニアリングマネージャーのid:daiksyです。 はてなでは、毎年夏にサマーインターンシップを開催しています。今年は京都オフィスでの講義パートと、リモートでのプロダクト開発実践パートとの2部構成での開催です。 hatena.co.jp ここでは、講義パートで実施した「チーム開発」講義の様子を紹介します。 講義の目的 はてなサマーインターンシップ2024では、インターン生は最終的にはてなで実際のプロダクトを開発しているチームに配属されます。そして配属先で、はてなブログなどの実際に運用中であるプロダクトの機能開発を体験します。 インターンシップ前半の講義パートは、後半のプロダクト開発にむけて、Webアプリケーションを開発するために必要なさまざまなことを学びます。以下のリストが今年の講義カリキュラムです。 講義「Web/HTTP/API」 講義「RDBMSブー</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/b74b9246a6926495c0744a4927ff60dc98aff7dd/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2F8a6352242ed37dfba438c3a87b26cec7eb8d9fd8%2Fbackend%3Dimagemagick%3Bheight%3D1300%3Bversion%3D1%3Bwidth%3D1300%2Fhttps%253A%252F%252Fcdn-ak.f.st-hatena.com%252Fimages%252Ffotolife%252Fh%252Fhatenatech%252F20241101%252F20241101125935.png');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/11/01 13:06</li> </ul> <ul class="entrylist-contents-tags"> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/11/01/125934"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/10/25/181000"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/10/25/181000" title="「生成AI×新規事業 の挑戦 〜生成AIを学びながら技術とチームを磨いた事業立ち上げの道のり〜」をオンラインで開催しました #hatenatech - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4761066227014477184" data-entry-category="テクノロジー">「生成AI×新規事業 の挑戦 〜生成AIを学びながら技術とチームを磨いた事業立ち上げの道のり〜」をオンラインで開催しました #hatenatech - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/10/25/181000" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>22</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F10%2F25%2F181000" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/10/25/181000" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">2024年10月14日(木)に、オンラインイベント 「生成AI×新規事業 の挑戦 〜生成AIを学びながら技術とチームを磨いた事業立ち上げの道のり〜」 を開催しました。ご参加いただいたみなさま、ありがとうございました。 このエントリーでは、当日のアーカイブ動画や公開資料をご紹介します。 イベントについて 発表概要と資料 開会の挨拶・toittaのご説明 / id:yigarashi 高性能な AI を使うだけじゃない! 生成 AI を活用した toitta 切片分類機能の裏側 / id:pokutuna 生成AI×マルチテナントSaaSな新規事業を立ち上げる上でテックリードとして気を使った点の紹介 / id:lunastera 新規事業×生成 AI の不確実性を乗り越える開発プロセス / id:noy72 さいごに イベントについて はてなでは「新規事業チーム」が手掛けた企業向け新サービスと</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/5ac2832fae42ca726d8ed20ad38d9f978896b042/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2F56ee8b824034beab0955f5afd1eef9f837716c7e%2Fbackend%3Dimagemagick%3Bheight%3D1300%3Bversion%3D1%3Bwidth%3D1300%2Fhttps%253A%252F%252Fcdn-ak.f.st-hatena.com%252Fimages%252Ffotolife%252Fh%252Fhatenatech%252F20241007%252F20241007171842.png');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/10/25 18:32</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/%E4%BA%BA%E5%B7%A5%E7%9F%A5%E8%83%BD" rel="tag" data-gtm-click-label="entry-info-tag">人工知能</a></li> <li><a href="/q/ai" rel="tag" data-gtm-click-label="entry-info-tag">ai</a></li> <li><a href="/q/hatena" rel="tag" data-gtm-click-label="entry-info-tag">hatena</a></li> <li><a href="/q/%E6%8A%80%E8%A1%93" rel="tag" data-gtm-click-label="entry-info-tag">技術</a></li> <li><a href="/q/%E9%96%8B%E7%99%BA" rel="tag" data-gtm-click-label="entry-info-tag">開発</a></li> <li><a href="/q/blog" rel="tag" data-gtm-click-label="entry-info-tag">blog</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/10/25/181000"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/10/23/205543"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/10/23/205543" title="既存のDeploy Preview環境をmirage-ecsに移行する - 設計編 - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4760978311127602944" data-entry-category="テクノロジー">既存のDeploy Preview環境をmirage-ecsに移行する - 設計編 - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/10/23/205543" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>19</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F10%2F23%2F205543" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/10/23/205543" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">マンガメディア第2チームでGigaViewerのWeb面のSREを担当している id:s-shiro です。 この記事は、はてなのSREが毎月交代で書いているSRE連載の10月号です。9月の記事はid:cohalzさんの新規事業「toitta」で導入したGoogle Cloudのセキュリティ機能の紹介でした。 リポジトリのブランチごとに、メインブランチにマージする前の動作確認に使える環境を起動することをPreview DeployやDeploy Previewと呼ぶらしいのですが(以下Deploy Preview)、マンガメディアチームではEC2で構築していたDeploy Preview環境を、メンテナンス性や使い勝手の観点からコンテナ化しようとしています。 はてな全体でみるとDeploy Preview環境の構成や要素技術は、歴史的な経緯もあり各サービスを開発するチームごとに異なっており</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/6dc913d79f5b3e7718f5ce6cc4b452c9ef30a448/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2F8158ec59ca1b85fb6f936b666f21e565221d5d32%2Fbackend%3Dimagemagick%3Bheight%3D1300%3Bversion%3D1%3Bwidth%3D1300%2Fhttps%253A%252F%252Fcdn-ak.f.st-hatena.com%252Fimages%252Ffotolife%252Fh%252Fhatenatech%252F20241023%252F20241023205549.png');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/10/23 21:02</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/ecs" rel="tag" data-gtm-click-label="entry-info-tag">ecs</a></li> <li><a href="/q/hatena" rel="tag" data-gtm-click-label="entry-info-tag">hatena</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> <li><a href="/q/aws" rel="tag" data-gtm-click-label="entry-info-tag">aws</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/10/23/205543"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/engineer-seminar-31-report"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/engineer-seminar-31-report" title="Hatena Engineer Seminar #31「少年ジャンプ+」 サーバーサイド編をオンラインで開催しました #hatenatech - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4760738771003256000" data-entry-category="テクノロジー">Hatena Engineer Seminar #31「少年ジャンプ+」 サーバーサイド編をオンラインで開催しました #hatenatech - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/engineer-seminar-31-report" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>26</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2Fengineer-seminar-31-report" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/engineer-seminar-31-report" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">2024年10月15日(火)に、 Hatena Engineer Seminar #31 をオンライン開催しました。ご参加いただいたみなさま、ありがとうございました。 このエントリーでは、当日のアーカイブ動画や公開資料をご紹介します。 お詫び 当日のライブ配信では、トラブルにより一部映像が止まる・音声が聞き取りづらいなどの問題が発生し、配信を一時中断させていただきました。快適にウェビナーをご視聴いただくことができず、大変申し訳ございませんでした。スライドと音声がズレてしまっている箇所がございますので、アーカイブ動画をご視聴いただく際は、公開しているスライドとともに内容をご確認いただけますと幸いです。 お詫び Hatena Engineer Seminar #31 について 発表概要と資料 マルチテナントのサービスインフラに大きなテナントを受け入れるまで / id:koudenpa 10年続</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/69c6b645a5abeedc9a5370428334ddd11aa320d0/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2F480bb6998f96d0d4ab32832bd15f6c2db466400a%2Fbackend%3Dimagemagick%3Bheight%3D1300%3Bversion%3D1%3Bwidth%3D1300%2Fhttps%253A%252F%252Fcdn-ak.f.st-hatena.com%252Fimages%252Ffotolife%252Fh%252Fhatenatech%252F20220111%252F20220111165252.png');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/10/18 17:06</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9" rel="tag" data-gtm-click-label="entry-info-tag">データベース</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> <li><a href="/q/%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2" rel="tag" data-gtm-click-label="entry-info-tag">エンジニア</a></li> <li><a href="/q/comic" rel="tag" data-gtm-click-label="entry-info-tag">comic</a></li> <li><a href="/q/hatena" rel="tag" data-gtm-click-label="entry-info-tag">hatena</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/engineer-seminar-31-report"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/10/16/180559"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/10/16/180559" title="ISUCONの過去問でObservabilityを体験する - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4760648752190841472" data-entry-category="テクノロジー">ISUCONの過去問でObservabilityを体験する - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/10/16/180559" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>55</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F10%2F16%2F180559" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/10/16/180559" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">システムプラットフォームチームで SRE をしている id:masayoshi です。 今年もISUCON14の開催が決定しましたね! isucon.net ISUCONとはLINEヤフー株式会社が運営窓口となって開催している、お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトルです ISUCONは、世の中に実際にありそうなWebサービスを題材に、明確なボトルネックがあるコードかつ全体のコード量もすぐ読める量なので、パフォーマンスチューニングの練習にはもってこいです。 適切なパフォーマンスチューニングをするためには、まず計測してシステム上のどこにボトルネックが存在してパフォーマンスが悪化しているのかを把握する必要があります。 このように、どこで、何が起こり、パフォーマンス上の問題やエラーがおこっているのかを把握できる能力を Observabili</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/18bbc115b0a093cbdef4850b45f09598cc6bdd66/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F12704346814673975483%2F6802418398296159178%2F1729128263');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/10/16 18:31</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/observability" rel="tag" data-gtm-click-label="entry-info-tag">observability</a></li> <li><a href="/q/ISUCON" rel="tag" data-gtm-click-label="entry-info-tag">ISUCON</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> <li><a href="/q/performance" rel="tag" data-gtm-click-label="entry-info-tag">performance</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/10/16/180559"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/10/11/163931"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/10/11/163931" title="「攻めた」AWS Fargate Spot比率の見直し時 - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4760417732198170464" data-entry-category="テクノロジー">「攻めた」AWS Fargate Spot比率の見直し時 - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/10/11/163931" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>31</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F10%2F11%2F163931" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/10/11/163931" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">AWSの東京リージョンでFargate Spotを「中断されたら困る」割合で利用している場合、2024年10月は見直し時かも知れません。 はてながECS Fargateで運用しているWebサービスの多くは、状況に応じてリクエスト数≒負荷が増減します。 これに対して、リクエストを受け持つECSサービスのタスク数をオートスケールさせてコスト最適化を図っています。 ボトルネックはCPUで、CPU使用率を追跡していることが多いでしょうか。 オートスケールで追跡する使用率にはスケールアウトまでの間の負荷に耐えるための余裕を持たせます。 この余裕の部分をSpotタスクで確保することで更にコストを削減できます。 AWS Fargate Spotの発表で示されているユースケースでは以下に該当します。 また高可用性を求められるウェブサイトやAPIサーバーのように、ECSサービスの一部となるタスクに対してもF</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/b76f742a161da94fd4c6b2666494ee7c66083882/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F12704346814673975483%2F6802340630911479171%2F1728633136');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/10/11 19:00</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/aws" rel="tag" data-gtm-click-label="entry-info-tag">aws</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/10/11/163931"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/10/04/130000"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/10/04/130000" title="10/24 オンライン開催!「生成AI×新規事業 の挑戦 〜生成AIを学びながら技術とチームを磨いた事業立ち上げの道のり〜」 - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4760081983663107392" data-entry-category="テクノロジー">10/24 オンライン開催!「生成AI×新規事業 の挑戦 〜生成AIを学びながら技術とチームを磨いた事業立ち上げの道のり〜」 - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/10/04/130000" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>3</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F10%2F04%2F130000" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/10/04/130000" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">こんにちは。EM の id:yigarashi です。 2024年10月24日(木)に 「生成AI×新規事業 の挑戦 〜生成AIを学びながら技術とチームを磨いた事業立ち上げの道のり〜」をオンライン開催しますので、お知らせします。 はてなでは「新規事業チーム」が手掛けた企業向け新サービスとして、生成AIを活用したユーザーインタビュー後の発話分析を支援する「toitta」を7月にベータリリースしました。 ja.toitta.com 「toitta」は、インタビューの録画や録音から、文字書き起こしや切片(ファクトや心理を抽出したもの)、切片の意味的なグループを生成し、分析に適した形で提供します。ゼロからの事業立ち上げで、しかもインタビューの録画や録音を構造データ化していくという技術的にもチャレンジングな道のりでした。 本イベントでは、生成AIを学びながら課題を解決してきた道のりや、事業立ち上げ時</p> <p class="entrylist-contents-thumb"> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/10/04 13:17</li> </ul> <ul class="entrylist-contents-tags"> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/10/04/130000"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/10/04/120000"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/10/04/120000" title="AWS Fargate Spot が中断されにくいのはいつ? - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4760081089235671776" data-entry-category="テクノロジー">AWS Fargate Spot が中断されにくいのはいつ? - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/10/04/120000" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>32</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F10%2F04%2F120000" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/10/04/120000" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">皆さん、AWS Fargate Spot使ってますか? 最近Arm向けもサポートされてより活用範囲が広がっているかと思います。 さて、Fargete SpotはFargateのコンピューティングリソースの状況次第でタスクが中断される代わりに、最大通常の7割引きでタスクを実行できる機能です。 とはいえ、できることなら中断はされたくないですよね。 ここに「ある1ヶ月のFargate Spotの中断回数のグラフ」があります*1。何となく中断具合に周期性がありそうですね。 グッとにらむとこうなりました。 明らかに日曜日近辺の中断回数が少ないです。 つまり? 中断されたくないタスクをFargate Spotで動かすには土日が狙い目です*2。 この記事は id:koudenpa が書きました。 オマケ Fargate Spotの中断回数はメトリクスとしては提供されていないため、Amazon ECS タ</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/d94f94c3a8ab25900d38fb52811003c8809e9b76/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F12704346814673975483%2F6802340630910790877%2F1728010816');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/10/04 12:49</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/AWS" rel="tag" data-gtm-click-label="entry-info-tag">AWS</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/10/04/120000"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/10/03/120523"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/10/03/120523" title="はてな は YAPC::Hakodate 2024 を全力で盛り上げます!登壇やスポンサー内容のご紹介 - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4760039349644989440" data-entry-category="テクノロジー">はてな は YAPC::Hakodate 2024 を全力で盛り上げます!登壇やスポンサー内容のご紹介 - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/10/03/120523" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>13</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F10%2F03%2F120523" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/10/03/120523" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">こんにちは!システムプラットフォームチームのアプリケーションエンジニアのid:anatofuzです。最近は推しのスタンプラリーのために北海道の鶴居村にどうやっていこうかを考えています。 北海道といえば今週末にいよいよ YAPC::Hakodate 2024 が開催されますね! yapcjapan.org 今回の YAPC は「Open the future」をテーマとしていますが、Perlは意外と最近は未来的な新機能がガンガン追加されていっていますね。 YAPC::Hakodateには私の他にも多くのはてなスタッフが一般参加者としてだけではなくトークへの登壇やコアスタッフ・当日スタッフとして参加します。また、はてなではゴールドスポンサーもさせていただきます。本エントリではスタッフからのコメントとともにこれらの紹介をさせていただきます。 本編のご紹介 「データマイグレーションの成功戦略:サー</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/685cf36a55d46c5998eb0d7d87ead0d8c5906504/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F12704346814673975483%2F6802340630910945971%2F1727924724');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/10/03 15:13</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/%2A" rel="tag" data-gtm-click-label="entry-info-tag">*</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/10/03/120523"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/09/30/120010"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/09/30/120010" title="新規事業「toitta」で導入したGoogle Cloudのセキュリティ機能の紹介 - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4759894503935542976" data-entry-category="テクノロジー">新規事業「toitta」で導入したGoogle Cloudのセキュリティ機能の紹介 - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/09/30/120010" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>14</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F09%2F30%2F120010" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/09/30/120010" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">toittaチームSREのid:cohalzです。 この記事は、はてなのSREが毎月交代で書いているSRE連載の9月号です。8月の記事はid:walnuts1018さんのはてなブログや GigaViewer で使われている画像変換プロキシを EC2 から EKS に移行しましたでした。 はてなでは2024年7月に生成AIを活用したtoittaというサービスをベータ版でリリースしました。現在正式リリースに向けて準備中で、無料トライアルも実施中です。 ja.toitta.com このサービスはビジネス向けのSaaSアプリケーションで、インフラはGoogle Cloud上に構築しています。 ユーザーの皆様に安心してサービスをお使いいただくために、どうやってセキュアなサービスにしていったのかを、toittaで利用しているGoogle Cloudのセキュリティ系のサービスと合わせて紹介していきます。</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/6d6f0fb672e0cb9e464c5c8eab4a9bbcc0a054af/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F12704346814673975483%2F6802340630909326699%2F1727665281');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/09/30 12:16</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/%22google%20cloud%22" rel="tag" data-gtm-click-label="entry-info-tag">google cloud</a></li> <li><a href="/q/%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3" rel="tag" data-gtm-click-label="entry-info-tag">セキュリティ</a></li> <li><a href="/q/cloud" rel="tag" data-gtm-click-label="entry-info-tag">cloud</a></li> <li><a href="/q/hatena" rel="tag" data-gtm-click-label="entry-info-tag">hatena</a></li> <li><a href="/q/google" rel="tag" data-gtm-click-label="entry-info-tag">google</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/09/30/120010"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/09/25/090000"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/09/25/090000" title="はてなのモバイル開発大紹介!「少年ジャンプ+のアプリ開発の裏側」を開催しました! #hatenatech - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4759658733175772000" data-entry-category="テクノロジー">はてなのモバイル開発大紹介!「少年ジャンプ+のアプリ開発の裏側」を開催しました! #hatenatech - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/09/25/090000" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>3</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F09%2F25%2F090000" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/09/25/090000" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">こんにちは!マンガアプリチームで、GigaViewer for Appsの開発をしています id:yutailang0119 です。 はてなのGigaViewer for Appsでは、2024年3月から「少年ジャンプ+」のアプリ版を担当しています。 hatena.co.jp そんなGigaViewer for Apps、「少年ジャンプ+」の開発についてをお話しする、はてなのモバイル開発大紹介!「少年ジャンプ+のアプリ開発の裏側」を9/19 (木) に開催しました! hatena.connpass.com イベントレポート 今回は各発表を紹介するイベントレポートです。 (※ 本イベントの録画公開予定はございません。) 挨拶&プロジェクト概要の紹介 id:kouki_dan id:daiksy イベントの始まりとして、「少年ジャンプ+」アプリのGigaViewer for Apps開発テック</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/9f93307b206c66a86d26210ec894f5cafbb7e5b6/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F12704346814673975483%2F6802340630907892527%2F1727222412');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/09/25 10:17</li> </ul> <ul class="entrylist-contents-tags"> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/09/25/090000"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/09/20/140000"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/09/20/140000" title="サイボウズで活躍中のid:itchynyを訪問 | はてな卒業生訪問企画 [#11] - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4759434548628283488" data-entry-category="テクノロジー">サイボウズで活躍中のid:itchynyを訪問 | はてな卒業生訪問企画 [#11] - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/09/20/140000" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>32</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F09%2F20%2F140000" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/09/20/140000" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">こんにちは、CTOの id:motemen です。 Hatena Developer Blogの連載企画「卒業生訪問インタビュー」では、創業からはてなの開発に関わってきた取締役の id:onishi、CTOの id:motemen、エンジニアリングマネージャーの id:onkが、いま会いたい元はてなスタッフを訪問してお話を伺っていきます。 id:motemenが担当する第11回のゲストは、サイボウズ株式会社でソフトウェアエンジニアとして活躍しているid:itchynyさんこと、濱田健さんです。 itchynyさんは、京都大学大学院工学研究科電子工学専攻修了後、はてなに入社。Mackerelチームやはてなブックマークチームでアプリケーションエンジニアとして活躍していただいていました。2021年にサイボウズ株式会社に転職し、Webアプリケーションエンジニアとして、kintoneの基盤チームで開</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/7e0894786ee9a159cbfad18e6fc90ec79db4ed60/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2F5cf58b44458bc85d6cf39f17239f38405ce0f7aa%2Fbackend%3Dimagemagick%3Bversion%3D1%3Bwidth%3D1300%2Fhttps%253A%252F%252Fcdn-ak.f.st-hatena.com%252Fimages%252Ffotolife%252Fh%252Fhatenatech%252F20180731%252F20180731175339.jpg');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/09/20 14:18</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/cybozu" rel="tag" data-gtm-click-label="entry-info-tag">cybozu</a></li> <li><a href="/q/%E3%82%B5%E3%82%A4%E3%83%9C%E3%82%A6%E3%82%BA" rel="tag" data-gtm-click-label="entry-info-tag">サイボウズ</a></li> <li><a href="/q/%E3%81%AF%E3%81%A6%E3%81%AA" rel="tag" data-gtm-click-label="entry-info-tag">はてな</a></li> <li><a href="/q/%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2" rel="tag" data-gtm-click-label="entry-info-tag">エンジニア</a></li> <li><a href="/q/hatena" rel="tag" data-gtm-click-label="entry-info-tag">hatena</a></li> <li><a href="/q/interview" rel="tag" data-gtm-click-label="entry-info-tag">interview</a></li> <li><a href="/q/%E9%96%8B%E7%99%BA" rel="tag" data-gtm-click-label="entry-info-tag">開発</a></li> <li><a href="/q/%E4%BB%95%E4%BA%8B" rel="tag" data-gtm-click-label="entry-info-tag">仕事</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/09/20/140000"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/08/29/124236"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/08/29/124236" title="はてなブログや GigaViewer で使われている画像変換プロキシを EC2 から EKS に移行しました - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4758411296755706784" data-entry-category="テクノロジー">はてなブログや GigaViewer で使われている画像変換プロキシを EC2 から EKS に移行しました - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/08/29/124236" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>49</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F08%2F29%2F124236" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/08/29/124236" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">こんにちは、サービスプラットフォームチーム アルバイトの id:walnuts1018 です。 この記事は、はてなの SRE が毎月交代で書いている SRE 連載の 8 月号です。7 月の記事は id:masayoshi さんの はてなで最近実施している SRE 研修の紹介 でした。 今回は、社内共用の画像変換プロキシである、「Scissors」というサービスを EC2 から EKS に移行したお話をしたいと思います。 画像変換プロキシについて 課題点 サービスプラットフォームチームにおける EKS やりたいこと 移行に関する懸念点 Scissors 専用の Node を用意する Pod / Node のオートスケール オートスケールの検証 負荷試験 1 回目 負荷試験 2 回目 リリース まとめ/ふりかえり 画像変換プロキシについて はてなでは「Scissors」という内製の画像変換プロ</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/37bc2697f341955a41c7f3b50d0a7531ac6c5f8d/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2Fb634640e2e4c6c285c1d59b5222283abc6dcabf0%2Fbackend%3Dimagemagick%3Bversion%3D1%3Bwidth%3D1300%2Fhttps%253A%252F%252Fcdn-ak.f.st-hatena.com%252Fimages%252Ffotolife%252Fh%252Fhatenatech%252F20240829%252F20240829124246.png');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/08/29 12:52</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/tech" rel="tag" data-gtm-click-label="entry-info-tag">tech</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> <li><a href="/q/%E3%81%AF%E3%81%A6%E3%81%AA" rel="tag" data-gtm-click-label="entry-info-tag">はてな</a></li> <li><a href="/q/web" rel="tag" data-gtm-click-label="entry-info-tag">web</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/08/29/124236"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/07/31/190833"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/07/31/190833" title="はてなで最近実施しているSRE研修の紹介 - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4757078515581190816" data-entry-category="テクノロジー">はてなで最近実施しているSRE研修の紹介 - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/07/31/190833" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>194</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F07%2F31%2F190833" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/07/31/190833" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">システムプラットフォームチームで SRE をしている id:masayoshi です。 この記事は、はてなの SRE が毎月交代で書いている SRE 連載の7月号です。先月は id:chaya2z さんの AWS ECS で実行するバッチ処理を Cluster Auto Scaling を使ってコスト最適化する でした。 今月は、社内で最近始めたSREへの研修についてお伝えします。 SREの研修 SREの研修は新卒入社のSREや、中途採用でインフラエンジニアやアプリケーションエンジニアからSREにジョブチェンジした方を対象に実施しています。 SREの研修は主に以下の2つに分かれます。 SREの原理原則やSLI/SLOに関する研修 インフラ構築、運用、CI/CD環境の構築に関する研修 基本的にはどちらも受けてもらうことになりますが、受講者の経験によってはどちらかだけになることもあります。 ま</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/2bb2e0620ddff35bdd2e648dde5d18a4986013dc/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2Fa6e5775d1cb4484c6baea8fb5b63882ab1cbcfd8%2Fbackend%3Dimagemagick%3Bversion%3D1%3Bwidth%3D1300%2Fhttps%253A%252F%252Fcdn-ak.f.st-hatena.com%252Fimages%252Ffotolife%252Fh%252Fhatenatech%252F20240731%252F20240731190836.png');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/07/31 19:17</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/SRE" rel="tag" data-gtm-click-label="entry-info-tag">SRE</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" rel="tag" data-gtm-click-label="entry-info-tag">あとで読む</a></li> <li><a href="/q/%E7%A0%94%E4%BF%AE" rel="tag" data-gtm-click-label="entry-info-tag">研修</a></li> <li><a href="/q/%E9%81%8B%E7%94%A8" rel="tag" data-gtm-click-label="entry-info-tag">運用</a></li> <li><a href="/q/%E3%81%AF%E3%81%A6%E3%81%AA" rel="tag" data-gtm-click-label="entry-info-tag">はてな</a></li> <li><a href="/q/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0" rel="tag" data-gtm-click-label="entry-info-tag">システム</a></li> <li><a href="/q/%E3%82%B5%E3%83%BC%E3%83%90%E7%AE%A1%E7%90%86" rel="tag" data-gtm-click-label="entry-info-tag">サーバ管理</a></li> <li><a href="/q/%E3%83%81%E3%83%BC%E3%83%A0" rel="tag" data-gtm-click-label="entry-info-tag">チーム</a></li> <li><a href="/q/hatena" rel="tag" data-gtm-click-label="entry-info-tag">hatena</a></li> <li><a href="/q/%E9%96%8B%E7%99%BA" rel="tag" data-gtm-click-label="entry-info-tag">開発</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/07/31/190833"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/07/11/150000"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/07/11/150000" title="はてなのポッドキャスト Backyard Hatena #35 - SRE as a プロダクトオーナー(id:heleeen) #byhatena - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4756152436894525120" data-entry-category="テクノロジー">はてなのポッドキャスト Backyard Hatena #35 - SRE as a プロダクトオーナー(id:heleeen) #byhatena - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/07/11/150000" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>3</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F07%2F11%2F150000" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/07/11/150000" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">こんにちは、CTO の id:motemen です。 はてなのエンジニア組織である技術グループでやっているポッドキャスト「Backyard Hatena」を更新しました。 「Backyard Hatena」は、株式会社はてなのメンバーの普段の様子や、サービス開発の裏側や技術、取り組みなどについて、CTO の id:motemen を中心としたメンバーがカジュアルにお届けするポッドキャストです。 spotifyanchor-web.app.link Backyard Hatena • A podcast on Spotify for Podcasters Anchor / Spotify / Google Podcasts / Apple Podcast で配信しています。お好みのプラットフォームから聞いていただけると嬉しいです。 今回のゲストは、Mackerelチーム SRE の id:h</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/2c1c916543208cef07f1166538f55df4dd1a6bf4/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2Ff509903613ae8639ca417dbcd50a96fccf91c830%2Fbackend%3Dimagemagick%3Bversion%3D1%3Bwidth%3D1300%2Fhttps%253A%252F%252Fcdn.blog.st-hatena.com%252Ffiles%252F12704346814673975483%252F4207112889896980759');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/07/11 20:07</li> </ul> <ul class="entrylist-contents-tags"> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/07/11/150000"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> <li class="cat-it entrylist-image-entry js-keyboard-selectable-item"> <div class="entrylist-contents"> <div class="js-bookmark-stock-button is-hidden" data-gtm-click-label="entry-info-stock-button"> <button class="js-bookmark-stock-button-ready readlater-button" title="あとで読む" alt="あとで読む" tabindex="0" type="button" data-href="https://developer.hatenastaff.com/entry/2024/06/28/190637"><span>あとで読む</span> </button> </div> <div class="entrylist-contents-main"> <h3 class="entrylist-contents-title"> <a href="https://developer.hatenastaff.com/entry/2024/06/28/190637" title="AWS ECS で実行するバッチ処理を Cluster Auto Scaling を使ってコスト最適化する - Hatena Developer Blog" target="_blank" rel="noopener" class="js-keyboard-openable" data-gtm-click-label="entry-info-title" data-entry-id="4755573845405167744" data-entry-category="テクノロジー">AWS ECS で実行するバッチ処理を Cluster Auto Scaling を使ってコスト最適化する - Hatena Developer Blog</a> </h3> <span class="entrylist-contents-users"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/06/28/190637" title="すべてのブックマークを見る" class="js-keyboard-entry-page-openable" data-gtm-click-label="entry-info-users"><span>6</span> users</a> </span> <p class="entrylist-contents-domain"> <a href="/site/developer.hatenastaff.com/" title="『developer.hatenastaff.com』の新着エントリー" data-gtm-click-label="entry-info-root-url"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fdeveloper.hatenastaff.com%2Fentry%2F2024%2F06%2F28%2F190637" class="favicon" alt="" /> <span>developer.hatenastaff.com</span> </a> </p> <div class="entrylist-contents-body"> <a href="/entry/s/developer.hatenastaff.com/entry/2024/06/28/190637" title="すべてのブックマークを見る"> <p class="entrylist-contents-description" data-gtm-click-label="entry-info-description-href">システムプラットフォームチームで SRE をしている id:chaya2z です。 この記事は、はてなの SRE が毎月交代で書いている SRE 連載の6月号です。先月は id:MysticDoll さんの Postfixのログ監視で注意すべきSMTPのステータス仕様について でした。 ECS で実行するバッチ処理を、インスタンス数を最適化する仕組みである ECS Cluster Auto Scaling を使ってコスト最適化した取り組みを紹介します。 ECS の起動タイプに EC2 を使う背景 はてなでは、ECS の起動タイプとして Fargate ではなく EC2 を使用しているサービスがあります。そのサービス例として、バッチ処理があります。バッチ処理のジョブには数秒・数分で終わるものもあれば、数時間かかるものがあります。 EC2 起動タイプを選ぶ理由は、タスク終了までのタイムアウト待</p> <p class="entrylist-contents-thumb"> <span style="background-image:url('https://cdn-ak-scissors.b.st-hatena.com/image/square/d2ec21b756c371628de9d4a5137e27cd4192367d/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F12704346814673975483%2F6801883189117236248%2F1719569200');" data-gtm-click-label="entry-info-thumbnail"></span> </p> </a> </div> <ul class="entrylist-contents-meta"> <li class="entrylist-contents-category"> <a href="/entrylist/it" data-gtm-click-label="entry-info-category">テクノロジー</a> </li> <li class="entrylist-contents-date">2024/06/29 08:46</li> </ul> <ul class="entrylist-contents-tags"> <li><a href="/q/aws" rel="tag" data-gtm-click-label="entry-info-tag">aws</a></li> <li><a href="/q/tech" rel="tag" data-gtm-click-label="entry-info-tag">tech</a></li> <li><a href="/q/web" rel="tag" data-gtm-click-label="entry-info-tag">web</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://developer.hatenastaff.com/entry/2024/06/28/190637"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </li> </ul> <p class="entrylist-readmore js-keyboard-selectable-item"> <a href="/site/developer.hatenastaff.com/?page=2" class="js-keyboard-openable"> 次のページ </a> </p> </section> </div> <div class="entrylist-aside"> <div class="entrylist-ad-optional-rectangle"> <div id="entrylist-ad-sidebar-top"></div> </div> <div class="entrylist-ad-optional-rectangle"> <div id="entrylist-ad-sidebar-bottom"></div> </div> </div> </div> </div> <div class="entrylist-ad-pc-banner"> <div id="entrylist-ad-banner-bottom"></div> </div> <div class="entrylist-ad-sp-rectangle"> <div id="entrylist-ad-rectangle-bottom"></div> </div> </div> <div class="drawer-menu js-drawer-menu"> <button class="drawer-menu-button js-drawer-menu-button" data-gtm-click-label="drawer-open"> <span class="drawer-notify-count js-notify-count"></span> </button> <ul class="drawer-menu-body js-drawer-body-container"> </ul> <script type="text/x-template" id="template-drawer-body"> {{ #is_login_user }} <li class="drawer-loginMenu"> <a href="/{{ user_name }}/bookmark" class="drawer-loginMenu-username" data-gtm-click-label="drawer-header-username"><img src="{{ profile_image }}" alt="{{ user_name }}" /><span>{{ user_name }}</span></a> <button type="button" class="drawer-loginMenu-button js-notify-list-button notify" data-gtm-click-label="drawer-header-notify"> <span class="drawer-notify-count js-notify-count"></span> <span class="hide-text">通知</span> </button> <span role="link" class="drawer-loginMenu-button config"> <a href="/{{ user_name }}/config" data-gtm-click-label="drawer-header-config"><span class="hide-text">設定</span></a> </span> </li> {{ /is_login_user }} {{ #is_guest_user }} <li class="drawer-menu-item"> <a href="{{ login_url }}" rel="nofollow" data-gtm-click-label="drawer-guest-login"><span>ログイン</span></a> </li> <li class="drawer-menu-item"> <a href="/guide" rel="nofollow" data-gtm-click-label="drawer-guest-guide"> <span>はてなブックマークとは</span> </a> </li> {{ /is_guest_user }} <li class="drawer-notify-list js-drawer-notify-list is-loading"> <img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/common/loading@2x.gif" class="notify-list-loading-image" alt="読み込み中" /> <iframe class="notify-list js-notify-list"></iframe> </li> <li class="drawer-menu-item"> <a href="/hotentry" data-gtm-click-label="drawer-menu-hotentry">人気エントリー</a> </li> <li class="drawer-menu-item"> <a href="/entrylist" data-gtm-click-label="drawer-menu-entrylist">新着エントリー</a> </li> {{ #is_login_user }} <li class="drawer-menu-item"> <a href="/add" data-gtm-click-label="drawer-menu-bookmarkadd">ブックマークを追加</a> </li> <li class="drawer-toggleMenu js-drawer-submenu is-open"> <button type="button" class="drawer-toggleMenu-label js-drawer-submenu-label">マイページ</button> <ul class="service-submenu"> <li class="service-submenu-item"> <a href="/{{ user_name }}/bookmark" data-gtm-click-label="drawer-mypage-mybookmark">マイブックマーク</a> </li> <li class="service-submenu-item"> <a href="/{{ user_name}}/unread_bookmark" data-gtm-click-label="drawer-mypage-unread">あとで読む</a> </li> <li class="service-submenu-item"> <a href="/{{ user_name }}/hotentry" data-gtm-click-label="drawer-mypage-myhotentry">マイホットエントリー</a> </li> <li class="service-submenu-item"> <a href="/{{ user_name }}/interest" data-gtm-click-label="drawer-mypage-interest">関心ワード</a> </li> <li class="service-submenu-item"> <a href="/{{ user_name }}/favorite" data-gtm-click-label="drawer-mypage-favorite">お気に入り</a> </li> </ul> </li> {{ /is_login_user }} <li class="drawer-toggleMenu js-drawer-submenu is-open"> <button type="button" class="drawer-toggleMenu-label js-drawer-submenu-label">カテゴリー</button> <ul class="service-submenu"> <li class="service-submenu-item"> <a href="/hotentry/general" data-gtm-click-label="drawer-category-general">一般</a> <a href="/hotentry/social" data-gtm-click-label="drawer-category-social">世の中</a> <a href="/hotentry/economics" data-gtm-click-label="drawer-category-economics">政治と経済</a> <a href="/hotentry/life" data-gtm-click-label="drawer-category-life">暮らし</a> <a href="/hotentry/knowledge" data-gtm-click-label="drawer-category-knowledge">学び</a> <a href="/hotentry/it" data-gtm-click-label="drawer-category-it">テクノロジー</a> <a href="/hotentry/fun" data-gtm-click-label="drawer-category-fun">おもしろ</a> <a href="/hotentry/entertainment" data-gtm-click-label="drawer-category-entertainment">エンタメ</a> <a href="/hotentry/game" data-gtm-click-label="drawer-category-game">アニメとゲーム</a> </li> </ul> </li> {{ #is_app_target }} <li class="drawer-toggleMenu js-drawer-submenu is-open"> <button type="button" class="drawer-toggleMenu-label js-drawer-submenu-label">アプリをダウンロード</button> <ul class="service-submenu"> {{ #is_ios }} <li class="service-submenu-item device-ios app-bookmark"> <a href="https://apps.apple.com/jp/app/hatenabukkumaku/id354976659?mt=8" data-gtm-click-label="drawer-app-ios">はてなブックマーク</a> </li> {{ /is_ios }} {{ #is_android }} <li class="service-submenu-item device-android app-bookmark"> <a href="https://play.google.com/store/apps/details?id=com.hatena.android.bookmark&referrer=utm_source%3Dbookmark_sp%26utm_campaign%3Dbookmark_sp_drawer&hl=ja" data-gtm-click-label="drawer-app-android">はてなブックマーク</a> </li> {{ /is_android }} </ul> </li> {{ /is_app_target }} </script> </div> <div class="entry-notfound-modal js-entry-notfound-modal is-hidden"> <div class="entry-notfound-modal-widnow js-modal-content"> <div class="entry-notFound"> <div class="entry-notFound-text"> <h2 class="entry-notFound-title">このページはまだ<br />ブックマークされていません</h2> <p class="entry-notFound-description"><span class="for-pc">このページを</span>最初にブックマークしてみませんか?</p> </div> <form method="get" action="/my/add.confirm" class="entry-notFound-form js-entry-notfound-form"> <input name="url" type="text" value="" class="entry-notFound-textInput js-entry-notfound-input"> <button type="submit" class="entry-notFound-btn">ブックマークする</button> </form> <p class="entry-notFound-entryList-link js-entry-notfound-entrylist-link"> <a href="/site/developer.hatenastaff.com/"> <span>『</span><span>Hatena Developer Blog</span><span>』の新着エントリーを見る</span> </a> </p> </div> <button type="button" class="entry-notfound-modal-window-close js-modal-close-button">閉じる</button> </div> </div> <div id="keyboard-shortcut-help" class="shortcut-help is-hidden"> <h3 class="shortcut-help-title">キーボードショートカット一覧</h3> <p><span class="shortcut-help-key">j</span>次のブックマーク</p> <p><span class="shortcut-help-key">k</span>前のブックマーク</p> <p><span class="shortcut-help-key">l</span>あとで読む</p> <p><span class="shortcut-help-key">e</span>コメント一覧を開く</p> <p><span class="shortcut-help-key">o</span>ページを開く</p> <button tyle="button" class="shortcut-help-close js-close-button">✕</button> </div> <script id="valve-dmp" data-service="bookmark" src="//cdn.pool.st-hatena.com/valve/dmp.js" async></script> <div class="footer"> <div class="footer-inner"> <div class="footer-inner-group footer-bookmark"> <h2 class="footer-title"><a href="/" data-gtm-label="footer-btop">はてなブックマーク</a></h2> <div class="footer-list-wrapper"> <ul class="footer-list footer-list--pc"> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/all" class="hotentry js-keyboard-openable" data-gtm-label="footerCategories-hotentry">総合</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/general" class="general js-keyboard-openable" data-gtm-label="footerCategories-general">一般</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/social" class="cat-social js-keyboard-openable" data-gtm-label="footerCategories-social">世の中</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/economics" class="cat-economics js-keyboard-openable" data-gtm-label="footerCategories-economics">政治と経済</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/life" class="cat-life js-keyboard-openable" data-gtm-label="footerCategories-life">暮らし</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/knowledge" class="cat-knowledge js-keyboard-openable" data-gtm-label="footerCategories-knowledge">学び</a></li> </ul> <ul class="footer-list footer-list--pc"> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/it" class="cat-it js-keyboard-openable" data-gtm-label="footerCategories-it">テクノロジー</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/entertainment" class="cat-entertainment js-keyboard-openable" data-gtm-label="footerCategories-entertainment">エンタメ</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/game" class="cat-game js-keyboard-openable" data-gtm-label="footerCategories-game">アニメとゲーム</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/fun" class="cat-fun js-keyboard-openable" data-gtm-label="footerCategories-fun">おもしろ</a></li> </ul> <ul class="footer-list"> <li class="footer-list-item"><a href="/guide/tools">アプリ・拡張機能</a></li> <li class="footer-list-item"><a href="https://bookmark.hatenastaff.com/">開発ブログ</a></li> <li class="footer-list-item"><a href="/help/">ヘルプ</a></li> <li class="footer-list-item"><a href="https://hatena.zendesk.com/hc/ja/categories/900000153166">お問い合わせ</a></li> <li class="footer-list-item footer-list-item--sp"><a href="/guide/guideline">ガイドライン</a></li> <li class="footer-list-item footer-list-item--sp"><a href="https://policies.hatena.ne.jp/rule">利用規約</a></li> <li class="footer-list-item footer-list-item--sp"><a href="https://policies.hatena.ne.jp/privacypolicy-ja">プライバシーポリシー</a></li> <li class="footer-list-item footer-list-item--sp"><a href="https://policies.hatena.ne.jp/cookie-policy">利用者情報の外部送信について</a></li> </ul> <ul class="footer-list footer-list--pc"> <li class="footer-list-item footer-list-item--pc"><a href="/guide/guideline">ガイドライン</a></li> <li class="footer-list-item footer-list-item--pc"><a href="https://policies.hatena.ne.jp/rule">利用規約</a></li> <li class="footer-list-item footer-list-item--pc"><a href="https://policies.hatena.ne.jp/privacypolicy-ja">プライバシーポリシー</a></li> <li class="footer-list-item footer-list-item--pc"><a href="https://policies.hatena.ne.jp/cookie-policy">利用者情報の外部送信について</a></li> </ul> </div> </div> <div class="footer-inner-group footer-bookmark-sns"> <h2 class="footer-title">公式Twitter</h2> <div class="footer-bookmark-list"> <ul class="footer-list"> <li class="footer-list-item"><a href="https://twitter.com/HatenaBookmark" target="_blank" rel="noopener" data-gtm-click-label="footer-officialTwitter-name">公式アカウント</a></li> <li class="footer-list-item"><a href="https://twitter.com/hatebu" target="_blank" rel="noopener" data-gtm-click-label="footer-hotentryTwitter-name">ホットエントリー</a></li> </ul> </div> </div> <div class="footer-inner-group footer-hatena"> <h2 class="footer-title">はてなのサービス</h2> <ul class="footer-list"> <li class="footer-list-item"><a href="https://hatenablog.com/" data-gtm-label="footerServices-blog">はてなブログ</a></li> <li class="footer-list-item"><a href="https://hatenablog.com/guide/pro?plus_via=hatenabookmark_footer&utm_source=hatenabookmark&utm_medium=referral&utm_campaign=hatenabookmark_to_hatenablog_pro&utm_content=hatenabookmark_footer" data-gtm-label="footerServices-blog-pro">はてなブログPro</a></li> <li class="footer-list-item"><a href="https://q.hatena.ne.jp/" data-gtm-label="footerServices-question">人力検索はてな</a></li> <li class="footer-list-item"><a href="http://d.hatena.ne.jp/" data-gtm-label="footerServices-keyword">はてなブログ タグ</a></li> <li class="footer-list-item"><a href="http://hatenanews.com/" data-gtm-label="footerServices-hatenanews">はてなニュース</a></li> <li class="footer-list-item"><a href="https://soredoko.jp/" data-gtm-label="footerServices-soredoko">ソレドコ</a></li> </ul> </div> </div> <div class="footer-bottom"> <div class="footer-app"> <ul> <li class="footer-list-item"><a href="https://apps.apple.com/jp/app/hatenabukkumaku/id354976659?mt=8" target="_blank" rel="noopener" data-gtm-click-label="footer-app-ios"><img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/common/dl-button/appstore@2x.png" alt="App Storeからダウンロード"></a></li> <li class="footer-list-item"><a href="https://play.google.com/store/apps/details?id=com.hatena.android.bookmark&referrer=utm_source%3Dbookmark_sp%26utm_campaign%3Dbookmark_sp_user&hl=ja" target="_blank" rel="noopener" data-gtm-click-label="footer-app-android"><img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/common/dl-button/googleplay@2x.png" alt="Google Playで手に入れよう"></a></li> </ul> </div> <div class="copyright">Copyright © 2005-2025 <a href="http://www.hatena.ne.jp/">Hatena</a>. All Rights Reserved.</div> </div> </div> <div id="touch-footer-ad"></div> <div id="touch-footer-ad-placeholder"></div> <div class="modal-overlay"></div> <script type="text/javascript" src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/js/v4/bookmark.star.js" async></script> <div class="js-head-notify is-hidden">設定を変更しました<span class="js-head-notify-close-button">x</span></div> </body> </html>