[2021年11月号] Software Design(技術評論社) サマリー+個人メモ

[2021年11月号] Software Design(技術評論社) サマリー+個人メモ
みるみ

技術評論社が出版しているITエンジニア向け雑誌「Software Design」を毎月定期購読し、そのサマリーと個人的メモをまとめるシリーズの2021年11月号分です。

Software Design の2021年11月号について、

  • ざっくり内容紹介
  • 個人的に気になった記事やポイント

をまとめている記事です。

サマリー記事の一覧はこちら

特集①:Kaggleで知る機械学習

  • Kaggleとは
    • 機械学習コンペのプラットフォームのこと。下記3つの項目がある
      • コンペティション
        • ある組織が提供するお題目に沿ってより高い精度のモデルを作れるよう競う
      • データセット
        • 5万を超える様々なデータセットとそれに付随するNotebookが公開されている(ここでいうNotebookとはJupiter Notebookに近いものらしい)
      • コース
        • 基礎講座とかそういうの
    • 参加のメリット
      • 実績のアピール(高い知名度)
      • コミュニティでのコミュニケーション
      • スコア化されるので順位が上がっていく単純な楽しさ
  • コンペについて
    • レベルごとに色々種類があったりする
    • 最上級のGrand Masterとかいうやたらかっこいいのは世界で234人らしい
  • 残りの要旨は実際に参加してみよう→モデル作成の流れ
    • どうも機械学習に対しては昔から興味がわかないのが続いており、今回もほぼ刺激されなかった…。この不思議な感じはちゃんと考察してみたことがなかった今度言語化してみるのも楽しそうかも。 というわけで第1特集だけどここでおわる。

