タグ

ブックマーク / tilfin.hatenablog.com (11)

  • 構造化ログのススメとRuby向けロガーOugaiを作った理由 - tilfin's note 跡地

    構造化ログ 構造化ログ とは、機械的に処理しやすいログのことであり、その機構(ロギング)である。 英語圏では、 Structured Logging と表記される。たとえば Google Cloud の Stackdriver のドキュメントには下記の説明ページがあります。(残念ながら執筆時点で、これの日語ページがまだできてないので、Google がどう訳すか興味深い) Structured Logging  |  Stackdriver Logging  |  Google Cloud 普通のログと構造化ログの比較 普通のログは、基的に タイムスタンプ 、レベル 、そして メッセージ の文字列だけである。ログとして残す事象(イベント)のコンテキストになる情報はメッセージに適当に埋め込む。コンソール等で人が読みやすいものである。 構造化ログは、メッセージに埋め込んでいたコンテキストにな

    構造化ログのススメとRuby向けロガーOugaiを作った理由 - tilfin's note 跡地
    tilfin
    tilfin 2018/05/13
    2018年になっても構造化ログがスタンダードとは言えない状況なので書いてみた
  • Transgate という Node.js 製エージェントベースのタスクフローフレームワーク - tilfin's note 跡地

    Transgate というNode.js製のエージェントベースのタスクフローフレームワークを作った。 どうして作ったのか? 自宅の家電を操作するためのプログラムを書いていたら、色々なフローがごちゃごちゃになったから。 Dysonのファンから定期的に温度湿度を取得してデータベースに保存したり、Google Home/Assistant + IFTTT から来るメッセージを処理してIRKit を操作する。そのうち温度に従って自動的に IRKit 経由でエアコンを操作したくもなった、さてどう書こうかと? どんなもの? 突然だけど空港などの荷物の仕分けをイメージしてください。エージェントは、ゲートから出てくるアイテムを受け取り、処理して別のゲートに送る。ゲートの向こう側がどうなっているかは、エージェントは何も知らない。エージェントは空のアイテムを来たら作業を終える。アーキテクチャのイメージはこんな

    Transgate という Node.js 製エージェントベースのタスクフローフレームワーク - tilfin's note 跡地
    tilfin
    tilfin 2017/11/23
    書いた
  • AWS IAM Switch Roleのリストを増やすChrome Extensionを作った - tilfin's note 跡地

    AWS Management Console において、AWSアカウントから他のAWSアカウントにスイッチロールできますが、これの最近の履歴が5つまでしか表示されない。あくまでも最近使ったものという位置付けなんだと思います。 某仕事上、1つのアカウントから多数の他のアカウントに Switch Role にせざる得ないので専用の URL をブックマークしていました。しかし、これでも毎回補完された入力フォームが挟まれて怠い(このページ遷移が結構かかります)。 このような理由で、Switch Role の履歴(リスト)を拡張する Chrome Extension を作りました。Chrome Web Store で公開しているので簡単にインストールできます。 chrome.google.com 特徴 Switch Role の履歴に設定に定義されたプロファイル(アカウント)の分が項目増えるリスト拡

    AWS IAM Switch Roleのリストを増やすChrome Extensionを作った - tilfin's note 跡地
  • GitLab CI から Google Cloud Pub/Sub 経由で自動デプロイ - tilfin's note 跡地

    自分用のちょっとしたWebサービスをさくら VPS環境に構築しています。こんなオレオレサービスでも Git リポジトリの master ブランチに push したら自動的にデプロイできるようにしたい。毎回 SSH して手動で更新はしたくない。 一般的な方法だと、どうしてもデプロイ先のサーバーにリクエストの受け先を用意する必要があります。概ね HTTP 経由で受けないといけないので、そこから派生するアクションの内容から鑑みても、セキュリティ的にグローバル空間に置かれたサーバでやりたくないものです。 そこで自前で Pub/Sub サービスを経由してやってみることにしました。Pub/Sub であれば懸念事項のアクセスを受け入れることなく、Subscriber も Pull 型で設置できます。 Google Cloud Console まず Google Cloud Console - 認証情報

    GitLab CI から Google Cloud Pub/Sub 経由で自動デプロイ - tilfin's note 跡地
    tilfin
    tilfin 2016/07/21
    構築できたのでメモがてら書いた
  • MongoDB のレプリカセット運用時の 2.2 から 2.4 へのアップグレード - tilfin's note 跡地

    Webサービス自体はを止めずにバックエンドの MongoDB のバージョンアップをしたのでメモ。 具体的なバージョンは、2.2.2 から 2.4.1 へのアップグレード。 サービスの構成 フロントエンドNginx + Node の Web サーバ 1 台 バックエンドに MongoDB のデータベースサーバ 2 台をレプリケーション 但し、片方のサーバだけしか Primary にはならないように優先度をセットしている。 MongoDB のインストールは /usr/local 以下にバージョン毎にディレクトリ展開して、使用バージョンへシンボリックリンクを張っている。 以上のカジュアルな運用状況。 アップグレードの実行 前準備 クライアントのライブラリアップデート mongoose や 各種言語の ライブラリを 2.4 対応にアップデートする。 MongoDB 2.4 のバイナリを各サーバ

    MongoDB のレプリカセット運用時の 2.2 から 2.4 へのアップグレード - tilfin's note 跡地
    tilfin
    tilfin 2013/04/14
    諸々の手順をメモ
  • シンプルなデーモンプログラムの制御スクリプト - tilfin's note 跡地

    Linuxなどで動かすデーモンプログラムを起動(start)・停止(stop)・再起動(restart)・状態確認(status)するための制御スクリプトを書いたのでメモしておく。 実装のポイント 一般的なプロセスIDファイルによるプロセス確認をしている。 停止時に3秒おきにシグナル0を送り、プロセスが終了するまで見届ける。 statusでプロセスIDファイルだけ残ってプロセスが無いときはクラッシュの可能性が示す。 スクリプト #!/bin/bash prgfile=<Program Script filepath> pidfile=<PID filepath> start() { if [ -f $pidfile ]; then pid=`cat $pidfile` kill -0 $pid >& /dev/null if [ $? -eq 0 ]; then echo "Daemon

    シンプルなデーモンプログラムの制御スクリプト - tilfin's note 跡地
    tilfin
    tilfin 2013/02/21
    ブログ書いた。
  • Chrome Extension の createHTMLNotification メソッドでデータを渡してフレキシブルに内容を構成するには - tilfin's note 跡地

    Chrome拡張でデスクトップ通知の実装時に、HTMLを使うときデータを簡単に渡す方法について。 Desktop Notifications chrome.notifications - Google Chrome を見ると、通常のタイトル、イメージ、テキストの三つを渡して表示する通知と、HTMLで自由に組める通知がある。 // Create a simple text notification: var notification = webkitNotifications.createNotification( '48.png', // icon url - can be relative 'Hello!', // notification title 'Lorem ipsum...' // notification body text ); このように前者の通知は引数でデータを渡せるが

    Chrome Extension の createHTMLNotification メソッドでデータを渡してフレキシブルに内容を構成するには - tilfin's note 跡地
    tilfin
    tilfin 2013/02/21
    ブログ書いた。
  • HTTPサーバのログ解析からアタックを検出する簡易ツールを作ってみた - tilfin's note 跡地

    Webサイトを運用しているとアタックや如何わしいアクセスを調べたいときがあります。簡単にHTTPサーバのアクセスログから短い間隔で大量にアクセスしているホストを、諸々のコマンドで操作するのは面倒なので、簡単に検出できるツールがあると便利です。 探してみたところ簡単に扱えそうなものがなかったので、Rubyベースで作ってみました。 Detect HTTP Attack https://github.com/tilfin/detect-http-attack Ruby 1.9 系で動きます。依存するライブラリはないので、直ぐにコマンドラインで実行できます。標準入出力で処理しているのシェルのパイプラインに組み合わせることができます。 準備 $ git clone https://github.com/tilfin/detect-http-attack.git $ cd detect-http-at

    HTTPサーバのログ解析からアタックを検出する簡易ツールを作ってみた - tilfin's note 跡地
    tilfin
    tilfin 2013/02/12
    ブログ書いた。
  • US SIMフリー版 iPhone 4S を輸入してドコモの Xi 契約でテザリングするまで - tilfin's note 跡地

    まず前提として私は iPhone これまで持ったことがありません(iPhone アプリを出していますが http://itunes.apple.com/jp/artist/tilfin-ltd/id371277701)でした。これまで iPod touch + Pocket WiFiで乗り切っていましたが、ドコモならテザリングできると知り Xi プランで契約すると結構お手頃ということでチャレンジしました。 なお予め断っておくと、US版の SIMフリーを日で修理できるかは不明です、多分難しいでしょう。ドコモ側も自分たちの出している機種以外の利用は保証外と言われました。ということで、一般の方(非開発者)が特にメインの携帯電話として使うのはかなりリスキーだと思います。 先に、あまりネットでみかけなかった又は不明な事柄で、判明したことを列挙しておきます。 「SIMフリー版でもiPhone 4Sは

    US SIMフリー版 iPhone 4S を輸入してドコモの Xi 契約でテザリングするまで - tilfin's note 跡地
    tilfin
    tilfin 2012/01/05
    ドコモiPhoneを手に入れた。
  • tilfin's note

    こちらに引っ越しました。 blog.tilfin.com

    tilfin's note
    tilfin
    tilfin 2010/03/21
    タイトル変更のためセルクマ
  • jQuery の ID で対象ノードを取得する処理を高速にしたい - tilfin's note 跡地

    てっく煮ブログさんのエントリー jQuery を高速に使う CSS セレクタの書き方 - てっく煮ブログ をみてて、jQuery の $("#xxxx") を速くしたいと考えていたことを思いだした。それについて書く。 jQuery の $("#xxxx") について セレクタをどう処理しているのか jquery-1.2.6.js で確認してみよう。 まず下記の init が $() に相当する。Handle HTML stringsのところで引数が string だと quickExpr.exec が走る。これは正規表現でのセレクタ解析処理である。 その後、HANDLE: $("#id")のところでマッチして取得した ID を使って、var elem = document.getElementById 使い、それを return jQuery(elem) として再び init が呼び出され

    jQuery の ID で対象ノードを取得する処理を高速にしたい - tilfin's note 跡地
    tilfin
    tilfin 2008/12/11
    asakura-t さんへ ブクマでのコメントなのでセルフですが書きます。 その IE の document はamachang さんの http://anourl.com/04m の話ですね。
  • 1