仙台の山奥で自転車に乗ったり転んだり

愛車の GIOS でサイクリングしたりポタリングしたり、それをブログに記録してみたり。ロードバイクや自転車や坂のことを書いてみたり。ときたまプログラムのことを忘れないようにメモってみたり。

PHPの依存関係を調整してNagiosをインストール

NagiosパッケージもRPMforgeリポジトリをつかってyumで管理する。NagiosのパッケージもPHP5.1に依存しているので、依存関係を調整してインストールする。監視先のサーバにNRPEをインストールしておく。 #!/bin/sh set -e set -u LOCALHOST="127.0.0.1" NAGIO…

PHPの依存関係を調整してCactiをインストール

RPMforgeリポジトリをつかえばCactiのパッケージをyumから管理できるけど、NagiosのパッケージがPHP5.1依存していて、RPMforgeリポジトリからインストール済みのPHP5.3パッケージと干渉してしまう。 Cactiをインストールするときの依存関係チェック以外では…

[CentOS][Cacti] NRPEでモニタリングするときのテンプレートって?? どうするのがモダンなのかが分からなかった……、いろいろ悩んだけど公式サイトにあるオフィシャルのSNMPのテンプレートをベースに用意してみた。なんだか手探りだけど方向性を間違っている…

Mac間の設定の共有

家のMacと会社のMacと持ち運ぶAirと、それぞれの環境をいいかげんに管理しているので、たまにちょっとした設定の違いでイライラすることがある。 設定ファイルはなるべくネットワーク上で共有しているし、その設定を個別に流用とかしていたので、環境ごとの…

リストアップ済みのパッケージをyumでインストールするスクリプト

