並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 107件

新着順 人気順

node.の検索結果1 - 40 件 / 107件

  • JavaScript で then を使うのは避けよう(await / async の初級者まとめ)

    JavaScript において、特に苦手とする人が多い印象のある Promise ですが、await と async の文法が導入されたことで、Promise の仕様を深く理解しなくても非同期処理を自然に書けるようになってきたのではないかと思います。 極論ですが、JavaScript の非同期処理は async await new Promise のみで、(ほぼ)全て表現可能です。特別な理由がない限り then を使わないようにしましょう、ということを周知するのがこの記事の目的です。 なお本記事では Promise の rejected の状態についてほとんど解説しておりません。基本を理解したら、別記事でぜひ学んでみてください。 Promise とは? Promise は、少し乱暴に説明すると「実行が終わっていないかもしれない何らかの関数」を包んだオブジェクトです。 普通の関数とは違って、

    • 自社サービスのバックエンドを Go から TypeScript へ切り替えるための整理

      切り替える理由 自社の主力製品で利用している技術(WebRTC / WebTransport)がブラウザベースのため TypeScript を利用する Go を採用したのは sqlc が使いたかったという理由 sqlc-gen-typescript が出てきたのでもう Go を使う理由がなくなった 自社サービスチーム全員が Go にまったく興味が無い sqlc 自体は便利 そもそも自社に Go への興味がある人がいない 自社サービスの規模ではボトルネックになるのはデータベースであって言語ではない もしアプリでスケールが必要なときは Rust や Erlang/OTP に切り替えれば良い コネクションプールは PgBouncer を利用すればいい TypeScript からは 1 コネクション 1 接続で問題無い どうせフロントエンドでは TypeScript を書く 自社では React

        自社サービスのバックエンドを Go から TypeScript へ切り替えるための整理
      • フロントエンドのスピードに置いていかれたので、よく聞く技術を調べて分類してみた

        元フルスタックエンジニア(死語)をやらせていただいていたものです。 JavaScript(TS)周りの進歩が凄く、あまりにもついていけていなかったので、気になったワードを片っ端から整理してみました。 それぞれに対する説明の正しくないものが含まれてしまっている可能性があります。 そんなところを見つけたときは優しく教えてくださると助かります。 各ツールの詳細というよりは、それぞれがどんな役割のものなのかを記載しています。 この記事が誰かの助けになれば幸いです。 調査・分類した言葉(技術)たち Hono Bun Deno Biome Vite Webpack Turbopack esbuild Babel SWC Prisma まず上記に上げたものが、どういった機能を持つものなのかもわかりませんでした。 それを整理すると以下になるようです。 JavaScript Runtime Deno Bun

          フロントエンドのスピードに置いていかれたので、よく聞く技術を調べて分類してみた
        • DB設計書の管理が楽になるDBML入門 – DBMLの書き方,dbdiagram.io, dbdocs の紹介 – | SIOS Tech. Lab

          こんにちは!サイオステクノロジーの安藤 浩です。DB設計書の生成が容易にできるDBMLをご紹介します。DBMLの入門として、DBMLの書き方、ER図生成方法、Github actionsでCIを実行して閲覧する方法をご紹介させていただきます。 DBMLとは DBML は DataBase Markup Language の略でDB構造を定義するために設計された言語です。 DB構造に焦点を当てており、可読性の高い言語です。 dbdiagram.io や dbdocs.io などを利用することでDBドキュメントの生成が可能です。 コードベースで図を生成できる点でPlantUMLと似ていますね。 DBMLの書き方 テーブルの書き方 まずはテーブルの定義の例をもとにDBMLの記法を紹介していきます。users というテーブルを作成してみます。コードは以下のようになります。 Table users

            DB設計書の管理が楽になるDBML入門 – DBMLの書き方,dbdiagram.io, dbdocs の紹介 – | SIOS Tech. Lab
          • AI時代にこそTDDだと思う話

            GitHub Copilot、みなさん使ってますか?すでに多くの方が利用しており、「ないと困る」という方から「提案の質に問題がある」「まだまだ使えない」という方まで、様々な意見を聞きます。 筆者はGitHub Copilotに対して非常にポイティブな立場です。GitHub Copilotは使い方次第で開発速度を格段に向上させることを身をもって体験しており、これからの時代においてはGitHub CopilotなどのAIツールを使いこなせるかどうかで、個人の開発速度に非常に大きな差が出ると考えています。 重要なのは使い方次第と言う点です。前述のように様々な感想が溢れているのはAIツールの習熟度が大きく影響しているようにも感じます。AIツールは静的解析同様、利用者側の手腕が大きく問われるツールであると筆者は感じています。コマンドプロンプトエンジニアリングという言葉もあるように、AIツールを使いこ

              AI時代にこそTDDだと思う話
            • Node.js の進化に伴い不要となったかもしれないパッケージたち

              tl;dr はじめに 2024 年の 4 月 24 日に Node.js 22 がリリースされました。ESM を 条件付きで require する機能や、--run フラグによる npm スクリプトのパフォーマンス改善などが v22 で追加され、2009 年に Ryan Dahl が Node.js をリリースしてから 15 年が経つ今も、Node.js は進化を続けています[1]。 こうして Node.js 自身が強化されていくにつれ、以前はサードパーティーのパッケージを使用して実現することが一般的であった機能が Node.js のみで実現可能となり、当該パッケージが不要となるような場合があります。冒頭に引用した Ben Holmes の動画では、そのように不要となったパッケージとして dotenv node-fetch chalk mocha が挙げられていますが、この記事では「これら

                Node.js の進化に伴い不要となったかもしれないパッケージたち
              • なぜSQLiteはバイトコードを使うのか

                以前にデータベースを自作しようとして、SQLiteのアーキテクチャを見てみたらVMだったことに疑問を感じ、それをツイートしたところ作者からリプをもらいました。 作者いわく、次のような背景があったとのことでした。 SQLiteを作った当初はデータベースエンジンのことをよく知らないがコンパイラのことをよく知っていた SQLデータベース・エンジンを書くという問題をコンパイラ構築の問題として扱うのは自然なことだった データベースエンジンのコアの部分をVMにするという発想がまったくなかったので、どんなメリットがあるのか?と気になっていました。 それを作者に聞いたら、詳細な説明ページを作ってくれました。 個人的にVMにしたことで、評価&実行のパフォーマンスは多少良くなると思うが、データベースエンジンのパフォーマンスにそれほど寄与していないんじゃないかな?って思ったりしました。 本記事はそのページについ

                  なぜSQLiteはバイトコードを使うのか
                • OpenAIのGPT-4oを日本語OCRとして使ってみる

                  昨日、OpenAIが生成AIの新しいモデルであるGPT-4oを発表しました。消費するトークン数の節約や、音声合成機能の改善、応答速度の向上など着実な品質改善を見せているようです。私も、特に音声合成(Text To Speech)の表現力について非常に興味を持っています。 私は以前、「OpenAIのGPT-4 Turbo with visionを日本語OCRとして使ってみる」で、GPT-4 Turboの画像認識機能の日本語OCRについて検証を行いました。その当時は、既存のコグニティブAI APIに比べて認識精度が十分でないという評価をしています。とはいえ、その後に出てきたClaude 3 Opusは驚くべき認識精度だったので、OpenAIも巻き返す可能性は十分にあると感じました。Azure OpenAI Serviceを使っている場合は、Vision enhancementという既存のコグニ

                    OpenAIのGPT-4oを日本語OCRとして使ってみる
                  • Python Web UIフレームワークで作るデスクトップアプリ | gihyo.jp

                    寺田 学(@terapyon)です。2024年4月の「Python Monthly Topics」は、Python Web UIフレームワークの1つであるStreamlitを使ってWindowsやmacOSのデスクトップアプリを作る方法を解説します。 目的⁠・モチベーション Pythonで自動化のスクリプトを作ったり、JupyterLabやColaboratoryでデータの可視化を行うことがあります。これらを作成者以外の多くの方に利用してもらう方法として、Webシステムやデスクトップアプリとして提供する方法が考えられます。 Webシステムの構築やデスクトップアプリの作成となると、技術的なハードルがあります。他には、時間的なコストに見合わないという状況もあり得ます。 Python Web UIフレームワークを使うことで、比較的少ないコードでWeb UIからスクリプトの実行や可視化をするアプリ

                      Python Web UIフレームワークで作るデスクトップアプリ | gihyo.jp
                    • 注目のITサービスを支えるアーキテクチャ特集 技術選定のポイントと今後の展望 - Findy Tools

                      公開日 2024/05/27更新日 2024/05/27注目のITサービスを支えるアーキテクチャ特集 技術選定のポイントと今後の展望 現代のITサービスは、ユーザーに高品質で安定した体験を提供するために、より効率的で柔軟な技術選定が不可欠です。 本特集では、注目企業のシステムアーキテクチャ設計に携わるエンジニアの方々より、それぞれの技術選定における工夫と、未来を見据えた展望についてご寄稿いただいています。 各企業がどのように課題を乗り越え、開発生産性や品質を向上させるためにどのようなアプローチを採用しているのか ー この記事を通じて、実際の現場で活用される最先端の技術や戦略を学び、皆さんのプロジェクトに役立つ洞察を得ていただければ幸いです。 ※ご紹介はサービス名のアルファベット順となっております airCloset - 株式会社エアークローゼット エアークローゼットは日本初・国内最大級、女

                        注目のITサービスを支えるアーキテクチャ特集 技術選定のポイントと今後の展望 - Findy Tools
                      • 実務で生成AIサービスを開発してわかったこと

                        生成AIを使ったサービスを開発してわかったことをメモしておきます。 開発したもの 業種 SaaS 課題 提供サービス内でユーザーがアイディアを考えることが難しかった。様々なデータを人力で集めてくる必要があった 解決策 アイディア起案に繋がりそうなデータを自動で集めてきて提示する。手法はベクトル検索、AIによる要約生成。 その他 チャットUIは作っていない。ユーザーの入力は最初の検索テキスト入力文のみ。 開発前の検証・プロトタイピング 開発する前に生成AIの出力を検証することが必要 生成AIの出力の質はサービスの肝だから 生成AIの出力は事前の予想と違うこともあり早い段階で出力を確認しておかないと後々の仕様変更があったときにキツイから AIに渡すデータの中身を確認しておく 例えばRAGを使って社内ドキュメントやDBを検索する場合、それらのデータの中身を吟味する必要がある 必要なデータと不要な

                          実務で生成AIサービスを開発してわかったこと
                        • MySQL 8.4 LTS登場!!

                          記事を書くのが遅くなってしまったが、先日MySQL 8.4シリーズが登場したので紹介をしておこうと思う。新機能の解説については機会を改めて書くとして、今回は主にアップグレードにまつわる重要なポイントを書き記しておく。 LTS = Long Term Support 以前の記事でも紹介した通り、MySQL 8.4はLTS = Long Term Supportのバージョンとなっている。長期間サポートするために互換性を最大限保証するバージョンである。前のメジャーバージョンであるMySQL 8.0シリーズのように、シリーズの途中で互換性が破壊されるような変更が入ることは基本的に無い。「バグ修正のためにどうしても仕様を変えなければならない」というような事態が生じる可能性はゼロではない。なので絶対に互換性が保たれるとは言い切れないところであるが、基本的には仕様変更はない方向で今後リリースされていくこ

                            MySQL 8.4 LTS登場!!
                          • Webシステムにおける HTTPサーバ機能をどう用意するか?という問題に対して先人達の葛藤の歴史 | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]

                            こんにちは羽山です。 現代の Webシステム界隈は昔よりもはるかに洗練され、初心者からでも簡単に開発方法を学び作れる時代になっています。その反面で例えば Python なら WSGI や gunicorn、Waitress、uWSGI などが何のために存在しているのかが分かりにくいと思ったことはありませんか?Ruby の Rack、unicorn、puma だったり FastCGI など、いずれも Webシステムの構成要素として重要な一方で役割を理解しにくいのは事実です。 そこで今回は Webシステムが現代の形にたどり着くまでの先人達の葛藤の歴史を解説します。歴史を知ればこれらの仕様やプロダクトが何の役になっているかが分かるはずです。 前提 動的な Webサイト(=Webシステム)を作りたいニーズはインターネット黎明期からありますが、ブラウザからのアクセスを適切に処理するには HTTPサー

                              Webシステムにおける HTTPサーバ機能をどう用意するか?という問題に対して先人達の葛藤の歴史 | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
                            • Zod を使って CSV からの入力データをバリデーションする - ドワンゴ教育サービス開発者ブログ

                              こんにちは、バックエンドエンジニアの日下です。 CSV から JSON へ変換するスクリプトを、TypeScript で実装する機会がありました。 今回は、CSV のデータのバリデーションに Zod を使った話をします。 スクリプトの目的 システム間のデータ連携が目的です。 連携元のシステムから CSV 出力されたデータを、連携先のシステムで利用する JSON へ変換します。 また、JSON への変換以外にも以下の要件があります。 CSV のデータをバリデーションする 連携先のシステムで利用できるデータであることを保証するために、バリデーションを実行します。 バリデーション失敗時に、日本語のエラーメッセージを表示する スクリプトの実行は業務担当のエンドユーザーが行うため、日本語のエラーメッセージを表示します。 CSV の読み込み 元データとなる CSV の読み込みは、csv-parse を

                                Zod を使って CSV からの入力データをバリデーションする - ドワンゴ教育サービス開発者ブログ
                              • Electronを使ったPC向け将棋アプリ開発 - Qiita

                                はじめに 2022 年 1 月から、趣味で PC 向けの将棋アプリを開発しました。その中で取り組んだことや学んだことについて簡単にまとめます。 作ったもの Electron将棋 (electron-shogi) GitHub: sunfish-shogi/electron-shogi GitHub Pages: Electron将棋 背景 最近ではスマホやタブレットでも将棋の対局や研究ができるようになりましたが、本格的に将棋の勉強や研究をするには必ずしも十分ではなく、特に将棋 AI を動す上で PC の処理能力やカスタマイズ性は有用です。 2010 年あたりからオープンソースの将棋 AI が増えましたが、その多くは GUI や通信対局機能を備えておらず GUI のアプリケーションと組み合わせて使う必要があります。AI と GUI がやりとりするための USI という共通仕様があり、 USI

                                  Electronを使ったPC向け将棋アプリ開発 - Qiita
                                • YAGNIと拡張性のあいだ - 電通総研 テックブログ

                                  こんにちは!Xイノベーション本部プロダクトイノベーションセンターの米久保 剛です。 弊社のテックブログ上では今回が初めての記事執筆となります。アーキテクチャ設計やアプリケーション設計の話を中心に、不定期に情報発信していきたいと考えています。 YAGNI原則 YAGNI原則をご存知でしょうか。 エクストリーム・プログラミング(XP)の重要な原則の一つであるこの原則は、You Ain't Gonna Need Itのアクロニム(頭字語)から命名されています。日本語にすると「どうせ要らないって」というニュアンスでしょうか。推測に基づいて余計な機能を作り込んだところで将来実際に使われる可能性は低く、時間と労力を無駄にするばかりかコードの複雑化などのリスクさえあります。ですから、現時点でわかっている要件をちょうど満たすだけの機能を実装すべきであるとYAGNI原則は主張します。 YAGNI原則は機能(

                                    YAGNIと拡張性のあいだ - 電通総研 テックブログ
                                  • pnpm の node_modules を探検して理解しよう - ドワンゴ教育サービス開発者ブログ

                                    はじめに こんにちは。ドワンゴ教育事業でエンジニアをしているユーンです。 N予備校アプリケーションやその他複数のプロジェクトで pnpm を採用しました。pnpm とは何か、npm とどう違うのかというのを node_modules の構造を追いながら理解しつつ、教育事業での採用した結果についてお話します。 pnpm とは pnpm とは、npm や yarn とレイヤーを同じくするパッケージマネージャであり、サードパーティのものです。 pnpm.io pnpm は他のツールと比較して高速でありディスク効率が良いと謳っています。 その pnpm の最大の特徴は、 node_modules の構造にあります。 例えば npm では v3 からフラットな node_modules を使うようになっております。yarn もデフォルトでは同様にフラットな node_modules を提供しています

                                      pnpm の node_modules を探検して理解しよう - ドワンゴ教育サービス開発者ブログ
                                    • ガバメントクラウドAWS「以外」で必要な設備・作業を考えてみる - サーバーワークスエンジニアブログ

                                      こんにちは、Enterprise Cloud部 ソリューションアーキテクト1課 宮形 です。 令和6年度はガバメントクラウドへの早期移行団体検証事業へ申込された、またはこれから申込予定の地方自治体様が多くおられると予想します。それに合わせて必要なAWSリソース利用料やAWSの設計構築・運用保守費用の見積・予算取りを進めることになります。 気を付けたいのが、ガバメントクラウドAWS「以外」にも必要となる設備・作業があることです。プロジェクトを開始しても、準備不足により作業がストップしたり予算不足になる事態は避けたいところです。 本BLOGでは、私がこれまで幅広い分野のお客様と接してお伺いすることが多かったAWS「以外」で必要となった設備・作業についてご紹介したいと思います。 この内容は個人の私見と経験則で書いておりますので、ご覧なられた皆様のシステムや環境に必ずしも該当するものではありません

                                        ガバメントクラウドAWS「以外」で必要な設備・作業を考えてみる - サーバーワークスエンジニアブログ
                                      • TSKaigiは配信画面もTypeScript製だったという話

                                        はじめに 先日開催されたTSKaigi 2024にて配信チームとして、オンライン配信のスタッフをしていました。 当日の各トラックの配信運営や総合的な環境構築などは他のメンバーを中心に行っていただきましたが、自分は配信画面のデザインや配信に乗せる情報管理用のシステムをコツコツ作っていたのでその紹介をさせていただきます。 情報管理用のシステムといってもローカルマシン上で動く簡単なもので、NodeCGと呼ばれるNode.js向けの配信画面管理用のフレームワークを利用しました。 NodeCGとは NodeCGは先ほど紹介したようにNode.jsとブラウザ技術で動的な配信画面を作成したり、管理画面を提供してくれるフレームワークです。 配信レイアウトとダッシュボードはブラウザ上で動作し、ダッシュボードで編集した情報を配信レイアウト側にWebSocketでリアルタイムに反映したり、WebSocketサー

                                          TSKaigiは配信画面もTypeScript製だったという話
                                        • 1つの大きなLLM(大規模言語モデル)を複数のGPUで力を合わせて動かそう | IIJ Engineers Blog

                                          地方拠点の一つ、九州支社に所属しています。サーバ・ストレージを中心としたSI業務に携わってましたが、現在は技術探索・深堀業務を中心に対応しています。 2018年に難病を患ったことにより、定期的に入退院を繰り返しつつ、2023年には男性更年期障害の発症をきっかけに、トランスジェンダーとしての道を歩み始めてます。 LLM群雄割拠の時代 昨今、ローカルGPUで駆動できるようなLLM(大規模言語モデル)もかなり増えてきて、キャッチコピー的に「ついに我が家にもGPT-4が!」とか言われるようになってまいりました。パラメータ規模で言えば70億~130億(7B-13B)パラメータ、700億(70B)パラメータ、1400億(140B)パラメータあたりのモデルが活発にリリースされているように見受けられます。 大きなモデルをGPU寄せ集めしつつ遊びたい! しかしながら、コンシュマー向けのGPUにおいては、7B

                                            1つの大きなLLM(大規模言語モデル)を複数のGPUで力を合わせて動かそう | IIJ Engineers Blog
                                          • Vivliostyleで市販書籍とそっくりに組んでみよう | gihyo.jp

                                            上達のコツはやはり反復練習!ということで、第4回では、InDesignで作られた書籍のPDF(なければプリントアウト)をもとに、紙面デザインをそっくりに再現する方法について解説します。何度か作成していくうちに、Vivliostyleの可能性やクセがつかめてくるはずです。 CSS組版を覚える早道は……? 筆者は2023年に『Web技術で「本」が作れるCSS組版 Vivliostyle入門』を執筆しましたが、これを読んだだけで自在に本を組めるようになるかといえば、残念ながらそう簡単なものではないというのが正直なところです。 では、どうやってCSS組版を勉強すればいいのでしょうか? ひるがえって、自分がたどった道のりを思い出してみると、CSS組版とVivliostyleを使い始めたのは、書籍の原稿整理の一環として、書籍デザイン通りの字数・行数をCSS組版で再現したのが始まりでした。何度もそれを繰

                                              Vivliostyleで市販書籍とそっくりに組んでみよう | gihyo.jp
                                            • Why SQLite Uses Bytecode

                                              1. Introduction Every SQL database engine works in roughly the same way: It first translates the input SQL text into a "prepared statement". Then it "executes" the prepared statement to generate a result. A prepared statement is an object that represents the steps needed to accomplish the input SQL. Or, to think of it in another way, the prepared statement is the SQL statement translated into a fo

                                              • 生成AIグラビアをグラビアカメラマンが作るとどうなる?第24回:照明を自由にコントロールできるIC-Light登場!(西川和久) | テクノエッジ TechnoEdge

                                                lllyasviel氏復活第一弾のIC-Light前回(第23回)にControlNetやFooocus、stable diffusion webui forgeを作ったlllyasviel氏、ここ数ヶ月Xなどに書き込みが無いと書いたが、いきなり驚くべき仕掛けを提げての復活。その名もIC-Light(Imposing Consistent Light)。Stable Diffusionの技術を使って、照明を自由にコントロールできる仕掛けだ。 これまでStable Diffusionでは、SD 1.5、SDXLに関わらず、Promptで光や照明などの指示はできたのだが、どのように反映されるかは、Modelやその他の設定しだい。例えば backlight, soft bounced lighting, soft natural lighting, candolelight, neon ligh

                                                  生成AIグラビアをグラビアカメラマンが作るとどうなる?第24回:照明を自由にコントロールできるIC-Light登場!(西川和久) | テクノエッジ TechnoEdge
                                                • 最近は意図的にGitHub Copilotを無効にすることがある

                                                  別にみんなそうするべきとは全く思わないのだけど、僕は最近GitHub Copilotを意図的に無効にすることがあるので、そのへんについて雑に書いておく。 あらかじめ言っておくが、僕はGitHub Copilotを有効にすることもある。この記事もGitHub Copilotおよびそのユーザーを批判する意図は全くない。 GitHub Copilot が便利な場面 僕がGitHub Copilotを使い始めて少なくとも一年以上は経ってる。自分が書こうと思っているコードに近いものが簡単に生成されていくことに最初は感動したし、便利な場面がはたくさんある。 具体的に便利な場面を思い返してみる。 僕は仕事ではNext.jsでフロントエンドを書いたり、NestJSでバックエンドを書いたりしているのだが、その用途では便利だった。僕は自分が関わっているプロジェクトのReactやNode.jsの書き方はある程度

                                                    最近は意図的にGitHub Copilotを無効にすることがある
                                                  • CVE-2024-4367 - Arbitrary JavaScript execution in PDF.js — Codean Labs

                                                    This post details CVE-2024-4367, a vulnerability in PDF.js found by Codean Labs. PDF.js is a JavaScript-based PDF viewer maintained by Mozilla. This bug allows an attacker to execute arbitrary JavaScript code as soon as a malicious PDF file is opened. This affects all Firefox users (<126) because PDF.js is used by Firefox to show PDF files, but also seriously impacts many web- and Electron-based a

                                                      CVE-2024-4367 - Arbitrary JavaScript execution in PDF.js — Codean Labs
                                                    • JSのデザインパターンライブラリを試作した話と、それをJSRにアップロードしたら無茶苦茶簡単で感動した話

                                                      デザインパターンライブラリを作った JSRの話だけ読みたい人は読み飛ばしてもOKです。 JavaScriptのtry-catchはC++の影響を受けており、以下の特徴があります。 (A) throwは大域脱出的である。 (B) try-catchはブロック内の全ての例外副作用に対して一括で作用する。 (C) try-catchは文であり、値を返せない。 (D) TypeScriptにおいて、例外型は明示されない。 このうち (B), (C), (D) の問題を解決するため、RustのResultや類似のパラダイムをJSに輸入する試みがしばしば行われています。しかしこの解決手段にはいくつかの問題があり、 (E) rethrowの専用構文がないためボイラープレートが増える。 (F) 出力ストリームに対するwriteなど、戻り値を持たない副作用関数に対するエラーハンドリングが抜け落ちないようにL

                                                        JSのデザインパターンライブラリを試作した話と、それをJSRにアップロードしたら無茶苦茶簡単で感動した話
                                                      • tsc の代替実装は作れるのか - mizdra's blog

                                                        tsc の代替実装を作る話、とりわけ Rust や Go で tsc を高速化した移植版を作る話について。非常に野心的で面白いと思いつつ、正直僕は実用レベルまで達したものが本当に登場するのか疑問に思っている。今ある型システムもそうだし、新機能として追加されるものにも追従する必要がある。当然、実用レベルとして使ってもらうには、不具合も少なくないといけない。 それに tsc も最近はパフォーマンス改善に力を入れているように見えている。実際にリリースノートを見ると、ちょくちょくパフォーマンス改善系の変更が入っている。 TypeScript: Documentation - TypeScript 4.8 TypeScript: Documentation - TypeScript 4.9 TypeScript: Documentation - TypeScript 5.0 TypeScript:

                                                          tsc の代替実装は作れるのか - mizdra's blog
                                                        • PHPやNode.jsなどに任意コマンド実行の脆弱性、原因はWindows仕様の理解不足

                                                          多くのプログラミング言語の処理系に、攻撃者が任意のコマンドを実行できる深刻な脆弱性が見つかった。JPCERTコーディネーションセンター(JPCERT/CC)と情報処理推進機構(IPA)が共同運営する脆弱性対策情報ポータルサイト「JVN(Japan Vulnerability Notes)」で2024年4月15日に公開された。 脆弱性が確認されたのは「PHP」「Rust」「Haskell」の各言語処理系とJavaScript/TypeScriptの処理系「Node.js」、音声や動画をダウンロードできる高機能なコマンド「yt-dlp」である。ただし、この脆弱性の影響を受けるOSはWindowsだけで、LinuxやmacOSなどの他のOSには影響しない。 多くのプログラミング言語は、プログラムの中からOS上でコマンドを実行する機能を持つ。Windowsでは言語処理系が「CreateProces

                                                            PHPやNode.jsなどに任意コマンド実行の脆弱性、原因はWindows仕様の理解不足
                                                          • Bun 1.1.5でクロスコンパイルが可能に。LinuxでWindows対応の実行ファイルなどビルド

                                                            サーバサイドで実行可能なJavaScriptランタイム「Bun」は、2023年5月に登場したバージョン0.6で、単独の実行ファイルを生成できる「bun build」機能が搭載されました。 単独の実行ファイルは、Bunをインストールすることなく、そのまま実行可能です。 そして4月26日にリリースされたBun 1.1.5では、このBun buildの機能にクロスコンパイルの機能が追加されました。 Bun v1.1.5 - Fixes 64 bugs (addressing 101) - Cross-compile standalone JS/TS binaries - https://t.co/8hd5RVXz0H is bun's new crash reporter - package.json won't error on comments & trailing commas - Nod

                                                              Bun 1.1.5でクロスコンパイルが可能に。LinuxでWindows対応の実行ファイルなどビルド
                                                            • Server Actions の同時実行制御と画面の状態更新

                                                              2024 年 5 月現在だと Next.js のドキュメントには明示的な記載がないが、「同時に実行可能な Server Action は常に1つだけ」という件について。 実は自分もこれをちゃんと認識しておらず、先日会社の先輩に教わって初めて知ったので、試したことなどを書き残しておく。 Next.js の場合、App Router (Router Reducer) によって、Server Action の実行が直列化 (キューイング) されるようになっている。 このキューイングの挙動を考慮すると、以下のような呼び出し方は危ういコードとなる。 "use client"; import { useState } from "react"; import { increment } from "./actions"; export default function Page() { const [

                                                                Server Actions の同時実行制御と画面の状態更新
                                                              • オブジェクトストレージにおけるファイルアップロードセキュリティ - クラウド時代に"悪意のあるデータの書き込み"を再考する - Flatt Security Blog

                                                                はじめに セキュリティエンジニアの齋藤ことazaraです。今回は、オブジェクトストレージに対する書き込みに関連するセキュリティリスクの理解と対策についてお話しします。 本ブログは、2024年3月30日に開催された BSides Tokyo で登壇した際の発表について、まとめたものです。 また、ブログ資料化にあたりオブジェクトストレージを主題とした内容の再編と、登壇時に口頭で補足した内容の追記、必要に応じた補足を行なっています。 なぜ今、この問題を取り上げるのか? 近年のクラウドリフト、クラウドシフトにより、クラウドを活用する場面が多くなってきていると思います。その中で、多くの場面で利用されるオブジェクトストレージにおいて、データの書き込み時に気にすべきセキュリティリスクが存在するのをご存知でしょうか? 近年、オブジェクトストレージの不適切な利用に起因する情報漏洩が多く発生しています。そのよ

                                                                  オブジェクトストレージにおけるファイルアップロードセキュリティ - クラウド時代に"悪意のあるデータの書き込み"を再考する - Flatt Security Blog
                                                                • A virtual DOM in 200 lines of JavaScript

                                                                  May 19, 2024 - Póvoa de Varzim, Portugal 🇵🇹 A virtual DOM in 200 lines of JavaScript In this post I’ll walk through the full implementation of a Virtual DOM in a bit over 200 lines of JavaScript. The result is a full-featured and sufficiently performant virtual DOM library (demos). It’s available on NPM as the smvc package. The main goal is to illustrate the fundamental technique behind tools li

                                                                  • Node.js、ロケットに乗った亀「Rocket Turtle」が正式マスコットに

                                                                    Node.jsのマスコットキャラクターが2月に決まり、発表されていました。 先週発表されたNode.js 22の記事を書くに当たり、資料を調べているうちに気がつきましたので紹介したいと思います(「Node.js v22 で変わること - Speaker Deck」というスライドで知りました。ありがとうございます)。 Node.jsのマスコットキャラクターはGitHubのIssue「Have a mascot · Issue #828 · nodejs/admin」で議論されて……

                                                                      Node.js、ロケットに乗った亀「Rocket Turtle」が正式マスコットに
                                                                    • TSKaigi 2024 Prettierの未来を考える スピーカーノート

                                                                      TSKaigi 2024 で話した「Prettier の未来を考える」という発表のスピーカーノートです。スライドは こんにちは、今日は「Prettierの未来を考える」というタイトルでお話させていただきたいと思います。 鈴木 颯介と言います。ユビー株式会社でプロダクト開発エンジニアとして働きながら、筑波大学でパソコンの勉強をしています。オープンソースソフトウェアが好きで、今日お話するPrettierのメンテナーをしたり、トランスパイラのBabelのコミッターをしたりしています。最近はWebKitのJSエンジンにたくさんパッチを投げたりしています。 私が働いているユビーは、TSKaigiのGold Sponsorをさせてもらっています。ブースがあります。ユビーのグッズの他に、Prettierのステッカーも配布しておりますので、興味がある方はぜひお立ち寄りください。 まず、Prettierにつ

                                                                        TSKaigi 2024 Prettierの未来を考える スピーカーノート
                                                                      • Portable stories for Playwright Component Tests

                                                                        Storybook is the industry standard workshop for building, documenting, and testing UI components. It’s used by leading development teams at organizations like Shopify, Gov.UK, and NASA. One of the biggest benefits of developing in Storybook is that you get tests for free. Each isolated component example—or “story”—is a UI test. And if you want to test data fetching and user interactions, Storybook

                                                                          Portable stories for Playwright Component Tests
                                                                        • RFC 9562: Universally Unique IDentifiers (UUIDs)

                                                                           Internet Engineering Task Force (IETF) K. Davis Request for Comments: 9562 Cisco Systems Obsoletes: 4122 B. Peabody Category: Standards Track Uncloud ISSN: 2070-1721 P. Leach University of Washington May 2024 Universally Unique IDentifiers (UUIDs) Abstract This specification defines UUIDs (Universally Unique IDentifiers) -- also known as GUIDs (Globally Unique IDentifiers) -- and a Uniform Resou

                                                                            RFC 9562: Universally Unique IDentifiers (UUIDs)
                                                                          • 次のLTS版となる「Node.js 22」正式リリース。WebAssembly GCがデフォルトで利用可能に

                                                                            次のLTS版となる「Node.js 22」正式リリース。WebAssembly GCがデフォルトで利用可能に JavaScriptランタイム「Node.js」の最新バージョンとなる「Node.js 22」正式版がリリースされました。 Node.jsは偶数バージョンがリリースされてから6カ月の後に、30カ月の長期サポート期間(LTS:Long Term Support)に入ります。Node.js 22も、6カ月後の2024年10月にLTSとなる予定です。 Node.js 22 is here Featuring: require()ing ESM graphs, WebSocket client, updates of the V8 JavaScript engine, and more. Big thank you to @_rafaelgss and @satanacchio for t

                                                                              次のLTS版となる「Node.js 22」正式リリース。WebAssembly GCがデフォルトで利用可能に
                                                                            • Deep Dive into React Stream/Serialize

                                                                              2024/04/30 Node学園 https://nodejs.connpass.com/event/315443/

                                                                                Deep Dive into React Stream/Serialize
                                                                              • Examining the Deception infrastructure in place behind code.microsoft.com

                                                                                The domain name code.microsoft.com has an interesting story behind it. Today it’s not linked to anything but that wasn’t always true. This is the story of one of my most successful honeypot instances and how it enabled Microsoft to collect varied threat intelligence against a broad range of actor groups targeting Microsoft. I’m writing this now as we’ve decided to retire this capability. In the pa

                                                                                  Examining the Deception infrastructure in place behind code.microsoft.com
                                                                                • 12.6. B-Trees — CS3 Data Structures & Algorithms

                                                                                  12.6.1. B-Trees¶ This module presents the B-tree. B-trees are usually attributed to R. Bayer and E. McCreight who described the B-tree in a 1972 paper. By 1979, B-trees had replaced virtually all large-file access methods other than hashing. B-trees, or some variant of B-trees, are the standard file organization for applications requiring insertion, deletion, and key range searches. They are used