Windows Home Server V1 の HDD のエラーから交換で復旧するまでのまとめ

NAS として Acer Aspire easyStore H340 を使いこんでいるのだが、その中の HDD 一つでエラーが出たので、普及するまでをまとめた。ほぼ全てのデータを複製化して 1TB, 1TB, 2TB, 2TB の4本のHDDでドライブエクステンダーを構成しています。 このうち一本の…

iOS 7 設定画面の色定義まとめ

iOS

グループテーブルビューなどで使うことがあるので、iOS 7 設定画面の各種パーツの色定義をまとめた。 セル 背景 #FFFFFF [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0] テキスト #000000 [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.…

Chrome 拡張のリッチ通知で外部サイトのイメージを表示するには

最新の Windows (ChromeOS も) 版 Chrome で webkitNotifications.createHTMLNotification メソッドが非対応になってしまった。代わりにリッチ通知という、いくつかのテンプレートに従って表現できるデスクトップ通知が追加された。 Google Chrome 28提供開…

Ubuntu 12.04 への HTTPS およびサブディレクトリでの GitLab セットアップメモ

設定した環境 フロントの Nginx は https である。 URL は<ドメイン>/gitlab で受ける. さくらの VPS Ruby 1.9, MySQL で Redmine 2.3 が既に動いている。 gitユーザを追加 $ sudo adduser --disabled-login --gecos 'GitLab' git GitLab shell のセットア…

Redmine を Nginx + Unicorn へ移行

Apache + Passenger で動かしていた Redmine を Nginx + Unicorn に移行したのでそのメモ。 設定した環境 フロントの Nginx は https である。 Redmine は /var/redmine にインストールされている。 URL はドメイン/redmine で受ける. VPS 環境でUbuntu でス…

Ubuntu 12.04 でメールサーバを立てずに sSMTP で CRON メールを送信するには

CRON などでメールを送信する際に、ざっくりと Postfix などを入れてしまっていた。 しかし、そもそも既にメールサーバが立っていれば、そこを経由して送信すれば MTA デーモンを動かす必要はない。MSPに何を使うか探したところ、sSMTP が一番良さそうなので…

MongoDB のレプリカセット運用時の 2.2 から 2.4 へのアップグレード

Webサービス自体はを止めずにバックエンドの MongoDB のバージョンアップをしたのでメモ。 具体的なバージョンは、2.2.2 から 2.4.1 へのアップグレード。 サービスの構成 フロントエンドに Nginx + Node の Web サーバ 1 台 バックエンドに MongoDB のデー…

24bit/96kHz のハイレゾ WAVE ファイルを 48kHz の AAC ファイルに変換する

