CINXE.COM
今どきのLinux事情 - Speaker Deck
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>今どきのLinux事情 - Speaker Deck</title> <link rel="preconnect" href="https://fonts.googleapis.com/"> <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin> <link rel="stylesheet" media="screen" href="https://d1eu30co0ohy4w.cloudfront.net/assets/application-22b0435c4ea6f7b1a840c358076015e07c901f6198f9ab389da2c4e1951ce406.css" /> <script src="https://d1eu30co0ohy4w.cloudfront.net/assets/application-6671076983cb094c30ae.js"></script> <link rel="icon" type="image/png" href="https://d1eu30co0ohy4w.cloudfront.net/assets/favicon-bdd5839d46040a50edf189174e6f7aacc8abb3aaecd56a4711cf00d820883f47.png" /> <link rel="apple-touch-icon" type="image/png" href="https://d1eu30co0ohy4w.cloudfront.net/assets/favicon-bdd5839d46040a50edf189174e6f7aacc8abb3aaecd56a4711cf00d820883f47.png" /> <link rel="manifest" href="/manifest.json"> <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="+brJwWBMbObnIJzQ3gq0dXuz3SZc3BXFQUaQMPQLFzm6qF35embOaILgD6CkeP6GmoPg3Qk+hE91AP8FcK+ZTQ==" /> <link rel="stylesheet" media="screen" href="https://d1eu30co0ohy4w.cloudfront.net/assets/player-0b8a94428c659e1ac7e00f01233899ccfb27ea3bd2b6b59de4e1bc856c362af7.css" /> <script src="https://d1eu30co0ohy4w.cloudfront.net/assets/player-5149bb60884c0e415330.js"></script> <link rel="alternate" type="application/json+oembed" href="https://speakerdeck.com/oembed.json?url=https%3A%2F%2Fspeakerdeck.com%2Ftokida%2Fjin-dokifalselinuxshi-qing" title="今どきのLinux事情"> <meta property="og:url" content="https://speakerdeck.com/tokida/jin-dokifalselinuxshi-qing"> <meta property="og:site_name" content="Speaker Deck"> <meta property="og:title" content="今どきのLinux事情"> <meta property="og:description" name="description" content="とりとめない話ですが、今どきのLinuxのパッケージングの種類とSteamDeckから一気に改善されたDirectX 周りの話です。社内の勉強会で共有した資料"> <meta property="og:type" content="website" /> <meta property="og:author" content="tokida"> <meta property="og:image" content="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_0.jpg?21926020"> <meta name="robots" content="max-image-preview:large"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@speakerdeck"> <meta name="twitter:creator" content="@speakerdeck"> <meta name="twitter:title" content="今どきのLinux事情"> <meta name="twitter:description" content="とりとめない話ですが、今どきのLinuxのパッケージングの種類とSteamDeckから一気に改善されたDirectX 周りの話です。社内の勉強会で共有した資料"> <meta name="twitter:image:src" content="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_0.jpg?21926020"> <link rel="canonical" href="https://speakerdeck.com/tokida/jin-dokifalselinuxshi-qing" /> <meta name="twitter:label1" value="Deck by" /> <meta name="twitter:data1" value="tokida"> <meta name="stats-owner_id" content="71905" /> <meta name="stats-talk_id" content="888791" /> <meta name="stats-view_type" content="talk" /> <style> @media only screen and (min-width: 0px) and (min-height: 0px) { .ads-container > div { min-width:300px; min-height:250px; } } @media only screen and (min-width: 640px) and (min-height: 0px) { .ads-container > div { min-width:570px; min-height:90px; } } </style> <script type="text/javascript"> (function(){ var bsa_optimize=document.createElement('script'); bsa_optimize.type='text/javascript'; bsa_optimize.async=true; bsa_optimize.src='https://cdn4.buysellads.net/pub/speakerdeck.js?'+(new Date()-new Date()%600000); (document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(bsa_optimize); })(); </script> </head> <body class="sd-app"> <div class="alert alert-banner"> <a class="d-block text-center text-white" href="/pro"> <span class="text-warning">Upgrade to Pro</span> — share decks privately, control downloads, hide ads and more … </a> </div> <div class="sd-menu d-md-none"> <div class="container sd-menu-fixed-container"> <div class="sd-brand"> <a class="sd-brand-logo" href="/"> <img alt="Speaker Deck" width="32" height="20" src="https://d1eu30co0ohy4w.cloudfront.net/assets/mark-f4be6df1e05965cac9f98e664a6c35f5ffdd0207385d07464a9214d6cdf76082.svg" /> <span class="d-none d-xl-inline">Speaker Deck</span> </a> </div> <nav class="sd-fixed-nav" aria-label="Primary"> <div class="sd-nav-main js-toggle-container"> <ul class="sd-nav-fixed-group nav toggle-flex-when-off"> <li class="sd-nav-item nav-item d-none d-md-block"> <a class="sd-nav-link nav-link" href="/features"> Features </a> </li> <li class="sd-nav-item nav-item d-none d-md-block"> <a class="sd-nav-link nav-link" href="/pro"> <span class="d-none d-md-inline">Speaker Deck</span> <div class="badge badge-pro-prominent">PRO</div> </a> </li> <li class="sd-nav-item nav-item"> <a class="sd-nav-link nav-link" href="/signin"> Sign in </a> </li> <li class="sd-nav-item nav-item"> <a class="btn btn-primary" href="/signup"> Sign up for free </a> </li> <li class="sd-nav-item d-block d-md-none"> <button class="btn btn-link me-2 js-toggle-trigger" aria-label="Toggle Search"> <svg class="icon icon-search "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-search"></use></svg> </button> </li> <li class="sd-nav-item nav-item d-none d-md-block"> <form action="https://www.google.com/cse" id="cse-search-box" class="row"> <input type="hidden" name="cx" value="010150859881542981030:hqhxyxpwtc4"> <input type="hidden" name="ie" value="UTF-8"> <label for="q" class="visually-hidden">Search</label> <div class="col"><input type="text" name="q" id="q" value="" placeholder="Search..." class="form-control search-input w-auto"></div> <div class="col"><input type="submit" name="sa" value="Search" class="btn btn-outline-primary d-inline-block d-md-none d-lg-inline-block"></div> </form> </li> </ul> <ul class="sd-nav-fixed-group nav toggle-flex-when-on"> <li class="sd-nav-item"> <form action="https://www.google.com/cse" id="cse-search-box" class="row"> <input type="hidden" name="cx" value="010150859881542981030:hqhxyxpwtc4"> <input type="hidden" name="ie" value="UTF-8"> <label for="q" class="visually-hidden">Search</label> <div class="col"><input type="text" name="q" id="q" value="" placeholder="Search..." class="form-control search-input w-auto"></div> <div class="col"><input type="submit" name="sa" value="Search" class="btn btn-outline-primary d-inline-block d-md-none d-lg-inline-block"></div> </form> </li> <li class="sd-nav-item pe-2"> <button class="btn btn-link js-toggle-trigger"> <svg class="icon icon-x "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-x"></use></svg> </button> </li> </ul> </div> </nav> </div> </div> <div class="sd-main"> <div class="deck deck-with-banner"> <div class="deck-background" style="background-image: url('https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/preview_slide_0.jpg?21926020')"></div> <div class="deck-header d-none d-md-block js-toggle-container"> <div class="container d-flex align-items-center w-100"> <div class="deck-header-logo py-3 me-5"> <a class="sd-brand-logo" href="/"> <img alt="Speaker Deck" width="32" height="21" src="https://d1eu30co0ohy4w.cloudfront.net/assets/mark-white-8d908558fe78e8efc8118c6fe9b9b1a9846b182c503bdc6902f97df4ddc9f3af.svg" /> </a> </div> <div class="p-3 text-center toggle-block-when-off flex-fill"> <h4 class="deck-header-title text-white text-truncate"> 今どきのLinux事情 </h4> </div> <div class="d-flex justify-content-end align-items-center ms-auto"> <div class="deck-header-user-nav toggle-block-when-on"> <form action="https://www.google.com/cse" id="cse-search-box" class="row"> <input type="hidden" name="cx" value="010150859881542981030:hqhxyxpwtc4"> <input type="hidden" name="ie" value="UTF-8"> <label for="q" class="visually-hidden">Search</label> <div class="col"><input type="text" name="q" id="q" value="" placeholder="Search..." class="form-control search-input w-auto"></div> <div class="col"><input type="submit" name="sa" value="Search" class="btn btn-outline-primary d-inline-block d-md-none d-lg-inline-block"></div> </form> </div> <div class="deck-header-user-nav toggle-block-when-on"> <button class="btn btn-link me-2 js-toggle-trigger text-white"> <svg class="icon icon-x "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-x"></use></svg> </button> </div> <div class="deck-header-user-nav toggle-block-when-off"> <button class="btn btn-link me-2 js-toggle-trigger text-white" aria-label="Toggle Search"> <svg class="icon icon-search "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-search"></use></svg> </button> </div> <div class="deck-header-user-nav flex-grow-0 dropdown py-3"> </div> </div> </div> </div> <div class="deck-embed js-deck-embed" style="aspect-ratio:1024/576;" data-ratio="1.7772511848341233" data-state="processed"> <div class="speakerdeck-embed" data-title="false" data-skip-resize="true" data-id="2991be94f4a741bdb51fe17bb477ed3f" data-name="今どきのLinux事情" data-ratio="1.7772511848341233" data-host="speakerdeck.com"></div> </div> <div class="deck-meta"> <div class="container"> <div class="row align-items-center justify-content-between"> <div class="col-md-auto col-12 py-3"> <div class="row align-items-center justify-content-md-start"> <a class="d-flex align-items-center font-weight-bold text-white col-auto" href="/tokida"> <span class="me-2"> <img width="47" height="47" class="avatar " loading="eager" alt="" src="https://secure.gravatar.com/avatar/4241bfe2a981350a7950f3875d9f441a?s=47" /> </span> <span> tokida </span> </a> <div class="col-auto deck-date"> June 29, 2022 </div> <div class="col-auto d-none d-md-block"> </div> </div> </div> <div class="col-md-auto col-12 py-md-3 pb-3"> <div class="row justify-content-between justify-content-md-start gap-2 gap-md-0"> <div class="col-auto me-auto me-md-0 align-self-center"> <a class="text-white font-weight-bold" href="/c/technology"> <svg class="icon icon-folder "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-folder"></use></svg> Technology </a> </div> <div class="row col-auto text-white font-weight-bold"> <div class="col-auto pe-0 pe-lg-2 align-self-center"><div class="js-bookmark bookmark animated" data-talk-id="888791"> </div> </div> <div class="col-auto pe-0 pe-lg-2 align-self-center"><div class="js-stargazer stargazer animated" data-talk-id="888791"> <a class="font-weight-bold" title="Star 今どきのLinux事情" href="/signin?return_to=%2Ftokida%2Fjin-dokifalselinuxshi-qing"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 51 </a></div> </div> <div class="col-auto pe-0 pe-lg-2 align-self-center" title="55,746 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 56k</div> <div class="col-auto pe-0 pe-lg-2 align-self-center"><a title="Download PDF" class="text-white" href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/%E7%9F%A5%E8%A6%8B%E5%85%B1%E6%9C%89%E4%BC%9A_%E4%BB%8A%E3%81%A8%E3%82%99%E3%81%8D%E3%81%AELinux%E4%BA%8B%E6%83%85.pdf"><svg class="icon icon-download "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-download"></use></svg></a></div> </div> </div> </div> </div> </div> </div> </div> <div class="container py-md-5"> <div class="ads-container"><div id="bsa-zone_1710255896577-0_123456"></div></div> <h1 class="mb-4 text-break"> 今どきのLinux事情</h1> <div class="deck-description text-break mb-4"> <p>とりとめない話ですが、今どきのLinuxのパッケージングの種類とSteamDeckから一気に改善されたDirectX 周りの話です。社内の勉強会で共有した資料</p> <small><p></p></small> </div> <div class="row align-items-center td-none mb-4"> <div class="col-md-auto col-12 me-md-auto mb-4 mb-md-0"> <div class="row align-items-center"> <div class="col-auto"> <img width="128" height="128" class="avatar avatar-lg" loading="eager" alt="" src="https://secure.gravatar.com/avatar/4241bfe2a981350a7950f3875d9f441a?s=128" /> </div> <div class="col-auto ps-0"> <h2 class="m-0 h4"> <a class="text-dark" href="/tokida">tokida</a> </h2> <div class="text-muted"> June 29, 2022 </div> </div> </div> </div> <div class="col-md-auto col-12"> <div class="btn-group btn-group-flex d-flex" role="group"> <a href="https://twitter.com/intent/tweet?url=https://speakerdeck.com/tokida/jin-dokifalselinuxshi-qing&text=%E4%BB%8A%E3%81%A9%E3%81%8D%E3%81%AELinux%E4%BA%8B%E6%83%85" class="btn btn-outline-primary w-100"> <svg class="icon icon-twitter "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-twitter"></use></svg> Tweet </a> <button class="facebook-share btn btn-outline-primary w-100"> <svg class="icon icon-facebook "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-facebook"></use></svg> Share </button> </div> </div> </div> <div class="ads-container"><div id="bsa-zone_1712565778570-2_123456"></div></div> </div> <div class="bg-lightest border-top"> <div class="container py-md-4 py-3"> <div class="row mb-4 align-items-center"> <div class="col-12 col-lg-9 mb-3 mb-lg-0"> <h2 class="m-0">Other Decks in Technology</h2> </div> <div class="col-12 col-lg-3 text-lg-end"> <a class="btn btn-outline-primary" href="/c/technology"> See All in Technology <svg class="icon icon-chevron-right "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-chevron-right"></use></svg> </a> </div> </div> <div class="row"> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="41da3a9409ba419ab147fc7d1727fc03" data-slide-count="28" data-cover-image="https://files.speakerdeck.com/presentations/41da3a9409ba419ab147fc7d1727fc03/preview_slide_0.jpg?34392765"> <a class="deck-preview-link" href="/segavvy/aiezientowan-quan-nili-jie-sita" title="AIエージェント完全に理解した"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/41da3a9409ba419ab147fc7d1727fc03/preview_slide_0.jpg?34392765');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/41da3a9409ba419ab147fc7d1727fc03/preview_slide_0.jpg?34392765');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> AIエージェント完全に理解した </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/segavvy" aria-label="segavvy profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://speakerdeck.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBMGhpQWc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--0995e85ad32a5a2b7c93c6856ca5b38cf0ffd80e/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lKYW5CbFp3WTZCa1ZVT2hOeVpYTnBlbVZmZEc5ZlptbHNiRnNIYVIxcEhRPT0iLCJleHAiOm51bGwsInB1ciI6InZhcmlhdGlvbiJ9fQ==--dc834093e63ea87641c8c425cda1102df6185639/segavvy.jpeg" /> segavvy </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 4 </div> <div class="px-1 py-3"> <span title="243 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 240</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="c56f43d2553f4191865055c06dbbe927" data-slide-count="98" data-cover-image="https://files.speakerdeck.com/presentations/c56f43d2553f4191865055c06dbbe927/preview_slide_0.jpg?34424963"> <a class="deck-preview-link" href="/toma_sm/17-years-in-qa-to-scrum-master" title="17年のQA経験が導いたスクラムマスターへの道 / 17 Years in QA to Scrum Master"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/c56f43d2553f4191865055c06dbbe927/preview_slide_0.jpg?34424963');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/c56f43d2553f4191865055c06dbbe927/preview_slide_0.jpg?34424963');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> 17年のQA経験が導いたスクラムマスターへの道 / 17 Years in QA to Scrum Master </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/toma_sm" aria-label="とうま profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://speakerdeck.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBOHFaQVE9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--efa0c14545c5a6e47e8fe740aab45f2ea3c6dae1/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2RTNKbGMybDZaVjkwYjE5bWFXeHNXd2RwSFdrZCIsImV4cCI6bnVsbCwicHVyIjoidmFyaWF0aW9uIn19--4ad392f1bbc219b5ee43c69f392557817650c021/toma.png" /> toma_sm </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="333 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 330</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="a75dd6b45af44b36abd98cf6bb0b535e" data-slide-count="56" data-cover-image="https://files.speakerdeck.com/presentations/a75dd6b45af44b36abd98cf6bb0b535e/preview_slide_0.jpg?34481016"> <a class="deck-preview-link" href="/koheiyoshikawa/timubirudeingu-xie-wei-moderingu-wakusiyotupu" title="チームビルディング「脅威モデリング」ワークショップ"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/a75dd6b45af44b36abd98cf6bb0b535e/preview_slide_0.jpg?34481016');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/a75dd6b45af44b36abd98cf6bb0b535e/preview_slide_0.jpg?34481016');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> チームビルディング「脅威モデリング」ワークショップ </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/koheiyoshikawa" aria-label="こーへい profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/a60b2d5f0660101c83d4d5813cc0f8f0?s=24" /> koheiyoshikawa </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="102 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 100</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="1cf74fea34a14b05844bb355b39c0c98" data-slide-count="23" data-cover-image="https://files.speakerdeck.com/presentations/1cf74fea34a14b05844bb355b39c0c98/preview_slide_0.jpg?34402095"> <a class="deck-preview-link" href="/ymae/26-kuraudoshi-tang-lt-number-2-genuan-jian-wotong-sitexue-ndajiao-xun-deng-tan-zi-liao" title="3/26 クラウド食堂LT #2 GenU案件を通して学んだ教訓 登壇資料"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/1cf74fea34a14b05844bb355b39c0c98/preview_slide_0.jpg?34402095');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/1cf74fea34a14b05844bb355b39c0c98/preview_slide_0.jpg?34402095');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> 3/26 クラウド食堂LT #2 GenU案件を通して学んだ教訓 登壇資料 </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/ymae" aria-label="y-mae profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/8988dfc5852e6eb993745fe275e4803f?s=24" /> ymae </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 1 </div> <div class="px-1 py-3"> <span title="181 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 180</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="5e00b0d442f74e3ebc07de7672b19a02" data-slide-count="17" data-cover-image="https://files.speakerdeck.com/presentations/5e00b0d442f74e3ebc07de7672b19a02/preview_slide_0.jpg?34426693"> <a class="deck-preview-link" href="/kkato1/chu-metenopostgresqlmeziyabaziyonatupu" title="初めてのPostgreSQLメジャーバージョンアップ"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/5e00b0d442f74e3ebc07de7672b19a02/preview_slide_0.jpg?34426693');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/5e00b0d442f74e3ebc07de7672b19a02/preview_slide_0.jpg?34426693');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> 初めてのPostgreSQLメジャーバージョンアップ </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/kkato1" aria-label="Ken Kato profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://speakerdeck.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBL2RBQVE9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--a1ae5a6c5aad0c665d549088674811d488fba4c4/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lKYW5CbFp3WTZCa1ZVT2hOeVpYTnBlbVZmZEc5ZlptbHNiRnNIYVIxcEhRPT0iLCJleHAiOm51bGwsInB1ciI6InZhcmlhdGlvbiJ9fQ==--dc834093e63ea87641c8c425cda1102df6185639/2N7A2305.jpeg" /> kkato1 </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="341 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 340</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="d58a1d80e0eb425ca823cbcee8daba4c" data-slide-count="25" data-cover-image="https://files.speakerdeck.com/presentations/d58a1d80e0eb425ca823cbcee8daba4c/preview_slide_0.jpg?34343207"> <a class="deck-preview-link" href="/hiyanger/beginner-cloud-engineers-skills" title="これからクラウドエンジニアになるために本当に必要なスキル 5選"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/d58a1d80e0eb425ca823cbcee8daba4c/preview_slide_0.jpg?34343207');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/d58a1d80e0eb425ca823cbcee8daba4c/preview_slide_0.jpg?34343207');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> これからクラウドエンジニアになるために本当に必要なスキル 5選 </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/hiyanger" aria-label="hiyanger profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://speakerdeck.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBM21NQVE9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--b653358a1cec449ec6c883240db9142ddb4d822b/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lJYW5CbkJqb0dSVlE2RTNKbGMybDZaVjkwYjE5bWFXeHNXd2RwSFdrZCIsImV4cCI6bnVsbCwicHVyIjoidmFyaWF0aW9uIn19--9921bc95938c5ab6808e7bcfc69ae1cceac36ef1/QfeVHcZw_400x400.jpg" /> hiyanger </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 1 </div> <div class="px-1 py-3"> <span title="460 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 460</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="dc3126b8fbe74d358ef8f65f82cc151a" data-slide-count="20" data-cover-image="https://files.speakerdeck.com/presentations/dc3126b8fbe74d358ef8f65f82cc151a/preview_slide_0.jpg?34408211"> <a class="deck-preview-link" href="/takano0131/amazon-q-developer-ta-cheng-aito-jiao-sitemita" title=" Amazon Q Developer 他⽣成AIと⽐較してみた"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/dc3126b8fbe74d358ef8f65f82cc151a/preview_slide_0.jpg?34408211');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/dc3126b8fbe74d358ef8f65f82cc151a/preview_slide_0.jpg?34408211');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Amazon Q Developer 他⽣成AIと⽐較してみた </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/takano0131" aria-label="Takano profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/0b6c6cb421f5e4bfaf7afb781b8e8db5?s=24" /> takano0131 </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 1 </div> <div class="px-1 py-3"> <span title="117 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 120</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="da982c9c49024b5e861d126567586385" data-slide-count="46" data-cover-image="https://files.speakerdeck.com/presentations/da982c9c49024b5e861d126567586385/preview_slide_0.jpg?34346828"> <a class="deck-preview-link" href="/murachiakira/gurupuporisizai-que-ren" title="グループポリシー再確認"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/da982c9c49024b5e861d126567586385/preview_slide_0.jpg?34346828');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/da982c9c49024b5e861d126567586385/preview_slide_0.jpg?34346828');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> グループポリシー再確認 </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/murachiakira" aria-label="Murachi Akira profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/294d78d3de099b5824891a63a82aec2c?s=24" /> murachiakira </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="160 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 160</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="ea4ac01af18745b089ade4007ce2016c" data-slide-count="55" data-cover-image="https://files.speakerdeck.com/presentations/ea4ac01af18745b089ade4007ce2016c/preview_slide_0.jpg?34365353"> <a class="deck-preview-link" href="/sakitakamachi/bcmath-performance-improvement-explanation" title="BCMathを高速化した一部始終をC言語でガチ目に解説する / BCMath performance improvement explanation"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/ea4ac01af18745b089ade4007ce2016c/preview_slide_0.jpg?34365353');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/ea4ac01af18745b089ade4007ce2016c/preview_slide_0.jpg?34365353');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> BCMathを高速化した一部始終をC言語でガチ目に解説する / BCMath performance improvement explanation </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/sakitakamachi" aria-label="Saki Takamachi profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://speakerdeck.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBNXpvQWc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--eff7e4f3f0343931d5fb9f539265e6a4bfc27c3e/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lKYW5CbFp3WTZCa1ZVT2hOeVpYTnBlbVZmZEc5ZlptbHNiRnNIYVIxcEhRPT0iLCJleHAiOm51bGwsInB1ciI6InZhcmlhdGlvbiJ9fQ==--dc834093e63ea87641c8c425cda1102df6185639/34942839.jpeg" /> sakitakamachi </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 2 </div> <div class="px-1 py-3"> <span title="1,196 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 1.2k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="2101ea9ab17b435b9f0a1458c10664ba" data-slide-count="38" data-cover-image="https://files.speakerdeck.com/presentations/2101ea9ab17b435b9f0a1458c10664ba/preview_slide_0.jpg?34359491"> <a class="deck-preview-link" href="/salaboy/kcd-brazil-25-enabling-developers-with-dapr-and-backstage" title="KCD Brazil '25: Enabling Developers with Dapr & Backstage"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/2101ea9ab17b435b9f0a1458c10664ba/preview_slide_0.jpg?34359491');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/2101ea9ab17b435b9f0a1458c10664ba/preview_slide_0.jpg?34359491');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> KCD Brazil '25: Enabling Developers with Dapr & Backstage </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/salaboy" aria-label="Salaboy profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/7666e02db7c2afa17051ef9d480443d1?s=24" /> salaboy </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 1 </div> <div class="px-1 py-3"> <span title="120 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 120</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="8d99f28707664b17884c5699a5e2da60" data-slide-count="22" data-cover-image="https://files.speakerdeck.com/presentations/8d99f28707664b17884c5699a5e2da60/preview_slide_0.jpg?34398785"> <a class="deck-preview-link" href="/kaomi_wombat/nian-mo-diao-zheng-purodakutononei-bu-pin-zhi-gai-shan-huo-dong-nituite" title="年末調整プロダクトの内部品質改善活動について"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/8d99f28707664b17884c5699a5e2da60/preview_slide_0.jpg?34398785');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/8d99f28707664b17884c5699a5e2da60/preview_slide_0.jpg?34398785');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> 年末調整プロダクトの内部品質改善活動について </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/kaomi_wombat" aria-label="kaomi profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://speakerdeck.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBNlRyQWc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--911e1867ec3f1992ec3cf33d8aed2f02b839703d/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2RTNKbGMybDZaVjkwYjE5bWFXeHNXd2RwSFdrZCIsImV4cCI6bnVsbCwicHVyIjoidmFyaWF0aW9uIn19--4ad392f1bbc219b5ee43c69f392557817650c021/kyomu.png" /> kaomi_wombat </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="150 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 150</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="1151c11dcf874144ad3381dd4a79b5eb" data-slide-count="39" data-cover-image="https://files.speakerdeck.com/presentations/1151c11dcf874144ad3381dd4a79b5eb/preview_slide_0.jpg?34329708"> <a class="deck-preview-link" href="/xpmatteo/why-go" title="Why Go?"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/1151c11dcf874144ad3381dd4a79b5eb/preview_slide_0.jpg?34329708');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/1151c11dcf874144ad3381dd4a79b5eb/preview_slide_0.jpg?34329708');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Why Go? </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/xpmatteo" aria-label="Matteo Vaccari profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/4c8f1734faea8b7b2db0ea4bf4ebbf66?s=24" /> xpmatteo </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="127 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 130</span> </div> </div> </div> </div> </div> <div class="row mb-4 align-items-center"> <div class="col-12 col-lg-9 mb-3 mb-lg-0"> <h2 class="m-0">Featured</h2> </div> <div class="col-12 col-lg-3 text-lg-end"> <a class="btn btn-outline-primary" href="/p/featured"> See All Featured <svg class="icon icon-chevron-right "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-chevron-right"></use></svg> </a> </div> </div> <div class="row"> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="ec2a21ffb4184ba99d98b566b485dd70" data-slide-count="58" data-cover-image="https://files.speakerdeck.com/presentations/ec2a21ffb4184ba99d98b566b485dd70/preview_slide_0.jpg?15365342"> <a class="deck-preview-link" href="/rmw/refactoring-trust-on-your-teams-goto-chicago-2020" title="Refactoring Trust on Your Teams (GOTO; Chicago 2020)"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/ec2a21ffb4184ba99d98b566b485dd70/preview_slide_0.jpg?15365342');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/ec2a21ffb4184ba99d98b566b485dd70/preview_slide_0.jpg?15365342');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Refactoring Trust on Your Teams (GOTO; Chicago 2020) </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/rmw" aria-label="Rebecca Miller-Webster profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/a9a491b0fcbe0fbce3d64063a37add99?s=24" /> rmw </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 34 </div> <div class="px-1 py-3"> <span title="2,878 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 2.9k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="1f957e89563b440d96c16986507b790f" data-slide-count="134" data-cover-image="https://files.speakerdeck.com/presentations/1f957e89563b440d96c16986507b790f/preview_slide_0.jpg?6057032"> <a class="deck-preview-link" href="/marcelosomers/fight-the-zombie-pattern-library-rwd-summit-2016" title="Fight the Zombie Pattern Library - RWD Summit 2016"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/1f957e89563b440d96c16986507b790f/preview_slide_0.jpg?6057032');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/1f957e89563b440d96c16986507b790f/preview_slide_0.jpg?6057032');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Fight the Zombie Pattern Library - RWD Summit 2016 </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/marcelosomers" aria-label="Marcelo Somers profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/9fa239b3154a0169d99ab7bf1422dd12?s=24" /> marcelosomers </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 233 </div> <div class="px-1 py-3"> <span title="16,852 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 17k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="704d7f2694fa43559e0afc488a0c810c" data-slide-count="78" data-cover-image="https://files.speakerdeck.com/presentations/704d7f2694fa43559e0afc488a0c810c/preview_slide_0.jpg?6831025"> <a class="deck-preview-link" href="/rocio/yessql-process-and-tooling-at-scale" title="YesSQL, Process and Tooling at Scale"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/704d7f2694fa43559e0afc488a0c810c/preview_slide_0.jpg?6831025');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/704d7f2694fa43559e0afc488a0c810c/preview_slide_0.jpg?6831025');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> YesSQL, Process and Tooling at Scale </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/rocio" aria-label="Rocio Delgado profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/d09fad3e36ae6841f54820be0e907f7a?s=24" /> rocio </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 172 </div> <div class="px-1 py-3"> <span title="14,178 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 14k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="e375f41b5dc84ae8a41b6c5f9d8fe544" data-slide-count="55" data-cover-image="https://files.speakerdeck.com/presentations/e375f41b5dc84ae8a41b6c5f9d8fe544/preview_slide_0.jpg?32770706"> <a class="deck-preview-link" href="/addyosmani/chrome-devtools-state-of-the-union-2024-debugging-react-and-beyond" title="Chrome DevTools: State of the Union 2024 - Debugging React & Beyond"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/e375f41b5dc84ae8a41b6c5f9d8fe544/preview_slide_0.jpg?32770706');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/e375f41b5dc84ae8a41b6c5f9d8fe544/preview_slide_0.jpg?32770706');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Chrome DevTools: State of the Union 2024 - Debugging React & Beyond </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/addyosmani" aria-label="Addy Osmani profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/96270e4c3e5e9806cf7245475c00b275?s=24" /> addyosmani </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 4 </div> <div class="px-1 py-3"> <span title="464 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 460</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="4e72275f20448a003c000b3b" data-slide-count="109" data-cover-image="https://files.speakerdeck.com/presentations/4e72275f20448a003c000b3b/preview_slide_0.jpg?532287"> <a class="deck-preview-link" href="/destraynor/the-language-of-interfaces" title="The Language of Interfaces"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/4e72275f20448a003c000b3b/preview_slide_0.jpg?532287');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/4e72275f20448a003c000b3b/preview_slide_0.jpg?532287');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> The Language of Interfaces </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/destraynor" aria-label="Des Traynor profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/fde6c3a50ca518a909ef35c22c0ee0e4?s=24" /> destraynor </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 156 </div> <div class="px-1 py-3"> <span title="24,351 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 24k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="76ff3a902e8b0131b9452adb14392f56" data-slide-count="203" data-cover-image="https://files.speakerdeck.com/presentations/76ff3a902e8b0131b9452adb14392f56/preview_slide_0.jpg?2273607"> <a class="deck-preview-link" href="/addyosmani/velocityconf-rendering-performance-case-studies" title="VelocityConf: Rendering Performance Case Studies"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/76ff3a902e8b0131b9452adb14392f56/preview_slide_0.jpg?2273607');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/76ff3a902e8b0131b9452adb14392f56/preview_slide_0.jpg?2273607');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> VelocityConf: Rendering Performance Case Studies </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/addyosmani" aria-label="Addy Osmani profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/96270e4c3e5e9806cf7245475c00b275?s=24" /> addyosmani </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 328 </div> <div class="px-1 py-3"> <span title="23,821 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 24k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="9e4370b01fb901312c650a36078c81b4" data-slide-count="236" data-cover-image="https://files.speakerdeck.com/presentations/9e4370b01fb901312c650a36078c81b4/preview_slide_0.jpg?2173836"> <a class="deck-preview-link" href="/addyosmani/automating-front-end-workflow" title="Automating Front-end Workflow"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/9e4370b01fb901312c650a36078c81b4/preview_slide_0.jpg?2173836');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/9e4370b01fb901312c650a36078c81b4/preview_slide_0.jpg?2173836');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Automating Front-end Workflow </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/addyosmani" aria-label="Addy Osmani profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/96270e4c3e5e9806cf7245475c00b275?s=24" /> addyosmani </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 1369 </div> <div class="px-1 py-3"> <span title="203,311 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 200k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="8417c2702802013087b01231380e48bd" data-slide-count="40" data-cover-image="https://files.speakerdeck.com/presentations/8417c2702802013087b01231380e48bd/preview_slide_0.jpg?873189"> <a class="deck-preview-link" href="/tammielis/designing-for-humans-not-robots" title="Designing for humans not robots"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/8417c2702802013087b01231380e48bd/preview_slide_0.jpg?873189');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/8417c2702802013087b01231380e48bd/preview_slide_0.jpg?873189');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Designing for humans not robots </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/tammielis" aria-label="Tammie Lister profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/d36d2c1821af9249b69ff7f5ed60529b?s=24" /> tammielis </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 250 </div> <div class="px-1 py-3"> <span title="25,231 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 25k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="3c09f9c42e12490d87f92f7c6ad8aa25" data-slide-count="48" data-cover-image="https://files.speakerdeck.com/presentations/3c09f9c42e12490d87f92f7c6ad8aa25/preview_slide_0.jpg?10434370"> <a class="deck-preview-link" href="/maltzj/code-reviewing-like-a-champion" title="Code Reviewing Like a Champion"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/3c09f9c42e12490d87f92f7c6ad8aa25/preview_slide_0.jpg?10434370');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/3c09f9c42e12490d87f92f7c6ad8aa25/preview_slide_0.jpg?10434370');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Code Reviewing Like a Champion </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/maltzj" aria-label="maltzj profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/c7393b7ba7ec9c8890dd77d209fbb3c9?s=24" /> maltzj </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 521 </div> <div class="px-1 py-3"> <span title="39,463 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 39k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="f925d98cb36648b3b5b4b1247a9fddfb" data-slide-count="108" data-cover-image="https://files.speakerdeck.com/presentations/f925d98cb36648b3b5b4b1247a9fddfb/preview_slide_0.jpg?31972824"> <a class="deck-preview-link" href="/eileencodes/the-myth-of-the-modular-monolith-day-2-keynote-rails-world-2024" title="The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/f925d98cb36648b3b5b4b1247a9fddfb/preview_slide_0.jpg?31972824');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/f925d98cb36648b3b5b4b1247a9fddfb/preview_slide_0.jpg?31972824');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024 </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/eileencodes" aria-label="Eileen M. Uchitelle profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/c44e1f7e22c3f23cff7bc130871047ef?s=24" /> eileencodes </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 22 </div> <div class="px-1 py-3"> <span title="2,574 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 2.6k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="2b31e26cb4364bd49ee5cfcdd47c4535" data-slide-count="94" data-cover-image="https://files.speakerdeck.com/presentations/2b31e26cb4364bd49ee5cfcdd47c4535/preview_slide_0.jpg?9079989"> <a class="deck-preview-link" href="/notwaldorf/how-to-train-your-dragon-web-standard" title="How to train your dragon (web standard)"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/2b31e26cb4364bd49ee5cfcdd47c4535/preview_slide_0.jpg?9079989');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/2b31e26cb4364bd49ee5cfcdd47c4535/preview_slide_0.jpg?9079989');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> How to train your dragon (web standard) </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/notwaldorf" aria-label="Monica Dinculescu profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/053e75a5b48b44d6dd0612795dfb326d?s=24" /> notwaldorf </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 91 </div> <div class="px-1 py-3"> <span title="5,927 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 5.9k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="a95177e514ac4fc7b4e95b735724b965" data-slide-count="101" data-cover-image="https://files.speakerdeck.com/presentations/a95177e514ac4fc7b4e95b735724b965/preview_slide_0.jpg?26165331"> <a class="deck-preview-link" href="/addyosmani/the-cost-of-javascript-in-2023" title="The Cost Of JavaScript in 2023"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/a95177e514ac4fc7b4e95b735724b965/preview_slide_0.jpg?26165331');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/a95177e514ac4fc7b4e95b735724b965/preview_slide_0.jpg?26165331');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> The Cost Of JavaScript in 2023 </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/addyosmani" aria-label="Addy Osmani profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/96270e4c3e5e9806cf7245475c00b275?s=24" /> addyosmani </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-star"></use></svg> 48 </div> <div class="px-1 py-3"> <span title="7,583 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-eye"></use></svg> 7.6k</span> </div> </div> </div> </div> </div> </div> </div> <div id="transcript" class="container py-4 transcript text-break"> <h2 class="mb-4">Transcript</h2> <ol> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="知見共有会 今どき Linux事情 サーバサイドじゃないデスクトップLinux 話 2022/..." title="今どきのLinux事情 知見共有会 今どき Linux事情 サーバサイドじゃないデスクトップLinux 話 2022/..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_0.jpg">知見共有会 今どき Linux事情 サーバサイドじゃないデスクトップLinux 話 2022/6/30</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="なんか沢山読まれているよな で・・ 2022/07/02 ● 誤ったままだと申し訳ない で指摘..." title="今どきのLinux事情 なんか沢山読まれているよな で・・ 2022/07/02 ● 誤ったままだと申し訳ない で指摘..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_1.jpg">なんか沢山読まれているよな で・・ 2022/07/02 • 誤ったままだと申し訳ない で指摘を受けている場所を修正(加筆)してあります(特に固有名詞 部分)。記憶が薄れているところ まぁそ ままにしている</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="UNIXと 出会い 1994年頃 FreeBSD(Windows/DOS環境で TCP/IPス..." title="今どきのLinux事情 UNIXと 出会い 1994年頃 FreeBSD(Windows/DOS環境で TCP/IPス..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_2.jpg">UNIXと 出会い 1994年頃 FreeBSD(Windows/DOS環境で TCP/IPスタックが有料ソフト(ChameleonTCP/IP使っていた)だったころ)(※Linuxが登場した、RedHatも)大学が AIX(UNIX)だった(SP1という巨大な集中型 ハードウェアで結構衝撃だったなぁ) X Window System</a> </h3> (XFree86) をMake Worldすると1日かかっても終わらない 1996年頃 Linux ドライバが少なくてろくに動かず入れたけど消した。FreeBSD最高!Linux 確かこ 頃ペンギンになった。 研究室が電子科AIX、機械科HPUX、生物科Macというカオス状態だった。グローバルIPが教室に配られていた。Firewall設置反対!謎 通信 頻繁 にあった。ハッキングを受けると電話でクレームが来るという良き時代(商用インターネット 開始した かり) 2000年前後 入社した で会社 PCにFreeBSD入れた(VMWAREが登場した、ESX Tarだった、こ ためにLinuxに変えた) 会社 Firewallとかいうも が邪魔だった でDMZに自分 Debian設置してリモートで入っていた(きっと夢だ ) 家 PC BeOSとKondara Linux( りでできた国産Linuxディストロ)2002年頃に解散・・ LibraOfficeがメジャーな巨大系、Make World終わらない(C++ 遅い/勝手な印象) 2005年頃 家 PC ずっとLinuxだった(こ 頃 WineでDiablo2 Privateサーバ運用していた気がするが、ボロアパートへ 落雷でマザーボードごと飛んだ。 サージ 必要だ)確かディストロ Debianだったなぁ。 だんだん会社 規制が厳しくなった。会社 PC Macbook(久しぶりにUNIX、正式になった も少しあとかな?)に変えた 2007年頃 iPhone(とうかTouch)が登場、こ あと数年 アプリ作ったり色々してモバイル っかり(BSDUNIXだな) 会社 PCがWindowになるし(Mac 返された)、自由がなくなってきた。こ 頃 もうクラウドが出てきた もあるし、自分 家でサーバ起動したくない で色々フラフラしていた 2020年頃 ずっとMacだった が急にPC−Unixにもどった。ずっと入れたりして遊んでいたけどメインマシンとして使っている ここ3,4年かな ArchLinux ローリングでいい感じ、し らくMintを使っていたけどいま POP_OSが一番おすすめ(NvidiaGPU持っている人 特に) 長い時間がかかったけどようやくWindows/Mac並にデスクトップが使えるようになってきた。 </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="おじさんむけ豆知識 UNIX じめて高水準言語Cで 書かれたOS。初めて キャラクタ 端末 ゲ..." title="今どきのLinux事情 おじさんむけ豆知識 UNIX じめて高水準言語Cで 書かれたOS。初めて キャラクタ 端末 ゲ..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_3.jpg">おじさんむけ豆知識 UNIX じめて高水準言語Cで 書かれたOS。初めて キャラクタ 端末 ゲームRogue UNIX ゲーム(DEC UNIX)</a> </h3> いま もうSystemVとかBSDとか 言わなくなってすっかり「Linux」 派閥 話 かりなんだけどOS シェアからいえ 「macOSとiOS」 がUNIXを牽引していると言えま す ぇ 学生時代NextStepがほしかっ た。 </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="今日 話題 きっと誰も興味ないが適当に話したい話題を選んだ 特にまとめとかない。 ● Linu..." title="今どきのLinux事情 今日 話題 きっと誰も興味ないが適当に話したい話題を選んだ 特にまとめとかない。 ● Linu..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_4.jpg">今日 話題 きっと誰も興味ないが適当に話したい話題を選んだ 特にまとめとかない。 • Linuxパッケージ事情 • Game業界がもたらしたWine 互換性向上 影響とX周り</a> </h3> 最新情報 </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="基本にもどってWhat is Linux? こ あと 話 流れもある で ● Linux 、P..." title="今どきのLinux事情 基本にもどってWhat is Linux? こ あと 話 流れもある で ● Linux 、P..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_5.jpg">基本にもどってWhat is Linux? こ あと 話 流れもある で • Linux</a> </h3> 、POSIX準拠 オープンソース OS • Linux カーネル部分 Linuxカーネル が「Linux」でGNU ライセンスで配布 • モジュラー型 モノリシックカーネル設 計(対抗 マイクロカーネル。ただ昨今 モジュールロードできる でマイクロ カーネルチック) • SMP/NUMA対応並列コンピュータ • 仮想メモリ管理、プロセス間通信 • OSレベルで 仮想化、準仮想化、HW 仮想化など • デバイス カネールスペースで実行さ れる、昨今で GPU Direct Rendering Manager(DRM)で動く </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="What is Distribution ? Kernelだけじゃ使えない で周辺 コマンドや..." title="今どきのLinux事情 What is Distribution ? Kernelだけじゃ使えない で周辺 コマンドや..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_6.jpg">What is Distribution ? Kernelだけじゃ使えない で周辺 コマンドやインストー ラーを取り揃えたも が「ディストリビューション」。RedHat社 提供する「RHEL」やOpensourceで提供される「Arch</a> </h3> Linux」など。 乱立しているけど派閥 ある。BSDとSystemV ように • RPM派:代表 RHEL強い • DEB派:Debianから 派生でUbuntuが有名どころ https://distrowatch.com/?language=JP </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="おじさんむけ豆知識 ● 最近流行り キーワード 「ディストロレス」システム ○ コンテナ 時代..." title="今どきのLinux事情 おじさんむけ豆知識 ● 最近流行り キーワード 「ディストロレス」システム ○ コンテナ 時代..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_7.jpg">おじさんむけ豆知識 • 最近流行り キーワード 「ディストロレス」システム ◦ コンテナ 時代によく利用されるディストロ →AlpineLinux ◦</a> </h3> 更に小さくするために Kernel+最小限 ライブラリ+実行処理プログラムだけで動作している Linuxシ ステム こと。Shellとかそういったも も入れない ◦ AlpineとGoogleがやっている ◦ https://github.com/GoogleContainerTools/distroless ◦ https://github.com/chainguard-dev/apko ◦ フットプリントが小さけれ 小さいほど Kubernetesなどで 起動も早くなる(※正確に 起動以上に Imageを実行NodeにNetwork Copyする時間が削減される)、余計なも がない で脆弱性にも強 い </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="おじさんむけ豆知識 ● コンフィグ ~/.xxx 時代遅れ ● いま 、~/.config/(..." title="今どきのLinux事情 おじさんむけ豆知識 ● コンフィグ ~/.xxx 時代遅れ ● いま 、~/.config/(..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_8.jpg">おじさんむけ豆知識 • コンフィグ ~/.xxx 時代遅れ • いま 、~/.config/(APPName)/各種ファイル が基本 • 個人</a> </h3> アプリ .local に入れる が正しい( /usr(opt)/localとか入れない • 例え デスクトップ上 アイコン 定義 、 .local/share/application/xxx.destopに 保管されていて中身 記述定義も共通化されている(なんとなく)。でGTKもQtも同 じも を見るようになっている でど Window ManagerでもDesktopにアイコンが 表示される ◦ 当たり前 ようなことだけど、 OSS 集合体でこ ように企画が徐々に統一されてきて互換性が高 まっている 素晴らしい事。一昔前 カオスだった。 </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="パッケージ配布 遷移 ● 従来・・APT/DEBといったディストリビューションで決められたパッ..." title="今どきのLinux事情 パッケージ配布 遷移 ● 従来・・APT/DEBといったディストリビューションで決められたパッ..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_9.jpg">パッケージ配布 遷移 • 従来・・APT/DEBといったディストリビューションで決められたパッケージ配布が基 本だった ◦ ディストリ 派閥が「パッケージ種類で呼 れるように」非常に大事なポイントだった(何が標準で使 えるかがディストリに依存していた)</a> </h3> • 昨今・・コンテナ化されたアプリケーション配布が登場(特にユーザが利用するアプ リ こ 形式で配布される。ディストリビューションを考慮する必要が最低限で済む 様になった。専用 ストア/Repoも登場している) ◦ 今日 題材 現在有名な3つ ▪ AppImage ▪ Snap ▪ Flatpak ◦ 個人的に 、iPhoneから 流れも強く感じる(コンテナ+ストア) </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="代表的な特徴 Snap AppImage Flatpak Install 必要 不要 必要 共..." title="今どきのLinux事情 代表的な特徴 Snap AppImage Flatpak Install 必要 不要 必要 共..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_10.jpg">代表的な特徴 Snap AppImage Flatpak Install 必要 不要 必要 共有ランタイ ム</a> </h3> ベーシック ない フル サンドボック ス AppArmorと密結合 カスタム(Firejailや AppArmorなど) Bubblewarpと密結合 リポジトリ ある ない ある 中央リポジト リ ある ない ない アップデート 自動 手動 自動 </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="代表的な特徴 Snap AppImage Flatpak テーマがシ ステムとマッ チ しない..." title="今どきのLinux事情 代表的な特徴 Snap AppImage Flatpak テーマがシ ステムとマッ チ しない..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_11.jpg">代表的な特徴 Snap AppImage Flatpak テーマがシ ステムとマッ チ しない する する</a> </h3> サンドボック ス化しないで 実行 可能 可能 不可能 サイズ例 VLC 204MB 53.2MB 78M 触発された 概念 Ubunt Touch パッケージ .dmg内 macOS.appなど kilk(以前 AppImage) 起動 度 3 1 2 http://baker-street.jugem.jp/?eid=25から 抜粋 </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="今どき ? ● アプリを入れるならFlakpakが便利 ● 以前と 違ってアプリ Flakpa..." title="今どきのLinux事情 今どき ? ● アプリを入れるならFlakpakが便利 ● 以前と 違ってアプリ Flakpa..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_12.jpg">今どき ? • アプリを入れるならFlakpakが便利 • 以前と 違ってアプリ FlakpakやAppImageなどで 入れる時代になっている •</a> </h3> 複雑な依存関係があるようなも Snapだとまるごと 入る(ただサイズがでかい で注意) • FlakpakもSnapも、ごにょごにょとローカル環境を見る ことができる でなぜか動作側 IME(日本語入力)も うごくし、下手すれ テーマも一緒に変わってくれる • コンテナ化 利点でシステムを汚さずに入れることが できる が最大 メリット </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="おじさんむけ豆知識 ● 似たようなも これまであんまりなかった ● Mac 昔から1バイナリ形..." title="今どきのLinux事情 おじさんむけ豆知識 ● 似たようなも これまであんまりなかった ● Mac 昔から1バイナリ形..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_13.jpg">おじさんむけ豆知識 • 似たようなも これまであんまりなかった • Mac 昔から1バイナリ形式(中身 Zipで圧縮されていてユーザから 見えない) →</a> </h3> iOSでもこれ 同じ • iOS アプリ これら ヒントになった感じで完全に「サンドボックス化」されたアプリ を身近に感じた ず(不便な点も)、アプリ間で通信するために 何らか 許可等 が必要。iOS こ あたりこ 10年でめっちゃこなれてきた。 ◦ アプリが完全にサンドボックス化して、ユーザモードで実行されている。 ◦ カーネルモードやシステムコールに近いところを変更できるアプリ 長い間登場してなかった(な でVPNや、日本語変換 なかなか出てこなかったです 。特に日本語変換 すべて アプリから 動く でかなり「危険」度 高いアプリ) </div> </li> <li class="mb-2"> <div class="slide-transcript"> <a class="text-muted font-italic" href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_14.jpg">None</a> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Game on Linuxが急 に変化 Valve(バルブ)社が、LinuxOS(ArchLi..." title="今どきのLinux事情 Game on Linuxが急 に変化 Valve(バルブ)社が、LinuxOS(ArchLi..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_15.jpg">Game on Linuxが急 に変化 Valve(バルブ)社が、LinuxOS(ArchLinuxBase) SteamOSを搭載した、携帯端末 SteamDeckを発表。大手PCゲーム Steamプラットフォーム 携帯ゲームとして登場。 •</a> </h3> 本来 Windows用 ゲームを実行 ◦ Steam 対応OS 分類 、Windows/macos/Linuxに分類される ◦ Linuxに対応していないWindowsゲームもSteamDeckで 実行可能 • アクティブユーザ1億2000万、SteamOS 1%(120万) Linuxユーザって正直あんまり普及することに興味がないと思っているけど、 SteamDeckでちょっとシェアが伸びているし使う人が増えると良くなっていく で純粋に 嬉しい </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="本来 Windows用 ゲームを実行するWINE 単純に考えれ エミュレーション・・な ですが..." title="今どきのLinux事情 本来 Windows用 ゲームを実行するWINE 単純に考えれ エミュレーション・・な ですが..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_16.jpg">本来 Windows用 ゲームを実行するWINE 単純に考えれ エミュレーション・・な ですが、 Linux上で Winowsアプリケー ション 実行に</a> </h3> 長い歴史がある です。 wine is not an emulator WINE 、Windowsバイナリを直接Linux上で実行するため プログラム。 wine notepad.exe ように使う エミュレーションで なく互換レイヤー。、 notepad.exeに必要なWindows Dllや システム ファイル群などすべて 独自に用意されている。 例え .wine/drive_c/windows/system32/**.dll など ようになっている。実行ア プリごとに「サンドボックス」として .wineを使うことができるため安全にアプリケー ションをインストールして利用することができる。 互換性を上げるために、実際 dllを利用(Override)して実行することも可能。 Hardware Kernel Module X Window system (graphics system) Wine (win32api) Windows application </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Steamが一気に進歩させた領域 - 3D環境 Windows ゲーム 主流 、Microso..." title="今どきのLinux事情 Steamが一気に進歩させた領域 - 3D環境 Windows ゲーム 主流 、Microso..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_17.jpg">Steamが一気に進歩させた領域 - 3D環境 Windows ゲーム 主流 、Microsoft DirectX。 • DirectX12/11/10/9</a> </h3> をWINE 上で実装が必要 ◦ Direct3D12 実装 ▪ vkd3dライブラリを利用して実装されている ▪ vkd3d Valkan上 3DグラフィックAPI ◦ DirectX9/10/11 ▪ DXVKを利用して実装(DirectXon Valkan) ▪ DXVK Valkan上 3DグラフィックスAPI ◦ ちなみみに実態 Wine用 d2d10.dllなどで提供される • Linux側で Vulkanが利用されている ◦ これ以外にもOpenGLなどにも対応 OpenGL DirectX/Diu rect3D Linux/Unix Windows WineD3D Wine D3D12 Vulkan vkd3d Wine DXVK </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Valve Direct3D12と 互換性を向上 ● 互換性を向上させた、VKD3D−Prot..." title="今どきのLinux事情 Valve Direct3D12と 互換性を向上 ● 互換性を向上させた、VKD3D−Prot..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_18.jpg">Valve Direct3D12と 互換性を向上 • 互換性を向上させた、VKD3D−ProtonというWineから フォークした環境を利用 • これまで動かないWindows系 ツール含めてかなり 精度</a> </h3> で普通に動く(Easy Anti-Cheat/BattlEyeが入っていると動 かない) • オーバーヘッド無い でWindowsとパフォーマンス 落ちな い。場合によって 早い。 • そもそもDirectXよりもVulkanが高 • NVIDIA Vulkanをサポート • Vulkan自体 マルチプラットフォーム 対応 APIな でそもそも普及が じまっている OpenGL DirectX/Diu rect3D Linux/Unix Windows WineD3D Wine D3D12 Vulkan vkd3d Wine DXVK Intel vukulan-intel NVIDIA nvidia AMD vulkan-redeon amdvlk vauklan=amgpu-p ro Linux 世界 WINE 世界 EACとBattlEye 最近 バージョンで Linux, Macに対応 するうになったそうです! </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="おじさんむけ豆知識 ここ10年位きっと知らないと思う で整理 OpenGL もともとIrisG..." title="今どきのLinux事情 おじさんむけ豆知識 ここ10年位きっと知らないと思う で整理 OpenGL もともとIrisG..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_19.jpg">おじさんむけ豆知識 ここ10年位きっと知らないと思う で整理 OpenGL もともとIrisGLな。クロスプラットフォームでスタンダードな位置づけVersion5でVulkanに生 まれ変わる DirectX Microsoft Windows向け API。最新</a> </h3> DirectX12。最も多く タイトルが作られている。 主流なんだけどモバイル 中で 使ってない が欠点 GNM/GNMX/GNM++ プレステ用 API NVN スイッチ用 API Metal macOS M1/M2チップに最適化されたApple謹製API ちょっと命令が少ないようでDirectXとか でラッピング出来たりしない でここ数年macOS ゲーム 壊滅したが、なにせiOSがある でMetal自体 かなり普及しているも 一つ (だと思う)※iOS それまで OpenGL ESだった Vulkan クロスプラットフォーム 本命(ちなみにAndroid(Google)がVulkan開発に 関わってい る)。これでモバイル Vulkan vs Metalになった。 </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="macOSでWINEって? ● 動く、動く だが、M1チップ アーキテクチャが違う ● WIN..." title="今どきのLinux事情 macOSでWINEって? ● 動く、動く だが、M1チップ アーキテクチャが違う ● WIN..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_20.jpg">macOSでWINEって? • 動く、動く だが、M1チップ アーキテクチャが違う • WINE あくまでもそ OS アーキテクチャ上で動かすため</a> </h3> ライブラリに過ぎな い。 • つまり、M1チップでWINE 動くが、動くWindowsバイナリ ARM版である必要が ある。(ARM向けWindowsであれ サクサク動くな) • チップセットをエミュレーションするに 例え Qemuなどで仲介する • 商用 CrossOver20(Wine)で Win32/64 Windowsアプリが動く • が!macbookなどに NVIDIA 乗ってない でDirectXが動かない! • Vulkan-metal MoltenVKがあるんだけど、逆があれ DirectXもうごくかも? BOX86 WINE Windows Application macOS </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="XとWayland レッドハットに在籍してたXorg エンジニアが開発したX11 代替。なんだ..." title="今どきのLinux事情 XとWayland レッドハットに在籍してたXorg エンジニアが開発したX11 代替。なんだ..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_21.jpg">XとWayland レッドハットに在籍してたXorg エンジニアが開発したX11 代替。なんだったんだけど あんまりにも安定しなかったりしてさほど普及してない(ように見えてじわじわと知らない うちにWaylandがディフォルトになっている)互換性確保 ために、XWaylandという Waylandクライアントがあり利用者として 体感的に なにも違いを感じることなく利用</a> </h3> することができている。 が!Gamingユーザに ちょっと不評(解像度が変えれないとか諸々) しかし、現在 主力OS すべてコンポジット型ウィンドウマネージャーな でいつまでも Xorgを使っているわけにも行かない。近いうちに Waylandがメインになるし、Xなし アプリも出てくるだろう </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="XとWayland 違い https://wayland.freedesktop.org/ar..." title="今どきのLinux事情 XとWayland 違い https://wayland.freedesktop.org/ar..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_22.jpg">XとWayland 違い https://wayland.freedesktop.org/architecture.html 「XServer」っていう が中央集権で邪魔 スタック型Window Mangaer コンポジット型Window Mangaer 代表的なやつ</a> </h3> ・WindowsVista以降 ・MacOSX Quartx以降 </div> </li> <li class="mb-2"> <div class="slide-transcript"> <a class="text-muted font-italic" href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_23.jpg">None</a> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="みんな 大好きなWSLでXアプリを動かすと? ここまで 説明で何となく分かる ず。 「Wayl..." title="今どきのLinux事情 みんな 大好きなWSLでXアプリを動かすと? ここまで 説明で何となく分かる ず。 「Wayl..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_24.jpg">みんな 大好きなWSLでXアプリを動かすと? ここまで 説明で何となく分かる ず。 「Wayland+XWaylandが入ったコンテナ が内部で1つ起動しています」、ユーザ コンテナ そ コンテナを描画サーバと</a> </h3> して通信を行い画面を表示している。 WSLg Westonコンポジッタを動かして いる CBL-MarinerというMS ディス トロ。いわゆるContainer Linux(旧 CoreOS)と似た構 https://github.com/microsoft/CBL-Mari ner https://devblogs.microsoft.com/commandline/wslg-architecture/ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="ChromeOSでXを動かすと? ChromebookでWineを使ってWindowsプログラ..." title="今どきのLinux事情 ChromeOSでXを動かすと? ChromebookでWineを使ってWindowsプログラ..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_25.jpg">ChromeOSでXを動かすと? ChromebookでWineを使ってWindowsプログラム を動かす(参考にゲームDiablo2を動作) - Qiita • 基本的に 、WSLもChromeOSもアプローチ 同じ •</a> </h3> Linux ディストロ 個別に導入されてX み を別 コンテナやOS側 機能から中継して 描画することで実装している。 • ChromeOS 場合に ソムリエがよろしく やっている(らしい) </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="おじさんむけ豆知識 ● X Window SystemとX.org ○ 今 若い人 絶対知らな..." title="今どきのLinux事情 おじさんむけ豆知識 ● X Window SystemとX.org ○ 今 若い人 絶対知らな..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_26.jpg">おじさんむけ豆知識 • X Window SystemとX.org ◦ 今 若い人 絶対知らないと思うけど、有料 X</a> </h3> Window System もあった(記憶が曖昧だが、な んで買ったんだろう?)多分家にまだ CDがある ◦ だいぶ前からLinuxとか Xorgに移行している。 /etc/X11/xorg.confgだから ◦ X11 X Window system バージョン11 略(もう30年くらい前に開発止まっている) ◦ 最後 X11 Release 7 ? ◦ X MITで開発されていたX コンソーシアムだったけど、 The Open Groupに映った。最終的に X.org Fundationという団体になった。 ◦ Xorg X11 オープンソース実装 ◦ グラフィックドライバが鬼門な 今も昔も同じ。いま GPU問題が勃発している。 ◦ ど メーカーも互換性がある OSSも出ているが基本 メーカー プロプライエタリドライバを使う が主流(な でDebianとか 辛い )。dkmsで提供されるも など色々 Nvidia つい最近技術的 に競争力にならないという判断?でついに OSSとしてドライバを公開した(これでディストロ 組み 込みやすくなった ず) </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="ここまでわかったところでもう少し 現在 Xアプリ 、代表的なGTKとQt ツールキット上で作ら..." title="今どきのLinux事情 ここまでわかったところでもう少し 現在 Xアプリ 、代表的なGTKとQt ツールキット上で作ら..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_27.jpg">ここまでわかったところでもう少し 現在 Xアプリ 、代表的なGTKとQt ツールキット上で作られているも が大半で す。ちょっと言葉だけ説明しておくと GTK系 Qt系 代表的なWindow</a> </h3> Manager GNOME KDE ツールキット GUIフレームワーク GTK/GTK+ C言語 Qt C++言語 備考 そもそもPhotoShop クローンで あるGIMPを作るため ツール キットがベース Nokia社 ライブラリ、商用ライブ ラリだけ合って最初から安定して 利用ができた。組み込み系 今で もQtベースが多い( ず) Nokia 10年前に Qt を手放し ており、現在 The Qt Company というフィンランド 会社が Qt 開発や販売してい ると こと </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="ツールキット いろいろな言語でラップされている UIツールキット 昔から沢山やま ようにある。..." title="今どきのLinux事情 ツールキット いろいろな言語でラップされている UIツールキット 昔から沢山やま ようにある。..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_28.jpg">ツールキット いろいろな言語でラップされている UIツールキット 昔から沢山やま ようにある。 • Tck/TK・・TKツールキット • Python GTK・・・GTKをPythonから使う</a> </h3> 最近出てきた だと • Flutter ・・これもGoogle製 ツールキット(SDK)と言えるも ◦ SonyとかもFlutterに移行するらしい(組み込み系で 、 AndroidやLinuxが主流な で) ◦ Flutter 、ネイティブアプリ化で Snapアプリとしてパッケージして配布できる(もう何言っている か わかるよ ?) </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="「Desktop」Linuxを色づける Window Manager 話を最初からすると長くな..." title="今どきのLinux事情 「Desktop」Linuxを色づける Window Manager 話を最初からすると長くな..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_29.jpg">「Desktop」Linuxを色づける Window Manager 話を最初からすると長くなる だが、最終的な UI Window Managerが担ってる。Window Mangaer ツールキット</a> </h3> 、GTK+とQtが2大 巨頭。近年ツールキット間 動作上 互換性 強くなってきてる。 WindowManager 、Window ボタンだった りツールバーやデスクトップ アイコンなど UI コントロール部分を構成しているアプリケー ション。Themeを買えることでmac風になった りWindows風にしたりと色々できる。 https://learning.lpi.org/en/learning-materials/102-500/106/106.1/106.1_01/ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="延々とテーマを変える無限地獄 もうLinuxデスクトップユーザ 延々とこ 遊び をやっている ..." title="今どきのLinux事情 延々とテーマを変える無限地獄 もうLinuxデスクトップユーザ 延々とこ 遊び をやっている ..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_30.jpg">延々とテーマを変える無限地獄 もうLinuxデスクトップユーザ 延々とこ 遊び をやっている • GNOMEだろうがKDEだろうがテーマが すべて • テーマ</a> </h3> 「ツールキットベース」提供され る→GNOME用で なくてGTK用。同じ ツールキットを使っているとそ アプリ 全部そ テーマになる(基本) • 最近 VimとかTerminalとかトータルで 変更できるテーマなども出てきていて楽 しい遊び 一貫 </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="おじさんむけ豆知識 ● そういえ 、32bit x86 a.out サポートが削除! ○ ちな..." title="今どきのLinux事情 おじさんむけ豆知識 ● そういえ 、32bit x86 a.out サポートが削除! ○ ちな..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_31.jpg">おじさんむけ豆知識 • そういえ 、32bit x86 a.out サポートが削除! ◦ ちなみに gcc</a> </h3> hello.c すると a.out が出てくるけど、いつ 間にか ELFフォーマットやんけ! • ちなみにKernel 第2言語(?)にRustが採用される見込み! ◦ あちこちでプチバズっているけど Rustが入ってくるみたい(まず Kernel Module周りから 模様) </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="おじさんむけ豆知識 ● 日本語 入力 、Input method framwork 、iBUS..." title="今どきのLinux事情 おじさんむけ豆知識 ● 日本語 入力 、Input method framwork 、iBUS..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_32.jpg">おじさんむけ豆知識 • 日本語 入力 、Input method framwork 、iBUSかFctix 2択。 ◦</a> </h3> Fctix ほうが利用されているが Waylandサポートされていない ◦ Fcitx4で 使えます ! • 漢字変換 、Anthy、Canna(!)、Mozc(これがGoogle日本語IME オープンソー ス実装なんだけど辞書が違う→な で精度 劣る) • fcitx-mozcなど セットで利用することになる • 生コンで使いたい場合に 昔ながら fbtermとかKonとか現役。日本語入力も昔な がらに uim使えるuim-mozcとかある • ちなみにXで アンチエリアシングとかTrueTypeとか当たり前な で普通にmacos 並に フォントとかきれいに描画される(昔と 違う) • </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="おわり 特 まとめ ない で、ここで終わり 最後に、個人的におすすめ ディストロ POP OS..." title="今どきのLinux事情 おわり 特 まとめ ない で、ここで終わり 最後に、個人的におすすめ ディストロ POP OS..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_33.jpg">おわり 特 まとめ ない で、ここで終わり 最後に、個人的におすすめ ディストロ POP OS! •</a> </h3> Ubuntuを超えているUbuntuクローン • Nvidiaをネイティブサポート • Gaming用途(マルチインストーラー Lutis,Steam,各種エミュ)最適 ◦ 独自 OSスケジューラ、GPU利用に際して最適化、 WINE環境強い • 日本語利用問題なく利用(特に複雑な設定不要) ◦ 一部英語がある で適当に翻訳してたまに PullReqしておく で問題ない? • 独自ローダで起動が早い • 老舗HWメーカ System76社が作っている • Wayland 無効になっている(hiDPIとか共有とか動か ぇ・・・) ここまで書いて、なんなんですが、Linuxデスクトップ 全く流行る気もしない でメジャーに ならないと 思います ;-p </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="おまけ - 憧れ UNIX O2 IRIX 当時コンピュータグラフィックといえ SGI。教授 ..." title="今どきのLinux事情 おまけ - 憧れ UNIX O2 IRIX 当時コンピュータグラフィックといえ SGI。教授 ..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_34.jpg">おまけ - 憧れ UNIX O2 IRIX 当時コンピュータグラフィックといえ SGI。教授 口利きで就職してもいいか なと思ったけどそ</a> </h3> 後倒産した で行かなくてよかったと思った記憶がある。 でも行け よかった。どこぞ 大学で 100台くらい買ったというニュースを聞い てマジかと思ったが。研修室に 1台だけ買ってもらった。インストーラーが GUI でグリグリ動く謎仕様でそこで感動した。特にこ マシンで何かをなし得たと いう記憶 皆無だが所有欲を満たしてくれたな。今 GPU 原型になる、 IrisGL(OpenGL) ハードウェアアクセラレーション用 基盤が付いていた (多分) まぁ動いたあと 普通 UNIXな で3Dソフトで遊 ない限り 特になん 変哲もなかった記憶しかない。 </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="おまけ - 憧れ UNIX NeXTSTEP(OPENSTEP) マジで欲しかった。いとこ に..." title="今どきのLinux事情 おまけ - 憧れ UNIX NeXTSTEP(OPENSTEP) マジで欲しかった。いとこ に..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_35.jpg">おまけ - 憧れ UNIX NeXTSTEP(OPENSTEP) マジで欲しかった。いとこ にーちゃんが会社で使っていて楽しそう だった。現在 macOSに連なる原型。画面がDisplay TypeScript</a> </h3> というも で描画されていて当時から画期的に DPIとか色も含めて 正確に出ていた。すごい。カーネルが Machとかどうでも良くてデザ インセンス抜群だったな。オブジェクト志向型って言われていて他 社も真似したりJava クラス設計も参考にされているという。世界 初 ブラウザ NeXT上 WorldWideWeb。初 商用Webサー バ WebObjectsというWebアプリケーションサーバが動いたけど クソ高くて見たこと ない。今でも macos ライブラリ 名前 先頭 にNS_っていう がある。デザインが良過ぎで OpenSTEPとかWM でカスタマイズとか色々やった記憶が(※本物 触った程度)更に そ 10年以上あとにObjectiv-CをiPhoneで触ると 思わなかっ た。 </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="おまけ - 憧れ UNIX(もどき) BeOS 突然出てきて消えていった。アイコンがかわいい。..." title="今どきのLinux事情 おまけ - 憧れ UNIX(もどき) BeOS 突然出てきて消えていった。アイコンがかわいい。..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_36.jpg">おまけ - 憧れ UNIX(もどき) BeOS 突然出てきて消えていった。アイコンがかわいい。デザイン がいけている。そして「早かった」。当初 PowerPC BeBOXっていうハードだったけど最終的に x86アーキテク</a> </h3> チャで動くも が開発された。マルチタスクとかジャーナル ファイルシステムとか画期的だった。同時にアプリを動かし ても平気!コピーが並列でっていうデモが沢山やっていた。 Appleに買収を持ちかけていたが結局 NeXTに持ってい かれた。余裕ぶっこいて適当にやった結果だと言われてい る(ほんまか?) 結局事業的に ボロボロで終わったんだけど OS自体 OSSとしてHaikuという名前で今も続いている。好きなんだ けど 、ソフトがない。結局 VIM使っているだけやん!って なる。ちなみに未だR1/Beta3 </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="おまけ - 記憶にあるUNIX Scalable POWER Parallel(通称SP) 大..." title="今どきのLinux事情 おまけ - 記憶にあるUNIX Scalable POWER Parallel(通称SP) 大..." href="https://files.speakerdeck.com/presentations/2991be94f4a741bdb51fe17bb477ed3f/slide_37.jpg">おまけ - 記憶にあるUNIX Scalable POWER Parallel(通称SP) 大学に設置されていた。何ノード構成か記憶にない。基本的に YelloPageと呼 れるNISとストレージで環境が構成されててど ノードに</a> </h3> Telnetしても/home/tokida 同じ内容が見える(これが当たり前だと思っていた)。例え Internetに抜ける事がで きるNode、計算が早いNodeなど役割に分かれていて移動しながらプログラム動か したり、Mosicでネット見たりしていた。端末 100台くらい IBMワークステーション で構成されていてすべて X Window System端末。情報処理教室 今みたいに画面 切り替えとかが出来て集中でコントロールされていた。クラスターソフトが合って複数 台で計算ができた。Perl製?とりあえずひたらすら早いこ 億くらいしそうなコン ピューターでやりたいこと CD エンコーディングだった が泣ける。対戦ゲームと かランキングとか学生全員共通だった で結構盛り上がった。 AIX3? 4? 会社に入ってSP2を数十台全国に導入した いい思い出(半年以上家に帰れな かった...) まさかOS導入からすることになると な。 </div> </li> </ol> </div> </div> <footer class="d-block bg-black sd-footer"> <img alt="" class="footer-logo-bg" loading="lazy" src="https://d1eu30co0ohy4w.cloudfront.net/assets/mark-f4be6df1e05965cac9f98e664a6c35f5ffdd0207385d07464a9214d6cdf76082.svg" /> <div class="container position-relative"> <div class="row py-3 py-md-5 justify-content-lg-between"> <div class="col-12 col-md-4 col-lg-3 text-center mb-2"> <a href="/"> <img alt="Speaker Deck" class="footer-logo mb-2" loading="lazy" src="https://d1eu30co0ohy4w.cloudfront.net/assets/mark-f4be6df1e05965cac9f98e664a6c35f5ffdd0207385d07464a9214d6cdf76082.svg" width="70" height="44" /> <p class="speaker-deck">SpeakerDeck</p> </a> <a class="footer-icon mx-1" title="SpeakerDeck on Facebook" href="https://www.facebook.com/speakerdeck"><svg class="icon icon-facebook "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-facebook"></use></svg></a> <a class="footer-icon mx-1" title="SpeakerDeck on Twitter" href="https://twitter.com/speakerdeck"><svg class="icon icon-twitter "><use xlink:href="/icons/icons.svg?v=2025-01-26#icon-twitter"></use></svg></a> </div> <div class="col-12 col-md-4 col-lg-auto py-2"> <nav aria-label="Top Categories"> <h2>Top Categories</h2> <ul class="nav-footer"> <li><a href="/c/programming">Programming</a></li> <li><a href="/c/technology">Technology</a></li> <li class="mb-3"><a href="/c/storyboards">Storyboards</a></li> <li><a href="/p/featured">Featured decks</a></li> <li><a href="/s/featured">Featured speakers</a></li> </ul> </nav> </div> <div class="col-12 col-md-4 col-lg-auto py-2"> <nav aria-label="Legal"> <h2>Use Cases</h2> <ul class="nav-footer"> <li><a href="/pro/storyboard-artists">Storyboard Artists</a></li> <li><a href="/educators">Educators</a></li> <li><a href="/student-pricing">Students</a></li> </ul> </nav> </div> <div class="col-12 col-md-4 col-lg-auto offset-md-4 offset-lg-0 py-2"> <nav aria-label="Resources"> <h2>Resources</h2> <ul class="nav-footer"> <li><a href="https://help.speakerdeck.com/">Help Center</a></li> <li><a href="https://blog.speakerdeck.com/">Blog</a></li> <li><a href="/slideshare-alternative">Compare Speaker Deck</a></li> <li><a href="/advertising">Advertising</a></li> </ul> </nav> </div> <div class="col-12 col-md-4 col-lg-auto py-2"> <nav aria-label="Features"> <h2>Features</h2> <ul class="nav-footer"> <li><a href="/features/privacy-controls">Private URLs</a></li> <li><a href="/features/password-protection">Password Protection</a></li> <li><a href="/features/custom-urls">Custom URLS</a></li> <li><a href="/features/scheduled-publishing">Scheduled publishing</a></li> <li><a href="/features/remove-branding">Remove Branding</a></li> <li><a href="/features/restrict-embedding">Restrict embedding</a></li> <li><a href="/features/slide-notes">Notes</a></li> </ul> </nav> </div> </div> <div class="row text-center border-top"> <div class="col-12 py-3"> <p class="copyright-text mb-1">Copyright © 2025 Speaker Deck, LLC.</p> <p class="mb-1">All slide content and descriptions are owned by their creators.</p> <ul class="list-inline"> <li class="list-inline-item"><a href="/about">About</a></li> <li class="list-inline-item"><a href="/tos">Terms</a></li> <li class="list-inline-item"><a href="/privacy">Privacy</a></li> <li class="list-inline-item"><a href="/dmca">DMCA</a></li> <li class="list-inline-item"><a href="/accessibility">Accessibility Statement</a></li> </ul> </div> </div> </div> </footer> <script src="https://d1eu30co0ohy4w.cloudfront.net/assets/stats-985244a1810e3ad665b3.js"></script> <script data-turbolinks-eval="false"> Stats.host = 'speakerdeck.com'; </script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-8WD0LC0MP9"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-8WD0LC0MP9'); </script> <script> !function(f,b,e,v,n,t,s) { if(f.fbq) return; n=f.fbq=function() { n.callMethod? n.callMethod.apply(n,arguments) : n.queue.push(arguments) }; if(!f._fbq) f._fbq=n; n.push=n; n.loaded=!0; n.version='2.0'; n.queue=[]; t=b.createElement(e); t.async=!0; t.src=v; s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t, s) }(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '2893765844191276'); fbq('track', 'PageView'); </script> <noscript> <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=2893765844191276&ev=PageView&noscript=1" /> </noscript> <script async type="text/javascript" src="https://platform.twitter.com/widgets.js"></script> <script> Array.from(document.querySelectorAll('.facebook-share')).forEach((element) => { element.addEventListener('click', function(e){ e.preventDefault() let title = encodeURIComponent(document.title) let url = encodeURIComponent(document.location.href) window.open('https://www.facebook.com/dialog/share?app_id=1428152667543587&display=popup&href=' + url + '&title=' + title, "_blank", "toolbar=no,menubar=no,location=yes,resizable=yes,scrollbars=yes,status=yes,width=600,height=400,modal=yes,alwaysRaised=yes"); }, false) }) </script> <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'9296d92bcc09407a',t:'MTc0MzQ5NzUyNS4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body> </html>