
Lex Fridman PodcastのDHH回が面白かった GMOメディアでSREチームに所属している安保です。Zennブログ委員や図書委員なども兼任しています。 Lex Fridman Podcastはよく聴くのですが、今回DHHが出演した回がめちゃくちゃ面白かったので紹介します。 特に、DHHがなぜRubyを「他の言語より美しい」と語ったのか、その理由をコード例とともに書きます。 そもそもDHHとは誰? David Heinemeier Hansson(通称DHH)は、Ruby on Railsの生みの親であり、BasecampやHEYを提供する37signalsの共同オーナー・CTOです。『REWORK』『REMOTE』『It Doesn't Have to Be Crazy at Work』『Getting Real』の共著者であり、少人数・高生産性・シンプルなソフトウェアづくり
⚠️ Beta Version Notice KernelScript is currently in beta development. The language syntax, APIs, and features are subject to change at any time without backward compatibility guarantees. This software is intended for experimental use and early feedback. Production use is not recommended at this time. A Domain-Specific Programming Language for eBPF-Centric Development KernelScript is a modern, type
数年前に読んだ書籍「Writing A Compiler In Go」がとても勉強になったので、どういう内容かを解説します。 Writing A Compiler In Go https://compilerbook.com/ 「Writing A Compiler In Go」とは 今回紹介するのは「Writing A Compiler In Go」になりますが、その前作にあたる「Writing An Interpreter In Go」の日本語訳が「Go言語でつくるインタプリタ」としてオライリーから出版されているため、ご存じの方も多いかと思います。 私は数年前に「Go言語でつくるインタプリタ」を読んでいて、続編の日本語訳が出るのを待っていましたが、なかなか発売されなかったので英語版を購入しました。 「Writing A Compiler In Go」を簡単に説明すると、「写経しながら軽
はじめに macOS では濁点や半濁点が含まれるファイル名でたびたび問題が発生しています。この問題は NFD 問題と言われたり UTF-8-MAC 問題と言われることがありますが、必要な情報が正確に書かれているところは少なく、正しく解説してある所でも情報が古く(主に HFS+ 時代の話に)なっており、読むと逆に混乱してしまう場合があります。 macOS 標準アプリや誰かが作ったアプリであればバグが修正されるまで待つだけですが、自分が作ったアプリやシェルスクリプトなどではこれがどういう問題なのかを理解しなければバグが修正できません。この記事ではそれらを整理し直して、(可能な限り正確に)解説したいと思います。検証は macOS 15.3(補助的に 15.5)で行っています。 この問題は、Mac で作成した zip ファイルを Windows で展開したときに、濁点や半濁点を含むファイルに Wi
TypeScriptのコンパイラをGo言語でネイティブ化、10倍速にした「TypeScript Native Previews」が公開 マイクロソフトは、TypeScriptのコンパイラを始め各種ツール群をGo言語に移植することでコンパイラの処理速度を10倍速にした新バージョンとなるTypeScriptのプレビュー版「TypeScript Native Previews」の公開を発表しました。 Today we're announcing previews of the native port of TypeScript! These nightly previews will be available on npm and the VS Code marketplace! npm install -D @typescript/native-preview npx tsgo --vers
Kotlin言語を開発するJetBrainsは、Javaの代表的なフレームワークとして知られるSpring Frameworkの開発チームと戦略的提携を発表しました。 この提携により、Kotlinによるバックエンド開発がSpringによって強化されることになります。 JetBrains and Spring are starting a strategic partnership to make the Kotlin developer experience with Spring even better! Read here for more: https://t.co/2sfRy9iMiq — SpringCentral (@springcentral) May 22, 2025 KotlinはJavaVM上で実装された言語として登場し、2017年にAndroidの正式な開発言語となっ
技術評論社から恵贈いただいた「OSのしくみ」の読書感想文です。 amzn.to 以前に読書感想文を書いた「[作って学ぶ] ブラウザのしくみ」の姉妹書です。 satoru-takeuchi.hatenablog.com 本書を一言でいうなら「RustでOSを書く方法を隣の席にいる先輩(筆者)に教えてもらうような本」です。本書を読み終えたとき手元にはRustについてのある程度の知識と、デバイスをいくつか操作できるOSが得られます。Rustの知識は他の本でもある程度得られますが、RustでOSを書く知識は私が知る限り日本語ではこの本でしか得られません。ここに魅力を感じる人にとっては読む価値は大いにあると思います。 想定読者 想定読者は本書冒頭に次のように書かれています。 プログラミングは少しかじったことがある 少なくとも1つのプログラミング言語をある程度使える Rustというプログラミング言語の
「あの人も読んでる」略して「も読」。さまざまな寄稿者が最近気になった情報や話題をシェアする企画です。他のテックな人たちがどんな情報を追っているのか、ちょっと覗いてみませんか? みなさんこんにちは。 「あの人も読んでる」、第3回目の投稿です。maguro (X @yusuktan)がお届けします。 今回のテーマ: Rustの学習の難しさと取るべきルート突然ですが、僕はプログラミング言語としてRustを推しています。 高度な抽象化を提供しつつパフォーマンスに妥協しないシステムプログラミング言語であり、そして何より "shared XOR mutable" によって、意図しないタイミングでのデータ書き換えが起きないことを静的に確認してくれるというのが極めて強力です。 パフォーマンスを犠牲にせず「安心」して非同期プログラミングを行えるというのが、個人的な推しポイントです。"fearless con
Stephanie Arnett/MIT Technology Review | rawpixel, Adobe Stock Anthropic can now track the bizarre inner workings of a large language model 大規模言語モデルは内部で 何をやっているのか? 覗いて分かった奇妙な回路 Claude(クロード)の開発元であるアンソロピック(Anthropic)は、大規模言語モデルがどのように返答を作り出しているのか、その動作の一端を解明した。その結果は人間の直感に反する、意外なものだった。 by Will Douglas Heaven2025.04.11 33 この記事の3つのポイント アンソロピックは「回路追跡」技術を使い、LLMの内部動作を可視化した LLMは独自の計算法を使い、詩の結末を先に決め、言語の違いを超えて思考
「型システムの仕組み - TypeScriptで実装しながら学ぶ型とプログラミング言語」という本を書きました。 「型システムの仕組み - TypeScriptで実装しながら学ぶ型とプログラミング言語」 どんな本? 簡単な型チェッカを自作してみることで、型システムの仕組みを概観する本です。 型チェックする対象の言語はTypeScript(のサブセット言語)、型チェッカを実装するための言語もTypeScriptです。 たとえば、次のようなプログラムが型チェックできるようになります。 const add = (x: number, y: number) => { return x + y; } const a = add(1, 2); const b = a + true; 型チェッカは、それぞれの変数がどういう型を持つか管理しつつ、プログラムの各パートがどういう型になるかを判定していきます。
3月1日、海外のテクノロジーメディアInfoWorldが「TrapC proposal to fix C/C++ memory safety」と題した記事を公開した。 3月1日、海外のテクノロジーメディアInfoWorldが「TrapC proposal to fix C/C++ memory safety」と題した記事を公開した。 この記事では、TrapCが提案するC/C++のメモリ安全性向上に関する取り組みについて詳しく紹介されている。以下に、その内容を紹介する。 TrapCとは、C言語の拡張コンパイラであり、最も重要な特徴はメモリ安全であることだ。TrapCのメモリ管理は自動化されており、メモリリークが発生しない設計だとされる。ポインタはガーベジコレクションではなく、オブジェクトのライフタイムを管理する仕組みを採用している。 言語としては、C言語をベースとしたいくつかの拡張が行われて
はじめに こんにちは、Latte72 です。 慶應義塾大学公認サークル Computer Society で低レイヤーを扱うシステム班の班長を務めることになったので、後輩たちに低レイヤー技術(特に自作言語やコンパイラ・インタプリタの実装)について興味を持ってもらうにはどうしたらいいかと考えながらこの記事を書いています。 この記事は私のサークルに入会した新入生や、プログラミング言語がどのようにして動いているのかに興味がある人、低レイヤーにあまり詳しくないけど自作言語や自作コンパイラに興味がある人たちに向けたものです。 プログラミングに関する事前知識がなくても読めるように、多くの補足をつけています。 既にプログラミングに精通している方にとっては説明が不適切に感じる部分があるかもしれません。温かい目でご覧いただき、コメント欄にてご指摘いただければありがたいです。 当初は1つの記事として公開しよう
C言語にはbitfieldという機能がありますが、この機能にはさまざまな落とし穴があり、注意深く利用しても予期せぬバグや移植性の問題を引き起こす可能性があるとよく言われています。 実際、jpcertを確認すると複数の勧告が出ています。 EXP11-C. ビットフィールド構造体のレイアウトについて勝手な想定をしない INT12-C. 式中で使用される単なるintのビットフィールドの型について勝手な想定をしない CON32-C. 複数スレッドによる隣接データへのアクセスが必要な場合データ競合を防止する DCL39-C. 信頼境界を越えて構造体を渡すとき情報漏えいしない 私は先輩技術者から「とくに組み込みの分野においてC言語のbitfieldは使うべきではない」と教わって生きてきました。 本記事ではbitfieldの仕様や問題点、なぜ仕様を避けるべきか、緩和策や代替案について検討します。 目次
1000行でOSを作ってみよう 本書では、小さなOSをゼロから少しずつ作っていきます。 OSと聞くと腰が引けるかもしれませんが、OS (特にカーネル) の基本機能は案外単純です。巨大なオープンソースソフトウェアとしてよく挙げられるLinuxでさえ、バージョン0.01はたった8413行でした。様々な要求に応えるために次第に肥大化していっただけで、当初は大変素朴な実装になっていました。 本書ではコンテキストスイッチ、ページング、ユーザーモード、コマンドラインシェル、ディスクデバイスドライバ、ファイルの読み書きをC言語で実装します。これだけ様々な機能が詰め込まれているのに、コードは合計でたった1000行未満です。 「1000行なら1日でできそう」と思うかもしれませんが、初学者には少なくとも3日はかかるでしょう。OS自作のハマりポイントは「デバッグ」です。アプリケーション開発とは違うデバッグ手法
組込みRustや自作OSなどにおいて、従来言語より高い安全性があるとされているRustは注目される一方、Rustでも低レイヤー分野で頻発するメモリアクセスやインラインアセンブラなどでunsafeブロックが存在が多くなりがちです。 このunsafeブロックが多くなるので、結局Rustでこのような低レイヤー分野を触っても意味がないのでは?安全ではないのでは?という疑問が投げかけられることがしばしばあります。 筆者はTwitterや過去のブログで、組込みRustにおいてのunsafeとの付き合い方について触れていきましたが、内容としては分散していたので今一度この疑問に対するアンサーをまとめることにし、この論争に終止符を打とうと思います。 Rustにおけるunsafeとは そもそもunsafeとは何かというのはThe Rust Programming Languageのドキュメントにも詳しく書かれ
はじめに こんにちはみみです。 この記事は UEC Advent Calendar 2024の 19 日目の記事です。 書いているのは 2025 年です。(遅れてすいませんでした) 昨日は、Kanaru さんの Minecraft で始める論理設計学 でした。今回は、これの内容を ハードウェア 記述言語の Veryl を使って実装してみる、という話です。 Veryl もといハードウェア記述言語について ハードウェア記述言語とは ハードウェア記述言語(HDL)とは、デジタル回路などのハードウェアの構成を記述するための言語です(そのまま)。 例えば、みなさんの馴染みのある AND ゲートや OR ゲートを以下のように記述することができるんです。
ひとつの翻訳が、終わった。 1本の翻訳原稿を仕上げた、わけではない。 この世界に存在していた翻訳のひとつが いま終焉を迎えたのだ。 2024年末現在、僕の手元にきている来年の依頼は0件。 2025年の収入見込みも畢竟、0円ということになる。 あくまでもひとつの翻訳の話である。 つまりは翻訳のひとつの話である。 関係ないと思うならこの先を読まなくてもいい。 自分の知る現実と違うならこの先を信じなくてもいい。 人間の数だけ人間があり 現実の数だけ現実がある。 そのような場所を あるいはそのとらえ難さをこそ 人は「世界」と呼ぶのだから。 そうしてその「世界」の中で ひとつの翻訳が終わった。 じつに翻訳のひとつとして 文字通り終わってしまった。 もっとも、収入の見込みが完全に断たれた経験はこれが初めてではない。 わずか数ヶ月前まで遥かな対岸でちらちらと燃えていたはずの疫禍がその存外長い舌を露わにし
「安全よりもスリルを!」 メモリ安全性のために、LinuxカーネルモジュールはRustで実装すべし、と世間に大声で訴えているけれど、本当はちょっと物足りない…危険に惹かれてしまう、そういう秘めた自分の気持ち、大切にしたいですよね! 今回は、いかなる安全性も保証しないアセンブリ言語とRustを組み合わせて、Linuxカーネルの機能を実装してみました。 アセンブリ言語?「アセンブリ言語、何それ?」と思ったデジタルネイティブ世代の読者も大勢いることでしょう。CやRustのような高級プログラミング言語では、人間が理解しやすい型や構文などを使った記述形式をコンパイラを使って、CPUが実行できる形式へと翻訳します。一方、アセンブリ言語では、CPUが実行できる形式に限りなく近い記述形式を使います。自分の気持ちをインスタやLINEのメッセージで伝えるのは難しいですよね?アセンブリ言語はCPUへ直接気持ちを
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く