e-onkyo などで提供されてるハイレゾ音源の WAVE ファイルを iTunes でAAC変換すると 44.1kHz になってしまう。 個人的に 96kHz なのだから 48kHz にしたく調べたところ、MAC OS X で afconvert コマンドを用いて変換することで可能なことがわかった。wav(WA…

Windows 8 でストアアプリが開かなくなったときの対処

いつの間にか、Windows 8 のタイルからアプリを開かなくなってしまった(クリックしてもタイルのエフェクトはあるものの何も反応なし)。 困り果てていたのだが、なんとか Windows 修復機能を試したところ復活した。 管理者権限でコマンドプロンプトを起動し…

シンプルなデーモンプログラムの制御スクリプト

Linuxなどで動かすデーモンプログラムを起動(start)・停止(stop)・再起動(restart)・状態確認(status)するための制御スクリプトを書いたのでメモしておく。 実装のポイント 一般的なプロセスIDファイルによるプロセス確認をしている。 停止時に3秒おきにシ…

Chrome Extension の createHTMLNotification メソッドでデータを渡してフレキシブルに内容を構成するには

Chrome拡張でデスクトップ通知の実装時に、HTMLを使うときデータを簡単に渡す方法について。 Desktop Notifications chrome.notifications - Google Chrome を見ると、通常のタイトル、イメージ、テキストの三つを渡して表示する通知と、HTMLで自由に組める…

HTTPサーバのログ解析からアタックを検出する簡易ツールを作ってみた

Webサイトを運用しているとアタックや如何わしいアクセスを調べたいときがあります。簡単にHTTPサーバのアクセスログから短い間隔で大量にアクセスしているホストを、諸々のコマンドで操作するのは面倒なので、簡単に検出できるツールがあると便利です。 探…

Mongoose でセカンダリにアクセス可能な接続を設定をするには

MongoDB でレプリケーションセットを構成する。MongoDBでは Secondary サーバへのアクセスを読み取りであってもデフォルトで拒否するようになっている。 このためには接続ごとに slaveOk フラグを立てる必要があるが、そのときの Mongoose の設定に手間取っ…

Windows 8 で Google Apps メールの新着通知をデスクトップに表示させるには

Google Apps(独自ドメイン向け)用のメール機能 (Gmail) を使っている。 せっかく Windows 8 にしたので OS 自体のデスクトップ通知機能を使ってみたい。 メールをセットアップすれば良いのだが、ちょっとポイントがあるのでメモ。 iOSでメールを使ってる人…

node の Array で forEach したときに break するには

jQuery.each メソッドだと、return true で continue, return false で break できます。 しかし、node で普通に array.forEach で同じようにやろうとしたらできない。 node の実装つまり ECMAScript 5 においては、array.forEach に break 処理はない。代わ…

iOS 6 の新しいアクションシート機能を UIActivityViewController で実装する (2)

iOS 6 の新しいアクションシート機能を UIActivityViewController で実装する - Tosshi Noteで iPhone アプリへのアクティビティ連携の実装方法を書きました。 その iPad 版です。例によって、UIPopoverController を使います。UIActivityViewController を…

iOS 6 の新しいアクションシート機能を UIActivityViewController で実装する

iOS 6 から Safari やカメラロールなどのアクションボタンをタップすると、タイル状に並んだアイコンから Twitter や Facebook への共有機能などが呼び出せるようになりました。 下記のように、OS標準以外のアプリにもこの機能を簡単に追加できます。 このア…

iOS バージョンとデバイス対応のまとめ

iOS

未明に iPhone 5, iPod touch (5th generation) の発表がありました。開発用に今後の端末のバージョンバリエーションをどうするか考えるため、まとめておく。 最新 iOS 6.0 まで対応するデバイス iPhone 5 *, iPhone 4S, iPhone 4, iPhone 3GS iPod touch (…

Ruby で Google Analytics から直近1時間のページビューランキングを取得する方法

サイトのアクセスランキングを作る方法はいろいろありますが、自前で HTTPサーバのログから計算するのは大変です。Google Analytics の API を使うとアクセス数が Ruby には Google Analytics API を操作できる Garb という便利なラッパーライブラリがありま…

リバースプロキシの Nginx でバックエンドの X-Powered-By ヘッダを消すには

バックエンドサービスが何で動いてるのかどうしてわかるのか不思議に思っていたら、X-Powered-By という拡張 HTTP ヘッダにフレームワークの情報が入ってることに気付いた。 ということでセキュリティホールがあったときによろしくないので、消すことにした…

Ubuntu 12.04 に Redmine 2.0.3 を構築した時の Apache + Passenger の設定

Ruby 1.9 で Passenger を動かすために試行錯誤したのでメモしておく。基本的には、アップグレード — Redmine Guide 日本語訳 などを参考にする。 Passenger のインストール $ sudo apt-get install libcurl4-openssl-dev $ sudo apt-get install apache2-pr…

Node + Express + EJS で実行環境に応じて出力を変えるには

クライアントの JavaScript をRAWコードと圧縮版の指定を切り替えたいのが目的です。 単純に min.js だったら .js に置換するように、Nginx などの Rewrite を使うこともできると思ったんですが、複数のファイルを一つに圧縮しているため、それだけでは満た…

WordPress をフロント Nginx のリバースプロキシ下で運用する場合に 管理画面を SSL に強制する設定

Nginx をフロントにおいて高速化するのは常套手段ですが、そのときに WordPress の wp-admin(管理画面)は SSL を有効にしたいときの設定方法です。 Nginx の設定 # HTTP server # server { listen 80; location / { proxy_redirect off; proxy_set_header …

Ubuntu のユーザ管理を LDAP Account Manager でするようにした

Ubuntu 12.04 LTS も出たのでさくらVPSで色々とセットアップ中です。Unix のユーザ管理は、LDAPで行うようにし、かつLDIFを一から書くのは面倒なので LDAP Account Managerを使うようにしました。その時のメモです。 諸々のパッケージをインストール # apt-g…

さくら VPS で Ubuntu 10.04 (LTS) から 11.10 にアップグレードするには

さくらのVPSがリニューアルしたので移行するべく新しい VPS を同環境にセットアップしようとしたら意外に嵌まったのでメモ。まずはカスタムOSインストールで Ubuntu 10.04 を入れておく。続いて /etc/update-manager/release-upgrades を編集してアップグレ…

Ajax Web ぺージを検索ボットがクロールできるコンテンツを返すようにする

最近は様々な Web サイトで Ajax が当たり前のように使われています。 ページ内のコンテンツをほぼ全てAjaxで別途ロードするようなサイトの場合、検索エンジンのロボットにはすっからかんのページがクロールされてしまいます。そのために、サーバ側で予めブ…

Postfix でバーチャルドメインで受けたメールを指定アドレスに転送するには

そのホストのメインドメインとは別のドメインのメールアドレスにメールが来たら、別のメールアドレスに転送する方法について。 まずメインドメインとは別のドメインを受けるには、virtual_aliases_domains に設定します。さらにそのドメインのメールをどう処…

US SIMフリー版 iPhone 4S を輸入してドコモの Xi 契約でテザリングするまで

まず前提として私は iPhone これまで持ったことがありません(iPhone アプリを出していますが http://itunes.apple.com/jp/artist/tilfin-ltd/id371277701)でした。これまで iPod touch + Pocket WiFiで乗り切っていましたが、ドコモならテザリングできると…

Apache SSL だったものを Nginx をフロントにおいてリバースプロキシ化したときの設定

さくらの VPS (Ubuntu) で Apache に 80 (http), 443 (https) で Listen させていました。バーチャルホストでいくつかのドメインをこれで処理していましたが、フロントに Nginx を置いて必要な処理だけ Apache にすることにしました。 そこで SSL を Nginx …

Ubuntu の Redmine を 1.3.0 にアップグレードした

Redmine 1.2.0 から 1.3.0 アップデートするのに色々とハマったのでメモしておく。Redmine 1.3.x で必要となる Rails などの依存バージョンは以下の通りです。 Ruby 1.8.7 Rails 2.3.14 Rack 1.1.1 参照)Redmineのインストール — Redmine Guide 日本語訳 Ru…