タグ

ブックマーク / ymmt.hatenablog.com (4)

  • メンテのいらないソフトウェア - 誰かの役に立てばいいブログ

    ソフトウェアエンジニアとして働き始めて 20 年以上になります。 元々ソフトウェアでいろいろ作りたくて就いた職業なので、結構な数のプロダクトを開発してきました。 私がメインで開発したもので OSS として出ているものでは、 yrmcds: memcached クローンで、レプリケーション機能などを持つ usocksd: SOCKS4/5 サーバー & ライブラリ transocks: アプリのネットワーク通信を透過的に SOCKS サーバーにプロキシする透過プロキシ coil v2: Kubernetes の CNI ネットワークドライバ moco: MySQL を自動運用する Kubernetes オペレーター accurate: Kubernetes 上で namespace ベースのソフトマルチテナンシーを実現するためのソフトウェア などがあります。これらのソフトウェアの多くは、現役

    メンテのいらないソフトウェア - 誰かの役に立てばいいブログ
    mattn
    mattn 2024/01/05
  • golang.org/x/crypto/ssh で固まらないようにする - 誰かの役に立てばいいブログ

    最近 CKE というベアメタル向けの Kubernetes 管理ツールを作っています。 ブートストラップツールではなく自律的・継続的にクラスタの構成を修正していくツールで、以下が特徴です。 ネットワークプラグイン非依存 HA 対応 CKE 自体の高可用性 今日は CKE の紹介が目的ではないのでこのあたりにします。 題は、CKE が内部で使っている golang.org/x/crypto/ssh というライブラリが無期限に ブロックしてしまう問題があったので、どう対応したかです。 問題 以下のようなスタックトレースで動作が停止するケースが試験中に何度か発生しました。 goroutine 2153 [chan receive, 4 minutes]: golang.org/x/crypto/ssh.(*mux).openChannel(0xc000105730, 0x13a0ec2, 0x

    golang.org/x/crypto/ssh で固まらないようにする - 誰かの役に立てばいいブログ
    mattn
    mattn 2018/10/25
  • 「みんなの Go 言語」は忙しいプログラマこそ読むべき本 - 誰かの役に立てばいいブログ

    @songmu 氏からご恵贈いただいた「みんなの Go 言語」(みんGo)、早速拝読しました。 書評としてはタイトル通り、なのですがそれではあんまりなのでもう少し。 書でも述べられている通り、Go 言語は早ければ一日で大体学べてしまう学習効率の良さが魅力です。最大の魅力と言っていいかもしれません。コンパクトな言語仕様に実務で必要な周辺ツールが揃っているため、初学者から歴戦のプログラマまで活用範囲が非常に広いのです。 さて、その Go 言語をさらに活用するための書。お手に取ってみればわかりますが 150 ページ弱で薄いです。読むのに半日あれば十分でした。の内容も余計なことは書かれておらず、「こんな便利な機能があるよ」くらいなあっさり風味で淡々と役に立つ情報が並べられています。 ああ、わかっているなと。 Go 言語の最大の魅力と思う学習効率の高さを、文字通り形にした、それが「みんなの

    「みんなの Go 言語」は忙しいプログラマこそ読むべき本 - 誰かの役に立てばいいブログ
    mattn
    mattn 2016/09/08
    ありがとうございます!
  • アセンブリ読んだら負けかなと思ってる - 誰かの役に立てばいいブログ

    子供のころからできるだけ手抜きして成果を挙げることだけは長けている山です。 今回は、C/C++ で作ったプログラムが運用中にクラッシュするときのデバッグ方法のお話しです。 開発中のデバッグは gdb などでソース追いながらデバッグできますが、運用中ですと strip していたり最適化していたりしてデバッグが難しくなります。 そもそも、いきなりクラッシュすると情報が残らずに困ってしまいます。そんなときどうするか。 Step1. スタックトレースを出力する こんな関数を用意しましょう。Linux 以外の人はそれなりに実装してください。 #include <execinfo.h> #include <unistd.h> void dump_stack() { void* bt[100]; int n = backtrace(bt, 100); backtrace_symbols_fd(bt,

    アセンブリ読んだら負けかなと思ってる - 誰かの役に立てばいいブログ
    mattn
    mattn 2013/07/05
  • 1