タグ

lufiabbのブックマーク (2,080)

  • Goのtestingパッケージに対する一時的なディレクトリ移動のためのテストヘルパー関数の提案まとめ - tomato3713’s blog

    testing: add TB.Chdir #62516 github.com 一時的にカレントディレクトリを移動してテスト終了と共に元のディレクトリに移動するヘルパー関数 Chdir(dir string) を testing package に追加する提案を読んだまとめです。 ちょうど3日前の 2024/06/25 に Accepted されました。 具体的な利用シーンには、プログラムの実行箇所に依存するカレントディレクトリの設定ファイルを読み込む関数のテストなどが挙げられます。 ディレクトリを移動したテストを書きたい時はあまり多くはなさそうですが、ディレクトリを移動したのにテスト終了時に元のディレクトリに戻り忘れる、ディレクトリを移動するテストを並列で実行したなどでテストがFlakyになってしまうなんてことはやりそうです。 提案によって追加される testing.Chdir を使わな

    Goのtestingパッケージに対する一時的なディレクトリ移動のためのテストヘルパー関数の提案まとめ - tomato3713’s blog
    lufiabb
    lufiabb 2024/06/28
  • 続・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の起源を更に辿る
  • 泣けるハッピーエンドな映画

    ハッピーエンドで、 泣いてスッキリする映画が知りたい。 捉えようによってはハッピーエンド! ってのもあるだろうけど、罠になりがち。 多少はしょうがないけど、ハッピーエンド度高めでお願いします。 ほのぼの魔法少女だよ! っていってまどマギをご紹介。みたいな詐欺もやめてくれ。 それは俺の心を削るから。

    泣けるハッピーエンドな映画
    lufiabb
    lufiabb 2024/06/27
    直前のコメントにもあるけど、すみっコの映画はどれも泣ける
  • 「1億台の常時接続」を実現せよ! Nintendo Switchのプッシュ通知システム全面刷新の裏側 (1/3)

    アマゾン ウェブ サービス ジャパンは、2024年6月20日と21日、国内最大の年次イベントである「AWS Summit Japan」をハイブリッドで開催。150を超えるセッションが展開された。 記事では、ニンテンドーシステムズによるセッション「Nintendo Switch向けプッシュ通知システムのリプレイス事例」をレポートする。登壇したのは、同社 システム開発部の林愛美氏と坂東聖博氏だ。 2017年のNintendo Switchの発売とあわせてリリースされた「プッシュ通知システム」。同社は、長期運用を見据えて、よりクラウドネイティブなシステムへのリプレイスを決定するが、大量のTCP接続を維持するための様々な課題が立ちふさがった。 セッションでは、AWS FargateやNetwork Load Balancer(NLB)といったAWSのマネージドサービスを用いた、“最大1億台”級

    「1億台の常時接続」を実現せよ! Nintendo Switchのプッシュ通知システム全面刷新の裏側 (1/3)
    lufiabb
    lufiabb 2024/06/27
  • 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

  • デジタル認証アプリとのID連携で使われている標準化仕様と勘所

    ritou です。 みんなが待っていたデジタル認証アプリの情報が公開されました。 開発者向けのガイドライン、APIリファレンスなどのドキュメントも公開されています。 今回は開発者視点でどんな作りになっていて、利用するために理解が必要となる標準化仕様はどのあたりなのかを取り上げます。ちょっとOIDCのRPやOAuthのClient実装経験のある開発者向け、ぐらいの内容です。 概要 公開された情報からすると デジタル認証アプリサービス(アプリ+バックエンド)はマイナンバーカードを用いた当人認証を実施 現在は都度マイナンバーカードを利用する必要がありますが、いずれはスマホに保存されたカード情報を使ってもっと楽になりそう ID連携のIdentityプロバイダとして認証イベント情報、基4情報といった属性情報を民間/行政サービスに提供 民間/行政サービスは認証イベント情報に含まれるユーザー識別子を利

    デジタル認証アプリとのID連携で使われている標準化仕様と勘所
  • Walter BrightによるEric Engstromの思い出話

    DirectXの作者の一人であるEric Engstromが死去した。これにことよせてD言語のWalter Brightが思い出話を書いている。 I've known Eric since around 1985 or so when he came to work at Data I/O. Our fr... | Hacker News Ericは1985年から知り合いだった。Data I/Oで働いていた頃だ。次第に疎遠になっていったが、あいつは常に特別なやつだった。 今となっては私しか覚えていないであろう思い出話をひとつしてやろう。いつ思い出しても笑えるし、まさにあいつらしい話だ。 あいつが1991年か92年あたりにMicrosoftで働いていた頃、問題を抱えているマネージャーがいた。アセンブリ言語で書かれたプログラムがあった。5万行ほどのサイズだ。プログラムには修正すべき不具合があっ

  • Go界隈で巻き起こった go:linkname 騒動について - ANDPAD Tech Blog

    お久しぶりです、ANDPADボードの tomtwinkle です。 この記事はGogo:linkname 騒動は 6/18に行われた Go Bash で話した内容を要約したものです。 そもそも go:linkname とは何かといえば internal packageやprivate var/funcなど普通はアクセスできないオブジェクトシンボルをエイリアス出来るようCompilerに指示して、アクセス可能にするcompiler directiveです。 go:linkname はprivateな変数へアクセス可能な便利なものでしたが unsafe packageのimportを必須とする通り、せっかく互換性や安全を考慮して作られているGoプログラムを簡単に破壊できる諸刃の剣でした。 詳細は発表スライドを見てください。 go:linkname 禁止騒動 Go 1.23 のリリースまで2

    Go界隈で巻き起こった go:linkname 騒動について - ANDPAD Tech Blog
  • /usr は何の略か – ビットログ

    Unix系OSのルートディレクトリ直下にある “/usr” はなんの略なのか。 巷の意見はおおよそこんな感じです。 「もちろん “USeR” の略でしょ。」 「あまいな。 “User Services and Routines” の略だ。」 「その “User S*R*” の略だっていうソースはあるの?」 どうもはっきりしません。そこで調べ始めたら、思いのほか深入りしてしまったので、今回調べたことを書いておきます。 0. Unixユーザグループの機関誌に載っていた説 Unixユーザグループの機関誌に “User Services and Routines” の略だと書いてあったという情報が散見しますが、ここではそれをソースとして認めません。その記事に「XXXのドキュメントに書いてある」とか、「IEEE NNN.N で決まっている」とか書いてあれば一件落着なのですが、原典を見つけることはでき

    lufiabb
    lufiabb 2024/06/18
    Plan 9では今でも/usrにホームディレクトリが作られます、このように https://github.com/plan9foundation/plan9/tree/main/usr
  • 脳に収まるコードの書き方を読んだ。面白かった。 - Mitsuyuki.Shiiba

    いただきましたー!わーい。脳に収めるぞー! @haradakiro @ryuzee pic.twitter.com/3Qd6EvPioU— SHIIBA Mitsuyuki (@bufferings) June 13, 2024 明日(2024年6月18日)発売! www.oreilly.co.jp どう書くのがいいんだろうなぁ? 複雑なコードと向き合うときは「あー、これはメモを取りながら読まないと迷子になるやつだ」ってなる。最初はわりとキレイに作られていたとしても、機能追加を重ねていくとだんだん読めなくなっていく。 だから「時間が経っても読みやすいコードってどう書くのがいいんだろうなぁ?何かヒントがあるかなぁ?」って思いながらこのを開いた。先に書いておくと、ヒントはあった。 アウトサイドインのTDD 全然予想してなかったから、おー!と思ったのが、説明をTDDで進めていくってところ。好き

    脳に収まるコードの書き方を読んだ。面白かった。 - Mitsuyuki.Shiiba
  • mattn氏が実践しているエンジニアリング最適なメモ術。アウトプットを継続するための方法論

    mattn氏が実践しているエンジニアリング最適なメモ術。アウトプットを継続するための方法論 2024年6月18日 mattn 大学卒業後、ソフトウェアハウスやSIerなどでソフトウェア開発に携わる。vi派生のテキストエディタVimの日語化やプラグイン、Go言語などでOSS(オープンソースソフトウェア)の開発・コミュニティ運営に参加し、2019年からGoogle Developers Expert。2021〜2023GitHub Stars。著書に『みんなのGo言語』(2016年、2019年に改訂2版、技術評論社、共著)、『Go 言語プログラミングエッセンス』(2023年、技術評論社、単著)がある。関西在住。 X:@mattn_jp GitHub 前回はアウトプットとは何か、何のためアウトプットするのか、についてお話しました。筆者はこれまで、アウトプットのやり方で悩んでいる方々に、どう

    mattn氏が実践しているエンジニアリング最適なメモ術。アウトプットを継続するための方法論
    lufiabb
    lufiabb 2024/06/18
  • ドキュメントを書かないことは「負債を生む」ということ - Qiita

    記事の要約 ドキュメントを書かない事は、企業やチームの「負債」になる ドキュメントを書かない事は、自身の学びや振り返りの「機会損失」になる そういう文化が根付く前に、負の連鎖を断ち切ろう! はじめに 世の中のプロジェクトには、ドキュメントが足りていない、と感じています。 でも残念な事に、ドキュメントをどうしても書きたい人は「ほとんどいない」と思います。 その一方で「ドキュメントを書いた方が良い」という事は、 何となく分かっている人も多いと思います。 やりたくない事をやらなければならないのは、嫌ですよね。 そんな気持ちは分かりますが、これを機に一度改めてみませんか。 何故なら、ドキュメントを書かない事はチームに「負債」を生むからです。 勤め人ならば少なからず一度でも、体験した事があると思います。 「どうして必要な過去の資料が無いんだ」って。 あるはずの歴史の一端がソースコードからしか分から

    ドキュメントを書かないことは「負債を生む」ということ - Qiita
  • flaky test の調査のためにテスト中で使う変数でもログに出すようにする - ドキュメントを見たほうが早い

    というのを最近試みている。 これまで遭遇してきた flaky test の多くは比較的単純な原因だった。コードを少し眺めたり、乱数が原因で落ちたテストのシード値を指定するだけで再現できることが多かったため、あまり困っていなかった。 しかし、最近遭遇したテストは、並行で実行されるテストで作られるデータと競合していたため、調査が難航していた。 周辺コードや既存のログを読んでも原因が全く分からなかったため、テストの前後で変数をダンプするログを追加して、しばらく CI の様子を観察していた。 すると、調査が一気に進み、flaky test の修正も可能になりました。 この件から、普通のアプリケーションの不具合調査の際と同じように、情報を増やすためにログを仕込むテクニックが flaly test の修正でも有効であることを認識してきた。 特に、テスト実行中だとデバッガもないので、変数の中身が出るくら

    flaky test の調査のためにテスト中で使う変数でもログに出すようにする - ドキュメントを見たほうが早い
  • feed_squeezerを作った - くりにっき

    これなに? モチベーション 使った技術 工夫ポイント 配布形式をどうするか GoGoogleライクな検索クエリで文字列マッチするような関数を作った 取得したフィードを一瞬だけキャッシュする バイナリにviewを同梱する 最近のエコシステムに乗っかる 2024/06/14 13:28 追記:ブコメレス これなに? RSSフィードを任意のキーワードで絞り込んだ結果をさらに別のフィードとして返すためのproxy的なウェブアプリです。 github.com モチベーション 僕はSlackで色々なRSSフィードを購読しています。 YouTubeのチャンネルにもRSSフィードが存在しているのでSlackで購読しています。 例えば 東映アニメーション公式YouTubeチャンネル - YouTube にはプリキュアをはじめとして様々な動画が公開されています。その中でプリキュアに関係する動画だけをSlac

    feed_squeezerを作った - くりにっき
  • de-autoconfiscation.adoc · master · Eric S. Raymond / autodafe · GitLab

    lufiabb
    lufiabb 2024/06/13
  • 思春期の「ネット不適切使用」は抑うつリスクを高める 東京都医学総合研究所

    思春期におけるインターネットの“不適切使用”は、メンタルヘルス不調のリスクを高める――公益財団法人・東京都医学総合研究所がこんな研究結果を発表した。 この研究で言う不適切使用とは、ネット利用によりイライラしたり、友人や家族との関係に支障が出たり、使い始めるとやめられなかったりする状態。「メンタルヘルス不調を経験する前に使用を控えるよう親や学校などが適切なサポートを提供する、などの対策が重要」としている。 2002年から2004年に生まれた未成年3171人を、10歳・12歳・16歳の3点で評価したデータを使用。10歳・12歳・16歳時点でのネットの不適切使用と、16歳時点での精神病症状・抑うつとの関連を調べた。 解析時には年齢、性別、BMI、知能指数、親の年収、近隣環境などの影響を取り除くよう統計学的に調整、ベースライン時点でメンタルヘルス不調があった人を除外することで、因果の逆転(メンタル

    思春期の「ネット不適切使用」は抑うつリスクを高める 東京都医学総合研究所
  • 【Go】Mapの内部構造とO(1)のメカニズム

    はじめに こんにちは、株式会社スマートショッピング エンジニアのhi6okuniです。 フロントエンドエンジニアとして主にReactを用いた開発に従事してきましたが、この半年間は幸運にも自社のバックエンドをGoで開発する機会に恵まれました。Goらしいコードを書く技術も日々学習中ですが、最近ではデータ構造そのものにも興味が湧いてきました。そこで今回、GoMapの内部構造がどのように作られているのかを深堀りしてみることにしました。主な焦点はruntime/map.gomapassign関数の解析になります。 ざっくり理解 始めにruntime/map.goファイルのMapのコメントを読んでみましょう。データ構造/仕組みが記載されています。 A map is just a hash table. The data is arranged into an array of buckets. E

    【Go】Mapの内部構造とO(1)のメカニズム
    lufiabb
    lufiabb 2024/06/09
  • Go Conference 2024 に登壇しました!

    2024/06/08に開催された Go Conference 2024 に登壇してきました! 初めて外部登壇した感想や採択から発表に至るまでの準備、セッションで話しきれなかったことについて書きたいと思います! はじめにGo Conference 2024 に登壇してきました! gocon.jp - 詳解 “Fixing For Loops in Go 1.22” / 自作lintergolangci-lintへコントリビュートした話speakerdeck.com - スライド全文今回のブログでは、CfPの提出~調査~登壇までの流れを書いて、セッションでは話せなかったポイントなどについても記述したいと思います。 目次CfPを提出するまでCfPを提出してから登壇に至るまで登壇当日セッションの要約・推しポイント・話しきれなかったことCfPを提出するまで今回のセッションはいわゆる「登壇駆動」でし

    lufiabb
    lufiabb 2024/06/09
  • Go1.21から導入された Go Toolchainの仕組みをまるっと解説

    2023/8/9にリリースされたGo1.21 新たに導入されたツールチェーン(Go Toolchains) 次の内容を知ってもらい、Toolchainを使いこなせるようになること ・導入が必要となった背景 ・導入で期待されること ・具体的にはどう使うのか ・どんな挙動なのか

    Go1.21から導入された Go Toolchainの仕組みをまるっと解説
    lufiabb
    lufiabb 2024/06/09
  • 詳解 "Fixing For Loops in Go 1.22" 自作linterをgolangci-lintへコントリビュートした話

    Go1.22から(プレビューはGo1.21から)ループ変数のメモリ共有問題が解消されたことは皆様よくご存知かと思います。 cf. Fixing For Loops in Go 1.22 それではもう1歩踏み込んで、ループ変数がイテレーション毎に異なるインスタンスになるのはどのような時でしょうか?以下2つの出力が異なる理由をどう説明できるでしょうか? for i := range 3 { fmt.Print(&i) // [0x14000112018, 0x14000112030, 0x14000112038] // 異なるアドレス } for i := range 3 { print(&i) // [0x1400010af18, 0x1400010af18, 0x1400010af18] // 同じアドレス } 新しいループとそれを取り巻くツールの実装は、既存コードでバグを生み出さない・パ

    詳解 "Fixing For Loops in Go 1.22" 自作linterをgolangci-lintへコントリビュートした話
    lufiabb
    lufiabb 2024/06/08