CINXE.COM

[B! devise] Rails 3.0用にrestful_authentication から deviseに移行してみる - 発声練習

<!DOCTYPE html> <html lang="ja" data-page-scope="Entry" data-stable-request-url="https://b.hatena.ne.jp/entry?url=https%3A%2F%2Fnext49.hatenadiary.jp%2Fentry%2F20100905%2Fp1" data-device-type="PC" data-sentry-environment="production" data-sentry-sample-rate="0.1" data-alert-admin-names="" data-bookmark-count="53" data-category-name="it" data-entry-created="2010-09-06T05:13:35Z" data-entry-eid="4688139238128360706" data-entry-url="https://next49.hatenadiary.jp/entry/20100905/p1" data-page-subtype="entry" data-page-type="entry" > <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>[B! devise] Rails 3.0用にrestful_authentication から deviseに移行してみる - 発声練習</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/entry/s/next49.hatenadiary.jp/entry/20100905/p1" /> <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" href="android-app://com.hatena.android.bookmark/https://b.hatena.ne.jp/entry.comment/s/next49.hatenadiary.jp/entry/20100905/p1" /> <meta property="og:title" content="『Rails 3.0用にrestful_authentication から deviseに移行してみる - 発声練習』へのコメント"> <meta property="og:type" content="article"> <meta property="og:url" content="https://b.hatena.ne.jp/entry/s/next49.hatenadiary.jp/entry/20100905/p1"> <meta property="og:description" content="この記事に対して3件のコメントがあります。コメントは「oauth-railsは何かの認証フレームワークと組み合わせて使うことが前提みたい。Rails3だと何がいいんだろ。devise?」、「rails3, devise」、「Rails2.3.5から移植するときに使いたい。」です。"> <meta property="og:site_name" content="はてなブックマーク" /> <meta property="og:image" content="https://ogimage.blog.st-hatena.com/10328537792363189536/10328537792363197593/1455367910"> <meta name="twitter:card" content="summary"> <meta name="twitter:site" content="@HatenaBookmark"> <meta name="twitter:title" content="『Rails 3.0用にrestful_authentication から deviseに移行してみる - 発声練習』へのコメント"> <meta name="twitter:description" content="kmachu, ”oauth-railsは何かの認証フレームワークと組み合わせて使うことが前提みたい。Rails3だと何がいいんだろ。devise?” / kura-2, ”rails3, devise” / mapserver2007, ”Rails2.3.5から移植するときに使いたい。”"> <meta name="twitter:image" content="https://ogimage.blog.st-hatena.com/10328537792363189536/10328537792363197593/1455367910"> <link rel="alternate" type="application/rss+xml" href="/entry/rss/https://next49.hatenadiary.jp/entry/20100905/p1" /> <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="page-entry 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&amp;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%2Fentry%3Furl%3Dhttps%253A%252F%252Fnext49.hatenadiary.jp%252Fentry%252F20100905%252Fp1" 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"> // ---------------- dfp section ---------------- var valve = valve || []; if (isMobile()) { valve.push(function(v) { v.defineDFPSlot({ unit: '/4374287/bookmark_sp_entry_above-comment_320x100', sizes: [[320,100]], slotId: 'entry-ad-sp-upon-comments' }); var isCapableForMultiSizeAds = false; var adSizesForMobileRectangle = isCapableForMultiSizeAds && window.screen.availWidth >= 336 ? [[336,280],[300,250]] : [[300,250]]; v.defineDFPSlot({ unit: '/4374287/bookmark_sp_entry_under-title_300x250', sizes: adSizesForMobileRectangle, slotId: 'entry-ad-sp-below-comments' }); v.defineDFPSlot({ unit: '/4374287/b_sp_com_1_3250_0_no', sizes: [[320,80],[320,70],[320,50]], slotId: 'touch-footer-ad' }); v.defineDFPSlot({ unit: '/4374287/bookmark_sp_a', sizes: [[300,250]], slotId: 'entry-touch-a-rectangle' }); v.defineDFPSlot({ unit: '/4374287/bookmark_sp_entry', sizes: [[300,250]], slotId: 'entry-touch-rectangle' }); v.sealDFPSlots(); }); } else { valve.push(function(v) { v.defineDFPSlot({ unit: '/4374287/bookmark_entry', sizes: [[300,250]], slotId: 'entry-rectangle-top-right' }); v.defineDFPSlot({ unit: '/4374287/bookmark_entry2', sizes: [[300,250]], slotId: 'entry-rectangle-bottom-right' }); v.defineDFPSlot({ unit: '/4374287/b_pc_e_8_tex_0_v2', sizes: [[728, 90],[578, 80]], slotId: 'entry-text-ad' }); v.defineDFPSlot({ unit: '/4374287/bookmark_entry_left', sizes: [[336,280],[300,250]], slotId: 'entry-double-rectangle-left' }); v.defineDFPSlot({ unit: '/4374287/bookmark_entry_right', sizes: [[336,280],[300,250]], slotId: 'entry-double-rectangle-right' }); v.sealDFPSlots(); }); } </script> <script> var valve = window.valve || []; valve.push(function(v) { var pageKeyValues = {"categoryAdminName":"it"}; if (document.cookie.split(';').some(function(item) { return item.indexOf('202011_guest_status=register_incomplete') >= 0})) { pageKeyValues.bookmark_status = 'register_incomplete'; } v.config({ bypass: false, pageKeyValues: pageKeyValues, textSelector: ".entry-contents", content: { result: "ng" }, service: 'bookmark' }); }); </script> <script src="https://cdn.pool.st-hatena.com/valve/valve.js" async></script> <style id="ignore-user-style" type="text/css"></style> <script type="text/javascript"> (function() { var ignoreUsers; try { ignoreUsers = window.localStorage.getItem("bstn.ignored_users") || "[]"; } catch (ignore) { ignoreUsers = "[]" } try { ignoreUsers = JSON.parse(ignoreUsers) } catch (ignore) { ignoreUsers = [] } if (ignoreUsers.length) { const style = document.getElementById('ignore-user-style'); const chunkSize = 1000; let css = ''; for (let i = 0; i < ignoreUsers.length; i += chunkSize) { css += ignoreUsers.slice(i, i + chunkSize).map(function(user) { return '.js-ignorable-user-content[data-user-name="' + user + '"]'; }).join(",") + "{ display: none; }\n"; } style.textContent = css; } })() </script> <div class="navi-wrapper is-simple is-fixed"> <ul class="navi-body"> <li class="cat-all" data-category-name="cat-all"> <div class="navi-link"> <a href="/hotentry/all" class="navi-link-text cat-all" data-gtm-label="global-navi-all"><span>総合</span></a> </div> </li> <li class="cat-general" data-category-name="cat-general"> <div class="navi-link"> <a href="/hotentry/general" class="navi-link-text cat-general" data-gtm-label="global-navi-general"><span>一般</span></a> </div> </li> <li class="cat-social" data-category-name="cat-social"> <div class="navi-link"> <a href="/hotentry/social" class="navi-link-text cat-social" data-gtm-label="global-navi-social"><span>世の中</span></a> </div> </li> <li class="cat-economics" data-category-name="cat-economics"> <div class="navi-link"> <a href="/hotentry/economics" class="navi-link-text cat-economics" data-gtm-label="global-navi-economics"><span>政治と経済</span></a> </div> </li> <li class="cat-life" data-category-name="cat-life"> <div class="navi-link"> <a href="/hotentry/life" class="navi-link-text cat-life" data-gtm-label="global-navi-life"><span>暮らし</span></a> </div> </li> <li class="cat-knowledge" data-category-name="cat-knowledge"> <div class="navi-link"> <a href="/hotentry/knowledge" class="navi-link-text cat-knowledge" data-gtm-label="global-navi-knowledge"><span>学び</span></a> </div> </li> <li class="cat-it" data-category-name="cat-it"> <div class="navi-link"> <a href="/hotentry/it" class="navi-link-text cat-it" data-gtm-label="global-navi-it"><span>テクノロジー</span></a> </div> </li> <li class="cat-fun" data-category-name="cat-fun"> <div class="navi-link"> <a href="/hotentry/fun" class="navi-link-text cat-fun" data-gtm-label="global-navi-fun"><span>おもしろ</span></a> </div> </li> <li class="cat-entertainment" data-category-name="cat-entertainment"> <div class="navi-link"> <a href="/hotentry/entertainment" class="navi-link-text cat-entertainment" data-gtm-label="global-navi-entertainment"><span>エンタメ</span></a> </div> </li> <li class="cat-game" data-category-name="cat-game"> <div class="navi-link"> <a href="/hotentry/game" class="navi-link-text cat-game" data-gtm-label="global-navi-game"><span>アニメとゲーム</span></a> </div> </li> </ul> </div> <div id="container" class="entry-container cat-it"> <div class="entry-wrapper js-entry-wrapper" data-entry-url="https://next49.hatenadiary.jp/entry/20100905/p1"> <div class="breadcrumb-wrapper"> <ul class="breadcrumb"> <li><a href="/" data-gtm-label="entry-breadcrumb-home"><img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/breadcrumb-home.svg" alt="はてなブックマーク" class="breadcrumb-home"></a></li> <li><a href="/hotentry/it" data-gtm-label="entry-breadcrumb-category">テクノロジー</a></li> <li><span class="breadcrumb-current">Rails 3.0用にrestful_authentication から deviseに移行してみる - 発声練習</li> </ul> <ul class="breadcrumb-share"> <li><a href="https://twitter.com/share?text=Rails+3.0%E7%94%A8%E3%81%ABrestful_authentication+%E3%81%8B%E3%82%89+devise%E3%81%AB%E7%A7%BB%E8%A1%8C%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B+-+%E7%99%BA%E5%A3%B0%E7%B7%B4%E7%BF%92&amp;url=https%3A%2F%2Fb.hatena.ne.jp%2Fentry%2Fs%2Fnext49.hatenadiary.jp%2Fentry%2F20100905%2Fp1" target="_blank" rel="noopener" title="Twitterでシェア" data-gtm-label="entry-share-twitter"><img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/entry/share-twitter.svg" alt="Twitterでシェア"></a></li> <li><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fb.hatena.ne.jp%2Fentry%2Fs%2Fnext49.hatenadiary.jp%2Fentry%2F20100905%2Fp1" target="_blank" rel="noopener" title="Facebookでシェア" data-gtm-label="entry-share-facebook"><img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/entry/share-facebook.svg" alt="Facebookでシェア"></a></li> </ul> </div> <div class="entry-contents"> <div class="entry-main"> <div class="guide-blogToBookmark-modal js-blogtobookmark-modal is-hidden"> <div class="guide-blogToBookmark-window js-modal-content"> <h3>気に入った記事をブックマーク</h3> <img class="guide-blogToBookmark-image" src="/images/v4/public/b_panel/guide-hatenablog-to-bookmark.svg" width="144" height="144"> <ul class="guide-blogToBookmark-benefit"> <li><b>気に入った記事を保存</b>できます <div class="guide-blogToBookmark-benefit-note">保存した記事の一覧は、はてなブックマークで確認・編集ができます</div> </li> <li>記事を読んだ<b>感想やメモを書き残せます</b></li> <li><b>非公開でブックマーク</b>することもできます</li> </ul> <div class="guide-blogToBookmark-btn js-modal-close-button"><button>記事をブックマークしてみる</button></div> </div> </div> <div class="entry-bookmark"> <div class="entry-info"> <div class="entry-info-inner"> <h1 class="entry-info-title js-entry-info-title"> <a href="https://next49.hatenadiary.jp/entry/20100905/p1" class="js-entry-info-title-text" data-gtm-label="entry-info-title" data-entry-id="4688139238128360706" data-entry-category="テクノロジー" title="Rails 3.0用にrestful_authentication から deviseに移行してみる - 発声練習" target="_blank" rel="noopener">Rails 3.0用にrestful_authentication から deviseに移行してみる - 発声練習</a> </h1> <div class="entry-info-meta js-entry-info"> <span class="entry-info-category"><a class="entry-info-category-name" href="/hotentry/it" data-gtm-label="entry-info-category">テクノロジー</a> <a class="entry-info-category-change" href="https://docs.google.com/forms/d/e/1FAIpQLSc2KRyIMERuugzXCP79fjv5P7qnPh2vzINDpw1ARYyKL7zjnA/viewform?usp=pp_url&entry.773742086=https%3A%2F%2Fnext49.hatenadiary.jp%2Fentry%2F20100905%2Fp1&entry.1114420074=Rails%203.0%E7%94%A8%E3%81%ABrestful_authentication%20%E3%81%8B%E3%82%89%20devise%E3%81%AB%E7%A7%BB%E8%A1%8C%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B%20-%20%E7%99%BA%E5%A3%B0%E7%B7%B4%E7%BF%92&entry.867410236=%E3%83%86%E3%82%AF%E3%83%8E%E3%83%AD%E3%82%B8%E3%83%BC" target="_blank" aria-label="カテゴリーの変更を依頼"><span>カテゴリーの変更を依頼</span></a> </span> <span class="entry-info-domain"><span class="text">記事元:</span><a href="/site/next49.hatenadiary.jp/" data-gtm-label="entry-info-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fnext49.hatenadiary.jp%2Fentry%2F20100905%2Fp1" alt="" width="16px" height="16px">next49.hatenadiary.jp</a></span> </div> </div> <div class="entry-edit js-entry-edit-button"> <span class="entry-edit-popup">適切な情報に変更</span> <button type="button" class="entry-edit-btn"> <img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/entry/edit.svg" alt="編集"> </button> </div> <div class="entry-editModal is-hidden js-entry-edit-modal" data-url="https://next49.hatenadiary.jp/entry/20100905/p1"> <div class="entry-editModal-window js-entry-edit-modal-window"> <h3 class="entry-editModal-title">エントリーの編集</h3> <p class="entry-editModal-description js-entry-edit-modal-description"></p> <div class="entry-editModal-spinner js-entry-edit-modal-spinner"> <img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/common/loading@2x.gif" alt="loading..." class="entry-editModal-spinner-icon"> </div> <div class="entry-editModal-general js-entry-edit-modal-general is-hidden"> <p class="entry-editModal-description">エントリーの編集は<span class="caution">全ユーザーに共通</span>の機能です。<br> 必ずガイドラインを一読の上ご利用ください。</p> <form method="post" action="" class="entry-editModal-form"> <div class="js-entry-edit-modal-title is-hidden"> <h4 class="entry-editModal-headline">タイトル<span class="entry-editModal-guideline"><a href="https://b.hatena.ne.jp/help/entry/guideline_title">ガイドライン</a></span></h4> <input type="text" name="title" value="Rails 3.0用にrestful_authentication から deviseに移行してみる - 発声練習" class="entry-editModal-textInput"> </div> <div class="entry-editModal-btnArea"> <button type="button" class="entry-editModal-cancel js-entry-edit-modal-cancel-button is-hidden">キャンセル</button> <button type="submit" class="entry-editModal-decide js-entry-edit-modal-decision-button is-hidden">保存する</button> </div> </form> </div> <div class="entry-editModal-owner js-entry-edit-modal-owner is-hidden"> <p class="entry-editModal-owner-description">このページのオーナーなので以下のアクションを実行できます</p> <div class="entry-editModal-renew js-entry-edit-modal-refresh is-hidden"> <span class="entry-editModal-renew-help">タイトル、本文などの情報を<br>再取得することができます</span> <button type="button" class="entry-editModal-renew-btn">情報を更新する</button> </div> <div class="entry-editModal-visibility js-entry-edit-modal-visibility is-hidden"> <span class="entry-editModal-visibility-help">コメントを非表示にできます</span> <a href="/my/site/https%3A%2F%2Fnext49.hatenadiary.jp%2Fentry%2F20100905%2Fp1/visibility">コメント表示の設定</a> </div> </div> <button type="button" class="entry-editModal-close js-entry-edit-modal-close-button"><img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/entry/overlay-close-gray.svg" alt=""></button> </div> </div> <div class="entry-twitterModal is-hidden js-twitter-share-modal"> <div class="entry-twitterModal-window js-modal-content"> <h3 class="entry-twitterModal-title">ブックマークしました</h3> <p class="entry-twitterModal-tweet js-twitter-share-modal-text"> ここにツイート内容が記載されます <span>https://b.hatena.ne.jp/URLはspanで囲んでください</span> </p> <a href="#" class="entry-twitterModal-btn js-twitter-share-modal-share-link" target="_blank" rel="noopener" data-gtm-click-label="share-modal-twitter">Twitterで共有</a> <div class="entry-twitterModal-checkbox is-hidden js-twitter-share-modal-auto-redirect"> <input class="entry-twitterModal-checkbox-btn" type="checkbox" id="twitter-redirect-switch" data-gtm-click-label="share-checkbox-twitter"> <label class="entry-twitterModal-checkbox-label" for="twitter-redirect-switch">次回からTwitterへ自動リダイレクト</label> </div> <p class="entry-twitterModal-note is-hidden js-twitter-share-modal-auto-redirect-note">ONにすると、次回以降このダイアログを飛ばしてTwitterに遷移します</p> <button type="button" class="entry-twitterModal-close js-modal-close-button"><img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/entry/overlay-close-gray.svg" alt=""></button> </div> </div> </div> <div class="entry-myBookmark js-entry-myBookmark" data-entry-canonical-url="https://next49.hatenadiary.jp/entry/20100905/p1" data-default-comment="" data-bookmark-source=""> <div class="entry-user-and-comment"> <span class="entry-info-users"><a href="" data-gtm-label="entry-info-users"><span>53</span> users</a><span class="text">がブックマーク</span></span> <span class="entry-info-comment"><img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/entry/ic-comment.svg" alt="コメント"><span>3</span></span> </div> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://next49.hatenadiary.jp/entry/20100905/p1"> <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> <script type="text/x-template" id="entry-myBookmark-template"> <a href="/{{ user_name }}/" class="entry-myBookmark-icon"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" title="{{ user_name }}"> </a> <span class="entry-myBookmark-username"><a href="{{ anchor_path }}">{{ user_name }}</a></span> <span class="js-private-icon status {{ #is_public }}is-hidden{{ /is_public }}"><img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/userpage/icon-private.svg" alt="非公開" width="10px" height="10px"></span> <span class="entry-myBookmark-text">{{{ comment_expanded }}}</span> <ul class="entry-comment-tags"> {{ #tags }} <li><a href="/{{ user_name }}/{{ tag_escaped }}/">{{ tag }}</a></li> {{ /tags }} </ul> <div class="entry-myBookmark-foot"> <p class="entry-comment-meta"> <span class="entry-comment-timestamp"><a href="{{ anchor_path }}">{{ timestamp }}</a></span> </p> <ul class="entry-myBookmark-menu js-bookmark-menu js-intent-share-bookmark" data-target-url="{{ url }}"> <li class="entry-myBookmark-item entry-myBookmark-share"> <div class="tooltip-hint is-invisible js-intent-share-tooltip"> <p class="tooltip-hint-text">こちらからブックマークを共有できます</p> <button class="tooltip-hint-close js-tooltip-close"><span>close</span></button> </div> <div class="ui-contextMenu entry-myBookmark-item-inner"> <div class="ui-contextMenu-btn entry-myBookmark-menu-btn js-intent-share-button" tabindex="0" role="button"> <span class="entry-myBookmark-popup">共有</span> </div> <div class="ui-contextMenu-list entry-myBookmark-menu-list js-intent-share-container"> <ul class="is-disabled" tabindex="-1"> <li> <a href="#" class="ui-contextMenu-listItem entry-myBookmark-menu-item entry-myBookmark-menu-item--twitter js-intent-share-twitter-link" target="_blank" rel="noopener" data-gtm-click-label="share-intent-twitter">Twitterへ共有</a> </li> <li> <a href="#" class="ui-contextMenu-listItem entry-myBookmark-menu-item entry-myBookmark-menu-item--mastodon js-intent-share-mastodon-link" target="_blank" rel="noopener" data-gtm-click-label="share-intent-mastodon">Mastodonへ共有</a> </li> </ul> </div> </div> </li> <li class="entry-myBookmark-item entry-myBookmark-edit"> <button type="button" class="entry-myBookmark-menu-btn js-inplace-edit"> <span class="entry-myBookmark-popup">ブックマークを編集</span> </button> </li> <li class="entry-myBookmark-item entry-myBookmark-delete"> <button type="button" class="entry-myBookmark-menu-btn js-inplace-delete" data-confirm-message="ブックマークを削除しますか?"> <span class="entry-myBookmark-popup">ブックマークを削除</span> </button> </li> </ul> </div> </script> <div class="entry-myBookmark-container js-entry-myBookmark-container"></div> <div class="entry-myBookmark-guest is-hidden js-entry-myBookmark-guest"> <a href="https://www.hatena.ne.jp/register?location=https%3A%2F%2Fb.hatena.ne.jp%2Fmy%2Fadd.confirm%3Furl%3Dhttps%253A%252F%252Fnext49.hatenadiary.jp%252Fentry%252F20100905%252Fp1%26registered_from%3Dentry-info-register-user-icon&amp;via=201038" class="entry-myBookmark-icon js-register-modal-link" data-gtm-label="entry-info-register-user-icon"> <img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/profile.gif" alt="ゲスト" title="ゲスト"> </a> <div class="entry-myBookmark-guest-main"> <a href="https://www.hatena.ne.jp/register?location=https%3A%2F%2Fb.hatena.ne.jp%2Fmy%2Fadd.confirm%3Furl%3Dhttps%253A%252F%252Fnext49.hatenadiary.jp%252Fentry%252F20100905%252Fp1%26registered_from%3Dentry-info-register-form&amp;via=201038" class="entry-myBookmark-guest-form js-register-modal-link" data-gtm-label="entry-info-register-form">コメントするにはログインが必要です</a> <a href="https://www.hatena.ne.jp/register?location=https%3A%2F%2Fb.hatena.ne.jp%2Fmy%2Fadd.confirm%3Furl%3Dhttps%253A%252F%252Fnext49.hatenadiary.jp%252Fentry%252F20100905%252Fp1%26registered_from%3Dentry-info-register-button&amp;via=201038" class="entry-myBookmark-guest-button js-register-modal-link" data-gtm-label="entry-info-register-button"><span>ブックマークを追加</span></a> </div> <div class="entry-myBookmark-guest-register"> <a href="https://www.hatena.ne.jp/register?location=https%3A%2F%2Fb.hatena.ne.jp%2Fmy%2Fadd.confirm%3Furl%3Dhttps%253A%252F%252Fnext49.hatenadiary.jp%252Fentry%252F20100905%252Fp1%26registered_from%3Dentry-info-register-button-cta-bookmark&amp;via=201038" class="entry-myBookmark-guest-button js-register-modal-link" data-gtm-click-label="entry-info-register-button-cta-bookmark" rel="noreferrer"><span>ブックマークを追加</span></a> </div> </div> <div class="bookmarkadd-iconLeft js-user-bookmark-edit editing-form js-editing-form is-hidden entry-myBookmark-form"> <div class="bookmarkadd-iconLeft-icon js-profile-image-container"> <script type="text/x-template" id="template-user-profile-image"> <a href="/{{ user_name }}"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" title="{{ user_name }}" class="bookmarkadd-iconLeft-icon-image"> </a> </script> </div> <div class="bookmarkadd-iconLeft-main"> <form method="post" action="/my/bookmark" class="js-add-form "> <input type="hidden" name="url" value="https://next49.hatenadiary.jp/entry/20100905/p1" /> <input type="hidden" name="from" value="entry" /> <div class="bookmarkadd-comment js-annotation-component"> <textarea class="bookmarkadd-comment-form is-comment-form-shrink" name="annotation" placeholder="コメントを入力してください (省略可)" aria-label="コメントを入力 (省略可)" ></textarea> <div class="bookmarkadd-comment-footer"> <div class="bookmarkadd-community-guideline"> <p><a href="/guide/guideline" target="_blank">ガイドライン</a>をご確認の上、良識あるコメントにご協力ください</p> </div> <span class="bookmarkadd-comment-count"> <span class="js-bookmarkadd-comment-count">0</span> <span class="bookmarkadd-comment-slash">/</span> <span class="js-bookmarkadd-comment-limit">0</span> </span> </div> </div> <div class="bookmarkadd-options"> <div class="bookmarkadd-tags js-bookmarkadd-tags"> <input type="text" class="bookmarkadd-tags-textbox js-bookmarkadd-tags-textbox" placeholder="タグを入力して追加" aria-label="タグを入力して追加(省略可)"> <span class="bookmarkadd-tags-btn is-hidden js-bookmarkadd-tags-btn"> <span class="bookmarkadd-tags-btn-popup">入力したタグを追加</span> <button class="bookmarkadd-tags-btn-image"></button> </span> </div> <div class="bookmarkadd-share"> <div class="bookmarkadd-share-block js-bookmarkadd-share-block"> <label class="bookmarkadd-share-label js-bookmarkadd-share-label-twitter"> <input type="checkbox" name="post_twitter" class="bookmarkadd-shareInput" value="1" /> <span class="bookmarkadd-twitter"> <span class="bookmarkadd-share-text twitter"> twitterにシェア </span> </span> </label> <label class="bookmarkadd-share-label"> <input type="checkbox" name="bookmark_stock" class="bookmarkadd-shareInput js-bookmarkadd-readlater" value="1" /> <span class="bookmarkadd-readlater"> <span class="bookmarkadd-share-text readlater">あとで読む</span> </span> </label> <label class="bookmarkadd-share-label"> <input type="checkbox" class="bookmarkadd-shareInput js-bookmarkadd-private" name="privacy" value="1"> <span class="bookmarkadd-private"> <span class="bookmarkadd-share-text private">非公開</span> </span> </label> </div> <div class="bookmarkadd-cancel-and-submit-buttons js-buttons-container"> <button class="bookmarkadd-cancel-btn js-bookmarkadd-cancel-btn is-hidden" type="button"> キャンセル </button> <input class="bookmarkadd-submit-btn js-bookmarkadd-submit-btn" type="submit" value="ブックマーク"> </div> </div> </div> <p class="bookmarkadd-externalHelp is-hidden js-bookmarkadd-externalHelp-general-myBookmarkPrivate" > <span>現在プライベートモードです<span> <a href="/-/my/config/profile" class="bookmarkadd-externalHelp-link">設定を変更する</a> </p> </form> <div class="js-bookmarkadd-tagList is-hidden"> <h3 class="bookmarkadd-tagList-title js-bookmarkadd-recommended-tagList-title"><span>おすすめタグ<span><a href="/help/entry/tag" target="_blank">タグについて</a></h3> <ul class="bookmarkadd-tagList-contents js-bookmarkadd-recommended-tagList-contents"> </ul> <h3 class="bookmarkadd-tagList-title often js-bookmarkadd-frequent-tagList-title"><span>よく使うタグ</span><button type="button" class="js-bookmarkadd-frequent-tagList-button">すべて表示</button></h3> <ul class="bookmarkadd-tagList-contents js-bookmarkadd-frequent-tagList-contents"> </ul> </div> </div> </div> <button type="button" class="entry-myBookmark-form-button js-entry-myBookmark-form-button is-hidden"><span>ブックマークを追加</span></button> <div class="bookmark-modal js-bookmark-modal js-editing-form is-hidden" aria-label="閉じる"> <div class="bookmark-modal-inner js-bookmark-modal-inner"> <div class="bookmark-modal-info"> <h2 class="bookmark-modal-title"> Rails 3.0用にrestful_authentication から deviseに移行してみる - 発声練習 </h2> <div class="entry-info-meta"> <span class="entry-users">53 users</span> <span class="entry-info-domain"> <img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fnext49.hatenadiary.jp%2Fentry%2F20100905%2Fp1" alt="" width="16px" height="16px" class="bookmark-modal-favicon"><a href="/site/next49.hatenadiary.jp/">next49.hatenadiary.jp</a> </span> </div> </div> <form method="post" action="/my/bookmark" class="js-add-form bookmark-modal-form"> <input type="hidden" name="url" value="https://next49.hatenadiary.jp/entry/20100905/p1" /> <input type="hidden" name="from" value="entry" /> <div class="bookmarkadd-comment js-annotation-component"> <textarea class="bookmarkadd-comment-form is-comment-form-shrink" name="annotation" placeholder="コメントを入力してください (省略可)" aria-label="コメントを入力 (省略可)" ></textarea> <div class="bookmarkadd-comment-footer"> <div class="bookmarkadd-community-guideline"> <p><a href="/guide/guideline" target="_blank">ガイドライン</a>をご確認の上、良識あるコメントにご協力ください</p> </div> <span class="bookmarkadd-comment-count"> <span class="js-bookmarkadd-comment-count">0</span> <span class="bookmarkadd-comment-slash">/</span> <span class="js-bookmarkadd-comment-limit">0</span> </span> </div> </div> <div class="bookmarkadd-options"> <div class="bookmarkadd-tags js-bookmarkadd-tags"> <input type="text" class="bookmarkadd-tags-textbox js-bookmarkadd-tags-textbox" placeholder="タグを入力して追加" aria-label="タグを入力して追加(省略可)"> <span class="bookmarkadd-tags-btn is-hidden js-bookmarkadd-tags-btn"> <span class="bookmarkadd-tags-btn-popup">入力したタグを追加</span> <button class="bookmarkadd-tags-btn-image"></button> </span> </div> <div class="bookmarkadd-share"> <div class="bookmarkadd-share-block js-bookmarkadd-share-block"> <label class="bookmarkadd-share-label js-bookmarkadd-share-label-twitter"> <input type="checkbox" name="post_twitter" class="bookmarkadd-shareInput" value="1" /> <span class="bookmarkadd-twitter"> <span class="bookmarkadd-share-text twitter"> twitterにシェア </span> </span> </label> <label class="bookmarkadd-share-label"> <input type="checkbox" name="bookmark_stock" class="bookmarkadd-shareInput js-bookmarkadd-readlater" value="1" /> <span class="bookmarkadd-readlater"> <span class="bookmarkadd-share-text readlater">あとで読む</span> </span> </label> <label class="bookmarkadd-share-label"> <input type="checkbox" class="bookmarkadd-shareInput js-bookmarkadd-private" name="privacy" value="1"> <span class="bookmarkadd-private"> <span class="bookmarkadd-share-text private">非公開</span> </span> </label> </div> <div class="bookmarkadd-cancel-and-submit-buttons js-buttons-container"> <input class="bookmarkadd-submit-btn js-bookmarkadd-submit-btn" type="submit" value="ブックマーク"> </div> </div> </div> <p class="bookmarkadd-externalHelp is-hidden js-bookmarkadd-externalHelp-general-myBookmarkPrivate" > <span>現在プライベートモードです<span> <a href="/-/my/config/profile" class="bookmarkadd-externalHelp-link">設定を変更する</a> </p> </form> <div class="js-bookmarkadd-tagList is-hidden"> <h3 class="bookmarkadd-tagList-title js-bookmarkadd-recommended-tagList-title"><span>おすすめタグ<span><a href="/help/entry/tag" target="_blank">タグについて</a></h3> <ul class="bookmarkadd-tagList-contents js-bookmarkadd-recommended-tagList-contents"> </ul> <h3 class="bookmarkadd-tagList-title often js-bookmarkadd-frequent-tagList-title"><span>よく使うタグ</span><button type="button" class="js-bookmarkadd-frequent-tagList-button">すべて表示</button></h3> <ul class="bookmarkadd-tagList-contents js-bookmarkadd-frequent-tagList-contents"> </ul> </div> </div> </div> </div> </div> <div class="bookmark-guest-register-modal js-bookmark-guest-register-modal is-hidden" aria-label="閉じる"> <div class="bookmark-guest-register-modal-inner js-modal-inner"> <button type="button" class="bookmark-guest-register-modal-close js-modal-close-button"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="5748.793 -620.207 21.414 21.414"> <defs><style>.cls-1 { fill: none; stroke-width: 2px; }</style></defs> <g> <title>閉じる</title> <desc>モーダルを閉じます</desc> <path id="line1" d="M5769.5-619.5l-20 20"/><path id="line2" d="M5769.5-599.5l-20-20"/> </g> </svg> </button> <img src="/images/v4/public/bookmark-logo.png" class="entry-modal-guest-register-logo" alt="はてなブックマーク"> <h2 class="entry-modal-guest-register-title">はてなブックマークで<br>関心をシェアしよう</h2> <p class="entry-modal-guest-register-description">みんなの興味と感想が集まることで<br>新しい発見や、深堀りがもっと楽しく</p> <a href="#" data-gtm-click-label="entry-modal-guest-register-button" class="entry-modal-guest-register-button js-register-link" rel="noreferrer">ユーザー登録</a> <p class="entry-modal-guest-login">アカウントをお持ちの方は<a href="https://www.hatena.ne.jp/login?location=https%3A%2F%2Fb.hatena.ne.jp%2Fentry%3Furl%3Dhttps%253A%252F%252Fnext49.hatenadiary.jp%252Fentry%252F20100905%252Fp1" data-gtm-click-label="entry-modal-guest-login" rel="noreferrer">ログインページ</a>へ</p> </div> </div> <div class="entry-ad-pc-text"> <div id="entry-text-ad"></div> </div> <div class="entry-ad-sp-banner"> <div id="entry-ad-sp-upon-comments"></div> </div> <div class="entry-comments"> <h3 class="entry-comment-title">記事へのコメント<span>3</span>件</h3> <div class="js-bookmarks-sort-tabs-group entry-comment" data-popular-count="0"> <div class="entry-comment-tabs js-bookmarks-sort-tabs"> <ul class="entry-comment-tab"> <li role="button" class="js-bookmarks-sort-tab is-disabled" data-sort="popular">注目コメント</li> <li role="button" class="js-bookmarks-sort-tab is-active" data-sort="recent">新着コメント</li> </ul> </div> <div class="bookmarks-sort-panels js-bookmarks-sort-panels"> <script type="text/x-template" id="autoloader-bookmark-item"> <div class="entry-comment-contents js-ignorable-user-content js-bookmark-item js-user-bookmark-comment" data-user-name="{{user_name}}" data-url="{{bookmarked_url}}"> <div class="entry-comment-contents-main"> <a href="{{user_page_path}}" class="entry-user-icon" data-gtm-label="entry-{{ sort }}-icon"><img src="{{profile_image_url}}"/ alt="{{user_name}}" title="{{user_name}}"></a> <div class="entry-comments-contents-body"> <span class="entry-comment-username"><a href="{{user_page_path}}" data-gtm-label="entry-{{ sort }}-username">{{user_name}}</a></span> <span class="status {{ #is_public }}is-hidden{{ /is_public }}"><img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/userpage/icon-private.svg" alt="非公開" width="10px" height="10px"></span> <span class="entry-comment-text js-bookmark-comment">{{{comment_expanded}}}</span> <ul class="entry-comment-tags"> {{{tags}}} </ul> <div class="entry-comment-contents-foot"> <p class="entry-comment-meta"> <span class="entry-comment-timestamp"><a class="js-bookmark-anchor-path" data-gtm-label="entry-{{ sort }}-timestamp" href="https://b.hatena.ne.jp{{anchor_path}}">{{created}}</a></span> <span class="entry-comment-permalink"> <a data-gtm-label="entry-{{ sort }}-permalink" href="{{comment_page_path}}" rel="{{#should_nofollow}}nofollow{{/should_nofollow}}">リンク</a> </span> <span class="list-star-container js-list-star-container"></span> <span class="twitter-click js-short-url-clicks"></span> </p> <div class="entry-comment-menus"> <div class="js-add-star-container add-star-container"></div> <div data-location-id="{{location_id}}" data-user-name="{{user_name}}" class="is-hidden js-bookmark-downvote-container entry-comment-menu-minusvote"> <input type="checkbox" class="js-bookmark-downvote-checkbox entry-comment-menu-minusvote-checkbox" title="マイナス評価"> </div> <div class="ui-contextMenu entry-comment-menu-more js-bookmark-menu-button{{#enable_button}} is-enabled{{/enable_button}}" onclick> <div class="ui-contextMenu-btn entry-comment-menu-more-btn" tabindex="0" role="button"><span>その他</span></div> <div class="ui-contextMenu-list entry-comment-menu-more-list"> <ul tabindex="-1"> <li> <button type="button" class="ui-contextMenu-listItem entry-comment-followuser js-entry-comment-followuser">お気に入りに追加</button> <button type="button" class="ui-contextMenu-listItem entry-comment-unfollowuser js-entry-comment-unfollowuser is-hidden">お気に入りを解除</button> </li> <li> <button type="button" class="ui-contextMenu-listItem entry-comment-ignoreuser js-entry-comment-ignoreuser">ユーザーを非表示</button> <button type="button" class="ui-contextMenu-listItem entry-comment-unignoreuser js-entry-comment-unignoreuser is-hidden" data-unignore-msg-hover="ユーザーを表示" data-unignore-msg="非表示に設定済み"><span class="is-hidden">ユーザーを表示</span></button> </li> <li><button type="button" class="ui-contextMenu-listItem entry-comment-reportViolation js-bookmark-report-violation-button">通報する</button></li> </ul> </div> </div> </div> </div> </div> </div> </div> </script> <script type="text/x-template" id="template-short-url-click"> {{#tweet_url}} <a href="{{tweet_url}}" target="_blank" rel="noopener noreferrer" data-gtm-click-label="reaction-twitter-clicks"><span>{{count}} clicks</span></a> {{/tweet_url}} {{^tweet_url}} <span>{{count}} clicks</span> {{/tweet_url}} </script> <div class=" bookmarks-sort-panel js-bookmarks-sort-panel" data-sort="popular"> <div class="js-bookmarks js-bookmarks-popular"> </div> </div> <div class="is-active bookmarks-sort-panel js-bookmarks-sort-panel js-bookmark-autoloader-recent" data-sort="recent" data-autoload-url="https://next49.hatenadiary.jp/entry/20100905/p1" data-next-cursor=""> <div class="js-bookmarks js-bookmarks-recent"> <div class="entry-comment-contents js-ignorable-user-content js-bookmark-item js-user-bookmark-comment" data-user-name="kmachu" data-url="http://next49.hatenadiary.jp/entry/20100905/p1"> <div class="entry-comment-contents-main"> <a href="/kmachu/" class="entry-user-icon" data-gtm-label="entry-recent-icon"><img src="https://cdn.profile-image.st-hatena.com/users/kmachu/profile.png"/ alt="kmachu" title="kmachu"></a> <div class="entry-comments-contents-body"> <span class="entry-comment-username"><a href="/kmachu/" data-gtm-label="entry-recent-username">kmachu</a></span> <span class="entry-comment-text js-bookmark-comment">oauth-railsは何かの認証フレームワークと組み合わせて使うことが前提みたい。Rails3だと何がいいんだろ。devise?</span> <ul class="entry-comment-tags"> </ul> <div class="entry-comment-contents-foot"> <p class="entry-comment-meta"> <span class="entry-comment-timestamp"><a class="js-bookmark-anchor-path" data-gtm-label="entry-recent-timestamp" href="https://b.hatena.ne.jp/kmachu/20110504#bookmark-24660246">2011/05/04</a></span> <span class="entry-comment-permalink"> <a data-gtm-label="entry-recent-permalink" href="/entry/24660246/comment/kmachu" rel="">リンク</a> </span> <span class="list-star-container js-list-star-container"></span> <span class="twitter-click js-short-url-clicks"></span> </p> <div class="entry-comment-menus"> <div class="js-add-star-container add-star-container"></div> <div data-location-id="24660246" data-user-name="kmachu" class="is-hidden js-bookmark-downvote-container entry-comment-menu-minusvote"> <input type="checkbox" class="js-bookmark-downvote-checkbox entry-comment-menu-minusvote-checkbox" title="マイナス評価"> </div> <div class="ui-contextMenu entry-comment-menu-more js-bookmark-menu-button" onclick> <div class="ui-contextMenu-btn entry-comment-menu-more-btn" tabindex="0" role="button"><span>その他</span></div> <div class="ui-contextMenu-list entry-comment-menu-more-list"> <ul tabindex="-1"> <li> <button type="button" class="ui-contextMenu-listItem entry-comment-followuser js-entry-comment-followuser">お気に入りに追加</button> <button type="button" class="ui-contextMenu-listItem entry-comment-unfollowuser js-entry-comment-unfollowuser is-hidden">お気に入りを解除</button> </li> <li> <button type="button" class="ui-contextMenu-listItem entry-comment-ignoreuser js-entry-comment-ignoreuser">ユーザーを非表示</button> <button type="button" class="ui-contextMenu-listItem entry-comment-unignoreuser js-entry-comment-unignoreuser is-hidden" data-unignore-msg-hover="ユーザーを表示" data-unignore-msg="非表示に設定済み"><span class="is-hidden">ユーザーを表示</span></button> </li> <li><button type="button" class="ui-contextMenu-listItem entry-comment-reportViolation js-bookmark-report-violation-button">通報する</button></li> </ul> </div> </div> </div> </div> </div> </div> </div> <div class="entry-comment-contents js-ignorable-user-content js-bookmark-item js-user-bookmark-comment" data-user-name="kura-2" data-url="http://next49.hatenadiary.jp/entry/20100905/p1"> <div class="entry-comment-contents-main"> <a href="/kura-2/" class="entry-user-icon" data-gtm-label="entry-recent-icon"><img src="https://cdn.profile-image.st-hatena.com/users/kura-2/profile.png"/ alt="kura-2" title="kura-2"></a> <div class="entry-comments-contents-body"> <span class="entry-comment-username"><a href="/kura-2/" data-gtm-label="entry-recent-username">kura-2</a></span> <span class="entry-comment-text js-bookmark-comment">rails3, devise</span> <ul class="entry-comment-tags"> <li class=""><a href="/kura-2/rails/" data-gtm-label="entry-recent-tags">rails</a></li> <li class=""><a href="/kura-2/ruby/" data-gtm-label="entry-recent-tags">ruby</a></li> </ul> <div class="entry-comment-contents-foot"> <p class="entry-comment-meta"> <span class="entry-comment-timestamp"><a class="js-bookmark-anchor-path" data-gtm-label="entry-recent-timestamp" href="https://b.hatena.ne.jp/kura-2/20110424#bookmark-24660246">2011/04/24</a></span> <span class="entry-comment-permalink"> <a data-gtm-label="entry-recent-permalink" href="/entry/24660246/comment/kura-2" rel="nofollow">リンク</a> </span> <span class="list-star-container js-list-star-container"></span> <span class="twitter-click js-short-url-clicks"></span> </p> <div class="entry-comment-menus"> <div class="js-add-star-container add-star-container"></div> <div data-location-id="24660246" data-user-name="kura-2" class="is-hidden js-bookmark-downvote-container entry-comment-menu-minusvote"> <input type="checkbox" class="js-bookmark-downvote-checkbox entry-comment-menu-minusvote-checkbox" title="マイナス評価"> </div> <div class="ui-contextMenu entry-comment-menu-more js-bookmark-menu-button" onclick> <div class="ui-contextMenu-btn entry-comment-menu-more-btn" tabindex="0" role="button"><span>その他</span></div> <div class="ui-contextMenu-list entry-comment-menu-more-list"> <ul tabindex="-1"> <li> <button type="button" class="ui-contextMenu-listItem entry-comment-followuser js-entry-comment-followuser">お気に入りに追加</button> <button type="button" class="ui-contextMenu-listItem entry-comment-unfollowuser js-entry-comment-unfollowuser is-hidden">お気に入りを解除</button> </li> <li> <button type="button" class="ui-contextMenu-listItem entry-comment-ignoreuser js-entry-comment-ignoreuser">ユーザーを非表示</button> <button type="button" class="ui-contextMenu-listItem entry-comment-unignoreuser js-entry-comment-unignoreuser is-hidden" data-unignore-msg-hover="ユーザーを表示" data-unignore-msg="非表示に設定済み"><span class="is-hidden">ユーザーを表示</span></button> </li> <li><button type="button" class="ui-contextMenu-listItem entry-comment-reportViolation js-bookmark-report-violation-button">通報する</button></li> </ul> </div> </div> </div> </div> </div> </div> </div> <div class="entry-comment-contents js-ignorable-user-content js-bookmark-item js-user-bookmark-comment" data-user-name="mapserver2007" data-url="http://next49.hatenadiary.jp/entry/20100905/p1"> <div class="entry-comment-contents-main"> <a href="/mapserver2007/" class="entry-user-icon" data-gtm-label="entry-recent-icon"><img src="https://cdn.profile-image.st-hatena.com/users/mapserver2007/profile.png"/ alt="mapserver2007" title="mapserver2007"></a> <div class="entry-comments-contents-body"> <span class="entry-comment-username"><a href="/mapserver2007/" data-gtm-label="entry-recent-username">mapserver2007</a></span> <span class="entry-comment-text js-bookmark-comment">Rails2.3.5から移植するときに使いたい。</span> <ul class="entry-comment-tags"> <li class=""><a href="/mapserver2007/Rails/" data-gtm-label="entry-recent-tags">Rails</a></li> <li class=""><a href="/mapserver2007/%E3%81%82%E3%81%A8%E3%81%A7%E4%BD%BF%E3%81%86/" data-gtm-label="entry-recent-tags">あとで使う</a></li> </ul> <div class="entry-comment-contents-foot"> <p class="entry-comment-meta"> <span class="entry-comment-timestamp"><a class="js-bookmark-anchor-path" data-gtm-label="entry-recent-timestamp" href="https://b.hatena.ne.jp/mapserver2007/20100913#bookmark-24660246">2010/09/13</a></span> <span class="entry-comment-permalink"> <a data-gtm-label="entry-recent-permalink" href="/entry/24660246/comment/mapserver2007" rel="">リンク</a> </span> <span class="list-star-container js-list-star-container"></span> <span class="twitter-click js-short-url-clicks"></span> </p> <div class="entry-comment-menus"> <div class="js-add-star-container add-star-container"></div> <div data-location-id="24660246" data-user-name="mapserver2007" class="is-hidden js-bookmark-downvote-container entry-comment-menu-minusvote"> <input type="checkbox" class="js-bookmark-downvote-checkbox entry-comment-menu-minusvote-checkbox" title="マイナス評価"> </div> <div class="ui-contextMenu entry-comment-menu-more js-bookmark-menu-button" onclick> <div class="ui-contextMenu-btn entry-comment-menu-more-btn" tabindex="0" role="button"><span>その他</span></div> <div class="ui-contextMenu-list entry-comment-menu-more-list"> <ul tabindex="-1"> <li> <button type="button" class="ui-contextMenu-listItem entry-comment-followuser js-entry-comment-followuser">お気に入りに追加</button> <button type="button" class="ui-contextMenu-listItem entry-comment-unfollowuser js-entry-comment-unfollowuser is-hidden">お気に入りを解除</button> </li> <li> <button type="button" class="ui-contextMenu-listItem entry-comment-ignoreuser js-entry-comment-ignoreuser">ユーザーを非表示</button> <button type="button" class="ui-contextMenu-listItem entry-comment-unignoreuser js-entry-comment-unignoreuser is-hidden" data-unignore-msg-hover="ユーザーを表示" data-unignore-msg="非表示に設定済み"><span class="is-hidden">ユーザーを表示</span></button> </li> <li><button type="button" class="ui-contextMenu-listItem entry-comment-reportViolation js-bookmark-report-violation-button">通報する</button></li> </ul> </div> </div> </div> </div> </div> </div> </div> </div> <div class="comment-list-collaplse-box js-comment-list-collaplse is-hidden"> <div class="comment-list-collaplse"> <button class="js-comment-list-expand-button">コメントの続きを表示</button> </div> </div> <div class="entry-comment-readmore js-read-more"> <button id="new-bookmarks-readmore" class="js-read-more-button entry-comment-readmore-btn"> <span class="js-read-more-label js-read-more-ready">Readmore</span> <span class="js-read-more-label js-read-more-waiting is-hidden">残りのブックマークを読み込んでいます..</span> <span class="js-read-more-label js-read-more-error is-hidden">残りのブックマークを読み込めませんでした</span> </button> </div> </div> </div> <div class="entry-comment-box-guest js-entry-comment-guest is-hidden"> <a href="https://www.hatena.ne.jp/register?location=https%3A%2F%2Fb.hatena.ne.jp%2Fmy%2Fadd.confirm%3Furl%3Dhttps%253A%252F%252Fnext49.hatenadiary.jp%252Fentry%252F20100905%252Fp1%26registered_from%3Dentry-comment-user-icon&amp;via=201038" class="entry-comment-user-icon js-register-modal-link" data-gtm-label="entry-comment-user-icon"><img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/profile.gif" alt="ゲスト" title="ゲスト"></a> <div class="entry-comment-main"> <a href="https://www.hatena.ne.jp/register?location=https%3A%2F%2Fb.hatena.ne.jp%2Fmy%2Fadd.confirm%3Furl%3Dhttps%253A%252F%252Fnext49.hatenadiary.jp%252Fentry%252F20100905%252Fp1%26registered_from%3Dentry-comment-form&amp;via=201038" class="entry-comment-form js-register-modal-link" data-gtm-label="entry-comment-form">コメントするにはログインが必要です</a> <a href="https://www.hatena.ne.jp/register?location=https%3A%2F%2Fb.hatena.ne.jp%2Fmy%2Fadd.confirm%3Furl%3Dhttps%253A%252F%252Fnext49.hatenadiary.jp%252Fentry%252F20100905%252Fp1%26registered_from%3Dentry-comment-button&amp;via=201038" class="entry-comment-button js-register-modal-link" data-gtm-label="entry-comment-button"><span>ログインしてコメント</span></a> </div> </div> <div class="entry-comment-box-login js-entry-myBookmark-form-button is-hidden"> <button type="button" class="entry-myBookmark-form-button"><span>コメントを追加</span></button> </div> <div class="entry-comment-note-wrapper"> <p class="entry-comment-note">注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています</p> </div> </div> </div> <div class="entry-subMenu"> <button type="button" class="js-entry-subMenu-embed entry-subMenu-embed" data-gtm-label="entry-subMenu-embed">リンクを埋め込む</button> <div class="entry-embedModal js-entry-embed-modal is-hidden"> <div class="entry-embedModal-window js-entry-embed-modal-window"> <h3 class="entry-embedModal-title">リンクを埋め込む</h3> <p class="entry-embedModal-description">以下のコードをコピーしてサイトに埋め込むことができます</p> <textarea name="" id="" class="entry-embedModal-textarea js-entry-embed-textarea" readonly> <iframe marginwidth="0" marginheight="0" src="https://b.hatena.ne.jp/entry.parts?url=https%3A%2F%2Fnext49.hatenadiary.jp%2Fentry%2F20100905%2Fp1" scrolling="no" frameborder="0" height="230" width="500"><div class="hatena-bookmark-detail-info"><a href="https://next49.hatenadiary.jp/entry/20100905/p1">Rails 3.0用にrestful_authentication から deviseに移行してみる - 発声練習</a><a href="https://b.hatena.ne.jp/entry/s/next49.hatenadiary.jp/entry/20100905/p1">はてなブックマーク - Rails 3.0用にrestful_authentication から deviseに移行してみる - 発声練習</a></div></iframe> </textarea> <h5 class="entry-embedModal-preview">プレビュー</h5> <div class="js-entry-embed-modal-preview" data-src-url="https://b.hatena.ne.jp/entry.parts?url=https%3A%2F%2Fnext49.hatenadiary.jp%2Fentry%2F20100905%2Fp1"> <iframe marginwidth="0" marginheight="0" src="" scrolling="no" frameborder="0" height="230" width="500"><div class="hatena-bookmark-detail-info"><a href="https://next49.hatenadiary.jp/entry/20100905/p1">Rails 3.0用にrestful_authentication から deviseに移行してみる - 発声練習</a><a href="https://b.hatena.ne.jp/entry/s/next49.hatenadiary.jp/entry/20100905/p1">はてなブックマーク - Rails 3.0用にrestful_authentication から deviseに移行してみる - 発声練習</a></div></iframe> </div> <div class="entry-embedModal-menu"> <div class="entry-embedModal-others"> <p class="entry-embedModal-item"><a href="/guide/bbutton?url=https%3A%2F%2Fnext49.hatenadiary.jp%2Fentry%2F20100905%2Fp1">はてなブックマークボタンを作成して埋め込むこともできます</a></p> </div> </div> <button type="button" class="entry-embedModal-close js-entry-embed-modal-close"><img src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/entry/overlay-close-gray.svg" alt="閉じる"></button> </div> </div> <div class="js-entry-submenu-only-logged-in is-hidden" data-url="https://next49.hatenadiary.jp/entry/20100905/p1"> <aside id="owner-bookmark-visibility" class="js-entry-owners-data entry-subMenu-owners" data-entry-url="https://next49.hatenadiary.jp/entry/20100905/p1"> <script type="text/x-template" id="owner-bookmark-visibility-template"> <span class="entry-subMenu-owners-help">このページのオーナーなので<br>コメントを非表示にできます</span> <a href="/my/site/https%3A%2F%2Fnext49.hatenadiary.jp%2Fentry%2F20100905%2Fp1/visibility">コメント表示の設定</a> </script> </aside> <span class="entry-subMenu-report js-entry-submenu-report" data-gtm-label="entry-subMenu-report"><a href="#">規約違反を報告</a></span> </div> </div> <div class="entry-app-link"> <img class="entry-app-link-image" src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/entry/app-screenshot.png" alt="アプリのスクリーンショット"> <div class="entry-app-link-description"> <div class="entry-app-link-description-innner"> いまの話題をアプリでチェック! <ul class="entry-app-link-list"> <li class="entry-app-link-item">バナー広告なし</li> <li class="entry-app-link-item">ミュート機能あり</li> <li class="entry-app-link-item">ダークモード搭載</li> </ul> <a class="entry-app-link-btn styleguide-btn-primary" href="https://hatenabookmark.page.link/app">アプリをダウンロード</a> </div> </div> </div> <div class="entry-ad-pc-rectangle-double"> <div id="entry-double-rectangle-left"></div> <div id="entry-double-rectangle-right"></div> </div> <div class="entry-ad-sp-rectangle"> <div id="entry-ad-sp-below-comments"></div> </div> <section class="entry-relationContents"> <h3 class="entry-relationContents-sectionTitle">関連記事</h3> <ul class="entry-relationContents-list js-entry-relationContents-list" data-entry-url="https://next49.hatenadiary.jp/entry/20100905/p1"> <script type="text/x-template" id="entry-relationContents-template"> <li> <div class="entry-relationContents-text"> <img src="{{ favicon_url }}" alt="" width="16px" height="16px" class="entry-relationContents-favicon"> <h4 class="entry-relationContents-title"><a href="{{ entry_url }}" title="{{ title }}" data-gtm-label="entry-relationContents-title">{{ truncated_title }}</a></h4> <p><span class="entry-relationContents-users"><a href="{{ entry_url }}" data-gtm-label="entry-relationContents-users">{{ total_bookmarks_with_user_postfix }}</a></span><span class="entry-relationContents-domain"><a href="{{ site_search_url }}" data-gtm-label="entry-relationContents-domain">{{ root_title }}</a></span></p> </div> </li> </script> </ul> </section> <div class="entry-notificationModal js-first-bookmark-modal is-hidden" > <div class="entry-notificationModal-window js-modal-content"> <div class="entry-notificationModal-image js-first-bookmark-animation"></div> <h3 class="entry-notificationModal-title"><span class="js-first-bookmark-count"></span>usersに達しました!</h3> <p class="entry-notificationModal-text"><span class="js-first-bookmarker-name"></span>さんが1番目にブックマークした記事「Rails 3.0用にrest...」が注目されています。</p> <p class="entry-notificationModal-share-text">気持ちをシェアしよう</p> <a href="" target="_blank" rel="noopener" class="entry-notificationModal-share-button js-entry-notificationModal-share-button" data-gtm-click-label="first-bookmark-share-twitter"> ツイートする </a> <button type="button" class="entry-notificationModal-close js-modal-close-button"> <img class="entry-notificationModal-closeImage-pc" src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/entry/overlay-close-gray.svg" alt="閉じる"> <img class="entry-notificationModal-closeImage-sp" src="https://b.st-hatena.com/94abb00c8e4c54e0574b5d19a77fa5ce4e9a125e/images/v4/public/entry/overlay-close.svg" alt="閉じる"> </button> </div> </div> </div> <div class="entry-aside"> <div class="entry-ad-pc-rectangle"> <div id="entry-rectangle-top-right"></div> </div> <section class="entry-about js-entry-about"> <h2 class="entry-about-title"><span class="js-entry-title">Rails 3.0用にrestful_authentication から deviseに移行してみる - 発声練習</span></h2> <a rel="nofollow" href="https://next49.hatenadiary.jp/entry/20100905/p1" class="js-entry-link is-hidden"></a> <p class="entry-about-description js-entry-about-description"> <span class="js-entry-description-short"><a data-gtm-click-label="entry-summary-keyword" href="/q/rails">Rails</a> 2.3.8では、ユーザー認証にrestful_authenticationを使っていたのだけど、<a data-gtm-click-label="entry-summary-keyword" href="/q/rails">Rails</a> 3.0ではdeviseが...<button type="button" class="js-entry-about-description-readmore entry-about-description-readmore" data-gtm-label="entry-about-readMore">概要を表示</button></span> <span class="js-entry-description-all is-hidden"><a data-gtm-click-label="entry-summary-keyword" href="/q/rails">Rails</a> 2.3.8では、ユーザー認証にrestful_authenticationを使っていたのだけど、<a data-gtm-click-label="entry-summary-keyword" href="/q/rails">Rails</a> 3.0ではdeviseが人気のようなので、こちらに移行してみる。 追記 &quot;devise w<a data-gtm-click-label="entry-summary-keyword" href="/q/it">it</a>h all the bells and whistles&quot; を作ってみるとして、リベンジ:<a data-gtm-click-label="entry-summary-keyword" href="/q/rails">Rails</a> 2.3RC1で”Restful Authentication w<a data-gtm-click-label="entry-summary-keyword" href="/q/it">it</a>h all the bells and whistles”をやってみるで行ったことをdeviseで行ってみた。この二つのエントリーを読み比べてもらえるとわかりやすいと思う。 環境 Debian GNU/<a data-gtm-click-label="entry-summary-keyword" href="/q/Linux">Linux</a> squeeze <a data-gtm-click-label="entry-summary-keyword" href="/q/ruby">Ruby</a> 1.8.7 <a data-gtm-click-label="entry-summary-keyword" href="/q/rails">Rails</a> 3.0 g<a data-gtm-click-label="entry-summary-keyword" href="/q/EM">em</a> 1.3.7 devise 1.1.2 目標 リベンジ:<a data-gtm-click-label="entry-summary-keyword" href="/q/rails">Rails</a> 2.3RC1で”Restful Authentication w<a data-gtm-click-label="entry-summary-keyword" href="/q/it">it</a>h</span> </p> <div class="entry-about-star"> <div class="js-list-star-container"></div> <div class="js-add-star-container add-star-container"></div> </div> <ul class="entry-tags"> <li><a href="/q/devise" class="entry-tags-contents" data-gtm-label="entry-about-tags">devise</a></li> <li><a href="/q/rails" class="entry-tags-contents" data-gtm-label="entry-about-tags">rails</a></li> <li><a href="/q/%E8%AA%8D%E8%A8%BC" class="entry-tags-contents" data-gtm-label="entry-about-tags">認証</a></li> <li><a href="/q/rails3" class="entry-tags-contents" data-gtm-label="entry-about-tags">rails3</a></li> <li><a href="/q/ruby" class="entry-tags-contents" data-gtm-label="entry-about-tags">ruby</a></li> <li><a href="/q/auth" class="entry-tags-contents" data-gtm-label="entry-about-tags">auth</a></li> <li><a href="/q/authentication" class="entry-tags-contents" data-gtm-label="entry-about-tags">authentication</a></li> <li><a href="/q/%22ruby%20on%20rails%22" class="entry-tags-contents" data-gtm-label="entry-about-tags">ruby on rails</a></li> </ul> </section> <section class="entry-bookmarkUsers js-bookmarker-icons"> <h3 class="entry-bookmarkUsers-title">ブックマークしたユーザー</h3> <ul class="entry-bookmarkUsers-list js-bookmarkers"> <li role="link" tabIndex="0" class="bookmarker js-bookmarker js-ignorable-user-content" data-gtm-label="entry-bookmarkUsers-icon" data-user-name="V-8" data-created="20121120" data-location-id="24660246"> <span class="entry-bookmarkUsers-meta"> <span class="entry-bookmarkUsers-userName">V-8</span><span class="entry-bookmarkUsers-timestamp">2012/11/20</span> </span> <img src="https://cdn.profile-image.st-hatena.com/users/V-8/profile.png" alt="V-8" title="V-8"/> </li> <li role="link" tabIndex="0" class="bookmarker js-bookmarker js-ignorable-user-content" data-gtm-label="entry-bookmarkUsers-icon" data-user-name="shellmaster" data-created="20120402" data-location-id="24660246"> <span class="entry-bookmarkUsers-meta"> <span class="entry-bookmarkUsers-userName">shellmaster</span><span class="entry-bookmarkUsers-timestamp">2012/04/02</span> </span> <img src="https://cdn.profile-image.st-hatena.com/users/shellmaster/profile.png" alt="shellmaster" title="shellmaster"/> </li> <li role="link" tabIndex="0" class="bookmarker js-bookmarker js-ignorable-user-content" data-gtm-label="entry-bookmarkUsers-icon" data-user-name="sharksame" data-created="20120224" data-location-id="24660246"> <span class="entry-bookmarkUsers-meta"> <span class="entry-bookmarkUsers-userName">sharksame</span><span class="entry-bookmarkUsers-timestamp">2012/02/24</span> </span> <img src="https://cdn.profile-image.st-hatena.com/users/sharksame/profile.png" alt="sharksame" title="sharksame"/> </li> <li role="link" tabIndex="0" class="bookmarker js-bookmarker js-ignorable-user-content" data-gtm-label="entry-bookmarkUsers-icon" data-user-name="Naruhodius" data-created="20120106" data-location-id="24660246"> <span class="entry-bookmarkUsers-meta"> <span class="entry-bookmarkUsers-userName">Naruhodius</span><span class="entry-bookmarkUsers-timestamp">2012/01/06</span> </span> <img src="https://cdn.profile-image.st-hatena.com/users/Naruhodius/profile.png" alt="Naruhodius" title="Naruhodius"/> </li> <li role="link" tabIndex="0" class="bookmarker js-bookmarker js-ignorable-user-content" data-gtm-label="entry-bookmarkUsers-icon" data-user-name="yasushiito" data-created="20111117" data-location-id="24660246"> <span class="entry-bookmarkUsers-meta"> <span class="entry-bookmarkUsers-userName">yasushiito</span><span class="entry-bookmarkUsers-timestamp">2011/11/17</span> </span> <img src="https://cdn.profile-image.st-hatena.com/users/yasushiito/profile.png" alt="yasushiito" title="yasushiito"/> </li> <li role="link" tabIndex="0" class="bookmarker js-bookmarker js-ignorable-user-content" data-gtm-label="entry-bookmarkUsers-icon" data-user-name="yamanetoshi" data-created="20111010" data-location-id="24660246"> <span class="entry-bookmarkUsers-meta"> <span class="entry-bookmarkUsers-userName">yamanetoshi</span><span class="entry-bookmarkUsers-timestamp">2011/10/10</span> </span> <img src="https://cdn.profile-image.st-hatena.com/users/yamanetoshi/profile.png" alt="yamanetoshi" title="yamanetoshi"/> </li> <li role="link" tabIndex="0" class="bookmarker js-bookmarker js-ignorable-user-content" data-gtm-label="entry-bookmarkUsers-icon" data-user-name="Akineko" data-created="20111009" data-location-id="24660246"> <span class="entry-bookmarkUsers-meta"> <span class="entry-bookmarkUsers-userName">Akineko</span><span class="entry-bookmarkUsers-timestamp">2011/10/09</span> </span> <img src="https://cdn.profile-image.st-hatena.com/users/Akineko/profile.png" alt="Akineko" title="Akineko"/> </li> <li role="link" tabIndex="0" class="bookmarker js-bookmarker js-ignorable-user-content" data-gtm-label="entry-bookmarkUsers-icon" data-user-name="shoby" data-created="20110828" data-location-id="24660246"> <span class="entry-bookmarkUsers-meta"> <span class="entry-bookmarkUsers-userName">shoby</span><span class="entry-bookmarkUsers-timestamp">2011/08/28</span> </span> <img src="https://cdn.profile-image.st-hatena.com/users/shoby/profile.png" alt="shoby" title="shoby"/> </li> <li role="link" tabIndex="0" class="bookmarker js-bookmarker js-ignorable-user-content" data-gtm-label="entry-bookmarkUsers-icon" data-user-name="norisuke3" data-created="20110807" data-location-id="24660246"> <span class="entry-bookmarkUsers-meta"> <span class="entry-bookmarkUsers-userName">norisuke3</span><span class="entry-bookmarkUsers-timestamp">2011/08/07</span> </span> <img src="https://cdn.profile-image.st-hatena.com/users/norisuke3/profile.png" alt="norisuke3" title="norisuke3"/> </li> <li role="link" tabIndex="0" class="bookmarker js-bookmarker js-ignorable-user-content" data-gtm-label="entry-bookmarkUsers-icon" data-user-name="ukkaripon" data-created="20110622" data-location-id="24660246"> <span class="entry-bookmarkUsers-meta"> <span class="entry-bookmarkUsers-userName">ukkaripon</span><span class="entry-bookmarkUsers-timestamp">2011/06/22</span> </span> <img src="https://cdn.profile-image.st-hatena.com/users/ukkaripon/profile.png" alt="ukkaripon" title="ukkaripon"/> </li> <li role="link" tabIndex="0" class="bookmarker js-bookmarker js-ignorable-user-content" data-gtm-label="entry-bookmarkUsers-icon" data-user-name="kaki_k" data-created="20110530" data-location-id="24660246"> <span class="entry-bookmarkUsers-meta"> <span class="entry-bookmarkUsers-userName">kaki_k</span><span class="entry-bookmarkUsers-timestamp">2011/05/30</span> </span> <img src="https://cdn.profile-image.st-hatena.com/users/kaki_k/profile.png" alt="kaki_k" title="kaki_k"/> </li> <li role="link" tabIndex="0" class="bookmarker js-bookmarker js-ignorable-user-content" data-gtm-label="entry-bookmarkUsers-icon" data-user-name="kmachu" data-created="20110504" data-location-id="24660246"> <span class="entry-bookmarkUsers-meta"> <span class="entry-bookmarkUsers-userName">kmachu</span><span class="entry-bookmarkUsers-timestamp">2011/05/04</span> </span> <img src="https://cdn.profile-image.st-hatena.com/users/kmachu/profile.png" alt="kmachu" title="kmachu"/> </li> <li role="link" tabIndex="0" class="bookmarker js-bookmarker js-ignorable-user-content" data-gtm-label="entry-bookmarkUsers-icon" data-user-name="kura-2" data-created="20110424" data-location-id="24660246"> <span class="entry-bookmarkUsers-meta"> <span class="entry-bookmarkUsers-userName">kura-2</span><span class="entry-bookmarkUsers-timestamp">2011/04/24</span> </span> <img src="https://cdn.profile-image.st-hatena.com/users/kura-2/profile.png" alt="kura-2" title="kura-2"/> </li> <li role="link" tabIndex="0" class="bookmarker js-bookmarker js-ignorable-user-content" data-gtm-label="entry-bookmarkUsers-icon" data-user-name="shin_bashi" data-created="20110424" data-location-id="24660246"> <span class="entry-bookmarkUsers-meta"> <span class="entry-bookmarkUsers-userName">shin_bashi</span><span class="entry-bookmarkUsers-timestamp">2011/04/24</span> </span> <img src="https://cdn.profile-image.st-hatena.com/users/shin_bashi/profile.png" alt="shin_bashi" title="shin_bashi"/> </li> <li role="link" tabIndex="0" class="bookmarker js-bookmarker js-ignorable-user-content" data-gtm-label="entry-bookmarkUsers-icon" data-user-name="kent013" data-created="20110423" data-location-id="24660246"> <span class="entry-bookmarkUsers-meta"> <span class="entry-bookmarkUsers-userName">kent013</span><span class="entry-bookmarkUsers-timestamp">2011/04/23</span> </span> <img src="https://cdn.profile-image.st-hatena.com/users/kent013/profile.png" alt="kent013" title="kent013"/> </li> <li role="link" tabIndex="0" class="bookmarker js-bookmarker js-ignorable-user-content" data-gtm-label="entry-bookmarkUsers-icon" data-user-name="tomohiko_ariki" data-created="20110318" data-location-id="24660246"> <span class="entry-bookmarkUsers-meta"> <span class="entry-bookmarkUsers-userName">tomohiko_ariki</span><span class="entry-bookmarkUsers-timestamp">2011/03/18</span> </span> <img src="https://cdn.profile-image.st-hatena.com/users/tomohiko_ariki/profile.png" alt="tomohiko_ariki" title="tomohiko_ariki"/> </li> <li role="link" tabIndex="0" class="bookmarker js-bookmarker js-ignorable-user-content" data-gtm-label="entry-bookmarkUsers-icon" data-user-name="sea_mountain" data-created="20110318" data-location-id="24660246"> <span class="entry-bookmarkUsers-meta"> <span class="entry-bookmarkUsers-userName">sea_mountain</span><span class="entry-bookmarkUsers-timestamp">2011/03/18</span> </span> <img src="https://cdn.profile-image.st-hatena.com/users/sea_mountain/profile.png" alt="sea_mountain" title="sea_mountain"/> </li> <li role="link" tabIndex="0" class="bookmarker js-bookmarker js-ignorable-user-content" data-gtm-label="entry-bookmarkUsers-icon" data-user-name="deeeki" data-created="20110318" data-location-id="24660246"> <span class="entry-bookmarkUsers-meta"> <span class="entry-bookmarkUsers-userName">deeeki</span><span class="entry-bookmarkUsers-timestamp">2011/03/18</span> </span> <img src="https://cdn.profile-image.st-hatena.com/users/deeeki/profile.png" alt="deeeki" title="deeeki"/> </li> </ul> <div class="entry-bookmarkUsers-readMore"> <span class="entry-bookmarkUsers-readMore-wrapper"> <button class="entry-bookmarkUsers-readMore-btn js-all-bookmarkers-modal-open" data-gtm-label="entry-bookmarkUsers-readMore">すべてのユーザーを見る</button> <span class="entry-bookmarkUsers-readMore-popup">すべてのユーザーの<br>詳細を表示します</span> </span> </div> <div class="entry-usersModal js-all-bookmarkers-modal is-hidden"> <div class="is-active entry-usersModal-window js-all-bookmarkers-modal-window js-bookmark-autoloader-all" data-sort="all" data-autoload-url="https://next49.hatenadiary.jp/entry/20100905/p1" data-next-cursor="MTI5NzQyMjU3NywyNzY2ODc1NDU5NTQ1ODUyOQ=="> <button type="button" class="entry-usersModal-close js-all-bookmarkers-modal-close"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="5748.793 -620.207 21.414 21.414"> <defs><style>.cls-1 { fill: none; stroke-width: 2px; }</style></defs> <g> <title>閉じる</title> <desc>モーダルを閉じます</desc> <path id="line1" d="M5769.5-619.5l-20 20"/><path id="line2" d="M5769.5-599.5l-20-20"/> </g> </svg> </button> <h4 class="entry-usersModal-title">ブックマークしたすべてのユーザー</h4> <div class="entry-usersModal-contents js-scrollable"> <div class="js-bookmarks js-bookmarks-all"> </div> <div class="entry-comment-readmore js-read-more"> <button id="all-bookmarks-readmore" class="js-read-more-button entry-comment-readmore-btn"> <span class="js-read-more-label js-read-more-ready">Readmore</span> <span class="js-read-more-label js-read-more-waiting is-hidden">残りのブックマークを読み込んでいます..</span> <span class="js-read-more-label js-read-more-error is-hidden">残りのブックマークを読み込めませんでした</span> </button> </div> </div> </div> </div> </section> <div class="entry-ad-pc-rectangle"> <div id="entry-rectangle-bottom-right"></div> </div> </div> </div> <div class="entry-ad-sp-rectangle"> <div id="entry-touch-a-rectangle"></div> </div> <section class="entry-group"> <h2 class="entry-group-sectionTitle"><a href="/site/next49.hatenadiary.jp/?sort=eid" data-gtm-label="entry-entrylistSameDomain-sectionTitle">同じサイトの新着</a></h2> <ul class="entry-group-list"> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/next49.hatenadiary.jp/entry/20250114/1736856259" title="YouTubeショートの日本上げ動画で海外有名人エピソードが捏造されてそう - 発声練習" data-gtm-label="entry-entrylistSameDomain-title">YouTubeショートの日本上げ動画で海外有名人エピソードが捏造されてそう - 発声練習</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/next49.hatenadiary.jp/entry/20250114/1736856259" data-gtm-label="entry-entrylistSameDomain-users">2 users</a></span><span class="entry-group-domain"><a href="/site/next49.hatenadiary.jp/" data-gtm-label="entry-entrylistSameDomain-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fnext49.hatenadiary.jp%2Fentry%2F20250114%2F1736856259" alt="">next49.hatenadiary.jp</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/next49.hatenadiary.jp/entry/20241221/1734780406" title="楽しみに読んでいる&読んで楽しかったなろう系歴史小説 - 発声練習" data-gtm-label="entry-entrylistSameDomain-title">楽しみに読んでいる&読んで楽しかったなろう系歴史小説 - 発声練習</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/next49.hatenadiary.jp/entry/20241221/1734780406" data-gtm-label="entry-entrylistSameDomain-users">1 user</a></span><span class="entry-group-domain"><a href="/site/next49.hatenadiary.jp/" data-gtm-label="entry-entrylistSameDomain-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fnext49.hatenadiary.jp%2Fentry%2F20241221%2F1734780406" alt="">next49.hatenadiary.jp</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/next49.hatenadiary.jp/entry/20241202/1733143220" title="Windows 11にVMWare Workstation Pro 17をインストール - 発声練習" data-gtm-label="entry-entrylistSameDomain-title">Windows 11にVMWare Workstation Pro 17をインストール - 発声練習</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/next49.hatenadiary.jp/entry/20241202/1733143220" data-gtm-label="entry-entrylistSameDomain-users">1 user</a></span><span class="entry-group-domain"><a href="/site/next49.hatenadiary.jp/" data-gtm-label="entry-entrylistSameDomain-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fnext49.hatenadiary.jp%2Fentry%2F20241202%2F1733143220" alt="">next49.hatenadiary.jp</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/next49.hatenadiary.jp/entry/20241101/1730455552" title="中村哲氏の殺害事件の実行犯と中村氏没後の灌漑活動 - 発声練習" data-gtm-label="entry-entrylistSameDomain-title">中村哲氏の殺害事件の実行犯と中村氏没後の灌漑活動 - 発声練習</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/next49.hatenadiary.jp/entry/20241101/1730455552" data-gtm-label="entry-entrylistSameDomain-users">3 users</a></span><span class="entry-group-domain"><a href="/site/next49.hatenadiary.jp/" data-gtm-label="entry-entrylistSameDomain-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fnext49.hatenadiary.jp%2Fentry%2F20241101%2F1730455552" alt="">next49.hatenadiary.jp</a></span></p> </div> </div> </li> </ul> <p class="entry-group-readmore"> <a href="/site/next49.hatenadiary.jp/?sort=eid" data-gtm-label="entry-entrylistSameDomain-readMore">同じサイトの新着をもっと読む</a> </p> </section> <section class="entry-group"> <h2 class="entry-group-sectionTitle"><a href="/hotentry" data-gtm-label="entry-hotentry-sectionTitle">いま人気の記事</a></h2> <ul class="entry-group-list"> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/www.rakumachi.jp/news/column/362023" title="埃舞う川口の工業地帯で、失業者しか住んでない地獄のボロアパートの大家になった話|楽待不動産投資新聞" data-gtm-label="entry-hotentry-title">埃舞う川口の工業地帯で、失業者しか住んでない地獄のボロアパートの大家になった話|楽待不動産投資新聞</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/www.rakumachi.jp/news/column/362023" data-gtm-label="entry-hotentry-users">439 users</a></span><span class="entry-group-domain"><a href="/site/www.rakumachi.jp/" data-gtm-label="entry-hotentry-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fwww.rakumachi.jp%2Fnews%2Fcolumn%2F362023" alt="">www.rakumachi.jp</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/www.sankei.com/article/20250224-EX2SAFB77FJVXONVV4GWKUYMZE/" title="30代の支持率、自民が3番手に転落 国民民主、れいわの後塵拝す 産経・FNN合同世論調査" data-gtm-label="entry-hotentry-title">30代の支持率、自民が3番手に転落 国民民主、れいわの後塵拝す 産経・FNN合同世論調査</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/www.sankei.com/article/20250224-EX2SAFB77FJVXONVV4GWKUYMZE/" data-gtm-label="entry-hotentry-users">272 users</a></span><span class="entry-group-domain"><a href="/site/www.sankei.com/" data-gtm-label="entry-hotentry-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fwww.sankei.com%2Farticle%2F20250224-EX2SAFB77FJVXONVV4GWKUYMZE%2F" alt="">www.sankei.com</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/www.bloomberg.co.jp/news/articles/2025-02-23/SS5BOOT0G1KW00" title="ゼレンスキー大統領、ウクライナの平和のためなら辞任の用意ある" data-gtm-label="entry-hotentry-title">ゼレンスキー大統領、ウクライナの平和のためなら辞任の用意ある</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/www.bloomberg.co.jp/news/articles/2025-02-23/SS5BOOT0G1KW00" data-gtm-label="entry-hotentry-users">334 users</a></span><span class="entry-group-domain"><a href="/site/www.bloomberg.co.jp/" data-gtm-label="entry-hotentry-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fwww.bloomberg.co.jp%2Fnews%2Farticles%2F2025-02-23%2FSS5BOOT0G1KW00" alt="">www.bloomberg.co.jp</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/note.com/sudoakiy/n/ndb61ea9ceaf1" title="プロジェクトマネジメントスキルがあると生きやすくなる話|すどう" data-gtm-label="entry-hotentry-title">プロジェクトマネジメントスキルがあると生きやすくなる話|すどう</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/note.com/sudoakiy/n/ndb61ea9ceaf1" data-gtm-label="entry-hotentry-users">196 users</a></span><span class="entry-group-domain"><a href="/site/note.com/sudoakiy" data-gtm-label="entry-hotentry-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fnote.com%2Fsudoakiy%2Fn%2Fndb61ea9ceaf1" alt="">note.com/sudoakiy</a></span></p> </div> </div> </li> </ul> <p class="entry-group-readmore"> <a href="/hotentry" data-gtm-label="entry-hotentry-readMore">いま人気の記事をもっと読む</a> </p> </section> <section class="entry-group"> <h2 class="entry-group-sectionTitle"><a href="/hotentry/it" data-gtm-label="entry-hotentryCategory-sectionTitle">いま人気の記事 - テクノロジー</a></h2> <ul class="entry-group-list js-entry-hotentry-list-category" data-category="it" data-section-type="hotentryCategory"> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/github.com/mizchi/deno-ai-bestpractice" title="GitHub - mizchi/deno-ai-bestpractice" data-gtm-label="entry-hotentryCategory-title">GitHub - mizchi/deno-ai-bestpractice</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/github.com/mizchi/deno-ai-bestpractice" data-gtm-label="entry-hotentryCategory-users">164 users</a></span><span class="entry-group-domain"><a href="/site/github.com/mizchi" data-gtm-label="entry-hotentryCategory-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fgithub.com%2Fmizchi%2Fdeno-ai-bestpractice" alt="">github.com/mizchi</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/forbesjapan.com/articles/detail/77318" title="Chromeの変更にともない、グーグルが「すべてのデバイスを追跡」開始 | Forbes JAPAN 公式サイト(フォーブス ジャパン)" data-gtm-label="entry-hotentryCategory-title">Chromeの変更にともない、グーグルが「すべてのデバイスを追跡」開始 | Forbes JAPAN 公式サイト(フォーブス ジャパン)</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/forbesjapan.com/articles/detail/77318" data-gtm-label="entry-hotentryCategory-users">156 users</a></span><span class="entry-group-domain"><a href="/site/forbesjapan.com/" data-gtm-label="entry-hotentryCategory-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fforbesjapan.com%2Farticles%2Fdetail%2F77318" alt="">forbesjapan.com</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/zenn.dev/kikagaku/articles/b074d9fbf01479" title="Cursor 次期バージョン(v0.46)の 5 つのアップデートが超便利なので紹介したい" data-gtm-label="entry-hotentryCategory-title">Cursor 次期バージョン(v0.46)の 5 つのアップデートが超便利なので紹介したい</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/zenn.dev/kikagaku/articles/b074d9fbf01479" data-gtm-label="entry-hotentryCategory-users">86 users</a></span><span class="entry-group-domain"><a href="/site/zenn.dev/kikagaku" data-gtm-label="entry-hotentryCategory-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fzenn.dev%2Fkikagaku%2Farticles%2Fb074d9fbf01479" alt="">zenn.dev/kikagaku</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/kmuto.hatenablog.com/entry/2025/02/24/150500" title="Docker Hubがしんどくなりそうなのでghcr.ioにも置くようにした - kmuto’s blog" data-gtm-label="entry-hotentryCategory-title">Docker Hubがしんどくなりそうなのでghcr.ioにも置くようにした - kmuto’s blog</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/kmuto.hatenablog.com/entry/2025/02/24/150500" data-gtm-label="entry-hotentryCategory-users">47 users</a></span><span class="entry-group-domain"><a href="/site/kmuto.hatenablog.com/" data-gtm-label="entry-hotentryCategory-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fkmuto.hatenablog.com%2Fentry%2F2025%2F02%2F24%2F150500" alt="">kmuto.hatenablog.com</a></span></p> </div> </div> </li> </ul> <p class="entry-group-readmore"> <a href="/hotentry/it" data-gtm-label="entry-hotentryCategory-readMore">いま人気の記事 - テクノロジーをもっと読む</a> </p> </section> <section class="entry-group"> <h2 class="entry-group-sectionTitle"><a href="/entrylist/it" data-gtm-label="entry-entrylistCategory-sectionTitle">新着記事 - テクノロジー</a></h2> <ul class="entry-group-list"> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/sosukesuzuki.dev/posts/become-webkit-reviewer/" title="WebKitのReviewerになった" data-gtm-label="entry-entrylistCategory-title">WebKitのReviewerになった</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/sosukesuzuki.dev/posts/become-webkit-reviewer/" data-gtm-label="entry-entrylistCategory-users">10 users</a></span><span class="entry-group-domain"><a href="/site/sosukesuzuki.dev/" data-gtm-label="entry-entrylistCategory-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fsosukesuzuki.dev%2Fposts%2Fbecome-webkit-reviewer%2F" alt="">sosukesuzuki.dev</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/blog.kobalab.net/entry/2024/01/11/064714" title="macOS Sonoma の初期設定 - koba::blog" data-gtm-label="entry-entrylistCategory-title">macOS Sonoma の初期設定 - koba::blog</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/blog.kobalab.net/entry/2024/01/11/064714" data-gtm-label="entry-entrylistCategory-users">12 users</a></span><span class="entry-group-domain"><a href="/site/blog.kobalab.net/" data-gtm-label="entry-entrylistCategory-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fblog.kobalab.net%2Fentry%2F2024%2F01%2F11%2F064714" alt="">blog.kobalab.net</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/kmuto.hatenablog.com/entry/2025/02/24/150500" title="Docker Hubがしんどくなりそうなのでghcr.ioにも置くようにした - kmuto’s blog" data-gtm-label="entry-entrylistCategory-title">Docker Hubがしんどくなりそうなのでghcr.ioにも置くようにした - kmuto’s blog</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/kmuto.hatenablog.com/entry/2025/02/24/150500" data-gtm-label="entry-entrylistCategory-users">47 users</a></span><span class="entry-group-domain"><a href="/site/kmuto.hatenablog.com/" data-gtm-label="entry-entrylistCategory-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fkmuto.hatenablog.com%2Fentry%2F2025%2F02%2F24%2F150500" alt="">kmuto.hatenablog.com</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/news.yahoo.co.jp/articles/af9aa15e1d9ed70083b0a8ed7dbdef5fdbb801b6" title="LLMの革新、トークンからバイトへ〜メタが開発した新アーキテクチャ「BLT」の全容(AMP[アンプ]) - Yahoo!ニュース" data-gtm-label="entry-entrylistCategory-title">LLMの革新、トークンからバイトへ〜メタが開発した新アーキテクチャ「BLT」の全容(AMP[アンプ]) - Yahoo!ニュース</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/news.yahoo.co.jp/articles/af9aa15e1d9ed70083b0a8ed7dbdef5fdbb801b6" data-gtm-label="entry-entrylistCategory-users">5 users</a></span><span class="entry-group-domain"><a href="/site/news.yahoo.co.jp/" data-gtm-label="entry-entrylistCategory-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fnews.yahoo.co.jp%2Farticles%2Faf9aa15e1d9ed70083b0a8ed7dbdef5fdbb801b6" alt="">news.yahoo.co.jp</a></span></p> </div> </div> </li> </ul> <p class="entry-group-readmore"> <a href="/entrylist/it" data-gtm-label="entry-entrylistCategory-readMore">新着記事 - テクノロジーをもっと読む</a> </p> </section> <div class="entry-ad-sp-rectangle"> <div id="entry-touch-rectangle"></div> </div> <section class="entry-group"> <div class="entry-pager-container"> <h2 class="entry-group-sectionTitle">同時期にブックマークされた記事</h2> <ul class="entry-group-list"> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/next49.hatenadiary.jp/entry/20090205/p4" title="リンク集:Restful Authentication - 発声練習" data-gtm-label="entry-entrylistSameperiod-title">リンク集:Restful Authentication - 発声練習</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/next49.hatenadiary.jp/entry/20090205/p4" data-gtm-label="entry-entrylistSameperiod-users">1 user</a></span><span class="entry-group-domain"><a href="/site/next49.hatenadiary.jp/" data-gtm-label="entry-entrylistSameperiod-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fnext49.hatenadiary.jp%2Fentry%2F20090205%2Fp4" alt="">next49.hatenadiary.jp</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/next49.hatenadiary.jp/entry/20161118/1479441395" title="再・「考察」を楽しむ方法:自分で考察をくみ上げる、良くできた考察に自分の思いを乗せる - 発声練習" data-gtm-label="entry-entrylistSameperiod-title">再・「考察」を楽しむ方法:自分で考察をくみ上げる、良くできた考察に自分の思いを乗せる - 発声練習</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/next49.hatenadiary.jp/entry/20161118/1479441395" data-gtm-label="entry-entrylistSameperiod-users">1 user</a></span><span class="entry-group-domain"><a href="/site/next49.hatenadiary.jp/" data-gtm-label="entry-entrylistSameperiod-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fnext49.hatenadiary.jp%2Fentry%2F20161118%2F1479441395" alt="">next49.hatenadiary.jp</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/next49.hatenadiary.jp/entry/20110702/p2" title="卒論生が夏休みに向けて行うこと - 発声練習" data-gtm-label="entry-entrylistSameperiod-title">卒論生が夏休みに向けて行うこと - 発声練習</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/next49.hatenadiary.jp/entry/20110702/p2" data-gtm-label="entry-entrylistSameperiod-users">36 users</a></span><span class="entry-group-domain"><a href="/site/next49.hatenadiary.jp/" data-gtm-label="entry-entrylistSameperiod-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fnext49.hatenadiary.jp%2Fentry%2F20110702%2Fp2" alt="">next49.hatenadiary.jp</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/next49.hatenadiary.jp/entry/20100921/p1" title="本当の不安を明確に言語化すべき - 発声練習" data-gtm-label="entry-entrylistSameperiod-title">本当の不安を明確に言語化すべき - 発声練習</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/next49.hatenadiary.jp/entry/20100921/p1" data-gtm-label="entry-entrylistSameperiod-users">10 users</a></span><span class="entry-group-domain"><a href="/site/next49.hatenadiary.jp/" data-gtm-label="entry-entrylistSameperiod-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fnext49.hatenadiary.jp%2Fentry%2F20100921%2Fp1" alt="">next49.hatenadiary.jp</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/next49.hatenadiary.jp/entry/20100426/p3" title="Science Communication News:巻頭言:寄稿 大学図書館の利用を目的とした制限研究生の導入について - 発声練習" data-gtm-label="entry-entrylistSameperiod-title">Science Communication News:巻頭言:寄稿 大学図書館の利用を目的とした制限研究生の導入について - 発声練習</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/next49.hatenadiary.jp/entry/20100426/p3" data-gtm-label="entry-entrylistSameperiod-users">12 users</a></span><span class="entry-group-domain"><a href="/site/next49.hatenadiary.jp/" data-gtm-label="entry-entrylistSameperiod-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fnext49.hatenadiary.jp%2Fentry%2F20100426%2Fp3" alt="">next49.hatenadiary.jp</a></span></p> </div> </div> </li> </ul> </div> </section> </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&amp;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> <script id="valve-dmp" data-service="bookmark" src="//cdn.pool.st-hatena.com/valve/dmp.js" async></script> <div class="message-modal js-message-modal is-hidden auto-hide"> <div class="message-modal-message"> <p class="message-modal-message-text js-message-modal-message-text"></p> <button class="message-modal-btn js-message-modal-close-button">閉じる</button> </div> </div> <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&amp;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 &copy; 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>

Pages: 1 2 3 4 5 6 7 8 9 10