わかりやすい

主にIT関連や時事ネタの興味を持ったことを、なるべくわかりやすく書いてみようとおもいます。

スポンサーリンク

Ubuntu 14.04 LTSで仮想化環境構築

wakariyasui.hatenablog.jp

上記で書いた、vyosを動かすための仮想環境の構築方法について。

前提

  • 仮想化支援対応のCPUでUbuntu 14.04 LTSが動作していること
  • Ubuntu desktop(いわゆるUnity)が動作していること
    • Ubuntu GNOME desktopでいいと思うけど、自分の環境はUbuntu desktopだったということで
  • 物理NICが2枚あること

手順

必要なパッケージをインストールする

sudo aptitude install qemu-kvm qumu-system libvirt-bin bridge-utils virt-manager

一度再起動する

virt-managerの起動に、ユーザがlibvirtdグループに所属する必要があるけど、それがインストール直後だと反映されていないので、反映するために再起動 再起動じゃなくても反映する方法はありそうだけど、面倒なので再起動にした

virt-managerを起動する

普通に動くはず。 あとはお好みでネットワークとかストレージとか仮想マシンとか作ってください。

DELL Inspiron 1501にUbuntu 14.04 LTSをインストール

手元にあったのでUbuntu入れてみることにした。 目的はUbuntu上で仮想マシンとしてvyosを動かしてVPNを張るため。その件は別記事にでも書こうと思います。

前提・要件

  • Ubuntu 14.04 LTSをネットワークインストールする
    • ネットワークインストール用のISOを焼いたCDなりDVDを用意しておく
    • 有線(DHCP)でインターネットに接続できる環境がある前提
  • デスクトップ環境はUbuntu desktop(いわゆるUnity)をインストールする(重いだろうけど…。)

結果

  • Ubuntu desktop(Unity)は重いけど、ちゃんとインストールできた
  • 無線LANは初期状態だと使えなかった(認識しなかった)けど、ファームウェア的なものをインストールしたら使えるようになった

手順

ネットワークインストール用のCDなりDVDなりを用意する

  • ここにネットワークインストール用のisoがあるので、ダウンロードして焼いておく
    • 使うイメージは「amd64 - For 64-bit Intel/AMD (x86_64)」のリンク先にあるmini.iso
    • なぜならInspiron 1501は64bit CPUを積んでいるから

CDなりDVDを入れて起動、インストールを開始する

  • BIOS(電源を入れたあとにF2を押す)でDVDドライブの起動順をHDDよりも上に持ってこないと、今HDDにインストールされているOSが起動しちゃうので注意
  • 起動したら普通にインストールを進める
  • 途中のパッケージ選択では「Ubuntu desktop」だけを選択して進む
  • インストールが完了したらDVDを取り出して再起動

無線LANドライバをインストールする

  • 起動すると無線LANが使えない(しかも起動時にfirmwareなんちゃらのエラーメッセージ的なものが表示される)はず
  • 端末を開いて以下で必要なドライバをインストール (こちらを参照)
  • 再起動して動作することを確認する

ちゃんと動きましたね、よかったよかった。

Intel Rapid Start Technologyがインストールできない

表記の件。インストールしようとすると、以下のようなエラーが出る。

「このシステムは、このソフトウェアをインストールするための最低要件を満たしていません。」

この問題に対する対処方法を整理する。

前提

Windows 7 Home Premium

状況の確認

  • 「スタートボタン」をクリック、「コンピュータ」を右クリック、「管理」をクリック
  • 「コンピューターの管理(ローカル)」配下、「記憶域」配下の「ディスクの管理」をクリック
  • コンピュータに搭載されているメモリ量と同じサイズの「休止パーティション」が存在しないことを確認する

ここまで確認できたら解決までは恐らくシンプルに進む。

原因

Intel Rapid Start Technologyを動作させるために必要なパーティション(コンピュータのメモリ量と同じサイズの休止パーティション)が存在しない

※推測ですから参考まで。

解決方法

  1. コンピュータのメモリ量を確認する
    • 例えば8GBだったとする
  2. 休止パーティションを作成するための未割当領域を作り出す
  3. 休止パーティションを作成する
  4. Windowsを再起動する
    • 私はこれをせずにハマりました
  5. Intel Rapid Start Technologyのセットアップを行う
    • うまくいけば、冒頭に紹介したエラーがもう出ないはず

参考になれば幸いです。

コミュニケーションツールに求めるもの

thebridge.jp

こんな記事がバズられている。 クリエイティブな仕事をする人に対して割り込みがいかに生産性を下げるかはいろいろ話題になっていた気がする。

