並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 139件

新着順 人気順

plan9の検索結果1 - 40 件 / 139件

  • とほほのGo言語入門 - とほほのWWW入門

    概要 Go言語とは バージョン インストール Hello world Print・Println・Printf 変数(var) 定数(const) コメント 行末のセミコロン キーワード 演算子 型(type) 型変換 リテラル・値 エスケープシーケンス 配列(array) スライス(slice) マップ(map) 制御構文 If文(if) Switch文(switch) For文(for) Goto文(goto) 関数(func) 構造体(struct) インタフェース(interface) interface {}型 ポインタ(pointer) 領域確保(new) 遅延実行(defer) インポート(import) モジュール(module) パッケージ(package) ワークスペース(workspace) ゴルーチン(Goroutine) リンク 概要 Go言語とは Google

    • 『プログラミング作法』新人エンジニアにオススメする技術書 | IIJ Engineers Blog

      『プログラミング作法』 著者:Brian W. Kernighan / Rob Pike 福崎俊博 訳 アスキードワンゴ ちなみにこの本、私が入手した頃とは装丁がガラッと変わっていて、いまの表紙はこんな感じになっています。 犬がカワイイですね。これから購入する方はご注意ください。 普段プログラミングをしていると、大なり小なりさまざまな判断を行うべき局面が出てきます。 変数やメソッドにはどんな名前を付けるべきか?ロジックは明快になっているか?ここにコメントは必要か?必要としたらどう書くか?ライブラリのインターフェイスは適切にデザインされているか?ライブラリ関数の粒度は適当か?与えられた問題に対してデータ構造やアルゴリズムは適切なものを選択しているか?もっと良いものがあるのではないか?計算量は妥当な範囲に収まるか?処理が複雑になっても性能が良くなる方を取るか?あるいは多少性能を犠牲にしてもわか

        『プログラミング作法』新人エンジニアにオススメする技術書 | IIJ Engineers Blog
      • なぜシェルスクリプトで高度なデータ管理にSQLiteを使うべきなのか? ~ UNIX/POSIXコマンドの欠点をSQLで解決する

        なぜシェルスクリプトで高度なデータ管理にSQLiteを使うべきなのか? ~ UNIX/POSIXコマンドの欠点をSQLで解決するShellScriptUNIXSQLitePOSIXQiitadelika 「利用者は数十億人!? SQLiteはどこが凄いデータベース管理システムなのか調べてみた」の続きです。 はじめに 複雑な構造のデータを扱うのであればシェルスクリプトや Unix (POSIX) コマンドでデータ管理を行うのは避けるべきだと思います。解決不可能な問題が多いからです。しかしそれでも何かしらの理由でやろうと考える(やらなければいけない)のであれば SQLite を使うのをおすすめします。シェルスクリプトや Unix コマンドは行単位の単純なテキストデータをシーケンシャルにデータ処理するのが前提となっており、改行や空白が含まれるデータや複雑な構造のデータ扱うのは苦手です。またシェル

          なぜシェルスクリプトで高度なデータ管理にSQLiteを使うべきなのか? ~ UNIX/POSIXコマンドの欠点をSQLで解決する
        • 11種類のオペレーティング・システムについてまとめてみた - Qiita

          TL;DR 「オペレーティングシステム?知ってるよ。WindowsとかMacのことだよね」というぐらいの知識だった私が、二週間ほどひたすらWikipediaでインプットしまくったクソ浅い情報を共有します。 最初の動機 「Go言語が対応しているアーキテクチャってなんだろ?」 Go言語には環境変数をコンパイラに渡すことで、出力されるバイナリの対応するOSとアーキテクチャを変えることができます。 GOOS がオペレーティングシステム(OS)、 GOARCH がアーキテクチャです。 こんな感じにビルドすると、 linux というオペレーティングシステムで、 ppc64 というアーキテクチャに対応したバイナリが出力されます。 なるほど。 じゃあ、 Go言語が対応しているOSとアーキテクチャって何があるの? と疑問が湧いてきますね。 その疑問に応えるコマンドが go tool dist list です

            11種類のオペレーティング・システムについてまとめてみた - Qiita
          • 業務端末としてLinuxデスクトップを使うために設定したこと - Plan 9とGo言語のブログ

            2021年の11月に、業務端末としてDELL XPS 13を購入して、Linuxデスクトップに移行しました。いまでは快適に使えるようになりましたが、Linuxデスクトップに慣れていないこともあって思ったように動かず困ったところがあったので、導入にあたって悩んだところをまとめました。 ディスクの暗号化 業務利用の要件にディスクの暗号化があるので、bootパーティションを除いて暗号化しました。手順は過去記事に追記しました。 blog.lufia.org GNOME KDE Plasmaの方がスタイルは好みですし、実際に業務端末でも2ヶ月ほど使っていましたが、Wayland環境ではタッチパッドの左右スワイプが動かないとか、XWaylandで動作するアプリケーションを4Kディスプレイで表示するとぼやけた表示になるなど厳しいなと思いました*1。個人で使うものなら、少し効率が悪い程度なら問題にしません

              業務端末としてLinuxデスクトップを使うために設定したこと - Plan 9とGo言語のブログ
            • TabFS

              Going through the files inside a tab's folder. For example, the url.txt, text.txt, and title.txt files tell me those live properties of this tab (Read more up-to-date documentation for all of TabFS's files here.) This gives you a ton of power, because now you can apply all the existing tools on your computer that already know how to deal with files -- terminal commands, scripting languages, point-

                TabFS
              • 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> の形を取ります。例えばgithub.com/lufia/backoffの場合は以下のように書きます。 # Backoff ...summary... [![GoDev][godev-image]][godev-url] ...description... [godev-image]: https://pkg.go.dev/badge/github.com/lufia/back

                  Go関連の比較的新しいTips - Plan 9とGo言語のブログ
                • Unixを開発したケン・トンプソン氏がMacからLinuxへ移行した事を発表 | ソフトアンテナ

                  Unix、Plan9、UTF-8、Goプログラミング言語の開発者として知られ、現在80歳となったケン・トンプソン氏が、最近使用するコンピューターをMacからLinuxへ移行した事を明らかにしました。 SCaLE 20xカンファレンスの閉会基調講演でケン・トンプソン氏は、自身が作成したジュークボックスに関して説明し、最後の質疑応答コーナーで行われた、「現在使用しているOSは何か」という質問に対し、次のように回答しています。 I have, for most of my life — because I was sort of born into it — run Apple. 私は人生の大半を、生まれつきそうだったから、Appleを使ってきました。 Now recently, meaning within the last five years, I've become more and m

                    Unixを開発したケン・トンプソン氏がMacからLinuxへ移行した事を発表 | ソフトアンテナ
                  • Goでモンキーパッチするライブラリを作った - Plan 9とGo言語のブログ

                    Goで単体テストを実装する場合、動的な言語のように「テスト実行中に外部への依存を置き換える」といったことはできません。代わりに、 外部への依存を引数で渡す 外部への依存をインターフェイスで渡す のように、テスト対象をテスト可能な実装に変更しておき、テストの時は外部への依存をモック等に置き換えて実行する場合が多いのではないかと思います。 個人的な体験でいえば、テスト可能な実装に置き換えていく過程で設計が洗練されていく*1ことは度々あるので、面倒を強制されているというよりは設計を整理するための道具といった捉え方をしているのですが、そうは言っても動的な言語に比べると面倒だなと感じるときは少なからずあります。既存の実装がテスト可能になっておらず、変更するコストが高い場合は特にそうですね。 そんなとき、気軽にモンキーパッチできると嬉しいんじゃないかと思って、テストの時だけ関数を置き換えられるようなラ

                      Goでモンキーパッチするライブラリを作った - Plan 9とGo言語のブログ
                    • なぜシェルスクリプトはPOSIX準拠でも環境依存が激しいのか? 〜POSIXの問題点とその解決策の案〜 - Qiita

                      なぜシェルスクリプトはPOSIX準拠でも環境依存が激しいのか? 〜POSIXの問題点とその解決策の案〜ShellScriptBashshellPOSIX まえがき この記事は「シェルスクリプトで高い移植性と生産性を両立させるシリーズ」の第一弾です。移植性と生産性を両立させるための前提知識として POSIX コマンドの問題点について解説します。第二弾では高い移植性と互換性を実現させるための考え方、そして第三弾、第四弾ではそれを実現するシェルスクリプトの具体的な実装テクニックを紹介します。第五弾では現実的な問題と回避方法について解説する予定ですがまだ具体的な内容は決まっていません。第五弾はその前に「シェルスクリプト入門(仮)」の記事を書こうと思ってるので少し遅くなると思います。もし興味がある方は記事をストックしていると更新時に通知されると思います。 2021-07-11 追記 記事が長くなった

                        なぜシェルスクリプトはPOSIX準拠でも環境依存が激しいのか? 〜POSIXの問題点とその解決策の案〜 - Qiita
                      • Old Brains - kuenishi's blog

                        そろそろ歳も40近くなり、老いについて考えることが増えてきた。たとえば10ヶ月も続く在宅勤務の中で少しでも運動をサボると左膝がすぐに痛みだしたり、うっかり水分を摂り忘れたりすると頭痛がきたりする。もちろん体重は史上ピークを記録し続けている。身体の老いについては、まあそういうものであるし、特に外見などに気を遣って生きてきたわけでもないからそんなには気にしていない。しかしながら、人間の人間たる由来はその精神や振る舞いにあると思っているから、そちらでの老いの方が問題だ。 前職までは大抵、わたし自身は年齢が1番か2番めくらいに若い職場で仕事をしていることがほとんどであった。ほとんど同年代か、10から20くらい上であることが多かったように思う。単に物理的な年齢もあるが、職業経験も私より長い人たちばかりであったので、教わることの方が多かったから、物事の考え方が揃っていたことが心地よかったということには

                          Old Brains - kuenishi's blog
                        • Go 1.14でシステムコールがEINTRエラーを返すようになった - Plan 9とGo言語のブログ

                          Go 1.13までのゴルーチンの切り替えは、チャネルの送受信やシステムコール呼び出し、関数呼び出し前にコンパイラが暗黙的に挿入する処理などによって行われていました。そのため、上記の切り替わり操作を全く行わないループなどがあれば、そのゴルーチンがずっと実行されます。 func loop() { // この辺りにコンパイラがコード挿入している for { // 切り替わり処理が行われないので無限に実行される } } この結果、$GOMAXPROCSが1の場合はプログラムが停止します。コンパイラが挿入するコードは、インライン展開された場合やgo:nosplitディレクティブが記述された場合には行われないので、関数呼び出しをしていてもゴルーチンが切り替わらない場合はあります。 ゴルーチンの切り替えと関数のスタックチェック go doc compile/Compiler Directives Goの

                            Go 1.14でシステムコールがEINTRエラーを返すようになった - Plan 9とGo言語のブログ
                          • Mackerel をファイルシステムにした - Unengineered Weblog

                            この記事ははてなエンジニア Advent Calendar 2023の 12月36日 2024年1月5日の記事です。 developer.hatenastaff.com Mackerel をファイルシステムにしてみましょう。 Mackerel でファイルシステムを監視するのではありません。 Mackerel をファイルシステムにするのです。 じゃん mackerelfs と言います。よろしくおねがいします。 github.com /home/rmatsuoka/mackerel ディレクトリに mackerelfs をマウントしましょう(マウントの方法は後半説明します。)最初は ctl ファイルだけがあります。 $ ls -l total 0 --w--w--w- 1 rmatsuoka rmatsuoka 0 Jul 14 2042 ctl さて Mackerel を操作するときは AP

                              Mackerel をファイルシステムにした - Unengineered Weblog
                            • Go: A Documentary

                              Go: A Documentary by Changkun Ou <changkun.de> (and many inputs from contributors) This document collects many interesting (publicly observable) issues, discussions, proposals, CLs, and talks from the Go development process, which intends to offer a comprehensive reference of the Go history. Disclaimer Most of the texts are written as subjective understanding based on public sources Factual and ty

                              • Goモジュールでツールもバージョン管理する - Plan 9とGo言語のブログ

                                Goモジュール管理下では、プロジェクトで使うGo製ツールのバージョンも管理できます。今までの経験では、ツールのバージョンが上がって困ることは記憶にないですが、とはいえ2018年5月ごろにprotoc-gen-goが大きめの変更を入れたこともあるので、バージョン管理しておいて損はないでしょう。このハックは、割とGoモジュール初期からあったようですが、最近使ったので書きました。 Go 1.11 Modules - How can I track tool dependencies for a module? Go modules by example - Tools as dependencies 使い方 ツールを追加する Go 1.13時点では、モジュール管理しているリポジトリでgoimportsなどのツールをgo getすると、go.modが書き換えられて管理対象に入ります*1が、恒久的に

                                  Goモジュールでツールもバージョン管理する - Plan 9とGo言語のブログ
                                • Goアセンブリ入門 - Qiita

                                  この記事は Chapter I: A Primer on Go Assembly を翻訳、加筆したものです。 この記事では以下のような人を想定しています。 Go言語の文法を理解している サブルーチンコール時の一般的なスタックの挙動を理解している 環境 擬似アセンブリ Goコンパイラが出力するアセンブリは、抽象化されたものであり、実際のハードウェアにマッピングされていません。 Goアセンブラはこの擬似アセンブリを対象のハードウェアに沿った機械語に変換します。 Javaのバイトコードのようなものを想像するとわかりやすいかもしれません。 このような中間層を設けることの最大の利点は新しいアーキテクチャに対応するのが楽になることです。 詳細を知りたい場合は、Rob Pike氏著の The Design of the Go Assemblerを見てください。 Goアセンブリを知るためにもっとも重要なこ

                                    Goアセンブリ入門 - Qiita
                                  • Next.jsにするか他のフレームワークにするか迷っている人はNext.jsを選べばいい | フューチャー技術ブログ

                                    タイトルで言いたいことは言ってしまっているのですが、2017年ぐらいからNext.jsを使ってきて、最新の情報のキャッチアップとかもそんなに苦労はなくて、こだわりがないならNext.jsでいいのでは? という記事です。 Next.jsは大きすぎる?フレームワークが大きいのはたいていそうで、提供されているすべての機能を使うわけではなく、その一部だけを使います。そのサブセット自体がシンプルであればフレームワークはどれだけ大きくても問題はないはずです。JavaとかPythonとかGoのコード書いてもごく一部のライブラリしか使わないわけで、でもそれに対して「ライブラリがでかすぎる」とは言わないですよね。 Next.jsは「より高速にする」機能がたくさんありますが、別にそんなの最初から使う必要はないですし、サービスによってはそもそもその機能が合わない、というのもあります。ユーザープロフィール画面にI

                                      Next.jsにするか他のフレームワークにするか迷っている人はNext.jsを選べばいい | フューチャー技術ブログ
                                    • go getだけでコマンドのバージョンを埋め込む - Plan 9とGo言語のブログ

                                      2022年8月、Go 1.18対応版にアップデートしました 久しぶりのGoネタです。Go 5 Advent Calendar 2020の18日目が空いていたので書きました。 Goで実装されたコマンドでは、ビルドした時点のバージョンを埋め込むため以下のようなMakefileを用意することがあると思います。 .PHONY: build build: go build -ldflags '-X main.Version=$(VERSION)' しかしこの方法では、go installなどMakefileを経由せずビルドしたバイナリには適切なバージョンが埋め込まれない問題があります。個人的な意見では、可能な限りgo getでインストールできる状態を維持した方が良いと思っていますが、バージョンを埋め込むためには他に方法がないので仕方がないと理解していました。しかしGo 1.19現在、runtime/

                                        go getだけでコマンドのバージョンを埋め込む - Plan 9とGo言語のブログ
                                      • シェルとUNIXコマンドの未来 ~ これからの10年で起きるシェルスクリプトの変化 - Qiita

                                        はじめに シェルスクリプトの世界は今後 10 年で大きく変化します。10 年という数字は切りが良い数字を持ってきただけで根拠はありません。これより長い時間がかかるかもしれませんし、もしかしたら短くなるかもしれません。しかし確実によりよい方向に変わっていくでしょう。Unix/Linux の標準コマンドはさまざまな問題を抱えています。Unix/Linux の標準コマンドに依存している限りシェルスクリプトに大きな改善はありません。これからのシェルスクリプトの世界は Unix/Linux の標準コマンドに依存しない世界です。それがどういうものになるのかをこの記事で解説しています。この記事は私の予言であり目標です。 シェルスクリプトの失われた30年の進化を取り戻す! 残念なことに、シェルスクリプトの世界は 30 年前から大きく変わっていません。それまでの間、プログラミング言語の世界、ソフトウェア開発

                                          シェルとUNIXコマンドの未来 ~ これからの10年で起きるシェルスクリプトの変化 - Qiita
                                        • Goアセンブリの書き方 - Plan 9とGo言語のブログ

                                          Goアセンブリの書き方からビルド方法までを一通り調べました。Goアセンブリを書いたことのない人がコードを書いてリンクできるところまでは一通り書いているつもりですが、Goアセンブリの言語仕様を網羅してはいないので、興味があれば最後に書いた参考情報も読んでみてください。 この記事ではGo 1.16.xでAMD64命令セットを扱いますが、具体的な命令や値のサイズ以外は、他のアーキテクチャを使う場合でもだいたい同じだと思います。 アセンブリコードの書き方 GoのアセンブリはPlan 9アセンブリを概ね踏襲していて、AT&T記法です。整数を受け取って、それに2を加算した値を返す関数func add2(i int32) int32を書いてみましょう。アセンブリのコードは.sファイルに書きます。また、アセンブリはアーキテクチャに強く依存するので、Goの習慣にしたがってファイル名にはアーキテクチャ名も入れ

                                            Goアセンブリの書き方 - Plan 9とGo言語のブログ
                                          • echoコマンドの移植性が低い歴史的理由とPOSIXの改定方針 ~ 次期POSIXでbashのechoはPOSIX準拠になる! - Qiita

                                            echoコマンドの移植性が低い歴史的理由とPOSIXの改定方針 ~ 次期POSIXでbashのechoはPOSIX準拠になる! はじめに 実は bash に組み込まれた echo コマンドは POSIX に準拠していません。しかし 2023 年に予定されている次期 POSIX (Issue 8) の改定で、POSIX 準拠の動作になります。🎉🎉🎉 私のこの言い方には違和感を感じるかもしれません。「POSIX に違反している bash が問題点を修正して、POSIX に準拠させるのではないのか?」と。いいえ違います。POSIX 側が仕様を修正することで、bash は何も変更せずに過去のバージョンも含めて POSIX に準拠するようになります。面白いですね。 この記事は echo コマンドの移植性の問題の歴史を振り返りながら、それを例に POSIX 標準化団体がどのような方針で標準規格を

                                              echoコマンドの移植性が低い歴史的理由とPOSIXの改定方針 ~ 次期POSIXでbashのechoはPOSIX準拠になる! - Qiita
                                            • LTS版「Linux」カーネルのサポートが短縮へ--背景にメンテナーの苦悩

                                              現地時間9月19日からスペインのビルバオで開催されていた「Open Source Summit Europe」で、Linuxカーネル開発者であり、LWN.netの編集責任者を務めているJonathan Corbet氏が、Linuxカーネル関連の新しい点や今後の動きについて発表した。 ここではその中から、今後の大きな変更点の1つを紹介したい。それは、Linuxカーネルの長期サポート(LTS)が6年から2年に短縮されるということだ。 LinuxカーネルのLTS版には現在のところ、6.1と5.15、5.10、5.4、4.19、4.14の6つがある。これまでであれば、4.14は2024年1月にサポートが終了し、別のカーネルが追加されていた。しかし今後は、4.14とその次の2つのバージョンのサポートが終了しても、別のカーネルがそれに取って代わることはない。 なぜだろうか。Corbet氏は単純なことだ

                                                LTS版「Linux」カーネルのサポートが短縮へ--背景にメンテナーの苦悩
                                              • Go 1.19のメモリ周りの更新 | フューチャー技術ブログ

                                                Go 1.19リリース連載の6本目です。 Go 1.19では、いくつかメモリ周りの更新がありました。1つはガベージコレクタ周りのお話と、あとはメモリモデルの更新です。 ライブラリではsync/atomic.Int64など、いくつか型が追加されました。 ガベージコレクタガベージコレクタの詳細と調整の仕方についてのドキュメント が追加されました。このドキュメントはスライダーで動作の変化がみられるインタラクティブなドキュメントになっているので、ぜひご覧ください。 「GoはJavaと違って、GCの調整ポイントがほとんどなく、最初からトップスピード(オプションの選択の中で相対的に)だよ」みたいに説明されることもありましたが、そういうわけにも行かなくなったというか、ある程度知っておく必要はあるかもしれません。とはいえ、デフォルトでも十分うまくやってくれますし、そもそも即座に終了するユーティリティでは頑

                                                  Go 1.19のメモリ周りの更新 | フューチャー技術ブログ
                                                • tar(1) はなぜオプション引数にハイフンが不要なのか?

                                                  TL;DR tar(1)の引数はオプションではなくkeyだから 歴史 tar(1)は Unix v7 (1979) で導入されたが、その前身は Unix v4 (1973) の tp(1)、更にこれは Unix v1 (1971) の tap(1) に遡る。 80年代に入りSystemV v.s. BSDといったことが起きたりし、PWB/UNIX (Programmer's WorkBench)で導入された cpio(1)とtar(1)、どちらがUnixの標準アーカイバか争われた結果、IEEE Std. 1003.1-2001 (POSIX.1-2001) を以って tar(1)は規格から削除され、代わりに IEEE Std 1003.2-1992 で導入された折衷案のpax(1)が標準となった。よって、現在実装中立なtar(1)の仕様書がそもそも存在しない。最後の中立規格は1997―19

                                                  • 続・tar(1) はなぜオプション引数にハイフンが不要なのか?―tarとkey argumentsの起源を更に辿る

                                                    続・tar(1) はなぜオプション引数にハイフンが不要なのか?―tarとkey argumentsの起源を更に辿る また、過去ではなく未来方向、つまり Bell Lab で Unix の successor として生まれた Plan 9 や Inferno における tar についてはこちらで lufia 氏がまとめておられたので参考にどうぞ。Plan 9とInfernoにおけるtar(1)の変化 Introduction 前回の記事では、tar(1)が Unix v1 (1971) のtap(1)まで遡ること、 また、その引数は key というサブコマンドの原始的な姿のようなものだったことを調査した。 さて、実は Unix v1 Programmer's Manual の栄えある最初のページを飾るコマンドは今でもスタティックリンクライブラリの作成などで使われる ar(1) であり、 こち

                                                      続・tar(1) はなぜオプション引数にハイフンが不要なのか?―tarとkey argumentsの起源を更に辿る
                                                    • Goで非推奨(Deprecated)や撤回(Retracted)を明示する方法 - Plan 9とGo言語のブログ

                                                      最近のGoには、関数やパッケージを非推奨と扱う方法があります。まとまっていると便利かなと思うので、種類ごとにまとめてみました。GoDocコメントを多用するので、GoDocを書き慣れていない場合は以下も参考にしてください。 blog.lufia.org 関数と型を非推奨にする 関数コメントに、// Deprecated: ではじまる段落を追加します。 // Parse parses a string of the form <status>=<status>. // // Deprecated: Use ParseStatusMap instead. func Parse(src string) (map[Status]Status, error) { ... } 型の場合も同様に。 // Error is the interface that wraps Error method. //

                                                        Goで非推奨(Deprecated)や撤回(Retracted)を明示する方法 - Plan 9とGo言語のブログ
                                                      • Go製バイナリを配布するためのGitHubワークフロー - Plan 9とGo言語のブログ

                                                        前置き 以前、BuildInfoからバージョンを取得する方法を紹介しました。 blog.lufia.org go installで正規の公開されたバージョンをインストールした場合は、以下の出力においてmodの行が示すように、sum.golang.orgでチェックサム等が検証されてバイナリのメタデータに埋め込まれます。 $ go version -m dotsync dotsync: go1.22.2 path github.com/lufia/dotsync mod github.com/lufia/dotsync v0.0.2 h1:JWm92Aw8pSKJ4eHiQZIsE/4rgwk3h5CjEbJ/S30wiOU= build -buildmode=exe build -compiler=gc build -trimpath=true build DefaultGODEBUG=ht

                                                          Go製バイナリを配布するためのGitHubワークフロー - Plan 9とGo言語のブログ
                                                        • Golang is evil on shitty networks

                                                          This adventure starts with git-lfs. It was a normal day and I added a 500 MB binary asset to my server templates. When I went to push it, I found it interesting that git-lfs was uploading at 50KB per second. Being that I had a bit of free time that I’d much rather be spending on something else than waiting FOREVER to upload a file, I decided to head upstairs and plug into the ethernet. I watched i

                                                          • 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となっていて、ベル研はそこに含まれていたけれども、いつの間にかノキアに買収されていたらしいですね。 何が変わったのか 以前のPlan 9はLucent Public License 1.02*1でライセンスされ、ベル研(plan9.bell-labs.com)により配布されていました。ユーザーはreplicaコマンドを使ってベル研の中央サーバからアップデートを取得し、必要ならサーバへパッチを送ることが行われていましたが、2015年1月を最後に、Plan 9のメンテナンスを行う人がいなくなり、しばらくしてからは*2ベル

                                                              Plan 9の権利がPlan 9財団に譲渡され、MITライセンスに変わりました - Plan 9とGo言語のブログ
                                                            • Goで書いたツールの依存管理をdepからGo Modulesに移行した - $shibayu36->blog;

                                                              昔作った notify-issues-to-slackの依存モジュールはdepのままで管理していたが、勉強がてらGo Modulesに移行することにした。 参考にした資料 Go 1.13 に向けて知っておきたい Go Modules とそれを取り巻くエコシステム - blog.syfm Go Modulesについてざっくり知ることができてよかった Modules · golang/go Wiki · GitHub ざっくり知った上でちゃんと理解するために公式ドキュメントを読む depからgo modulesへの移行と、移行時にTravis CI & GoReleaserでハマる(かもしれない)ポイント · horizoon 移行手順で参考にした Goモジュールでツールもバージョン管理する - Plan 9とGo言語のブログ ツールも含めてgo.modに入れていく手順で参考にした やったこと

                                                                Goで書いたツールの依存管理をdepからGo Modulesに移行した - $shibayu36->blog;
                                                              • Go Conference 2023 にて Go/Cgoで映像・音声のリアルタイム処理をやるまでの道のり というタイトルでお話してきました - Mirrativ Tech Blog

                                                                こんにちは ハタ です。 このたび Go Conference 2023 Online にて Go/Cgoで映像・音声のリアルタイム処理をやるまでの道のり というタイトルで発表しました 久しぶりの大きなカンファレンスでの登壇だったのでとても緊張しましたが、10周年を迎えた機会に登壇できて光栄です gocon.jp 今回発表した資料はこちらになります、当日のアーカイブは近々公開されると思いますのでお待ち下さい speakerdeck.com (2023/06/28追記) アーカイブ公開されたようです! もし当日ご覧になれなかった方はこちらからご視聴ください! zenn.dev さて、今回登壇するにあたり資料を用意していたのですが、発表時間の関係で削除してしまった内容がいくつかあるため、ここで紹介させてください go <-> cgo のオーバーヘッドを何とかしたい トランポリンコードの世界 c

                                                                  Go Conference 2023 にて Go/Cgoで映像・音声のリアルタイム処理をやるまでの道のり というタイトルでお話してきました - Mirrativ Tech Blog
                                                                • なぜ成功者たちは一部の会社や地域に偏っているのか? “優秀だから”だけではない2つの要因

                                                                  Blue Whale Systems株式会社の植山類氏は、「LLVM lld」「mold」が解決したプログラムのビルドの問題を例に、“大きな問題”を解決することについて話しました。全3回。前回はこちらから。 同じ人が何回も成功できる外部的要因と心理的要因 植山類氏:「では、挑戦していくにはどうしたらいいの?」という話をしようと思います。(スライドを示して)この人たちが誰だかわかりますか? まぁ偉い人たちなんですけど。右がケン・トンプソンという人で、「UNIX」の開発者です。左がロブ・パイクという人で、Go言語を作った人です。 この人たちは、ロブ・パイクは、僕のGoogleのオフィスのわりと近くで働いていて、見たことがあります。ケン・トンプソンも1回オフィスで見たことがあります。 この人たちはUNIXやGoを作っただけじゃなくて、他にもPlan 9というOSやInfernoというOSを作った

                                                                    なぜ成功者たちは一部の会社や地域に偏っているのか? “優秀だから”だけではない2つの要因
                                                                  • Linuxベースの7インチ超小型ノートPC「Pocket Reform」が登場

                                                                    7インチ(15.47cm × 8.71cm)のディスプレイを搭載した超小型ノートPC「Pocket Reform」が、ドイツのハードウェアメーカー「MNT Research」より発表されました。 Introducing MNT Pocket Reform—MNT Research https://mntre.com/media/reform_md/2022-06-20-introducing-mnt-pocket-reform.html The PocketReform is a made-in-Berlin Linux handheld https://tuxphones.com/mnt-pocketreform-open-hardware-linux-pda-keyboard-arm/ Pocket Reformは以下のような見た目で、フルHD(1920×1080 310 ppi)の7

                                                                      Linuxベースの7インチ超小型ノートPC「Pocket Reform」が登場
                                                                    • その後のgolangと(Dockerと)OOM — KaoriYa

                                                                      前の記事:golangとDockerとOOM を書いた後で Go側の事情に変化があったため、 あの記事に書かれた方法は現実的な選択肢ではなくなってしまいました。 この記事では私が使っているGo 1.14以降でのOOM対策と、 どうしてそうせざるを得なかったのか解説をお届けします。 TL;DR Goの64ビット版はVSZの最小要求量が大幅に拡大した (500MB超) 前の記事で紹介した方法が現実的ではなくなった VSZの制限をRSSに転用する=最低でも500MBのRSSを設定することになる 代わりに自プロセスのRSSを監視して閾値を超えたらアポトーシスするようにした RSS取得用のkoron-go/phymemパッケージを作成した Background あの記事を書いた翌月末にGo 1.14がリリースされました。 その変更点の中に以下の記述があります。 The page allocator

                                                                      • Goフォントの紹介と使い方 - Plan 9とGo言語のブログ

                                                                        Goのソースコードをきれいに描画する目的で作られた「Goフォント」があるのをご存じでしょうか。周囲に聞いたところ、あまり知られていなかったので、紹介の意味も込めてインストール方法を書きます。 Goフォント Goフォントは、2016年に以下の記事で公開されたもので、単体で配布されたものではなく、golang.org/x/exp/shinyパッケージの一部として配布されています。 go.dev コミットログを見る限りでは、2016年にv2.004、2017年にv2.008がリリースされた後しばらく更新されていませんでしたが、2022年6月17日にv2.010がgolang-nutsで告知されました。 groups.google.com フォントの画像は上のブログ記事にもありますし、Goのコードを書きながらAcmeエディタの基本を覚えるチュートリアルの途中からはGoフォントでGoのコードを書いて

                                                                          Goフォントの紹介と使い方 - Plan 9とGo言語のブログ
                                                                        • GitHub ActionsでGoのソースコードをクロスコンパイルするときに、ビルドが失敗する理由とその対策 - Hatena Developer Blog

                                                                          Mackerelチームでアプリケーションエンジニアをやっているid:lufiabbです。 Mackerelでは、ホストのメトリックを送信するためのエージェントや各種プラグインなどをOSSとして公開しています。現在の公式サポートはヘルプにある対応環境の通りですが、サポート外ではあるもののFreeBSDや32bit Windowsなどにもプログラムを提供している場合があります。 こういったOSSの一部、特にGo言語で書かれたプログラムのCIをGitHub Actionsへ移行した際に、32bitバイナリの生成についていくつか調べたことがありますが、あまりインターネットで見かけない情報だったので、今回は一般的な情報として共有してみようと思います。 この記事では、ディスクの残り容量を調べるプログラムの64bit版と32bit版をLinux用とWindows用にビルドする方法を例に、以下の場合にそれ

                                                                            GitHub ActionsでGoのソースコードをクロスコンパイルするときに、ビルドが失敗する理由とその対策 - Hatena Developer Blog
                                                                          • Rob Pike interview for Evrone: “Go has become the language of cloud infrastructure”

                                                                            Rob Pike interview: “Go has indeed become the language of cloud infrastructure“ Rob Pike, the co-author of the Go programming language, speaks about a career spanning four decades, and the evolution of Go over the last ten years. Rob Pike, one of the creators of Go, discusses the language's development, its impact on systems programming, and the future of Go. He also reflects on the importance of

                                                                              Rob Pike interview for Evrone: “Go has become the language of cloud infrastructure”
                                                                            • 株式会社はてなに入社しました - Unengineered Weblog

                                                                              株式会社はてなに入社しました 株式会社はてなに入社しました - hitode909の日記 本当です。23年度の新卒エンジニアとして入社します。 Plan 9にハマったら株式会社はてなに入社した話 Plan 9を調べていくうちに blog.lufia.org というブログを見つけて、そのブログの作者 id:lufiabb さんが株式会社はてなのエンジニアだったので株式会社はてなにエントリーしたら株式会社はてなに入社しました。 株式会社はてなではPlan 9に興味があるエンジニアを募集しています。

                                                                                株式会社はてなに入社しました - Unengineered Weblog
                                                                              • Rob Pike's simple C regex matcher in Go

                                                                                Rob Pike’s simple C regex matcher in Go August 2022 Back in 1998, Rob Pike – of Go and Plan 9 fame – wrote a simple regular expression matcher in C for The Practice of Programming, a book he wrote with fellow Unix hacker Brian Kernighan. If you haven’t read Kernighan’s “exegesis” of this code, it’s definitely worth the 30-minute time investment it takes to go through that slowly. With Go’s C herit

                                                                                • Goの`zero`識別子追加プロポーザルと導入される仕様について - tomato3713’s blog

                                                                                  概要 zero 識別子が追加されることが決まったので該当プロポーザルの spec: add untyped builtin zero · Issue #61372 · golang/go を読んで気になったことや実際の導入予定のzero識別子の仕様についてまとめました。1 提案時の仕様 spec: add untyped builtin zero · Issue #61372 · golang/go zero 識別子を追加する zero はどの型に対しても代入可能な zero value を表す (なので、ポインタ型と値型にも同じように代入可能で*x = zero と x = zero が許容される) 0, "", nil と比較できないような型Tの値であっても、zero と比較して zero value であるかを判定できる。Tがanyの場合も含む。 この zero 識別子を追加する提案

                                                                                    Goの`zero`識別子追加プロポーザルと導入される仕様について - tomato3713’s blog