タグ

ブックマーク / tagomoris.hatenablog.com (12)

  • TCP serverをSSL/TLS化するのに nginx の stream_ssl_module/stream_proxy_module が便利 - たごもりすメモ

    最近 Fluentd の通信プロトコルまわりをアップデートするためにあれこれいじっている*1んだけど、これはおおむね fluent-plugin-secure-forward がサポートしていた内容を Fluentd 組込みの forward plugin でもサポートしますよ、というものになる。 んで問題なのが secure-forward は SSL/TLS での接続のみしかサポートしてなかったんだけど forward では生の TCP で通信する*2ので、当に secure-forward と forward それぞれの実装間で互換性が保たれているのか、直接的には確認する手段がない、ということになってしまう。 TCP server の SSL/TLS 化 一方世の中には SSL/TLS ターミネータという機能があって、たとえばロードバランサなんかがこの機能を持っている。何をやるかと

    TCP serverをSSL/TLS化するのに nginx の stream_ssl_module/stream_proxy_module が便利 - たごもりすメモ
    n2s
    n2s 2016/08/24
    やはりstone思い出す人も…へぇ今もメンテされてるんですか
  • Fluentdとはどのようなソフトウェアなのか - たごもりすメモ

    Fluentd というソフトウェアがある。日国内ではそこそこ話題になってきたが、何ができるのか、何に使うと嬉しいのか、何に使えるのか、という点について詳細をよく知らないという人もおそらくまだ多いことでしょう。 なので、簡単にまとめる。 http://fluentd.org/ なお以下の個別項目ごとに書いていくが、その手前にまとめを置いておくので忙しい人はそれだけ読むとよい。インストールや設定については導入部分については日語の記事はもう多くあるので、触れない。 概要 できること ログの収集 センサデータ等の収集 汎用データ処理プロセッサとして 頻出ユースケース ログの収集 データの集約 簡単なリアルタイム集計 ソフトウェアとしての特徴 コア プラグイン 安定性 性能 開発体制 コミュニティ ぶっちゃけどうなの? まとめ 現時点で、複数の場所に分散したデータや常に増え続けるデータの安全な転

    Fluentdとはどのようなソフトウェアなのか - たごもりすメモ
    n2s
    n2s 2014/08/01
  • DISられないUIを作るために最低限守るべき5つの鉄則 - たごもりすメモ

    ぼくらが迂闊にUIを作ると、そこにはユーザの正直な目線があり、非常に様々な、そして真っ当な反応がある。 曰く「わからん」「まさかそこをクリックするとは」「不思議な動作」「独自宇宙」「モリスUI」。 反応がもらえるのは非常に良いことだが、何度も何度も繰り返しているとつらくなってくるので、できれば避けたい。分かっている(いた)ことは最初から対応しておきたいものだ。*1 ということで、ここではブラウザで操作する管理画面等のWebUIを作るとき、真っ先に心得ておくべき5つの鉄則を紹介したい。これを守っていてもDISられなくなるというわけではないが、これを守らないと間違いなくDISられるので注意しよう。 なおこの記事ではオリジナリティというものについては考慮しない。オリジナリティとか犬にわせろ。 クリックできる場所はcursor:pointerを指定しろ これを忘れるとこの世のものとは思えないくら

    DISられないUIを作るために最低限守るべき5つの鉄則 - たごもりすメモ
    n2s
    n2s 2014/07/18
  • カスタマイズ済みのApacheログ書式もパースする Apache::Log::Parser の話 - たごもりすメモ

    さて、Perlといえばテキスト処理、テキスト処理といえばPerlですね。そしてこのビッグでデータな現代においてテキスト処理といえばログの処理に決まっています。 ログの処理といってもいろいろですが、もちろん強く逞しく生きる現代っ子の我々は以下のようなログを扱います。 Apacheのログ Apacheのログなんだけどいくつかの書式が混ざってたりする combined に当然いろいろデータが足してある LTSVってなんですか? そのような素敵な問題を解決するためのモジュールがCPANにあります。Apache::Log::Parserです。 あっ、そのページはダメ、こっち、こっちな。 Apache::Log::Parser Apache::Log::Parserは内部に2種類の解析器を備えており、パーサを初期化するときにどちらかを選びます。それぞれ以下のように動作します。 fast mode Ap

    カスタマイズ済みのApacheログ書式もパースする Apache::Log::Parser の話 - たごもりすメモ
  • るりまにpullreqを送る方法、1から10のはなし - たごもりすメモ

    Rubyを書いている人ならきっと一度以上はお世話になっているRubyリファレンスマニュアル、通称「るりま」。 これが前まではsvnでリポジトリ管理+修正はredmineでチケットを切って依頼、みたいなすげーダルいフローでなんか見付けても依頼が面倒で面倒で面倒で諦めていたんだが、これがなんとgithubに! やった!!!!!! https://github.com/rurema https://github.com/rurema/doctree https://github.com/rurema/bitclust ということで一度pullreqを送ったんだけど、すこし注意が必要だったのでここにメモる。みんな真似してどんどんpullreq送ろう! 手順 以下の通り。 doctree リポジトリをforkしてclone pullreq送るために自分のアカウントでforkして、それをcloneして

    るりまにpullreqを送る方法、1から10のはなし - たごもりすメモ
  • 本番環境でのperl/ruby/nodeのセットアップ - たごもりすメモ

    番環境にperlとかrubyとかnodeを入れるんだけど、もちろん system perl じゃやってられないので指定したバージョンのものを一般ユーザの管理下に突っ込みたい。 で、そういうのをこれまで perlbrew とか rvm とか rbenv とか nvm とか nodebrew とかでやってたんだけど、さすがに色々疑問が湧いてきた。バッチで単発実行するために eval "$(rbenv init -)" とかさすがにおかしくね? みたいな。 ということで tokuhirom method 的にインストール用の簡単コマンドを使って実行、あとはパスを通せばいいじゃん、ということにしようかと思う。 参考: サーバーのセットアップは perlbrew とかじゃなくてよくね? という時のライフハック - blog.64p.org これ、今朝までは Perl::Build をどうにかしてC

    本番環境でのperl/ruby/nodeのセットアップ - たごもりすメモ
  • UserAgent判定器 Project Woothee: v0.3.0 Javascript実装追加 - たごもりすメモ

    参考: UserAgent判定器 Project Woothee v0.2.0: RubyおよびPython実装を追加 - tagomorisのメモ置き場 (参考2: 最近の多言語対応User-Agentパーサライブラリ woothee について - tagomorisのメモ置き場) 汎用のUser Agent判定器として細々とメンテしている woothee について、当初からやろうやろうとは思っていたJavascript実装を追加して v.0.3.0 とした。これで以下の実装で*1完全に同じ判定を行う実装が揃ったことになる。 Java (+Hive UDF) Perl Ruby Python Javascript (browser/Node.js) あとついでに Wii U のUserAgent文字列に対応。これは各言語の実装で v0.3.0 をリリースするための言い訳的な感じ。 Per

    UserAgent判定器 Project Woothee: v0.3.0 Javascript実装追加 - たごもりすメモ
    n2s
    n2s 2012/11/26
  • node.jsでHTMLスクレイピングをjQuery記法でやるライブラリみっつの比較 - たごもりすメモ

    某イベントのためのコードを書くのにHTMLスクレイピングをやりたいなー、nodeで書くかなー、去年は jsdom で書いたけど今はどうなんだろね、とか調べてたら、どうもこういうあたりのがあるらしい。 jsdom たぶん一番有名で高機能、だけど重い。 node-jquery jQuery読むだけならコレ!みたいな感じ、だけどあんまりアップデートされてないかも。使いかたはいちばんシンプル。 依存関係がちゃんと書かれてなくて、追加で手で xmlhttprequest をインストールしておかないと動かなかった。 cheerio お前ら重い! 俺がjQuery記法を再実装してやる! という男らしいライブラリ。 zombie ブラウザの挙動をシミュレートする的なライブラリ、Mechanizeみたいなやつかな。いまの用途では前段でHTTPレイヤをいじる必要があるので今回は用途に合わない。 sqrape

    node.jsでHTMLスクレイピングをjQuery記法でやるライブラリみっつの比較 - たごもりすメモ
    n2s
    n2s 2012/10/16
  • Perlでコマンドラインオプションの解析に Getopt::Long を使う時、絶対に忘れてはいけない引数 - たごもりすメモ

    Perlでコマンドラインオプションをparseしようと思うと組込みモジュールとしては Getopt::Std と Getopt::Long がある。が、long style option *1 つまり --option-name のようなオプションを解釈してくれるのは Getopt::Long だけだ。なので普通はこちらを使おう。 ただし 絶対にデフォルト、つまり以下のようにして使ってはいけない。 use Getopt::Long; my (@primary, @secondary, $silent); GetOptions( "server-primary|p=s" => \@primary, "server-secondary|s=s" => \@secondary, "silent|S" => \$silent ); これダメ! 絶対ダメ! 死ぬ! 最初に結論を書く 必ず以下のように

    Perlでコマンドラインオプションの解析に Getopt::Long を使う時、絶対に忘れてはいけない引数 - たごもりすメモ
    n2s
    n2s 2012/09/19
    正直、コマンドライン処理まわりはどの言語でもろくに学習していない…あかん。
  • PerlでSTDIN/STDOUTを任意のファイルハンドルに置き換える - たごもりすメモ

    いま書いてるコードで、forkしてexecするんだけど、execする前にSTDIN/STDOUTを任意のファイルハンドルに置き換えたいなー、もっというとexecするプログラムのSTDINにソケットのREADから流れてくるデータを流し込んで、STDOUTの出力をソケットのWRITEに流し込んでやりたいなー、というようなことを考えていた。 で、これが例えば今のプロセスのSTDOUTの出力をファイルに置き換えるには、以下のようにすればいい。 open(STDOUT, '>', '/path/to/file'); シェルスクリプトでも簡単。*1 exec >> /path/to/file さて、STDIN/STDOUTとconnect済みのソケットを結合したい。connect済みのソケットはファイルディスクリプタは持っているがファイルパスを持っていない、ので、普通にopenし直すだけではうまくいか

  • いっしょに仕事をしたいプログラマ 5つの特徴 - たごもりすメモ

    ちょっとこんなことを考えるきっかけがあったので、ざっと書き出してみた。Webに公開されている情報からあるプログラマについて見てみたとき、どういう人ならいっしょに働いてもいいかについて。 ここに書く内容はソースコードの品質以前の問題についてのみにしてある。だからこの特徴を満たしていればどうということに直接なるわけではない。ただ、欠けているところがあれば、少なくとも自分はその人といっしょに仕事をしたいとは思わないだろう。 なお自分は現勤務先の採用活動にはかかわっておらず、このエントリの内容は勤務先の採用基準とは全く無関係です。 学生さんなどの場合にはまた話が違うと思います。 あと割と自分のことは棚に上げてます。「お前これできてねえじゃん」という部分については都度ご指摘をいただけますと大変ありがたく思います……。 1. その人が書いたソースコードが公開されている 日語で何を言われてもぶっちゃけ

    いっしょに仕事をしたいプログラマ 5つの特徴 - たごもりすメモ
    n2s
    n2s 2011/06/08
    確かに、こういうのができていれば十分なアピールになるよね。自戒もこめてぶくま。/ VCSはとにかくみんなも使おう。そのうち絶対に捗る日が来る。
  • xargs を使ってカジュアルに並列処理 - たごもりすメモ

    シェルからでも重い処理というのはちょこちょこあって、例えば超デカいログファイルを移動して圧縮したりというお仕事は世界中のあらゆる場所で毎日行われていたりする。コマンドラインからでも大量の圧縮済みログファイルをいっぺんに展開したい、とか。 あるディレクトリ以下に存在するたくさんのファイルを(圧縮済みのものを除いて)全部 bzip2 圧縮したい!と思ったら、とりあえずさくっと次のようにコマンドラインで叩けばいい。 $ find . -not -name '*.bz2' | xargs bzip2 これで、まあそんなに問題なく効率的にbzip2圧縮ができる。だがしかし。 最近は複数コアのCPUが普通に転がってるし、あまつさえHyperThreadingが有効になってたりしてOSから見える論理CPU数がハンパない。普通に8とかある。その一方で複数コアを使用してくれるコマンドというのはあんまりなくて

    xargs を使ってカジュアルに並列処理 - たごもりすメモ
    n2s
    n2s 2011/05/13
    マルチコアへの対応について。-Pと-Lの組み合わせ。
  • 1