タグ Plan 9
人気順 10 users 50 users 100 users 500 users 1000 usersGoでモンキーパッチするライブラリを作った - Plan 9とGo言語のブログ
Goで単体テストを実装する場合、動的な言語のように「テスト実行中に外部への依存を置き換える」といったことはできません。代わりに、 外部への依存を引数で渡す 外部への依存をインターフェイスで渡す のように、テスト対象をテスト可能な実装に変更しておき、テストの時は外部への依存をモック等に置き換えて実行する... 続きを読む
Goで非推奨(Deprecated)や撤回(Retracted)を明示する方法 - Plan 9とGo言語のブログ
最近のGoには、関数やパッケージを非推奨と扱う方法があります。まとまっていると便利かなと思うので、種類ごとにまとめてみました。GoDocコメントを多用するので、GoDocを書き慣れていない場合は以下も参考にしてください。 blog.lufia.org 関数と型を非推奨にする 関数コメントに、// Deprecated: ではじまる段落を追... 続きを読む
株式会社はてなに入社しました - Unengineered Weblog
株式会社はてなに入社しました 株式会社はてなに入社しました - hitode909の日記 本当です。23年度の新卒エンジニアとして入社します。 Plan 9にハマったら株式会社はてなに入社した話 Plan 9を調べていくうちに blog.lufia.org というブログを見つけて、そのブログの作者 id:lufiabb さんが株式会社はてなのエンジニア... 続きを読む
Goフォントの紹介と使い方 - Plan 9とGo言語のブログ
Goのソースコードをきれいに描画する目的で作られた「Goフォント」があるのをご存じでしょうか。周囲に聞いたところ、あまり知られていなかったので、紹介の意味も込めてインストール方法を書きます。 Goフォント Goフォントは、2016年に以下の記事で公開されたもので、単体で配布されたものではなく、golang.org/x/exp/... 続きを読む
業務端末としてLinuxデスクトップを使うために設定したこと - Plan 9とGo言語のブログ
2021年の11月に、業務端末としてDELL XPS 13を購入して、Linuxデスクトップに移行しました。いまでは快適に使えるようになりましたが、Linuxデスクトップに慣れていないこともあって思ったように動かず困ったところがあったので、導入にあたって悩んだところをまとめました。 ディスクの暗号化 業務利用の要件にディスク... 続きを読む
Plan 9の権利がPlan 9財団に譲渡され、MITライセンスに変わりました - Plan 9とGo言語のブログ
2021年3月23日に、ノキアから、Plan 9の著作権をPlan 9財団に譲渡する発表がありました。 www.bell-labs.com 翻訳はこちら。 okuranagaimo.blogspot.com 元々、AT&Tの一部門が独立してLucent Technologiesとなっていて、ベル研はそこに含まれていたけれども、いつの間にかノキアに買収されていたらしいですね。 何が変わ... 続きを読む
Goアセンブリの書き方 - Plan 9とGo言語のブログ
Goアセンブリの書き方からビルド方法までを一通り調べました。Goアセンブリを書いたことのない人がコードを書いてリンクできるところまでは一通り書いているつもりですが、Goアセンブリの言語仕様を網羅してはいないので、興味があれば最後に書いた参考情報も読んでみてください。 この記事ではGo 1.16.xでAMD64命令セッ... 続きを読む
Go関連の比較的新しいTips - Plan 9とGo言語のブログ
READMEにpkg.go.devのバッジを貼る godoc.orgはpkg.go.devに移行していくことが告知されているので、新しいプロジェクトではREADME.mdに貼っているバッジを移行しましょう。pkg.go.devのURLやバッジは // バッジ https://pkg.go.dev/badge/<package path> // リンク https://pkg.go.dev/<package path> の形を取ります。... 続きを読む
Go 1.14でシステムコールがEINTRエラーを返すようになった - Plan 9とGo言語のブログ
Go 1.13までのゴルーチンの切り替えは、チャネルの送受信やシステムコール呼び出し、関数呼び出し前にコンパイラが暗黙的に挿入する処理などによって行われていました。そのため、上記の切り替わり操作を全く行わないループなどがあれば、そのゴルーチンがずっと実行されます。 func loop() { // この辺りにコンパイラが... 続きを読む
Goモジュールでツールもバージョン管理する - Plan 9とGo言語のブログ
Goモジュール管理下では、プロジェクトで使うGo製ツールのバージョンも管理できます。今までの経験では、ツールのバージョンが上がって困ることは記憶にないですが、とはいえ2018年5月ごろにprotoc-gen-goが大きめの変更を入れたこともあるので、バージョン管理しておいて損はないでしょう。このハックは、割とGoモジュ... 続きを読む
Goでファイルの存在確認 - Plan 9とGo言語のブログ
Goでファイルの存在確認について、インターネットではos.Statの戻り値がエラーかどうかを判定する方法が紹介されていますけれど、os.Statはファイルが存在する場合でもエラーを返すことがあるため、この方法では正しく判定できないケースが存在します。また、複数プロセスが同じファイルにアクセスする場合は、os.Statの... 続きを読む
週末に遊べるラズパイ - 不遇のUNIX後継OS「Plan 9」をラズパイで体験:ITpro
現代の汎用OSの礎となったUNIX。その開発者がUNIX後継として開発しながら、一般には普及しなかった不遇のOS「Plan 9」。そのPlan 9が、600円台からのボードPC「Raspberry Pi(ラズパイ)」シリーズで簡単に試せます。 Plan 9は、C言語やUNIXを生み出したベル研究所が開発したOSです。OSの機能をネットワーク上に分散させられる、いわゆる分散OSとして、ケン・トンプソ... 続きを読む
ベル研究所が開発するOS「Plan 9」が新たにGPLv2で公開される | SourceForge.JP Magazine
ベル研究所がUNIXの後継として研究用に開発するOS「Plan 9」が、新たにGPLv2で公開された。カリフォルニア大学バークレー校がベル研究所を所有するAlcatel-Lucentの許可を受けて実現したもので、これにより同校で開発が進められているOS「Akaros」への組み込みが可能となる。 Plan 9はKen Thompson氏らが中心となって1980年代後半に開発がはじまったOS。独自の通... 続きを読む
GoのCコンパイラツールチェインを使う - moriyoshiの日記
2013-12-26 GoのCコンパイラツールチェインを使う (この記事は Go Advent Calendar 2013 の12月24日に公開されるはずの記事でした。関係者の皆様大変申し訳ない。) はじめに Goコンパイラをビルドすると、なぜかアセンブラ (5a, 6a, 8a) やCコンパイラ (5c, 6c, 8c) までもがビルドされます。これらはPlan 9のツールチェイン由来のもので、... 続きを読む
ちょっと普通じゃないTremaの動かし方 - Plan9日記
第2回クラウドネットワーク研究会「OpenFlow祭」でも好評だったOpenFlowコントローラフレームワークTrema。TremaをVMWare FusionのLinux上で動かしてみたときのメモを残しておこう。OpenFlowとPlan 9の関係は?と聞かれたけど、これには触れないことにしておくwTremaはOpen vSwitchを使った仮想ネットワーク構築機能を持っているので、OpenFl... 続きを読む
シグナルの誕生 - Plan9日記
今日はシグナルの歴史を調べてみたいと思う。シグナルというのはUNIXにおけるプロセス間通信の一手段であり、CPUにおける例外のように、プロセスにとって非同期に発生するものなので、その実装はいろいろ面倒くさい。したがっていろいろ問題もあり、長年の改良の歴史の上に、今のシグナルが完成した。ちなみにPlan 9ではシグナルではなくノート(note)である。BSDやSVR、そしてPOSIX標準になるまでの... 続きを読む
Linuxに勝てなかったPlan 9 − @IT
2002年頃、とある雑誌でPlan 9の記事を6ページほど作ったことがある。冷静に考えると、とても流行するようには思えなかったのだが、私にはPlan 9はまぶしく輝いて見えた。それは紛れもなく未来のUNIXだったし、日々コンピュータやネットワークを利用する環境として、ぜひとも使いたいと思えるような機能が多くあった。 「Plan 9」(プラン・ナイン)はUNIXが生まれたベル研究所で、次世代UNIX... 続きを読む