Webブラウザは,開発者にとってもユーザーにとっても,もはや日常の一部となっているほど身近なソフトウエアですが,近年のブラウザはあまりにも高機能かつ巨大になってしまったため,その仕組みを詳しく理解することは困難です。そこで,シンプルなブラウザをRustを用いて実装することによって,ブラウザ上でWebサイトを開くまでに何が起きているのかを理解することを目的とします。さらに,作成したブラウザを,別冊で解説・実装している自作OSの上で動かすことによって,ブラウザと更にその裏側を理解していきます。
Yu Gothic UIに text-spacing-trim を適用するとバグる を読んでいて、気になってしまったので、実際にYu Gothic UIのファイルの中身を開いて調べてみました。 発生している問題 回避策 原因 Yu Gothic UI 特有の問題? まとめ 発生している問題 Yu Gothic UIは、Windows 10からプリインストールされているUI表示用フォントです。 手元の環境で確認したところ、Windows 11 23H2 (ビルド 22631.4317) 時点では、「Yu Gothic UI Version 1.93」がインストールされていました。 このフォントをChrome系ブラウザで利用すると、鍵括弧表示が崩れる場合があります。具体的には、 「abc」「abc」 のように、閉じ括弧・開き括弧が隣接するケースです。 」「 の部分ですね。この際に、閉じ括弧と開
× Kagi Translate delivers precise translation across 244 languages using advanced language models. You can translate any web page by adding "translate.kagi.com/" before the URL in your browser address bar. Or, drag this bookmarklet Kagi Translate to your browser bookmarks for one-click translation of selected text on page/entire web page.
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 2024/09/10にIdle Detection APIというAPIが更新されていました。 ステータスはDraft Community Group Reportです。 これはコミュニティによる提案であり、W3Cによる正式な勧告ではありません。 個人や団体レベルでも、とりあえずRFCを作ってみたり検討したりできる段階ということです。 以下はこの提案を管理しているGitHubから、このRFCの意義を解説したReadmeの紹介です。 User Idle Detection API このAPIでは、開発者はユーザがアイドル状態になったとき(キ
ブラウザ内テキスト探索の高速化というテーマで改善を行いました。公開許可は頂いていますが、先方の希望で社名は伏せさせていただきます。 技術的には「再現性がある木構造のノード探索の条件の生成、その実行の高速化」という少しR&Dっぽいタスクでした。Playwright のコードを参考にしつつ、個別により速いパーツで置き換えていく、というもので非常に興味深いものでした。こういう仕事は楽しいので、いくらでも歓迎です。 今回は最初はドメイン理解に時間をあてて、その後十分にドメイン理解が進んだら計測しつつ改善する、という流れです。 以下、敬称略。 相談内容 ブラウザを自動操作する技術を開発している。技術的には一種のE2Eテストの応用技術で、サーバーに要素の探索条件と、その操作を登録する。 今回の相談では、その要素探索が重くなってしまうケースがあり、これを改善してほしい、という依頼。とくにテキストを条件に
記事作成時点で広く使われているHTMLレンダリングエンジンは、ChromeやEdgeの「Blink」、Safariの「WebKit」、Firefoxの「Gecko」の3種に絞られています。ごく少数の大企業や団体がウェブの将来の決定権を握る状況を打破するべく、「ゼロから書かれた新しいウェブエンジン」として「Gosub」の開発が進められています。 Gosub Web Browser Engine https://gosub.io/ Gosubは開発の初期段階で、現時点ではHTMLパーサーが「HTML5を正しく解析できる段階」まで開発が進んでおり、CSSパーサーは概念実証の段階です。また、JavaScriptのエンジンとして、記事作成時点ではGoogleが開発するV8が使用されていますが、Gosubはモジュール性を重視しており、将来的には開発者が好みのJavaScriptエンジンを選択できるよう
Chrome の組み込み AI の Summarization API を試してみる 2024.10.13 Google では大規模言語モデル(LLM)などの AI モデルをブラウザに直接統合するように設計された、Web プラットフォーム API とブラウザ機能を開発しています。これには Gimini Nano という AI モデルが含まれており、デスクトップパソコンにおいてローカルで実行されるように設計されています。この記事では Summarization API を使用して、文章を要約してみます。 Google では大規模言語モデル(LLM)などの AI モデルをブラウザに直接統合するように設計された、Web プラットフォーム API とブラウザ機能を開発しています。これには Gimini Nano という AI モデルが含まれており、デスクトップパソコンにおいてローカルで実行されるよ
スタンドアロンなWebAssemblyランタイム「Wasmer」の開発元であるWasmer社は最新のWasmer 4.4の新機能として、C言語をWebAssemblyにコンパイルし、WebAssembly環境でそのまま実行可能する機能を発表しました。 下記はWasmer社が用意した、Webブラウザ上にWebAssemblyでBash環境を構築する「wasmer.sh」のコマンドラインから、wasmerによりC言語をコンパイルしてWebAssemblyモジュールを生成し、実行する操作を筆者のWindowsマシンで実際に試したところです(赤線は筆者による)。 Webブラウザ上でC言語をWebAssemblyにコンパイルし、そのままWebAssembly環境上で実行できています。 合わせて登場したJavaScript SDKによってNode.jsやBunなどのサーバサイドのWebAssembly
※ 当記事は、さくらじまハウス 2024 のLT「レンダリングを探訪する」 の書き起こしとして作成しました。 LT資料: はじめに この記事では、ブラウザのレンダリングについて掘り下げていきます。Web アプリケーション開発において、パフォーマンスの最適化や複雑なバグの解決は日常的な課題です。ブラウザのレンダリングフローを理解することで、それらの原因をより深く突き止めることができるようになります。 ブラウザと一口に言っても数多く存在しますが、今回は多くのブラウザで採用されている Chromium を題材に、そのレンダリングの仕組みを詳しく見ていきます。Chromium は Google Chrome、Microsoft Edge、Opera などで採用されているため、その仕組みを理解することは Web アプリケーション開発者にとって大きなヒントとなるでしょう。 ※ シェア列は、資料作成時点
本日のデモ: 本日のソースコード: おっと、待たせたねぇ!今日は「DuckDB-Wasm」と「DuckDB-Spatial」についてご案内いたしやすよ! この記事を読めば、ブラウザだけで地理空間情報の分析をサクッとこなせすための環境構築や、便利な関数を使った地理空間情報分析の基本がバッチリわかるって寸法よ!これを知っときゃ、サーバーいらずで本格的な地理空間情報分析ができちまうし、つまずきやすいポイントもスッキリ解消!あんたもいますぐ地理空間情報分析の達人になれるこたぁ間違いなしだ!さぁ、江戸っ子の心意気で、いますぐその手で試してみな! Vite.js + React でやんでぇ!まず、Vite.js + React + TypeScriptを開発環境の基板とするってのは、問答無用で決まりだ!ほかにゃ選択肢はねぇってわけよ。Viteの速さ、Reactの使いやすさと豊富なライブラリのエコシステ
パフォーマンスチューニングで、ソースコードに触らず非破壊でネットワークリクエストを書き換えて、LCPがどれだけ改善するかの実験ツールが欲しかったんですが、この目的で良いプロキシツールがないです。 世のローカルプロキシツールは DNS の設定を要求してきます。これは潜在的に意図しない状況を引き起こすので、使いたくありませんでした。 tl;dr puppeteer の page.setRequestInterception(true) でリクエストを覗いて、書き換えた ブラウザからリクエスト内容を奪う方法 テスト用HTML <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> </head> <body> <script type="module"> const x = await fetch('https://jsonp
便利ツール 私たちは日々の開発の中で様々な便利ツールを使います。 その中でもBurpは多くの機能を持ち、エンジニアにとってかかせないツールとなっています。 今回の記事ではフロントエンド開発においてBurpがどのように役立つかを紹介します。 Burpとは BurpはPortSwiggerにより提供されているツールで、Professional、Enterprise Editionなどの種類があります。中でもCommunity Editionは無料で提供されており、誰でも公式サイトからダウンロードすることができます。 では早速Burpの使い方を紹介していきます。 Proxy ProxyはBurpを使う上で最もベーシックな機能になります。 準備 Burpを立ち上げ、タブからProxyを選択 Open browserをクリックし、ブラウザを立ち上げる 解析したいページを開く 上記のようにBurpで立
実践 いつ使うんだこれと思ってたら使う日が来たシリーズ。 今回、Deno で使ったんですが、 Node.js やブラウザでも Polyfill を入れれば動きます。 try finally で puppeteer を終了したい Deno で puppeteer を扱うために、こういうコードを書いてました。 // original import puppeteer from "npm:puppeteer@23.6.1"; import chromeFinder from "npm:chrome-finder@1.0.7"; let browser: puppeteer.Browser | null = null; try { browser = await puppeteer.launch({ headless: false, executablePath: chromeFinder(),
JavaScript is undoubtedly the most used programming language in the world and is hugely influential on one of the largest technologies we have all come to rely on – the internet. With this power comes great responsibility, and the JavaScript ecosystem has been rapidly evolving, making it incredibly hard to keep up with the latest JavaScript best practices. In this blog post, we will cover several
手軽にChatGPT Searchを用いて検索を行えるものの、使い勝手の面で少し改善したいと感じる所がありました。 1. デフォルト検索エンジンはGoogleのままがいい この拡張機能を入れると、問答無用でデフォルトの検索エンジンがGoogleからChatGPT Searchに切り替わってしまいます。Googleで検索したい場合は、アドレスバーで !g を付与することで回避できます。 ただ、ChatGPT Searchでは結果表示に時間がかかります。私としてはデフォルトはGoogleのままで、特別に指定した場合はChatGPT Searchで検索できる方が、使い勝手の面では有り難いと感じます。 2. チャット履歴が検索ワードで埋もれてしまう ChatGPT Searchの検索結果も、ChatGPTのチャット履歴として残ってしまいます。私のようにキーワードを変えながらポンポン検索をしているよ
Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 川村インターナショナル 2024-11-08 07:00 筆者がインターネットを使い始めた頃、ウェブはなかった。インターネットを使用していたのは、コンピューターサイエンティストやマニアだけだった。その後、ウェブが登場して、誰でも使えるようになった。もっとも、「Trumpet Winsock」と「Mosaic」を使いこなせる人なら、という話だが。実際にほとんどの人にウェブへの扉を開いたのは、「Netscape Navigator」だった。これは、30年前に登場し、初めて一般的に利用されるようになった使いやすいウェブブラウザーだ。 1994年、Marc Andreessen氏とJim Clark氏がMosaic Communications Corporationを創設し、すぐに社名を
概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Running Rails System Tests with Playwright instead of Selenium | justin․searls․co 原文公開日: 2024/06/18 原著者: Justin Searls -- Test Doubleの共同創業者です 日本語タイトルは内容に即したものにしました。 先週、DHHが「システムテストの導入は失敗だった」と宣言したとき、私の最初の心の声は「まあそうだろうね」でした。UIテストはもろいうえに、テスト件数がある程度以上になると、アプリが動作しているという確信をもたらしてくれるUIテストのありがたみよりも、UIテストをメンテナンスするコストの方が上回ってしまう可能性があります。 しかし、私の次なる心の声は「考えてみれば、Turboに強く依存した複雑なUIに対して
安全なWeb通信を実現するには、「サーバー証明書」を用意してTLSと呼ばれるプロトコル(通信規約)に対応することが不可欠だ。TLSに対応することでWebサーバーの正当性を検証できるようになり、WebサーバーとWebブラウザー間の通信が暗号化される。サーバー証明書は、TLS証明書や電子証明書などとも呼ばれる。 一般的な証明書の類いと同様に、サーバー証明書には有効期間がある。有効期間を過ぎるとサーバー証明書は無効になり、Webブラウザーには警告が表示される。このため有効期間内にサーバー証明書を更新する必要がある。 現在、サーバー証明書を発行する認証局(CA:Certificate Authority)やWebブラウザーベンダーで組織される業界団体「CA/Browser Forum」のガイドラインでは、有効期間は最長で398日とされている。 だがWebブラウザーベンダーの1社である米Apple(
ファインディ株式会社でフロントエンドのリードをしている新福(@puku0x)です。 弊社では Nx を活用してCIを高速化しています。この記事では、最近導入した Nx Agents でフロントエンドのCIをさらに高速化した事例を紹介します。 Nxについては以前の記事で紹介しておりますので、気になる方は是非ご覧ください。 tech.findy.co.jp フロントエンドのCIの課題 Nx Agents Nx Agents導入の結果 Nx Agents利用上の工夫 プロジェクトを細かく分割する Node.jsのバージョンを揃える キャッシュの活用 特定のステップの省略 高度なエージェント割り当て まとめ フロントエンドのCIの課題 これまで「キャッシュの活用」や「並列化」「マシンスペックの向上」といった工夫により、フロントエンドのCIを高速化してきました。 しかし、コードベースの増大により時間
Jack Wallen (Special to ZDNET.com) 翻訳校正: 編集部 2024-10-14 07:00 「Firefox」を含まないOSを最後にインストールしたのがいつだったのか、筆者は覚えていない。確かに、筆者がインストールするのは「Linux」系のOSだけだが、そのほぼすべてにFirefoxがプリインストールされている。 それには2つの理由がある。Firefoxがオープンソースであることと、かなり優れたブラウザーであることだ。しかしながら、最高のブラウザーとは言えない。一例を挙げると、Firefoxはタブ管理機能がかなり貧弱である。これは、近ごろのほとんどのユーザーが望んでいる機能だ。 しかし、幾つかの問題が原因で、ユーザーはFirefoxを敬遠している。Firefoxは非常に安全で、「Google Chrome」のようにセキュリティ上の脅威にさらされてはいないにも
After almost 18 months of development, comprising thousands of commits from dozens of contributors, Svelte 5 is finally stable. It’s the most significant release in the project’s history. Svelte 5 is a ground-up rewrite: your apps will be faster, smaller and more reliable. You’ll be able to write more consistent and idiomatic code. For newcomers to the framework, there’s less stuff to learn. Despi
Let me make a prediction: we'll look back at 2024 as the turning point between “CSS Classic” and “New CSS”. CSS Classic is how most of us have been writing CSS for years: using a limited set of features, and compensating for the language's limitations using outside tools such as libraries, pre- and post-processors, and strict methodologies. New CSS on the other hand is an approach that embraces Su
Introducing computer use, a new Claude 3.5 Sonnet, and Claude 3.5 Haiku Today, we’re announcing an upgraded Claude 3.5 Sonnet, and a new model, Claude 3.5 Haiku. The upgraded Claude 3.5 Sonnet delivers across-the-board improvements over its predecessor, with particularly significant gains in coding—an area where it already led the field. Claude 3.5 Haiku matches the performance of Claude 3 Opus, o
import xlsxInit, { Format, FormatAlign, FormatBorder, Formula, Workbook, Image, Url, } from "wasm-xlsxwriter"; // Load the WebAssembly module and initialize the library. await xlsxInit(); // Create a new Excel file object. const workbook = new Workbook(); // Create some formats to use in the worksheet. const boldFormat = new Format().setBold(); const decimalFormat = new Format().setNumFormat("0.00
cURL 8.11 Released With Official WebSockets Support Written by Michael Larabel in Free Software on 6 November 2024 at 06:09 AM EST. 4 Comments The cURL 8.11 release is now available for this widely-used open-source software library and CLI utility used for downloads and supporting a variety of network protocols for file transfers. Most notable with cURL 8.11 is sporting official WebSockets support
I just learned 42 programming languages this month to build a new syntax highlighter for llamafile. I feel like I'm up to my eyeballs in programming languages right now. Now that it's halloween, I thought I'd share some of the spookiest most surprising syntax I've seen. The languages I decided to support are Ada, Assembly, BASIC, C, C#, C++, COBOL, CSS, D, FORTH, FORTRAN, Go, Haskell, HTML, Java,
Gosub The Gateway to Optimized Search and Unlimited Browsing Discover a customizable browser engine built for the modern web. Gosub is a web browser with its own web engine. This engine is a modular system that allows developers to easily plug in their own components to customize the functionality of the engine. This will result in a more diverse landscape of browsers in the future. With a pluggab
Change default search engine to ChatGPT search. Note: ChatGPT search is available to all ChatGPT Plus and Team users, as well as SearchGPT waitlist users. Enterprise and Edu users will get access in the next few weeks. We’ll roll out to all Free users over the coming months. This extension will make ChatGPT your default search engine in Chrome. Once ChatGPT has been set as your default search engi
Announcing Toasty, an async ORM for RustOctober 23, 2024 Toasty is an asynchronous ORM for the Rust programming language that prioritizes ease of use. Toasty supports SQL and NoSQL databases, including DynamoDB and Cassandra (soon). Toasty is currently in the early stages of development and should be considered a "preview" (not ready for real-world usage yet). It also isn't released on crates.io y
Thank you for registeringPlease refresh the page or navigate to another page on the site to be automatically logged inPlease refresh your browser to be logged in Elon Musk suggests support for replacing democracy with government of ‘high-status males’The theory suggests that the only people able to think freely are ‘high [testostrone] alpha males’ and ‘aneurotypical people’
背景と動機 本をよく買います。 気になった技術書や小説、漫画など、社会人になってからは特に買う頻度が増えたように思います。 しかし、読む時間がなかなか取れなかったり、期間が開いてどの本を読んでいたのか忘れてしまったりして、気付いたら積読が積み上がり「あ~やべ…」と感じることが多くなっていました。 「今読んでる本」をシンプルに管理できる何かがあれば、この状況を打破できるのでは…!と思ったので、読書記録サービスをつくってみました。 つくったもの yondako という読書記録サービスをつくりました。 GitHub か Google アカウントで登録できます。 デモ動画はこんな感じです。 「よみたい」「よんでる」「よんだ」の3状態で読書状況を記録できます。 レスポンシブ対応もしていて、スマホからも利用できます。 SNS的な要素や感想の記録などをあえて排除して、読書状況の記録に特化しているのが特徴
技術者で作家のチャーリー・ジェラルド氏が、JavaScriptとSDR無線機「HackRF One」を用いて車のハッキングに成功したことを報告しています。なお、ジェラルド氏は、あくまで啓蒙目的で友人の車を用いて行った実験の内容を報告したもので、マネをして発生した問題については責任を負わないと断りを入れています。 Hacking cars in JavaScript (Running replay attacks in the browser with the HackRF) | Charlie Gerard | Senior frontend developer & Creative Technologist Charlie Gerard | Senior frontend developer & Creative Technologist https://charliegerard.de
Internet Explorer(IE)は2022年にサポートが終了しましたが、互換性のためにWindows 10までのOSに標準搭載されているほか、Windows 11にもMicrosoft EdgeのIEモードとして存在し続けています。そんなIEのゼロデイ脆弱(ぜいじゃく)性を突いた攻撃を、北朝鮮のハッカー集団が行ったことが新しく確認されたと、韓国のサイバーセキュリティ当局が発表しました。 AhnLab and NCSC Release Joint Report on Microsoft Zero-Day Browser Vulnerability (CVE-2024-38178) - ASEC https://asec.ahnlab.com/en/83877/ Malicious ads exploited Internet Explorer zero day to drop ma
October 31, 2024 A twenty-six minute read 11 💬 3 🗣️ ❤️ 14 🔁 Tags: programmingprogramming-languagesinterpretershaskell So you went ahead and created a new programming language, with an AST, a parser, and an interpreter. And now you hate how you have to write the programs in your new language in files to run them? You need a REPL! In this post, we’ll create a shiny REPL with lots of nice features
こんにちは。エイチームライフデザインでハナユメという結婚式場情報サイトの開発を行っている大江です。 ハナユメは長い間、PHP/Symfonyを用いて開発・運用されてきました。しかし、プロダクトの成長と機能の複雑化に伴い、技術的負債が蓄積してきました。そこで、数年前からこの課題を解消するために、フロントエンドをSvelte/SvelteKitで置き換えるプロジェクトを始めました。現在では、検索ページ、式場詳細ページの一部、リングページなどいくつかのページをSvelte/SvelteKitでリリースしています。 今回は、Svelte/SvelteKitを選んだ理由や、実際に導入してみて感じたことについてお伝えします。 Svelte/SvelteKitを選んだ理由と実際に開発して良かったこと コード量が少なく書ける 以下は、ReactとSvelteで入力内容を同期してテキストを表示するコンポーネ
Learn how Vercel cut build times and improved developer velocity while maintaining a smooth user experience with microfrontends. Vercel's main website, once a single large Next.js application, serves both our website visitors and logged-in dashboard. But, as Vercel grew, this setup revealed opportunities for improvement. Build times grew, dependency management became more intricate, and workflows
React Native 0.76 with the New Architecture by default is now available on npm! In the 0.76 release blog post, we shared a list of significant changes included in this version. In this post, we provide an overview of the New Architecture and how it shapes the future of React Native. The New Architecture adds full support for modern React features, including Suspense, Transitions, automatic batchin
I’ve written a lot of JavaScript. I like JavaScript. And more importantly, I’ve built up a set of skills in understanding, optimizing, and debugging JavaScript that I’m reluctant to give up on. So maybe it’s natural that I get a worried pit in my stomach over the current mania to rewrite every Node.js tool in a “faster” language like Rust, Zig, Go, etc. Don’t get me wrong – these languages are coo
By Alan Cao If you love exploit mitigations, you may have heard of a new system call named mseal landing into the Linux kernel’s 6.10 release, providing a protection called “memory sealing.” Beyond notes from the authors, very little information about this mitigation exists. In this blog post, we’ll explain what this syscall is, including how it’s different from prior memory protection schemes and
*Quality ratings based on internal testing and user feedback *Language count as of November 2024 For quick translations, documents, or daily browsing, the difference is clear in the first sentence. Try it: Try Kagi Translate with any text → Translate this blog post into Spanish → (note the simple URL structure) Using Kagi Translate Add translate.kagi.com/ before any URL for instant translation. No
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く