特集②:Progressive Web Apps実践入門

  • 新世代のWebアプリ PWA入門
    • PWAは特定の技術やフレームワークを指すものではなく、Webの標準技術を使いながらネイティブアプリのような使い心地を目指す一連の試みのこと、とのこと
      • あまり見かけないし全然盛り上がってないイメージだったけどそんなことないのかな?メリットがよく分からんというのと、本当に使ったことほぼないんだけど僕だけだろうか…。でもたしかに技術は気になるので楽しみな特集。
    • ネイティブアプリとしてのハードウェアよりな機能を持ちつつ、Webアプリなのでデバイス依存がなく検索エンジンにも認識され、リンクも貼られる。これめっちゃええやん…!
      • つくりたいものリストの中にいくつかデスクトップアプリケーションもあるけど、このメリットを考慮に入れてPWAという選択肢もあるのかな
    • 3つの柱
      • Capable
        • APIを使用してネイティブアプリっぽくすることを目指す。デバイスのカメラやマイクへのアクセスなどがこれにあたる。今後はファイルシステムへのアクセス、メディアコントロール、アプリバッジ、クリップボードサポートなど多岐にわたる。これは夢あるね!
      • Reliable
        • 信頼性。ネイティブアプリの側面としてネットワークやネットワーク速度から切り離された速度が期待されている。どうやら「速さ」という意味での信頼性のことらしい。
      • Installable
        • インストールできてスタンドアロンウィンドウで実行されるべきということ。ブラウザのタブで開けてしまったら単なるWebアプリケーションってことだね
    • PWAのメリット
      • クロスプラットフォーム
      • ストア類を経由しなくていい
      • ネイティブアプリ専門の技術がほぼ要らない(=採用面でもメリットあり)
    • 事例
      • Twitter Lite
      • Flipkart Lite(インド最大のEコマース)
      • 日経電子版
      • RAKUTEN24
      • 事例集としてPWA StatsやAppscope(その後リンク切れ)というサイトが紹介されていた
        • いくつか見てみたけど、ちょっと想像のイメージ覆されたかも…。これならReact Nativeやらマルチプラットフォームフレームワークで頑張らなくてもほとんどのものは十分では?とちょっとだけ思ってしまった(React Nativeは触ったことないけど)
          • その意味でいうとFlutterはFlutter WebでPWAに標準対応したはずなので、Flutter(Dart)を習得すればもともとのクロスプラットフォームに加えてWeb完全ネイティブ対応+二次のクロスプラットフォームとしてのPWAまでサポートできてしまう…。全部Google主導だしやっぱりFlutterしか勝たん、のか…?
          • ただこれはかなりシーズというか技術者視点すぎかも。一般層はPWAの存在も使い方も知らないことがほとんどなはずなので「なんでも使えるよ」といってもユーザー数は増えないはず。。
        • でも逆に言うと「ストアから配信できない」のがデメリットにもなるかも。スマホアプリとしてちゃんと開発運用したい、マネタイズしたい、の場合はこのWebからのインストールフローはイマイチだもんね
  • 既存のWebアプリをPWA化してみる
      • 既存のHTML+CSS+JSのWebアプリに特定のmetaタグを足す
        • これはOSによって違うmetaタグになる
          • よく書いてたapple-touch-iconとかはコレ
          • Androidやデスクトップの場合、「ウェブアプリマニフェスト」というjsonを読み込むためのパスを書くことになる
            • manifest.jsonにはアイコンとか色とかそんなんがある
      • Servie Workerの登録
        • これはJSで書く
          • いつものWeb APIとしてのServie Workerと同じもの
          • バックグラウンドでオフラインな動作をできるようにするもの、プッシュ通知など大方のPWAっぽい機能はこの中で実現されている
        • HTTPSサイトでしか動かないので注意
      • こんなにあっさりしていたとは…。標準化のすごさですね。
  • 以下はネイティブアプリ並みの実装を目指す感じで誌面は進んでいく
    • フロントエンドフレームワークとの関連が気になりましたね~

    Column

    • 自作キーボード工房 設計編その3「回路図を書こう」
      • ペラペラめくってたら回路図みたいなものが目に入って「ん?」と思ったら回路図だった。これ何の雑誌だっけ。

    Development

    • イラストで明解 Gitコマンド「git reset」
      • gitに関する操作を取り消したいときに使う。以下の2つで大きく操作が分かれる
        • git add したことを取り消す
          • コマンドは git reset だけ
        • git commit したことを取り消す
          • コマンドは git reset [commit ID] になる
      • オプションは下記の3つ
        • --soft: ファイル変更とステージの状態も維持
        • --mixed: ファイルの変更は維持するがステージは取り消す
        • --hard: すべてのファイル変更を破棄する
    • Pythonモダン化計画「E2Eテストの自動化」
      • 今回もモノタロウのやつ
      • E2Eテスト(≒機能テスト、システムテスト)ってほとんどのケースで無理じゃない?って思ってて実際苦労経験多いけど、ってことで目が留まった
        • でもWebサービスやECサイトならSelenium使うとかでなんとかなりそうだね
      • 今回使ったのはRobot Frameworkというやつらしい
        • シナリオを自然言語風に書ける(それどうなんだ?笑)
          • 記述に日本語をつかえる
        • Seleniumと連携できる(やっぱり!)
        • ファイル操作、SSH経由でのコマンド実行、DB操作などまでできる(これはよさそう)
        • Python製

    OS/Network

    • 明後日のコンピューティングを知ろう「CPUの見える化」
      • オンプレとして物理的な作業をすることからパブリッククラウドの利用のためにコンソールをあれこれすることが増えたが、世界のどこかには物理マシンがある
        • 「忘れがちだよね」と続きそうだが、実はこれは普段からかなり考えてる。というかこれを考えるとサーバーレスってなんだろうとか色々ハマっていってしまう。奥底のプリミティブな仕組みを理解するのはまだまだ先だなー。
      • パブリッククラウドもCPUの消費電力の増大化に苦労している
      • 今のクラウド向けCPUのボリュームゾーンは150Wの44種類と200Wの42種類とのこと。いずれもIntel社製がほぼ占める。
        • なぜか本特集のパブリッククラウドには「Azure、GCP...etcで使用」となっていてAWSの名前は挙げられていない。なにか訳あり?
      • コア数は26Core ~ 36Coreあたりがボリュームゾーン

    Software Design 2021年11月号

    この号の分のみ単品で読みたい方は、普通にAmazonで買うのがおすすめ。
    紙 or 電子書籍で選べます。

     

    みるみ
    みるみ

    ブロガー、ソフトウェアエンジニア。

    この「みるめも」というブログの筆者です。

    この記事へのコメント
    コメントはまだひとつもありません :)

    新しいコメントを書く

    • 必須項目はコメント本文のみですが、お名前はぜひご記入いただけると嬉しいです。
      ※メールアドレスを書いた場合も公開されることはないのでご安心ください。
    • 特定のコメントに返信したい場合は各コメントにある「返信する」ボタンからどうぞ。
    • コメントはこちらで承認の作業を行うまでは表示されません。ご了承ください。
      ※ここ数年スパムが激化しており、誤って削除されてしまうケースが増えてきました。スパムボックスも毎日自分の目で確認するようにはしているのですが、どうしても限界があります。確実に僕に連絡を取りたい方は メールTwitter からお願いします。