ちょっとコミュニケーションツールのあり方について考えてみようと思う。

「メッセージをいつ読むべきか」は誰が決めるべきか?

「これは電話するほど急ぎじゃないでしょ」とか「これは急ぎだから電話してほしかった」とか、よくありそう。分類するとこんな感じか。

  • モラルある送信者により、適切な通知がなされるケース
    • 急ぎは電話(リアルタイム・双方向)
    • それ以外はメール(非リアルタイム・片方向)
  • モラル無き送信者により、不適切な通知がなされるケース
    • 急いでいないのに電話
    • 急ぎなのにメール

いつ読むかはモラル有る人が決めるべきかもしれないけど、ツールにするなら「送信者」と「受信者」しかいない。

「送信者がモラルがあるかどうか」を「受信者が決める」方式でどうだろう。

モラルを考慮したコミュニケーションツール

概要はこんな感じ。

  • ユーザは他のユーザとツール上で「つながる」
    • 「つながる」ことで、メッセージを送信しあえる
    • Facebookの友達とかそういう感じ
  • ユーザは、つながっている相手のモラルの程度を設定できる
  • ユーザはメッセージを送信する際、相手にいつ読んでほしいか、というメタ情報を付加して送信する
  • ユーザがメッセージを読むに至る動線は以下の3パターン
    • リアルタイム(通知あり)
      • メッセージを受信したタイミングでポップアップ
    • 非リアルタイム(通知あり)
      • 定期・定時でポップアップ
    • 非リアルタイム(通知なし)
      • 自分で見に行く

機能的には実現できそうだけど、状況によって「私、あなたのことモラル無いと思ってます」と相手にばれることが問題か。リアルタイム(通知あり)をも無視する「取り込み中」機能とか作ればカムフラージュできるかな。

余裕があればもうちょっとまじめに考えてみようかしら。

eclipseとxdebugを使った、リモートマシン上で動作するphpの開発・デバッグ

標記の件。メモ程度ですが、重要な点のみメモしておきます。 (例によって推測を含みますので、内容の精度は各自の責任にて。)

やりたいこと

上記を実現するためのアプローチ

xdebugを利用する際の障壁

  1. eclipseで編集するためのファイルがローカルマシン(eclipseを動作させているマシン)に無い
  2. xdebugを用いた真の(phpを実行するマシンとeclipseを実行するマシンが異なる構成での)リモートデバッグに関する情報が意外と少ない

以下、ここについてちょっと解説。

1. eclipseで編集するためのファイルがローカルマシン(eclipseを動作させているマシン)に無い

eclipseでファイルを編集したり、xdebug

これの解決策は2パターン。

要するにsshとかでリモートにあるファイルをローカルにあるように扱う。 ちなみに、私はこれはパフォーマンスの面で問題が出て、採用しなかった。 (プロジェクトの管理対象ファイル数が少ない場合とかはいけるかもしれない)

持ってきたソースコードEclipseのプロジェクトとして登録、 適切なデバッグ構成を設定すればとりあえずブレークポイントの設定とかステップ実行とかできるようになる。

問題はソースコードを編集した際の変更を実行マシンに反映させる方式。 自分のローカル(Eclipseを動作させている)環境はwindowsなので、winscpミラーリングアップロード機能を使うことにした。

2. xdebugを用いた真の(phpを実行するマシンとeclipseを実行するマシンが異なる構成での)リモートデバッグに関する情報が意外と少ない

はい、この記事を参考にしていただけると幸いです。 xdebugの動作概要はぐぐれば出てきますが、簡単に説明すると

これに尽きる。つまり、xdebugには以下を設定する必要がある。

具体的に書く内容は以下。

zend_extension=/usr/lib64/php/modules/xdebug.so
xdebug.remote_enable = On
xdebug.remote_autostart = On
xdebug.remote_host = xxx.xxx.xxx.xxx

