Webブラウザは,開発者にとってもユーザーにとっても,もはや日常の一部となっているほど身近なソフトウエアですが,近年のブラウザはあまりにも高機能かつ巨大になってしまったため,その仕組みを詳しく理解することは困難です。そこで,シンプルなブラウザをRustを用いて実装することによって,ブラウザ上でWebサイトを開くまでに何が起きているのかを理解することを目的とします。さらに,作成したブラウザを,別冊で解説・実装している自作OSの上で動かすことによって,ブラウザと更にその裏側を理解していきます。
omakub.org DHHとApple もともと20年来のMacユーザーでTextMate原人であったDHHだが、HEYアプリが何度もAppStoreでリジェクトされた出来事を通じてか、次第にApple反転アンチ化してきた。 元々オルタネイティブな嗜好を持つDHHだったが、脱クラウド運動などの、近年の彼らのビックテックとの闘争にもつながっている。 年初あたりから自社の支給端末であったMacBookのリプレイスを検討し始め、Windows+WSL2やVSCode*1 、そしてLinuxデスクトップの利用を模索し始めていた。 最終的にUbuntuデスクトップを「安住の地」とし、そのセットアップの知見をすべてOmakubに込めたのだ。 エディタをNeovimに*2、スマホもSamsungに乗り換え*3、そしてFrameworkのラップトップを購入。 「ラップトップ買ってきましたUbuntu環境
こんにちは、トレタ VPoEの北川です。 今回は弊社でフロントエンドアプリケーションを新しく構築する際の開発環境として、何のライブラリを入れるかという開発環境初期セットを紹介しようと思います。 Web Framework / CSS Framework / Tesing Framework / Linter / Formatter、それぞれ定番で使うデファクトが大体ありましたが、近年では新しいライブラリも登場したので、2024年現在・最新版を、今回は直近で作られた実際のリポジトリを例にご紹介します。 今回紹介するリポジトリのアプリケーションはtoB向けの管理画面のアプリケーションで、特質した部分も特にない一般的なWebアプリケーションです。 それでは早速、package.jsonの内容はを見ていきましょう。 "dependencies": { "next": "14.2.13", "rea
開発用適当ツールは Go で作るのがオススメ!? 先日、開発用適当ツールはGoで作るのがオススメ という記事を拝見しました。 まだ読んでないよという方はぜひ読んでみてください! とても良い記事でした😌✨ Go 言語も CLI ツールの実装に向いているということも分かりました。 そして、Go 言語の魅力も伝わってきました...!! まとめると以下のような点がメリットとして挙げられていると思います。 go run で簡単に実行できる シングルバイナリにクロスコンパイルできる go.mod / go.sum が依存性管理を楽にしてくれる 動作速度も申し分なし たしかに開発用適当ツールの作成というユースケースは Go は魅力的な選択肢だと思います! 開発用適当ツールは Rust で作るのもオススメ 前置き 最初に大事なことを言っておきます。 タイトルにもあるように、Rust も であって GO
「だんご屋のひまつぶし」とは 最長手順の問題は…? 組み合わせ、グラフ問題 プログラムで解く 状態の列挙 グラフの構築 最短経路問題を解く WASM化して、ブラウザ上で解く もしもすべて異なる団子だったら さらに一般化していくと 到達可能性 頂点数 本数を固定し、高さを変える 高さを固定し、本数を変える まとめ Repository 「だんご屋のひまつぶし」とは 「ハノイの塔」の派生型のようなパズル。 高さ3の串が3本あり、3色の団子2個ずつ計6個が刺さっている。これらを1個ずつ移し替えて、ある状態からある状態へと遷移させる、というゲーム。 移動できるのは各串で一番上にある団子だけ。 団子の大きさのような概念はなく、高さ3以内であればどこにでも動かせる。 単純なルールだがなかなかに奥が深く、じっくり考えて動かさないと最適な手順で達成するのは意外に難しい。 パズルオーディションというもので最
簡易版はこちら Pythonのパッケージ管理はこれまで pip、venv、poetry などで行われてきましたが、最近 uv が注目を集めています。 本稿では uv をシステム開発で使うための詳細な情報、特に、poetry、venv、pipからの移行手順を解説します。 uv公式ドキュメント uv (github) 1. uvの概要 1.1 uvとは? uvは 高速な動作、クロスプラットフォーム対応のロックファイル、ツール管理の専用インターフェースを提供することで、快適な開発環境を実現しています。 1.2 uvのアーキテクチャ uvはRustで実装されており、高いパフォーマンスとメモリ安全性を誇ります。Rustの並行処理能力を活用し、依存関係解決を高速化しています。また、効率的なキャッシュ機構を備えており、ダウンロードしたパッケージ、ビルドされたwheelファイル、ソースコードなどをキャッシ
【エンジニアの日常】エンジニア達の人生を変えた一冊 Part1では大変ご好評をいただきました。 今回はPart2としまして、弊社エンジニアの人生を変えた一冊をご紹介いたします。 ぜひ、読書の秋のお供としてご参考にしていただければ幸いです! 人生を変えた一冊 SRE サイトリライアビリティエンジニアリング―Googleの信頼性を支えるエンジニアリングチーム プログラマが知るべき97のこと この本を読んだきっかけ Clint Shankさんのエッセイ「学び続ける姿勢」 Karianne Bergさんのエッセイ「コードを読む」 この本から学んだこと Clean Coder プロフェッショナルプログラマへの道 まとめ 人生を変えた一冊 SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム SRE サイトリライアビリティエンジニアリング ―Google
まえがき 「……敢えて言うなら、医学と同様、翻訳もまた芸術なのだ。ただし、それは科学に基づいた芸術である。……」――ジョルジュ・ムーナン『翻訳の理論』 翻訳。すなわち、ある言語で表された物事を、また別の言語に置き換える行いは、本質的に困難を孕んでいる。これは、シニフィエあるいはシニフィアンといった大層な言語学用語を持ち出さずとも、感覚として了解できることであろう……鳩を撃つのに大砲は不要なのだ。現実にあるもの――それはカギカッコ付きの「現実」であって、たとえそれが実在であろうが非実在であろうが構わないのだが――つまり、脳が処理したイメージを、さらに言語という記号で表してみせる一連の動作によって、われわれは会話をし、文章を紡ぐ。それが塊になると、戯曲になったり小説になったり、あるいは詩歌になったりする。発信者が抱くもやもやとした概念、情景、人物、何だってよいが、それをそのままの形で受信者に伝
記事作成時点で広く使われている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エンジンを選択できるよう
'Programming Languages That Blew My Mind'というブログ記事で、8歳からプログラマーとして活動しているDavid Tellerさんが、人生で出会った革新的なプログラミング言語について紹介している。 BASIC A language designed to make programming simple. Mind blown: Programming my own games! Mind blown: Arrays (or DIM, as they were called)! Mind blown: GOTO! Mind blown: GOSUB! Original, line-based, Basic is dead, but its legacy lives on in VB.Net, VBA, but also in more subtle ma
10月23日、ISRGが「RustlsがOpenSSLやBoringSSLを凌駕する」という記事を公開した。この記事では、Rustlsのメモリ安全性とパフォーマンスに焦点を当て、TLSライブラリの進化について詳しく紹介されている。 10月23日、ISRGが「RustlsがOpenSSLやBoringSSLを凌駕する」という記事を公開した。この記事では、Rustlsのメモリ安全性とパフォーマンスに焦点を当て、TLSライブラリの進化について詳しく紹介されている。 以下に、その内容を紹介する。 Rustlsとは何か? Rustlsは、Rust言語で書かれ、メモリ安全性に優れたTLS(Transport Layer Security)実装である。 Rustlsはすでにプロダクション環境に対応しており、さまざまなアプリケーションで利用されている。C APIとFIPSサポートも備えており、既存のプログ
Rustはいま最も勢いのある言語の1つ。特に、そのパフォーマンスの高さ、安全性、並行性から、C/C++に代わる言語として、システムプログラミングや低レイヤの開発では高く評価されています。Googleのソフトウェアエンジニアとして、さまざまなGoogleサービスのRust実装を担当してきた著者が、Rustへの深い理解と豊富な経験から得られた実用的なノウハウを共有。所有、借用、生存期間、トレイトといったRust特有の概念を具体例を示して詳しく説明するとともに、Cargoによる依存ライブラリ管理やClippyなどのエコシステムの活用方法を詳述しています。Rustの入門書を読了した読者に、「Rustらしい」プログラミング方法を伝授する一冊です。 まえがき 1章 型 項目1:データ構造を表現するために型システムを用いよう 項目2:型システムを用いて共通の挙動を表現しよう 項目3:OptionとRes
概要 Elin Custom Portrait EditorというツールをTauriとSveltekitを使って製作したんですが、 制作にあたって「Tauri、良すぎない?」と感じたのでその魅力を伝えていきます。 1.ビルドしたファイルサイズが本当に小さくコンパクトな構成 元々別のツールをElectronで制作していたんですが、いざビルドしてみると本体exeだけで200MBを軽く超える超巨大アプリになってしまうのが困りものでした。 (インストーラーで配布する前提の仕様だろうし開発もそこまで気にしてないんだろうけど、私はインストーラー不要のポータブルアプリ派なので…) Electron BuilderでPortable設定にすれば単一.exeとして出力も出来るけど、今度は実行速度が犠牲になってしまうという特大の罠が待ち受けています。 対するTauriはビルドサイズがだいたい10MB前後と非常
01 Nov, 2024 In 2022 I started building an application for creating Customs declarations. After evaluating some options and writing code in various programming languages and frameworks such as .NET/F#, Go, Rust, React, I eventually decided to write it in Ruby on Rails. Why? Because I was already familiar with Rails and because of that I could literally go 10x faster than I was with any of the afor
「効率的で信頼できるソフトウェアを誰もが作れる言語」を提唱するプログラミング言語 Rust。その優れたパフォーマンスやプログラムとしての信頼性・生産性の高さなどから、近年非常に人気を集めています。そんなRustでは、いったいどのような新機能が登場しているでしょうか。今回はコアコミッターである前田喬之さんに、最近Rustに実装された新しいTraitソルバについて寄稿していただきました。 はじめに 前田喬之といいます。SNSはTaKO8Kiというハンドルネームでやっていて、Rustのコミッターをしています。コンパイラのコントリビューターチームや、エラー周りの機構を実装するワーキンググループに所属しています。 Rustの新しいTraitソルバ RustにはTraitがありますが、Trait解決をするために裏側ではTraitソルバが動いています。この記事では、Traitソルバがどういうものか簡単に
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く