2012/04/16

OneNoteでハイパーリンクをクリックするとエラーメッセージが出る

OneNoteでハイパーリンクをクリックすると、
(自環境はWindows7、OneNote 2010、IE9)
「このコンピュータに設定されている制約のため、この操作は中止されました。システム管理者に問い合わせてください」
というエラーがでる。
 
調べた結果、Outlookでも起きる現象で、
原因は一概には言えないようだが、ブラウザをインストール/削除をすることで(レジストリ等の)環境が壊れて起きるっぽい。
 
解決策が下記で
http://support.microsoft.com/kb/310049/ja
  1. IEの設定をリセットして、既定ブラウザに設定する => 再起動
  2. レジストリ設定を他のコンピュータからインポートする => 再起動
  3. Microsoft Fix it 50388を使う => 再起動
の何れかで、直ったり直らなかったりするらしい。
で、結局1では直らず、3で直りました。

以下のサイトが参考になりました。

パソコンのツボ ~OfficeのTIP:"このコンピュータに設定されている制約のため、この操作は中止されました。システム管理者に問い合わせてください"というエラーがでて、ハイパーリンクが機能しない

2012/03/30

ビットの逆転

ビットを逆順にする。
1011 => 1101

ふつう思いつくのはこんな感じ?
unsigned long BitReversal(unsigned long src, char bit/*=32*/)
{
  unsigned long reversed = 0;
  for(int i=1; i<(bit+1); ++i) {
    if(src & 1)
      reversed |= (1 << (bit-i));
    src >>= 1;
  }
  return reversed;
}
元の値の最下位ビットが1なら、先頭から数えた現在位置に1立てる。
元の値を1ビットシフト。

