2023年1月22日のブックマーク (13件)

  • VS Code Conference Japan 2022 - 2023で登壇してきました! - Alternative Architecture DOJO

    こんにちは、エンジニアの馬場です! 今年は同僚と月2ブログを書こうと約束しているのですが、今月(今年)1目がこの記事というローペースっぷりです…。先が思いやられますが頑張ります。 さて、表題の通り2023年1月21日にオンラインとオフラインでハイブリッド開催された「VS Code Conference Japan 2022 - 2023」に登壇して来ましたので振り返ってみようと思います。 こちらのイベントはその名前の通り、Visual Studio Codeについての年次カンファレンスとなります。 イベントの詳細に関しては以下をご覧ください↓↓ vscodejp.github.io vscode.connpass.com 登壇内容について 今回わたしは「Azure Functionsをサクッと開発、サクッとデプロイ」という内容で登壇をしてきました。 Microsoft Base 代官山

    VS Code Conference Japan 2022 - 2023で登壇してきました! - Alternative Architecture DOJO
    yug1224
    yug1224 2023/01/22
  • API Gateway をトリガーに AWS Lambda を動かしてみる

    こんにちは 👋 仕事AWS Lambda(以下、Lambda) を使うことになったので Lambda の概要理解から API Gateway をトリガーに Python で書かれた簡単な関数を実行するところまでをやってみたいと思います。 Lambda とは? 何はともあれ、まずは公式サイトを見てみましょう。 なるほど、どうやら Lambda を使うと自前でサーバーを用意することなく何らかのイベントをトリガーに、自分があらかじめ Lambda に設定しておいた処理を実行できるようです。これは世に言う「サーバーレス」というもので、前述のとおり開発側は自前でサーバーを用意する必要がないため、構築や保守・運用のコストを削減することができます。さらに、Lambda は従量課金制なので実行時間に応じた金額しか請求されない点も魅力です。 Lambda で処理を動かしてみる それでは、実際に Lam

    API Gateway をトリガーに AWS Lambda を動かしてみる
    yug1224
    yug1224 2023/01/22
  • React の状態管理ライブラリ9選

    はじめに 次から次へと登場する状態管理ライブラリですが、それだけ React (に限った話ではないが) において状態管理というのは大きなテーマであり、最も実装難易度の高いトピックの一つでしょう。適切な設計ができないとアプリケーションの規模が大きくなるにつれ負債は増え続けます。 状態管理の難しさをよく表した文章が Redux の公式サイトにあるためお借りしたいと思います。(Redux の公式サイトは読み物としても面白いです) JavaScript のシングルページアプリケーションの要件がますます複雑になるにつれて、コードはこれまで以上に多くの状態を管理する必要があります。この状態には、サーバーのレスポンスやキャッシュされたデータ、まだサーバーに永続化されていないローカルに作成されたデータなどが含まれます。UI の状態も複雑化しており、アクティブなルート、選択されたタブ、スピナー、ページネーシ

    React の状態管理ライブラリ9選
    yug1224
    yug1224 2023/01/22
  • DI(Dependency Injection)のメリットを理解する

    @Injectable() export class Test1Service { getName() { return { name: "john" }; } } @Controller("test1") export class Test1Controller { constructor(private readonly test1Service: Test1Service) {} @Get() getName() { return this.test1Service.getName(); } } Nest CLI でプロジェクトを作成したときに生成されるコードはこんな感じになっていると思います。 service での処理を controller で呼び出すことができているくらいにしか思いません。 このサービスは必ずしも、DI しないと使えないわけではなく、通常のクラスなので、インスタ

    DI(Dependency Injection)のメリットを理解する
    yug1224
    yug1224 2023/01/22
  • 読書感想文-Linuxのしくみ

    はじめに Linux のしくみ カーネルを知ってステップアップを読みました。今後必要になったときにすぐに必要な情報にありつけるように、各章で個人的に知らなかったことやキーワードをメモします。 第 1 章 Linux の概要 strace 発行したシステムコールを確認する。 -Tオプションでシステムコールの所要時間をマイクロ秒で出力できるため、ボトルネックの処理があるときの調査などで使えそう。

    読書感想文-Linuxのしくみ
    yug1224
    yug1224 2023/01/22
  • RustをNimから呼び出す

    モチベーション NimPythonのような簡単な文法で、C言語にトランスパイルしバイナリにコンパイルすることで、学習コストの低さ、開発の生産性の高さ、実行速度の速さを兼ね揃えたプログラミング言語です。 所有権・借用に基づくスコープベースでの安全なメモリ管理をコンパイラが自動で行い、参照やポインタについて考える必要もないため、特にアプリケーション開発において「コーディングのためのコーディング」を減らせてその記述をビジネスロジックだけに集中させることができます。 しかしまだ普及しているとは言い難く、使わない人の意見を聞くと「ライブラリが少ない」という理由を多く聞きます。 Nimはコンパイル時に一旦C言語に変換するために、既にC言語で存在している資産を簡単に取り込むことができ、動的リンク・静的アーカイブ両方と非常にシームレスに連携することができます。 一方でRust低レイヤーにおけるメモリ安

    RustをNimから呼び出す
    yug1224
    yug1224 2023/01/22
  • Rackの脆弱性対応を! (CVE-2022-44570,CVE-2022-44571,CVE-2022-44572)

    2023年1月18日にRuby on Railsの脆弱性[1]とは別にRackの脆弱性が公表されました。 どれもReDoSの問題であり、CVE-2022-44571とCVE-2022-44572は以下の特徴により危険性がとても高いです。 multipartの解析部分での問題であり、数MBの文字列を攻撃に利用可能 RailsがHTTPリクエストを受け付けた際に呼び出される 呼び出しの際に認証が不要 殆どのRailsサーバが影響を受ける CVE-2022-44572は短い文字列で攻撃可能でPoCでは326byteの文字列で0.3秒の実行時間、416byteで22秒でした。1MBを超える文字列が攻撃として送信された場合の実行時間は1日以上になることが予想されます。 Rackのバージョンを2.0.9.2, 2.1.4.2, 2.2.6.2, 3.0.4.1のいずれかに更新することで解決します。[2

    Rackの脆弱性対応を! (CVE-2022-44570,CVE-2022-44571,CVE-2022-44572)
    yug1224
    yug1224 2023/01/22
  • 【OpenRR】RustでRobot!#06 「ロボットアームと軌道計画」

    6-1. はじめに こんにちは、Smile Roboticsの内山です。OpenRRにあるopenrr-plannerを用いてオフィスにあるUfactory Lite6を動かします。 とりあえずOpenRRを使って何かしたい場合は、openrr-appsがあり、それを使うことができますが、今回は使わずに行こうと思います。 6-2. 実装 6-2-1. 概要 雑ですが今回作ったものの構造はこのようなイメージです。赤い印がついているものを今回新しく実装しました。 6-2-2. 具体的な実装 arm_controllerは、アームを動かすためのarciを用いて実装したレイヤです。ロボットアームを扱いたいので、arci::JointTrajectoryClientを用います。 arm_controller.rs use arci::{Error, JointTrajectoryClient, Wa

    【OpenRR】RustでRobot!#06 「ロボットアームと軌道計画」
    yug1224
    yug1224 2023/01/22
  • Remix + Cloudflare Pages + Cloudflare D1 で ポケモン SV のレンタルチームを検索できるアプリを作ってみた

    BuriKaigi2023 登壇資料です。Twitter で公開されているポケモンSVのレンタルチームを検索できるアプリを Remix + Cloudflare Pages + Cloudflare D1 で作成しました。Edge location でデータベース操作とレンダリングを行う爆速アプリの構成…

    Remix + Cloudflare Pages + Cloudflare D1 で ポケモン SV のレンタルチームを検索できるアプリを作ってみた
    yug1224
    yug1224 2023/01/22
  • Optimizing your Swift code

    try! Swift 2023 Tokyo Meetup https://tryswift.jp/ https://youtu.be/ILWnstd-XOY?t=9036

    Optimizing your Swift code
    yug1224
    yug1224 2023/01/22
  • find-node-modules-import: importsしてるパッケージ名やNode.jsのコアモジュールを検出するツール

    find-node-modules-import: importsしてるパッケージ名やNode.jsのコアモジュールを検出するツール find-node-modules-importという、ソースコードからimportsしてるパッケージ名を検索するシンプルなCLIを書きました。 azu/find-node-modules-import: Find specific node modules import statement in your source code 特徴 インポートしてるパッケージ名を全て検出できる インポートしてる特定のパッケージ名を検出できる node:fsやassertのようなNode.jsのコアモジュールを検出できる 📝 このツールは、ESMのimportのみに対応しています。 JavaScriptTypeScriptどちらも対応しています。 使い方 Usage

    find-node-modules-import: importsしてるパッケージ名やNode.jsのコアモジュールを検出するツール
    yug1224
    yug1224 2023/01/22
  • ありの〜ままの〜 React 見せるのよ〜

    最近 React のコードリーディングに付き合ってくださる方がいらっしゃいましてコードを読んでいるのですが、読むにあたってはそもそもユーザーが書いた React がどう実行されるかエントリポイントをはっきりさせたくなりました。 たとえば const App = () => { const [state, setState] = React.useState(0); return ( <div> <p>state: {state}</p> <button onClick={() => { setState(state + 1); }} >click me</buttn> </div> ); }; のようなコードを実行したときのエントリポイントは分からないわけです。 なので JSX で書いたコードを変換かけて読む環境を作りました。 babel での変換 まず一般的に JSX は React

    ありの〜ままの〜 React 見せるのよ〜
    yug1224
    yug1224 2023/01/22
  • 検索結果に表示される広告を悪用したマルウエアの拡散についてまとめてみた - piyolog

    2022年末以降、一部のマルウエアでGoogleの検索結果に表示される広告サービスを悪用し感染させる手口が増加しているとして、セキュリティベンダやFBIなどが注意を呼び掛けています。ここでは関連する情報をまとめます。 Googleの広告悪用し偽インストーラー配布サイトへ誘導 マルバタイジングの一種で、SEO(Search Engine Optimization)ポイズニング、またはSERP(Search Engine Results Page)ポイズニングとも呼ばれることがあり、攻撃者はなりすまし対象のソフトウエア配布先に似せたドメイン名を取得し、これを表示させる広告をGoogleから購入する。 ソフトウエアのインストールを考える利用者は検索サービスでソフトウエアの名前で検索を行うことが一般的だが、攻撃者が用意した広告が検索結果の一番上に表示されることがあり、利用者は誤ってそれをクリックし

    検索結果に表示される広告を悪用したマルウエアの拡散についてまとめてみた - piyolog
    yug1224
    yug1224 2023/01/22