最近のアクセス 2

このブログのリファラドメイン

前回はこちら→最近の当サイトへのアクセス

さて、まず当weblogの記事の人気ランキングは…以下の通り。

今回 推移 前回 対象ページ アクセス数の比率
1 2 [Outlook 2007 で重複メールを削除する](http://www.hadacchi.com/wp_blog/?p=639) 15%
2 1 [windows7 で proxy の設定](http://www.hadacchi.com/wp_blog/?p=118) 11%
3 3 [regsvr32.exe in Win7 x64](http://www.hadacchi.com/wp_blog/?p=428) 10%
4 new! - [パナソニック P-01D の root 奪取](http://www.hadacchi.com/wp_blog/?p=1388) 6%
5 4 [Windows7 で ffdshow で H.264 コーデックでデスクトップキャプチャ](http://www.hadacchi.com/wp_blog/?p=353) 6%
6 new! - [ブラウザMC☆あくしずの施設設置コストの考察誤りについて](http://www.hadacchi.com/wp_blog/?p=1409) 4%
7 6 [Android 携帯で Gmail が何日も送信されない件](http://www.hadacchi.com/wp_blog/?p=465) 4%
8 10 [Windows 7 (x64) で Ragnaro"k Online](http://www.hadacchi.com/wp_blog/?p=324) 4%
9 圏外 [Win 7 で空パスワードのユーザに共有機能を使わせる](http://www.hadacchi.com/wp_blog/?p=362) 3%
10 9 [hadacchi blog (トップページ)](http://www.hadacchi.com/wp_blog/) 2%

今回は、リファラもドメイン別に公開してみる。

このブログのリファラドメイン
このブログのリファラドメイン

Direct は、リファラ不明のアクセスで、hadacchi は同ドメインからのアクセスを意味する。(これが少ないことは、皆1ページだけ見て帰っていることを意味するので、哀しい)
単独で1%を越える比率を占めるアクセスのみラベル化し、それ以外は「その他」へ。
内容が内容だけに、もともと検索エンジンからのアクセスがほとんどである。
今回明らかになったのは、Google先生つえーな、ってこと。
最近の google からのアクセスは、google 内部のリダイレクトを噛まして飛んでくるので、どんな検索キーワードから飛んできたか分からなくて不満。

Sleep as Android のデータ

睡眠データ

Sleep as Androidという睡眠計を使ってみたが、Export される csv が意味不明なので、ちょっと読み解いてみた。

データフィールドの指定はExcel で読み込んだ時の表記で記載する。例えば、1行目1列目データはA1と書く。

項目 セル
測定開始時刻 A2 (unix timestamp のミリ秒表記)
測定間隔 記載されていないので、F2 の測定期間(h)をデータ数で割る。今のところ、0.00294 (excel 日時) = 254秒。

データの取り方は、テキトーに設定して枕元に置くだけ。
とってみたデータはグラフの通り。
子供と寝ているので、子供の反応もまじってるかも。

睡眠データ
睡眠データ

mysql 設定メモ

追記2
mysql のデータファイルを別パーティションにうつしたので追記。
例えば、/path/mysql に移すことにする。

# service mysql stop
# mv /var/lib/mysql /path/mysql
# vi /etc/mysql/my.cnf
- datadir = /var/lib/mysql
+ datadir = /path/mysql
# vi /etc/apparmor.d/local/usr.sbin.mysqld
+ /mnt/mysql/ r,
+ /mnt/mysql/** rwk,
# service apparmor restart

↑し忘れてもちゃんと動いたので、必要かは不明、いちおう後でやっといた

# service mysql start

なお、UNIX ソケットファイル socket = hogehoge を ramdisk とか早いディスクに移しても意味がないらしい。ファイルを実際に read/write するわけではないから、だそうな。

追記
mysql を 5.5 にして、チューニングしたので追記。
詳しくは、これだけはやっておきたいMySQL 5.5系の設定 - uehatsu's tech blog

character-set-server    = utf8
skip-character-set-client-handshake
default-storage-engine  = InnoDB
collation-server        = utf8_general_ci
innodb_file_format      = Barracuda
innodb_file_per_table   = 1
innodb_use_sys_malloc   = 0

先のページの通りだとエラーが出るので、default-storage-engine はIとDBをキャピタルに。(というか、5.5系ではもともと、InnoDB がデフォルトらしいので、不要っぽい)
また、innodb の独自ヒープを使えないよ、というエラーがなんか出て気持ち悪いので、innodb_use_sys_malloc=0 を追加した。

手順

  1. バックアップ。
    # mysqldump -u USER -p --opt DBNAME --net_buffer_length=8000 | gzip > GZIPFILE

    オプションの順番はテキトー

  2. DB削除。
    上の手順で--opt をつけていれば、drop table は関係ない。
    どこまでやるかは、どれだけスッキリしたいかで変えれば良いと思う。
    mysql の該当テーブルを消す。(drop table TBLNAME;)
    データベースごと消すのもあり。(drop database DBNAME;)
    mysql を完全に消すのもあり。(apt-get purge mysql-hogehoge、hogehoge は、色々あるやつ全部)
  3. mysql 5.5 を入れる。
  4. 設定変更。
    /etc/my.cnf へ追記する内容。

    character-set-server=utf8
    skip-character-set-client-handshake
    default-storage-engine=innodb
    collation-server=utf8_general_ci
    innodb_file_format=Barracuda
    innodb_file_per_table=1
    
  5. mysql 設定反映と確認。
    # service mysql restart
    # mysql -p
    > show variables like 'inno%';
    
  6. mysql を purge した場合、php5-mysql も消えてるかも知れんので再インストール。
    # apt-get install php5-mysql
    # service apache2 restart
    
  7. リストア。
    mysql の初期設定とか、DB 作ったりとか、dump した sql ファイルの取り込みは下の旧エントリを確認のこと。

これで、もと通りのはず。
でも、CPU の非力なマシンなので、未展開の領域にアクセスした時、応答が恐しく遅くなる。
あんまり酷かったら、このオプション (Barracuda) は外すかも…

追記、ここまで。

apache2 の設定メモ の続編.
mysql の設定とか.

設定

  • # mysql_secure_installation

    で初期設定.基本,全部 Y で良い.root パスをインストール時からイチイチ変えるのがメンドイ時は,最初だけn.

  • 全てのユーザー情報が削除されているため,root ログインのみ可能.

    # mysql -u root -p
  • ユーザの追加.
    grant all privileges on databasename.* to username@localhost identified by 'password';
    show grants for username@localhost;
    flush privileges;
    
  • ユーザーの DB を作成.
    $ mysql -u username -p
    > create database databasename;
    
  • データ移行.
    $ mysql -u username -p databasename < sqlfile

その他のtips

/etc/my.cnf の [mysqld] ディレクティブに

character-set-server    = utf8
collation-server        = utf8_general_ci

を追記すると、サーバー文字コードは変更可能
DB文字コードは、mysqlクライアント内で目的のDBに接続して、

alter database DBNAME character set utf8;

文字コードの調べ方は、
mysql クライアント内で

> status

または、

> show variables like "chara%";

1行が長すぎてエディットが難しいときは、

# mysqldump -u USERNAME -pPASSWD --opt --default-character-set=utf8 DBNAME --net_buffer_length=8000 | gzip > sql.gz

としてやれば、1行毎の文字数が 8,000 文字以下となるよう出力してくれる。

ダンプした sql ファイルの取り込みは、クライアントから

> source SQLFILE;

テーブルの文字コードを調べるには、show create table TBNAME; でテーブル作成コマンドを見る。
同じように、show create database DBNAME; でデータベース作成コマンドも見れる。

おサイフケータイ+楽天Edy

楽天ポイントを Edy に交換できるキャンペーンとやらがやっていたので、使ってみることにした。
色々とアプリを Disabled にしていると動かないので、動かすためのメモ。
L-02E を使ってる前提で。

Application Setting で All を開き、以下を Enabled とする。
L-02E の標準ブラウザがなんか変だから、使いたくないんだよなー。もう一度無効化しとくか。

  • Osaifu で始まる全アプリ
  • felica の入る全アプリ
  • 標準ブラウザ ← L-02E でこれ忘れると、セットアップの途中で進まなくなる

Thunderbirdの設定とかアドオンとか

まだメモなので、そのうちまとめる。

メッセージペインをプレーンテキスト表示にする
Alt+ V, B, P
メッセージペインの引用符を「>」にする
オプション > 設定エディタ > mail.quoted_graphical を false にする
(複数のアドレスを利用している時)特定アドレス宛てのメールをML配送でもBcc配送でも振り分ける
メッセージフィルタで「カスタムヘッダ」を選択 > Delivered-to を追加 > ルール設定のダイアログで改めて条件を選択しようとすると、Delivered-to が追加されているので、それを選択して条件を設定する。

VPSを使う

転勤が決まったらしいので,引越しに備えてVPSを整えてみた.
お名前.com の VPS が,初期費用がかからず,安価に短期間利用できるので良さげ.
ubuntu 12.04 LTS が選択できるので,小躍りして申し込んだら,ubuntu server ではなく ubuntu desktop であることが分かってゲンナリ.
とりあえず,コンソールエキスパートモードからインストールすることにしたので,手順を軽くメモる.

VPS のインストールディスクを仮想ホストに仕込むところは,公式のヘルプを参照のこと.
起動したら ubuntu desktop のインストーラが起動するところまでは,進んでいることを想定.

  1. 起動してインストール開始.
    • Advanced options
    • Command-line expert install
  2. Ubuntu のインストーラは,上から順に設定していけばいいので簡単.
    • Choose Language
    • English
    • United States
    • en_US.UTF-8
    • ja_JP.UTF-8[space][tab][Enter]
    • en_US.UTF-8
    • Configure the keyboard
    • No
    • English (US)
    • English (US)
  3. ここからは,KVM初体験なので,よく知らない.勘で進める.
    • Detect Network Hardware
    • usb-storage (USB storage)に[*]が入った状態で,[tab][Enter]
    • Configure the network
    • NW設定がどうなっているかなど知らんので,自動でまずはやってみる
      Yes
    • 設定したいホスト名を入力し,[tab][Enter]
    • とりあえず空欄でもいいし,先々つけたいドメインを入れてもいい
    • Choose mirror of the Ubuntu archive
    • ftp
    • http://www.ubuntulinux.jp/ubuntu/mirrors から,ミラーを選択し,まずはFQDNを入力
    • 次に,HTTPで言うところのGETとかPOSTの後ろにつけるパスを絶対パスで指定
    • Proxy設定は知らんので,とりあえずなしで進めてみる
    • Download installer components (これはちょー時間かかる)
    • load-cdrom
    • Detect and mount CD-ROM
    • なんかエラーがでて,以降はだいたい ubuntu server のインストールと同じ.

インストールコンポーネントのとこは,なんか省略できる気がする.
これ終わった後,isoイメージを抜いて再起動かけても,なかなかコンソールに画面が表示されなくて焦るが,起動が遅いだけなので我慢すること.
とりあえずコンソールからssh-serverを入れて,鍵とか一通り共有したら,あとはssh経由で頑張ること.

Android の Google Settings (Google設定) を表示させなくするなど

Google Settings とやらが邪魔なので,消すことにする.
あと,Google Maps を入れたら勝手に追加される Navigation などのアイコン(後述の SystemCleanup 上の表現では,Activities)も削除する.
root の取り方は,パナソニック P-01D の root 奪取 を参照.

事前準備

手順

  1. SystemCleanup を起動すると,アプリ一覧が出てくるので,「Google Play services 3.0...」とやらを長押し.
  2. Freeze/Delete... を選択し,Disable app を選択.

おまけ1

/data の容量が食うのが阿呆らしいので,/system 領域に押し込めてしまう.

  1. SystemCleanup を起動すると,アプリ一覧が出てくるので,「Google Play services 3.0...」とやらを長押し.
  2. Update system file を選択.

私の P-01d では,今のところ特に不具合はでてない.
壊れたら,初期化するとかしてね.

おまけ2

GPS 非搭載のタブへ Google Maps を追加した場合でも,勝手に増える Navigation を消してみる.

  1. SystemCleanup を起動すると,アプリ一覧が出てくるので,「Maps」を長押し.
  2. Disable activities を選択.
  3. 不要な機能(今回は Navigation)をチェックオフし,右下の Save.

skkime で半角カナを入力できなくなった時の対処

skkime では、キーマップを変更してユーザー定義にすると、C-q で半角カナへ変換したり、半角カナモードに入れなくなってしまう。
参考→skkime 1.5 で [Ctrl]+[q] 問題(半角カナ)に立ち向う 仁義偉王のブログ/ウェブリブログ
まれに、(女の子に可愛い顔文字を送る時とかに)半角カナが必要になることがあるので、入力できないと困ってしまう。

というわけで、リンク先にもある方法を使えばまた入力できるようになる

レジストリを編集する。
HKEY_CURRENT_USER\Software\TT\Windows\CurrentVersion\SKKIME\1.5\Generic の MajorModeMap で、
0010行の左から2番目(0x11アドレス)の値を "59" とする。
レジストリの読込のため、ログオフ→ログオンとすることで、C-q が復活する。
(Win7の場合、プロセスを再起動してもOKだと思うけど、バックグラウンドプロセスを再起動するのがWinは面倒臭いのでオススメしない)

apache2 の設定メモ

毎回,OS を入れ直す度に忘れるので,今回こそはきちんとメモるぞー.
記事の趣旨が趣旨なので,この記事は随時アップデートされると思う.

前提

LAMP サーバが入った状態で Ubuntu server をインストールしたことが前提.
自分しか使わないサーバなので,mod_php5 で勘弁する.
(この後の予定) SSL 対応と,vhost 対応.←済

設定

  • dir.conf を編集して,いらん index ファイル指定を消す.
  • userdir を使うので,有効化する.
    # a2enmod userdir
    良く考えたら,VirtualHost を使うので,なくて良い気がする.
  • php5 自体は有効化されているが,userdir では無効になってるので,有効化する.
    php5.conf を開いて,userdir のディレクティブに記述されている,php_admin_value engine Offをコメントアウト.
  • directory 内のファイルリストが見えるのは困ることがあるので,デフォルトオフにしておく.
    userdir.conf の Indexes を削除.
  • 多言語対応は,userdir.conf の MultiViews を有効にしておいて,hoge.html.ja hoge.html.en とかを用意する.
    ユーザーが hoge.html にアクセスした時,その人の言語優先度に従って表示するファイルが選択される.
    更新し忘れが多発しそうなので,管理はそれなりに考えないといかんかも.
  • favicon の設定に,rewrite モジュールを使う.
    # a2enmod rewrite
    ただし,RewriteEngine を使う場合,AllowOverride FileInfoと,Options SymLinksIfOwnerMatch辺りを
    許可しておかなければならないので,要注意.
  • DocumentRoot が /var/www とかになっているため,絶対パスで / から指定しているリンクが悉く死ぬ.
    DocumentRoot を変更しても良いけど,最終的に userdir でアクセスさせないので, sites-available に VirtualHost の設定を書いた方が良い.
  • VirtualHost ディレクティブの ErrorLog は,ログ出力先.
    LogLevel は,ログ出力レベル.指定するレベルはググること.
    CustomLog は,アクセスログの出力先.
  • VirtualHost ディレクティブでは,ServerName を指定しないと apache2 が warn を吐くが,
    設定していたとしても,サーバの hostname.domainname と一致していないと同様に warn を吐く.
    設定は,/etc/hostname を FQDN で書いてしまい,networking の restart でとりあえず動く.(←動かない時は,再起動したら動いたりする)
  • ServerTokens ディレクティブや ServerSignature ディレクティブは,conf.d/security に書かれているので,この後に読まれるよう記載する.
    ServerTokens では HTTP のヘッダの出力のサーバ情報の出力を制御でき (ErrorDocument も,この制御された token を出力する),
    ServerSignature ディレクティブでは ErrorDocument 下部のサーバ情報の出力を制御できる.
  • php のヘッダー出力の抑制は,php.ini で行なう.
    /etc/php5/apache2/php.ini の expose_php を Off とする.
  • digest 認証はモジュールをロードさせないといけない.
    # a2enmod auth_digest
  • deflate モジュールでファイルを gzip 圧縮して転送できるが,転送サイズがファイルサイズより大きいことがある.
    その時は,SSI とか PHP とかで include していないか思い返してみること…
    これでハマった.
  • SSL対応。
    署名要求ファイルを当該サーバ上で生成して、証明機関に送信して証明書が作成される。
    まずは、署名要求ファイルの作成から。

    1. 秘密鍵を作成する。
      openssl genrsa -aes256 2048 > server.key

      秘密鍵は、パスフレーズで保護する。
      server.key が秘密鍵。

    2. 秘密鍵を使って、署名要求ファイルを作成する。
      openssl req -new -key server.key > server.csr
      openssl req -new -sha256 -key server.key -out server.csr # sha-2署名を要求する
      秘密鍵のパスフレーズを求められるので、入力する。
      証明書へ埋め込みたい情報の入力が求められるので、入力する。
      とりわけ、Common Name は使いたい web site のホスト・ドメイン名と一致させておくこと。
      server.csrが署名要求ファイル。
  • 続いて、StartSSL を例にドメイン名の検証 (validation) を行なう。
    詳しくは、[無料 SSL 証明書 StartSSL を使う](http://futuremix.org/2009/02/startssl)などを参照。

    1. サインアップから名前とか住所とかを登録。
    2. クライアント証明書をインストール。(次回からのログインにはクライアント認証が必須)
    3. ドメイン名検証を通過させる。独自ドメインのメールか、ドメイン登録に使っているメールの受け取り環境が必要。
  • web サーバの検証を行なう。
    1. 登録済みサブドメインの失効は有料といわれたので、ここで手順は中止。HW 交換したら、全てのキーを保存しておかんといかんなぁ。。。
    2. 別ドメインを建ててみる.
      CSR ファイルを作る画面が出てくるが,ローカルで作成しているので skip する.
    3. トップレベルドメインは,検証済のドメインを選択する.
      次にサブドメインを入力させられるので,検証させたいサブドメインを入力する.
    4. Save Certificate という画面で,crt ファイルの中身が出てくるので,
      コピーして server.crt とかのファイル名でテキストファイルにペースト.
      改行コードは LF.
    5. 同じ画面からリンクされている「intermediate」と「root」の CA certificates をダウンロードする.
  • web サーバの設定
    1. /etc/apache2/ports.conf を編集し,mod_ssl.c のモジュール設定の部分に,
      NameVirtualHost *:443
      とか書いておく.Listen が書かれてなければ,Listen 443 も書いておく.
    2. これまで準備したファイルのうち,必要なものを配置.
      /path に放り込んだとすると,次のファイルが必要.
      /path/server.key
      /path/server.crt
      /path/sub.class1.server.ca.pem (← intermediate CA Certifications)
      /path/ca.pem (← root CA Certifications)
    3. SNI を定義しているファイル (site-enabled にあると思われる) の中で,
      ssl 用の設定を書く.
      その中で,配置したファイルを指定する.ついでに簡単な雛形も載せておく.

      
              ServerAdmin     MAIL_ADDR
      
              DocumentRoot    ROOT_DIR
              ServerName      DOMAIN_NAME
              SSLEngine       on
              SSLCertificateFile      /path/server.crt
              SSLCertificateKeyFile   /path/server.key
              SSLCertificateChainFile /path/sub.class1.server.ca.pem
              SSLCACertificateFile    /path/sslfiles/ca.pem
              
                      ...
              
              
                      ...
              
      
              ...
      
      
  • 上述のままだと,apache 起動時に server.key のパスフレーズを求められる.
    自動リブートとかさせていると問題があるので,解除する.

    # openssl rsa -in  server.key.org > server.key

-- 追記
いつからか,apache2 の再起動時に,以下のエラーを吐くようになった.
いろいろと対処しているうちに名前解決が怪しいと気付き,syslog を見て原因が分かった.
ホスト名を変更した時に,旧ホスト名を現ホスト名の CNAME にしたにも関わらず,ローカルに立てている DNS の SOA レコードとか NS レコードとかもろもろを書き換え忘れていたことが原因.

httpd: apr_sockaddr_info_get() failed for hoge.hadacchi.com
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

どうやらこれは,二つのエラーを意味しているようだ.
多分
1行目:ServerName の設定がないから自分で取ろうとしたけど,うまくいかないぜ!
2行目:なんか,ちゃんとした答えが得られないから,これこれを ServerName に使うぜ!
とうことなんだろうと思う.対応とその結果を書いておく.

  • 対処1:自分の使用しているホスト名 (# hostname -f で表示されるものの FQDN) を /etc/hosts の 127.0.0.1 の別名として併記する.
    ただし,今回のように bind の設定ミスがある場合は,hostname -f でエラーが返る.

    • 結果1:1行目のエラーのみ消え,2行目の 127.0.0.1 の部分が,/etc/hosts に設定したホスト名となる
  • 対処2:(VirtualHost を使っているとしても) httpd.conf あたりに,ServerName 定義行を追記する.値は,デフォルトで使いたいサーバ名.
    通常は,最初に apache に読み込まれる VirtualHost 名.

    • 結果2:対処1をしなくても,エラーが両方消える.
      ServerName の設定が静的に記述されているので,この一連の動作自体が発生しないのだと思う.
  • 対処3:localhost に DNS サーバを立てる.
    • 対処1,2をしなくても,エラーが両方消える.

NOOK Color へ CyanogenMod 10 を入れる

基本的には,こいつに従って,作業するだけ → [GUIDE] Install CM7 or CM10 + Recovery to EMMC - ALL NOOK COLORS! (Updated:11/19/12) - xda-developers
元々,過去の記事 rooted NOOK Color に Google 日本語入力を入れたよ | hadacchi blog でパッチ当てをしているので,CWM は展開していない.
手順については自分で調べること.

手順

  • 1gb CWM 3.2.0.1 を SD カードに焼く.
  • CM10 の zip と,対応する gapps をその SD カードにコピー.
  • その SD カードを挿して NOOK を再起動.
  • CM10,gapps の順で zip を選択して適用.
  • 再起動.

使用感

  • 日本語フォントが中華じゃない
  • 検索バーが,ホームのアイコン配置スペースの外に置いてあり,アイコン配置の邪魔にならない
  • CM9 ではなかった画面上の通知領域が標準で On に戻っている
  • adb でアクセスできない(over NW も無理)
  • デバッグモードで PC から認識しない(不明なデバイスとしてすら表示されず,ドライバインストールもできない)
  • 初回起動時の Google アカウントの設定時に,落ちる(後で設定したら動いたので,原因は不明)
  • 設定画面が,シングルカラム
  • 4月21日版の CM 9 (Unofficial) よりも軽快に動く
  • Android 4.1 対応のブラウザで動く Flash player がない (追記:Adobe が Play Store での公開をやめちゃったのね)

Flash が問題で必要なサイトが一部見られないため,CM9 か CM7 に戻す予定.

追記:

  • Flash について
    Android 4.0 向けの Flash Player が動いたので,これで勝つる.
    Archived Flash Player versions
  • adb について
    ターミナルエミュレータで su すれば,とりあえず root でシェルは使えるので,これで動かすしかあるまい…
    bluetooth キーボードが欲しい…

    設定画面で,「開発者向けオプション」の「Rootアクセス」を「アプリとADB」にしたら,adb shell が通るようになった.
    更にデバッグモードでも,PC からデバイスとしても認識するようになった.