ビット逆順の妙義
ループを使わないし、分岐もない。
元ネタはハッカーのたのしみ」という本(Hacker's Delight

unsigned rev(unsigned x){
  x = (x & 0x55555555) << 1 | (x >> 1) & 0x55555555;
  x = (x & 0x33333333) << 2 | (x >> 2) & 0x33333333;
  x = (x & 0x0F0F0F0F) << 4 | (x >> 4) & 0x0F0F0F0F;
  x = (x << 24) | ((x & 0xFF00) << 8) |
    ((x >> 8) & 0xFF00) | (x >> 24);
  return x;
}
なんだこれ。


その他、逆転の妙義
Bit Twiddling Hacks
http://graphics.stanford.edu/~seander/bithacks.html

どうすれば、こんなことを思いつけるようになるのか。

2012/03/19

Redmineのバックアップ

バックアップ方法
http://redmine.jp/faq/system_management/backup/

対象は2つ
  1. データベース
  2. 添付ファイル

データベース

MYSQL
mysqldumpコマンドでダンプデータを取得する。
SQLite
データベースファイル(config/database.yml内のdatabaseで指定されているファイル)をコピー

添付ファイル

データベースのほかに、チケットやWikiなどで添付されたファイルもバックアップする必要がある。
保存場所は、
Redmineインストールディレクトリ以下のfilesディレクトリ
…らしいのだが、自分の環境では下記にあった。なんで?
/var/lib/redmine/default/files

参考:添付ファイルの格納場所
よかろうもん!::Redmineのファイル保存先を変更する

シェルスクリプトで日毎バックアップする

cronで。
Agenda Labs::Redmineの自動バックアップ設定

2012/03/16

UbuntuへRedmineをインストールする

環境

VirtualBox4.1x
Ubuntu 11.10 Desktop

目的

RedmineをApache2にPassengerでMySQLを使う(壊れた日本語)

インストール

紆余曲折あったが、公式通りでOKでした。

幾つかの実行環境Passenger(Apache上でRuby on Railsアプリを動かす)、WEBrick(RubyのHTTP Webサーバー)、mod_cgiがあり、今回はPassengerで行う。

また、データベースもMySQL、PostgreSQL、SQLite3を選べるが、今回はMySQLで。

前提としてLAMP環境が整っている事。

まずPassenger
$ sudo apt-get install libapache2-mod-passenger

たぶんセキュリティを停止してるんだと思う。
$ sudo apt-get install apparmor-utils
$ sudo aa-complain /usr/sbin/mysqld
Setting /usr/sbin/mysqld to complain mode.

Redmine本体。MySQLで動かすパッケージも。
$ sudo apt-get install redmine-mysql redmine

リンクを張る。
$ sudo ln -s /usr/share/redmine/public /var/www/redmine

Passengerの設定
/etc/apache2/mods-available/passenger.conf
に以下を追加する。
PassengerDefaultUser www-data
こんな感じ
$sudo nano /etc/apache2/mods-avilable/passenger.conf

<IfModule mod_passenger.c>
  PassengerDefaultUser www-data  
  PassengerRoot /usr
  PassengerRuby /usr/bin/ruby
</IfModule>

apache2の設定にも
/etc/apache2/sites-available/default

<Directory /var/www/redmine>
    RailsBaseURI /redmine
    PassengerResolveSymlinksInDocumentRoot on
</Directory>
を追加する
$ sudo nano /etc/apache2/sites-available/default
<VirtualHost *:80>
  # 省略 
  <Directory /var/www/redmine>
      RailsBaseURI /redmine
      PassengerResolveSymlinksInDocumentRoot on
  </Directory>
</VirtualHost>

セキュリティをもとに戻しているんだと思う。
$ sudo aa-enforce /usr/sbin/mysqld
Setting /usr/sbin/mysqld to enforce mode.

passengerを有効に。
$ sudo a2enmod passenger
Module passenger already enabled

apache2再起動。
$ sudo service apache2 restart
 * Restarting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [ OK ]

http://localhost/redmine
にアクセス、表示されるハズ。

もし「403 Forbidden」なら
$ sudo chmod a+x /usr/share/redmine/public
で解決するハズ。

初期値でID:admin, PASSWORD:admin でログインできる。

日本語化

adminの表示言語を変えるには
adminでログインして右上にある[my account]をクリック
[Language]をEnglishからJapaneseに変更して[Save]
その場で表示が日本語になるハズ。
http://redmine.jp/tech_note/first-step/admin/admin-user-language/

他、デフォルトで表示される言語を変更するには、adminでログイン後、
上部メニューの[Administration]でSettings>[Display]タブ>[Default language: English]から[Japanese]へ変更して[Save]

その他の参照

Ubuntu 10.10 に Redmine をインストールする

UbuntuにVirtualBox Guest Additionsをインストールする

環境

VirtualBox4.11
Ubuntu 11.10 Desktop

Guest Additionsの機能

・マウスカーソルの透過的な移動
・シームレスウィンドウを使えるようになる
(ウィンドウ単位での表示)
・解像度の選択が広がる
・ホスト時刻と同期できるようになる
・共有フォルダが使えるようになる
・クリップボードの共有を共有できる

インストール

Ubuntuを起動し、
VirtualBoxのメニューからデバイス>Guest Additionsをインストールする を選ぶ
VBOXADDITIONS_4.1.X CDがマウントされ開かれる。
そこで”オートランの問い合わせ”というのが表示されるので開く。

実行してよいか聞かれるので「実行する」

root特権が必要なので、パスワード認証をする。

ビルドが始まり、終了すると「Press Return to close this window...」と表示されるので、[enter]を押して閉じる。

最後に反映させる為に再起動する。


ホストOSのWindows7との間でクリップボードの共有が出来てなかったのですが、Guest Additionsを導入して出来る様になりました。

参考
大人になったら肺呼吸::UbuntuにVirtualBox Guest Additionsをインストールする方法
sis's memo blog::VirtualBox導入の怪

VirtualBoxのネットワーク設定

仮想マシンの設定>ネットワーク

ネットワークアダプタは最大で4つまで使用できる。
割り当てにはいくか種類があり、デフォルトでNATが選択されている。
  • 未割り当て
  • NAT
    ゲストOSからインターネットは繋がるが、ホストOS間は繋がらない。
  • ブリッジアダプタ
    ゲストOSがホストOSと同じネットワークにつながる。
    インターネットに繋がり、ゲストOSとホストOSの間がつながる。
    同じネットワーク上の他のPCからも見える。
  • 内部ネットワーク
    仮想マシンを複数起動したときに、各マシン間を繋ぐためのネットワークらしい。
  • ホストオンリーアダプタ
    ホストOSとゲストOS間のネットワーク。
  • Generic Driver
がある

つまり標準で、ゲストOSはインターネットはできるけども、ホストOSとは繋がっていない。
で目的としては
  • ゲストOSがインターネットに繋がる
  • ゲストOSとホストOSが繋がる
なので、ブリッジ接続かなと思ったらハマった。
 結論としてはアダプタを2つにし、NATホストオンリーアダプタにする。
これでUbuntuを起動して確認。

$ sudo route
カーネルIP経路テーブル
受信先サイト    ゲートウェイ    ネットマスク   フラグ Metric Ref 使用数 インタフェース
default         10.0.2.2        0.0.0.0         UG    0      0        0 rename2
10.0.2.0        *               255.255.255.0   U     1      0        0 rename2
link-local      *               255.255.0.0     U     1000   0        0 rename2
192.168.56.0    *               255.255.255.0   U     1      0        0 eth1

$ ifconfig
eth1      Link encap:イーサネット  ハードウェアアドレス 08:00:27:59:22:7e  
          inetアドレス:192.168.56.102  ブロードキャスト:192.168.56.255  マスク:255.255.255.0
          inet6アドレス: fe80::a00:27ff:fe59:227e/64 範囲:リンク
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:16 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:70 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1000 
          RXバイト:2549 (2.5 KB)  TXバイト:11278 (11.2 KB)

lo        Link encap:ローカルループバック  
          inetアドレス:127.0.0.1  マスク:255.0.0.0
          inet6アドレス: ::1/128 範囲:ホスト
          UP LOOPBACK RUNNING  MTU:16436  メトリック:1
          RXパケット:0 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:0 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:0 
          RXバイト:0 (0.0 B)  TXバイト:0 (0.0 B)

rename2   Link encap:イーサネット  ハードウェアアドレス 08:00:27:96:ea:6c  
          inetアドレス:10.0.2.15  ブロードキャスト:10.0.2.255  マスク:255.255.255.0
          inet6アドレス: fe80::a00:27ff:fe96:ea6c/64 範囲:リンク
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:25 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:98 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1000 
          RXバイト:3522 (3.5 KB)  TXバイト:13346 (13.3 KB)

firefoxを起動してインターネットにも繋がる事も確認。


またホストOSからpingを飛ばしてみる。
> ping 192.168.56.102

192.168.56.102 に ping を送信しています 32 バイトのデータ:
192.168.56.102 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.56.102 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.56.102 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.56.102 からの応答: バイト数 =32 時間 <1ms TTL=64

ちなみにもう一方のアダプタ(NATの方)へは飛ばない。
> ping 10.0.2.15

10.0.2.15 に ping を送信しています 32 バイトのデータ:
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
10.0.2.15 の ping 統計:
    パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)、

