module: add --experimental-strip-types by marco-ippolito · Pull Request #53725 · nodejs/node It is possible to execute TypeScript files by setting the experimental flag --experimental-strip-typ... 💁♀️ まだマージされてない点に注意してください --experimental-strip-typesというフラグを実行時に付けることにより、Node.jsでTypeScriptのコードを実行できるようになるPRが出てきました。 背景 TC39でも型注釈の話題(議事録を読むとブラウザとの兼ね合いもあり道のりは長そう)が存在するほどJSのコードにおいて、型は当たり前となっています。 Node.jsと同
生成AIに疑似コードで指示すると自然言語よりも効率的にプログラムが生成できるというアイデアから生まれた、生成AI用の疑似言語「SudoLang」 ChatGPTやCopilotなどの生成AIを用いてコードを生成しようとすると、多くの場合プロンプトを自然言語で書くことになるでしょう。 しかし自然言語で的確にプログラムの内容を表現するのは、ときに面倒だったり、あいまいさを排除することが難しかったりします。 一方で、プログラマが自分でコードを書こうとするとき、あるいは他のプログラマとコードの内容を議論するときに、自然言語をプログラミング言語のような構文で書く、いわゆる「擬似コード」を使うことがよくあります。 例えばこんな風に自然言語をコードっぽくホワイトボードに書いたことのあるプログラマの方は多いのではないでしょうか? 入力値を処理するための関数(A、B){ Aは数字かどうか確認する Bは日付か
オラクルはリレーショナルデータベース「MySQL」の新バージョンとなる「MySQL 9.0」をリリースしました。 MySQLは現在、数カ月ごとにリリースされ積極的に新機能が追加されるイノベーションリリース(Innovation Release)と、長期で安定して利用されることを想定して2年ごとにリリースされる長期サポート(LTS:Long Term Support)版の2つに分かれてリリースされています。 現在のLTS版は今年(2024年)4月に登場したMySQL 8.4です。 そして今回リリースされたMySQL 9.0はイノベーションリリースに該当します。最新機能をいちはやく試したい開発者やユーザーのためのリリースです。 MySQL 9.0の主な新機能 MySQL 9.0のドキュメント「What Is New in MySQL 9.0」から、新機能「JavaScriptストアドプログラム
Table of Contents Introduction Part 1: Treesitter for Typescript & TSX LSP Support Completion setup Linter setup LSP Setup Eslint (Optional) Tailwind LSP Server LSP Performance Emacs LSP Booster Structural editing Formatting buffers with Prettier Other resources Conclusion Introduction I've worked within the JS ecosystem for the past 8 years using editors like Webstorm and VSCode, I started using
When we released ESLint v9.0.0 in April, it was the first major release in 30 months and formally introduced the new configuration system. ESLint v9.0.0 also made some rule API changes to prepare the core for what’s coming next. After the release, we spent a lot of time creating compatibility utilities, a configuration migration tool, and a rule API transform utility to help the ecosystem move to
New to the world of web performance? Welcome! Here's everything you need to know to master website monitoring, analytics, and diagnostics. Learn how to deliver a fast, joyous experience to all your users. Business Success Making your pages faster isn't just for the web performance geeks in your organization. Site speed affects every business metric you care about – from bounce rate to conversions
おさらい: prototype JavaScript のオブジェクトはみんな prototype というのを持っていて, この prototype からプロパティを継承, より正確には, プロパティアクセス時にそのプロパティがオブジェクトに存在しなければ prototype を辿って見つけにいくことになっている. あるオブジェクトを prototype とした別のオブジェクトを作るには Object.create を使う (あるいは new 演算子や __proto__ を使っても良い). const x = {}; x.foo = "foo"; const y = Object.create(x); y.bar = "bar"; const z = Object.create(y); z.baz = "baz"; console.log(z.foo); // => "foo" conso
はじめに こんにちは。カナリーでソフトウェアエンジニアをしている @yoshi-jr です。 私たちは 【もっといい「当たり前」をつくる】 をミッションに掲げている不動産テックカンパニーです。弊社では、現在下記のプロダクトを運用しています。 「Canary」: BtoC の部屋探しポータル(アプリ/Web) 「Canary Cloud」: BtoB SaaS(不動産の仲介会社様向けの顧客管理システム) この記事では、 CANARY のウェブ版(以降 CANARY Web)で利用している技術スタックをまとめています。 この記事を読んでわかること CANARY Web について技術スタックの全体像・概要が理解できる 話すこと CANARY Web のアーキテクチャ CANARY Web で利用しているモジュールとその歴史 話さないこと CANARY Web 視点以外でのアーキテクチャ 各モジュ
この記事では、ウェブサイトを保護するために使用できる最も重要なセキュリティ ヘッダーについて説明します。ウェブベースのセキュリティ機能について理解し、ウェブサイトへの実装方法を理解するのに役立ちます。また、リマインダーが必要になったときの参考にもなります。 ユーザーの機密情報を扱うウェブサイトに推奨されるセキュリティ ヘッダー: コンテンツ セキュリティ ポリシー(CSP) Trusted Types すべてのウェブサイトで推奨されるセキュリティ ヘッダー: X-Content-Type-Options X-Frame-Options クロスオリジン リソース ポリシー(CORP) クロスオリジン オープナー ポリシー(COOP) HTTP Strict Transport Security(HSTS)高度な機能を持つウェブサイトのセキュリティ ヘッダー: クロスオリジン リソース シェア
once.com Writebookについて Writebookは、https://37signals.com/books のようなオンラインブックを構築できるツールです。 これは37signalsのONCEというモダンなパッケージインストール型ソフトウェアを再考したものの一部で、37signalsのポッドキャストでたびたびコンセプトが言及されています*1。ブログ世代としてはMovable Typeを彷彿させます。 Writebookを無料にしている理由は、これをゲートウェイとしてCampfireにも流れていくことを期待しているようです。 セットアップ https://once.com/writebook にアクセスし、登録を行うと、ライセンスキーとインストールコマンドが書かれたメールが送られてきます。 セットアップは、手順に従ってダウンロードしたonceコマンドを使用して行います。このo
概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Quicktips for ViewComponent with Tailwind CSS/Hotwire | Rails Designer 原文公開日: 2024/01/22 原著者: Rails Designer -- Railsフロントエンド関連記事に加えて、ViewComponentとTailwind CSSを用いた美しいUIコンポーネントを販売しています 日本語タイトルは内容に即したものにしました。 フロントエンドのコードは、歴史的に少々軽く見られていました。「HTMLは本物の言語じゃない!」「CSSはサイテー!」「JavaScriptもそうだ!」。嘆かわしい話です。Railsは1個人だけの開発チームに、すべてが完全に揃った製品を構築できる本物のスーパーパワーを与えてくれるのですから。 Railsアプリ作成がさらに楽し
概要 Polyfill.ioという広く利用されているJavaScriptライブラリにマルウェアを混入される事件が発生しました。このPolyfill.ioは、ウェブサイトが異なるブラウザで正しく動作するための互換性を提供するコードを提供しています。 事件の概要 買収とマルウェアの注入: 2024年2月、Polyfill.ioのドメインとGitHubアカウントが中国の企業Funnullに買収されました。その後、このライブラリにマルウェアが注入されました。 影響: マルウェアは、cdn.polyfill.ioから提供されるスクリプトに含まれ、これを利用している約100,000のウェブサイトに影響を及ぼしました。ユーザーがこれらのウェブサイトを訪れると、マルウェアが実行され、データ盗難や不正なリダイレクトなどの被害が発生する可能性がありました。 検出と対応: セキュリティ企業のSansecやそ
個人的に「Webサービスの公開前チェックリスト」を作っていたのですが、けっこう育ってきたので公開します。このリストは、過去に自分がミスしたときや、情報収集する中で「明日は我が身…」と思ったときなどに個人的にメモしてきたものをまとめた内容になります。 なお、この記事では各項目の解説はあまり入れていません。2024年7月10日のClassmethod Odysseyで少し詳しく話そうと思っているので、よかったら聞きにきてください。オンラインなので無料です。 セキュリティ 認証に関わるCookieの属性 HttpOnly属性が設定されていること XSSの緩和策 SameSite属性がLaxもしくはStrictになっていること 主にCSRF対策のため。Laxの場合、GETリクエストで更新処理を行っているエンドポイントがないか合わせて確認 Secure属性が設定されていること HTTPS通信でのみC
フロントエンドエンジニア うひょ TypeScriptとReactが得意なフロントエンドエンジニア。株式会社カオナビ所属。ウェブ上の技術記事や雑誌を通じて技術的な情報発信を続けている。実はJavaScript歴19年。 著書『プロを目指す人のためのTypeScript入門』(技術評論社) X(@uhyo_) 個人サイト(uhy.ooo) 皆さんこんにちは。前々回、前回までのコラムでは、技術発信に興味がある方に向けて、技術記事や登壇資料を作る際の考え方やテクニックをお伝えしてきました。 今回のテーマは、技術発信とキャリアの関係についてです。というのも、私のキャリアはまだそこまで長いものではないですが、それでも技術発信のよい影響を受けてきました。それがなぜなのか、技術発信をキャリアに活かす戦略とはどのようなものなのか考えてみましょう。 もっとも、「好きこそものの上手なれ」とはよくいったもので、
Version 1.91 is now available! Read about the new features and fixes from June. June 2024 (version 1.91) Downloads: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap Welcome to the June 2024 release of Visual Studio Code. There are many updates in this version that we hope you'll like, some of the key highlights include: Preview: Incoming/Outgoing changes graph -
CDNの文脈でいうエッジコンピューティングはフロントエンドのものとされることが多い気がするけど、そうじゃない。フロントエンドの技術を使ったバックエンドである。 フロントエンド? ユーザーに近いところで実行されるという意味ではフロントエンドかもしれない。あと、VercelのNext.jsのように、フロントエンドフレームワークのファンクションがエッジで動くからフロントエンドでしょというのはある。そしてエッジのファンクションはたいていフロントエンドで使われているJavaScriptもしくはTypeScriptで書く。そうするとツールチェーンも、例えば「Vite」と聞いてそれが何であるか?を答えられる人はフロントエンドやってる人の方が多いだろう。 2つのユースケース エッジには2つのユースケースがある。 CDNの機能を拡張する。オリジンありき。 サーバーレスコンピュート。オリジンそのものになる。
ANYRUN FZCOは2024年7月4日(現地時間)、64bit版「Windows 10」の仮想マシンを全てのユーザーに提供すると発表した。これによって全てのANY.RUNユーザーが最新のOSを使用して脅威分析が可能になる。 ANY.RUNはサンドボックス型のマルウェア分析ツールだ。ユーザーは仮想マシンでマルウェアの挙動をリアルタイムで観察し、分析できるように設計されている。 全てのユーザーで使用可能、64bitマルウェア分析が向上 これまでANY.RUNのコミュニティープランユーザーは32bit版「Windows 7」の基本的な仮想マシンしか利用できず、64bitシステムでの検出率が期待通りに向上しないという課題があった。今回のアップデートで全ユーザーが64bit版Windows 10を利用できるようになり、脅威の検出と分析機能が大幅に向上することが期待されている。 64bit版のWi
The sad state of property-based testing libraries Posted on Jul 2, 2024 Property-based testing is a rare example of academic research that has made it to the mainstream in less than 30 years. Under the slogan “don’t write tests, generate them” property-based testing has gained support from a diverse group of programming language communities. In fact, the Wikipedia page of the original property-bas
Yjsは、リアルタイム共同編集を実現するためのアルゴリズムとデータ構造を提供するフレームワークです。Notion や Figma のように、1 つのコンテンツを複数人で同時に更新する体験を提供することができます。 Y.Map, Y.Array, Y.Text といった共有データ型を提供し、それらは JavaScript の Map や Array のように利用できます。さらにそのデータに対する変更は他のクライアントに自動的に配布・同期されます。 Yjs は Conflict-free Replicated Data Types (CRDT) と呼ばれるアルゴリズムの実装であり、複数人が同時にデータを操作してもコンフリクトが発生せず、最終的に全てのクライアントが同じ状態に到達するように設計されています。 クイックスタート Y.Map がクライアント間で自動的に同期されるコード例を見てみましょ
Zscalerは2024年6月27日(現地時間、以下同)、北朝鮮政府が支援する脅威アクター「Kimsuky」(別名:APT43、Emerald Sleet、Velvet Chollima)が「TRANSLATEXT」と呼ばれる悪意のある「Google Chrome」(以下、Chrome)の拡張機能を使ったサイバースパイ活動に従事していると報告した。 Google翻訳の拡張機能を装いインストールを誘導か Zscalerによると、これらのスパイ活動によって、電子メールアドレスやユーザー名、パスワード、Cookie、Webブラウザのスクリーンショットなどが窃取される可能性があるという。Kimsukyによる犯行であることは、コマンド&コントロール(C2)サーバの特徴などから中程度の確信があるとしている。 Kimsukyは2013年に観測された脅威アクターだ。韓国のシンクタンクや政府機関、学術部門な
I’ve noticed a small but interesting trend in the programming languages space. I’m not sure how novel it is, but this pattern, which I’ll refer to as “biphasic programming,” is characterized by languages and frameworks that enable identical syntax to express computations executed in two distinct phases or environments while maintaining consistent behavior (i.e., semantics) across phases. These pha
「Svelte」はWebページ用UIフレームワークで、コンパイル時にプレーンなJavaScriptを生成するといった特徴があります。本連載ではSvelteの活用方法を順を追って説明していきます。初回となる今回は、Svelteの概要と特徴を説明するとともに、実際にプロジェクトを作成して実行させ、Svelteを体験します。 はじめに WebページのUIを構築するためのライブラリやフレームワークは、ReactやVue.js、Angularといったさまざまなものが存在します。本記事で取り上げるSvelteも、そのようなフレームワークの1つです。 図1 Svelteの公式ページ 他のライブラリやフレームワークでは、それ自体のコードがブラウザーに読み込まれて実行されるのに対して、Svelteでは、Svelte自身のコードを含まないプレーンなJavaScriptをコンパイルで生成するため、実行ファイルサ
こんにちは、エンジニアです。 本記事ではuseMediaQueryを使うべきではない理由を説明します。 useMediaQueryとは window.matchMediaの判定結果を取得するカスタムフックを指します。 window.matchMediaはCSSでできるメディアクエリの判定をJavaScriptでも可能にするブラウザAPIです。それをReact Hooksと組み合わせることで、宣言的に判定を行えるようなカスタムフックとなります。 過去にuseSyncExternalStoreを使って実装する記事を書いたので参考にしてみてください。 上の記事ではuseSyncExternalStoreの使い道を説明するのが目的だったのですが、Reactのフックとしてメディアクエリを使える、使っても良いと捉えられてしまったようで、題材選びを少し反省しています(?) 以下はユーティリティ系ライブラ
コンテナクエリの使用方法 コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。 最近、Chris Coyier 氏は、 コンテナクエリがすべてのブラウザ エンジンでサポートされるようになった今、開発者がコンテナクエリを使用する機会が増えないのはなぜでしょうか。 Chris の投稿には考えられるさまざまな理由が挙げられています(意識の欠如、古い習慣が困難になるなど)が、際立った特に理由があります。 今はコンテナクエリを使用したいが、古いブラウザをサポートする必要があるためできないと考えているデベロッパーもいます。 タイトルから推測できるように、古いブラウザをサポートする必要がある場合でも、ほとんどのデベロッパーは本番環境でコンテナクエリをすぐに使用できると考えています。この投稿では、そのためにおすすめのアプローチについて説明します。 実際的なアプローチ 現時点でコ
Google Chromeには便利な拡張機能が多数ある。だが、研究によればChrome ウェブストアからインストールした拡張機能はそれほど安全ではなく、数億人のユーザーがマルウェアに感染した可能性があるという。 「Google Chrome」(以下、Chrome)に不足している機能を補うには、「Chrome ウェブストア」から拡張機能をダウンロードすればよい。 しかし、ここに問題がある。マルウェアが含まれている可能性があるからだ。スタンフォード大学の研究チームはChrome ウェブストアで配信されている拡張機能を網羅的に調べ、マルウェアなどのリスクがどの程度なのかを確認した。何が分かったのだろうか。 実は危険だったウェブストア 同大学のシェリル・シュー氏とマンダ・トラン氏、オーロア・ファス氏の3人は、まず、Chrome ウェブストアの利用規約やプライバシーポリシーに違反している拡張機能やマ
Google、Google Sheetsの計算エンジンをWebAssemblyに最適化し、2倍の性能を実現したと発表 GoogleはWebブラウザ上でスプレッドシート機能を提供する「Google Sheets」の計算エンジンの性能をWebAssembyで実装し、従来のJavaScriptによる実装と比較して性能を2倍に向上させたことを明らかにしました。 これにより単純なSUM計算から複雑なクエリまで、シート上でのあらゆる計算を始め、ピボットテーブルの作成、条件付きフォーマットなどさまざまな処理が高速になるとのことです。 この性能向上は、JavaScriptで構築されていた計算エンジンをWebAssemblyに最適化したことで実現していると説明されており、そのためにWebAssemby GC(ガベージコレクション)機能を用いたとのことです。 そのため現時点ではChromeとMicrosoft
How to use container queries now Stay organized with collections Save and categorize content based on your preferences. Recently, Chris Coyier wrote a blog post posing the question: Now that container queries are supported in all browser engines, why aren't more developers using them? Chris's post lists a number of potential reasons (for example, lack of awareness, old habits die hard), but there'
要約 背景 WebAssembly (WASM) とは? Rust言語とは? サンプルアプリ概要 LBP特徴量計算をRustで実装 フロントエンド環境構築 バックエンド環境構築 スキーマ定義 Rust実装 WASMバイナリの生成 TypeScript実装 実行結果 まとめ メンバー募集しています! おまけ こんにちは!美味しいタコスを食べることを専門としているプロダクト開発部エンジニアの井上です。 要約 WebAssembly(WASM)、Rustは近年注目されている技術であり、これを利用することでWebアプリケーション上で高速な画像処理を実現できるよ。 我々も画像前処理を行っていたWindowsデスクトップアプリケーションを、WebAssembly+Rustを使用してWebアプリケーションに置き換えたよ。 Rust言語で実装した画像処理をWASMにコンパイル、そしてWebアプリケーション
これはなに 自身のプロジェクトに適合した ESLint Config の設計および実装方法についてまとめたものです。 業務や趣味プロに関わらず、 JavaScript / TypeScript でコーディングする際に ESLint は非常に有用なツールであり、広く使われています。ほとんどの場合において ESLint 基盤はプロジェクトごとに必要なパッケージをインストールして設定ファイルを作成し、構築されます。しかしその設定内容がプロジェクト間で重複することは珍しくなく、プロジェクトの数が増えるにつれ冗長となりがちです。そこで、複数プロジェクト間で共通のルールセットを定義して単一の ESLint Config として再利用することで、メンテナンス性や再利用性の向上が期待できます。本稿では、そのような用途で使える自分だけの ESLint Config を設計・実装する方法を紹介します。 前提
JavaScriptにはだいぶ前からSetオブジェクトがありましたが、何故か集合演算は全く定義されておらず自力で実装しなければなりませんでした。 その後、まあ不便だねってことでSet Methods for JavaScriptというproposalが提出されました。 実装は珍しくSafariが最も早く、2023/09/18のSafari17から対応しました。 その後2024/02/21にChrome122、そして2024/06/11にFirefox127で実装されたことにより、主要全ブラウザで集合演算が使用可能になりました。 複数環境で実装されたことから、無事ES2025としてStage4、つまり上がりになりました。 ということで使い方を紹介するよ。 Set.prototype.intersection() 要素と引数の、両方に含まれる値を返します。 new Set([1, 2, 3,
Google スプレッドシートが計算ワーカーを JavaScript から WasmGC に移植した理由 コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。 Google スプレッドシートは、Chrome で WasmGC を使用する Google 初のプロダクトの 1 つです。この移行は 2022 年に発表され、Google スプレッドシートと Chrome のチームは標準化、エンジニアリング、ツールに関して連携し、最適化に関するフィードバックをリアルタイムで提供しました。このパートナーシップは、Google のエンジニアリング チームが Chrome を効果的に連携させ、より多くの Google アプリを WasmGC で実行できるようにする前例となります。 課題: JavaScript Google スプレッドシートの計算エンジンは元々 Java で記述
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く