複数台のCentOSを準備するために、同じパッケージのインストール作業を自動化するためのシェルスクリプトを用意しました。 自動化という意味ではもっと素敵な方法あると思いますが、マニュアルライクな対応ができてステキ……というか、手抜きな対応なのです (…

プレーンなJavaScriptで同意して遷移を実装

ほそぼそと保守している古いシステムで、一部の遷移に同意のアクションを追加したい、という要望をフロントサイドのみで対応してみた。本意はシステムのフローで規約を確認して同意する……、というプロセスの明確化のようなので、あえてサーバサイドを回収す…

ページャー(less)をvimエディタに変更

ページャーはマルチバイトに対応していて軽量だったらいい、程度の認識だったのでlvを使用していました。でも、八割方プログラムソースや設定ファイルを見るのに使用するのだから、シンタックスハイライトとか使い慣れているvimと統一されているほうがいいね…

bash-completionをhomebrewでインストール

zshに憧れながらも、なかなかbashから離れられないので、bash-completionを入れてみた。 これ……便利!!もう、これないのbashなんて考えられない。 $ brew install bash-completion $ ln -s "/opt/local/Library/Contributions/brew_bash_completion.sh" "/o…

JavaScriptとNode.jsの勉強、乱数とか

擬似乱数的な乱数ビット列から、ランダムな文字列を生成 var LISTEN = 8124; var URANDOM = '/dev/urandom'; var BUFFER_SIZE = (264 / 8); // 33 Bytes = 264 Bits var BASE64 = 'base64'; var http = require('http'); var fs = require('fs'); function g…

乱数とか

擬似乱数的な乱数ビット列から、ランダムな文字列を生成 var LISTEN = 8124; var URANDOM = '/dev/urandom'; var BUFFER_SIZE = (264 / 8); // 33 Bytes = 264 Bits var BASE64 = 'base64'; var http = require('http'); var fs = require('fs'); function g…

[JavaScript] パスワードジェネレータ汎用性とか拡張性を無視して、シンプルなパスワードの生成器 なんとなく、読みにくい文字だけは排除してみる var PasswordGenerator = (function() { var beans = 'abcdefghijklmnopqrstuvwxyz' + 'ABCDEFGHIJKLMNOPQRST…

nvmからnode.jsをインストール

すでにパッケージからインストール済みだったりするけど、バージョン管理とか実験したりするのに便利そうなので、nvmをインストールしてみました。こんな感じで、安定版の最新v0.6.15と開発版の最新v0.7.7をインストールできました。 $ git clone https://gi…

nvmからnode.jsをインストール

すでにパッケージからインストール済みだったりするけど、バージョン管理とか実験したりするのに便利そうなので、nvmをインストールしてみました。こんな感じで、安定版の最新v0.6.15と開発版の最新v0.7.7をインストールできました。 $ git clone https://gi…

Javascriptを勉強中、node.js

var http = require('http'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello World\n'); }).listen(8124); console.log('Server running at http://127.0.0.1:8124/'); …

JavaScriptを勉強中、位置情報

単発だったら (function() { var main; main = function() { var success; success = function(position) { console.log(position); if (position) { var geo = position.coords; console.log("latitude: " + geo.latitude); console.log("longitude: " + ge…

Windows2008サーバのADで、アカウントのロックアウトを解除するUIが変わって分かりにくい。 2003まではロックアウトされている状態と、ロックアウトを解除した結果が一目瞭然だったのに、2008だと最初よく分からなかった……。このUIになる、なにか理由がある…

簡易な誤り訂正符号

PHP

キャンペーンコードのようなもののために簡単なチェックの仕組みが作りたくて、思いつきで簡単な誤り訂正符号もどきを作ってみた。 で、あんまり考えてないけど、これって成り立っているのかすごく気になる。

生成されるSQLを確認

検索条件が複雑になったときに、デバッグのために生成されるSQLを確認したかっった。ので、処理を覗いて追ってみたら意外と単純ですぐに確認できた。 モデルの中だったら、こんな↓感じでWHERE句のSQLを生成できる。 $this->getDataSource()->conditions($con…

qmailのqueue操作(確認→削除)

配送キューの(簡易)統計情報を確認 キューに溜まったままのメッセージがあるかを確認する。 # /var/qmail/bin/qmail-qstat messages in queue: 1 messages in queue but not yet preprocessed: 0溜まったメッセージキューのヘッダを部分表示 キューを操作…

キューの構造が壊れたときの対処

qmailで障害が発生して、ログを調べていたら見かけないエラーを発見しました。 warning: trouble opening remote/n/n; will try again laterみた感じqueueが壊れているような情報だけど、整合性がとれなくなると発生するらしい。確認したところ前日くらいに…

Google日本語入力で、入力言語の切り替えを無効にする

たまにGoogle日本語入力の入力言語が、意図せず「EN 英語(日本語)」に切り替わっていて、イラっとすることがあった。何かのショートカットを呼び出してしまったのだろうとは思いつつ、ごくまれな挙動だったので気にしていませんでした。 たまたま連続して…

VPSのサーバにログインしたら、まずやること

VPSでサーバにログインしたらとりあえずすること、毎回だいたいこんな流れかな、と思うので。まずはrootユーザのパスワードを変更 # passwd アップデート可能な全パッケージをアップデート # yum check-update # yum -y update 操作用のユーザを用意 # usera…

カリー化の概念が理解できない

カリー化の説明を読んでもいまいちピンとこない。 カリー化ってこういうこと? function curryrice(rice) { return function(roux) { return function(ingredients) { var message = "「" + ingredients + "カレー」は、" + rice + "の上に" + roux + "カレ…

docomoショップで、法人契約の回線を変更など続きする

会社の検証機でネットワーク暗証番号が不明な回線があったので、サポートセンターに電話して変更手続きを試みました。が、その回線は複雑怪奇な契約と譲渡、情報変更などを経たため登録している契約者の電話番号が不明という自体に……。 契約電話番号を口頭で…

WindowsサーバのSNTP

業務サーバ(Windows Server 2003)のひとつがダウンした、という障害報告がきた。リモートで接続できないので、サーバルームにマシンを確認しにいった。 コンソールにはサーバが起動していて、マシン上のローカルユーザではログオンもできる。でも、ネット…

モデルのテストを(後から、ものぐさに)まとめて作成する

テストファーストという言葉を知らないぼくは、「プロジェクトの締切り間際になって」まとめてモデルを(ちゃんと)テストしたくなる。ユニットテストのコードを生成するだけであれば、↓のようにすぐできる。 $ cake/console/cake bake test Model -app app-…

Modelでなるべくシンプルなインクリメントを実行したい

CakePHP(1.3系)でなるべくシンプルな実装でインクリメントのみの単純な機能を実装したい……、としたら↓みたいな実装はベター? public function incrementPv($id) { $table = $this->getDataSource()->fullTableName($this); $query = "UPDATE {$table} SET…

回線速度のパフォーマンスが悪い時の改善

iDCのネットワークが悪化して、とにかく遅いという事例がありました。 ラック内部のネットワークは、隅々まで調査して問題を発見できない 原因を外に求めて、ルータから上位を問題視 そこから先が難航して、iDCやキャリアともいろいろ打ち合わせなどして、時…

ユーザ「x」が参加するグループを追加

# gpasswd -a cracker wheel

ユーザ「x」が参加するグループを追加

# gpasswd -a cracker wheel