参考
もやし日記::VirtualBox 2.2 と CentOS 5.3 でローカル開発環境

VirtualBoxで新規マシンを作成し、Ubuntu Desktop CDからインストールする

http://www.ubuntulinux.jp/download/ja-remix-cd
ISOファイルをダウンロードしてくる。

ダウンロードしたのは、現時点でのバージョンは11.10。
ubuntu-ja-11.10-desktop-i386.iso

VirtualBoxを起動し
  • 新規(N) をクリック、ウィザードが起動するので[次へ]
  • 仮想マシン名とOSタイプ
    名前をつけ、OSタイプをLinux, Ubuntuを選択、[次へ]
  • メモリ
    サイズを選択、[次へ]
  • 仮想ハードディスク
    新規ハードディスク作成を選択、[次へ]
作成を選ぶと、新規仮想ディスクの作成ウィザードが開始される。
  • 新規仮想ディスクの作成
    VDI(VirtualBox)
    VMDK (VMware)
    VHD(VirtualPC)
    HDD(Paralles=Mac)
    特に理由がなければ、VDIで良いと思う。選択したら[次へ]
  • Virtual disk storage details
    ストレージタイプを選択
    Dynamically alocatedは、ゲストOSで実際に使われた分だけ、ホストOS側のハードディスクが使われる(スパースファイル)
    Fixed sizeは、指定サイズが即座に占有される。
  • Virtual disk file location and size
    保存場所とサイズを決めて、[次へ]
  • 概要
    [Create]で仮想ハードディスクのウィザードが完了。
新規仮想ディスクの作成ウィザードが終わり、新規仮想マシン作成ウィザードに戻る。
  • 新規仮想マシン作成::概要
    [Create]で仮想マシンが作成されウィザードが完了。
作成された仮想マシンを起動すると、初回起動ウィザードが開始される。
  • インストールメディアを選択
    メディアソースをプルダウンから選択するか、右にあるフォルダアイコンでISOファイルなど仮想CD/DVDファイルを選択できるので選択する。
    今回は下記を選び、[次へ]
    ubuntu-ja-11.10-desktop-i386.iso
  • 概要
    [起動]でウィザード完了、仮想マシンが起動される。

ubunuのインストーラーが起動するので、セットアップしていく
(特に迷う要素はないハズ)


インストール完了後、ゲストOSの再起動が必要。
インストールメディアがマウントされたままだと注意されるので、外して[enter]
(メニュー>デバイス>CD/DVDドライブ>仮想ドライブからディスクを除去)


仮想マシンの保存先は下記:
C:\Users\<ユーザー名>\VirtualBox VMs