1行目はxdebugのモジュールを読み込んで、リモートデバッグ機能をphpに取り込む設定。 2行目はリモートデバッグ機能を有効にするかどうかの設定。 3行目はよくわかっていない。 4行目はデバッグ情報を送信する先のホスト名(要するにEclipseが動作しているローカルマシンのIPアドレス

上記の設定をphp.iniに書くと、リモートデバッグが行えるようになる。 apacheのDSOとして動かしているなら、php.ini(からincludeされている/etc/php.d/xdebug.ini)に上記を書いて、apacheをreloadする。 gracefulで反映するかどうかは未確認。

まとめ

eclipsexdebugを使った、リモートマシン上で動作するphpの開発・デバッグの環境について、必要な点を整理しました。 余裕があれば、上記を実現する具体的な手順も書いてみようと思います。

rsyncのinclude, excludeについて

超お久しぶりです。

みなさん、rsync使ってますか? バックアップとかリリースとか、工夫次第でいろいろ使えて便利ですよね。 けど、特定のファイルとかディレクトリを対象(対象外)にしたい場合に使うincludeとexcludeの使い方、難しくないですか? 自分向けのメモの意味も含めて、少し整理してみたいと思います。

#現時点では動作検証まではしていませんので、間違いが含まれるかもしれません。悪しからず…。

基本

rsyncは以下のような動作をする。

  1. コピー候補となるファイルリストを作成する
  2. 上記で作ったファイルリストの1行ずつに対して、コピーするかしないか判定する

上記の2.の動作が一番の本題ですね。

  1. 引数で与えられたinclude, excludeについて、指定順に評価する
  2. 条件に合致した時点で動作が確定する(合致した条件以降の条件は評価されない)

上記に加えて、以下の動きをします。

  • あるディレクトリがコピー対象外と判定された場合、そのディレクトリ配下の全ファイル・全ディレクトリはコピー対象外になる

さて、これだけだとちょっとわかりにくいので具体例を。

具体例

前提

例えば以下のようなディレクトリツリーがあったとします。

./hoge.txt
./fuga/moge.txt

これを/var/tmp配下にコピーしたい場合で考えたいと思います。

rsyncの動作(include, exclude指定なし)

素直に全部コピーしたい場合は

rsync -avP ./ /var/tmp

こんなコマンドになります。

ファイルリストの作成

rsyncは以下のようなファイルリストを得ます。

./
./hoge.txt
./fuga/
./fuga/moge.txt

ファイルは2つですが、ディレクトリもリストに含まれることになる点がポイント。

コピーされるもの

includeもexcludeも無いので、全ディレクトリ・全ファイルがコピー対象になります。

rsyncの動作(include, exclude指定あり)

さて、例えば

rsync -avP --include="moge.txt" --exclude="fuga/" ./ /var/tmp

こんなオプションで実行したとします。

ファイルリストの作成

再掲。

./
./hoge.txt
./fuga/
./fuga/moge.txt

コピーされるもの

前述の通り、ファイルリストの1行ずつに対して評価されます。

./

includeにもexcludeにも合致しないので、コピーされます。

./hoge.txt

includeにもexcludeにも合致しないので、コピーされます。

./fuga/

includeには合致しませんが、excludeに合致しますね。コピーされません。

./fuga/moge.txt

includeに合致しますが、上位ディレクトリ(./fuga/)がコピー対象外になっているのでコピーされません。

まとめ

以下を抑えておくと、うまく使いこなせるのではないでしょうか。

  • rsyncは以下のような動作をする
    • ファイルリストを作る
    • ファイルリストの1行(各ディレクトリ、ファイル)に対して、引数に指定された順番でincludeやexcludeが評価され、マッチした時点で動作が確定する
    • ディレクトリがコピー対象外として判定された場合、その配下のファイル、ディレクトリは無条件にコピー対象外となる

ではまた。

参考文献

tech.nitoyon.com

お金の話

こんばんは、わかりやすいです。

老後まで幸せに過ごすために、ある程度のお金は必要ですよね。わかりやすいは退職時点で5,000万円あれば、家族に迷惑をかけずに老後を過ごせるかなと思っています。

5,000万円なんてかなり大金で、多少リスクのある金融商品に手を出さない限り達成は困難だと思います。少なくとも一般的な収入の人は。

さて、どうやって貯めていきましょうね。 自分が見てきた有効な手法を整理しようと思います。

基本的な戦略

  • 元本割れリスクを有する金融商品に積み立て投資して資産を増やす
  • 節税になる商品を積極的に採用する(主に確定拠出年金、NISA)
  • 投資比率は金融商品の特性(主に中途解約可否や積立金の変更可否)と支出計画を考慮して決定する

結論的な話になりますが、もう少し掘り下げるとこんな感じです。

  • 大型出費(車とか家の頭金とか子どもの学費とか)を乗り切れるだけの資産を、中途解約可能なNISAで形成する
  • 上記の余剰分は確定拠出年金に投資する
  • NISA、確定拠出年金いずれも運用利回り5%を目指す

毎月6万円積み立て、5%の利回りで30年間運用すると、だいたい4,900万円くらいになる。

次回はもう少し具体的な計画に落とし、考察していこうと思います。