2012年4月30日月曜日

VMのゲストOSがインターネットに接続できない

VMware Player 4.0.2で接続不能


こんにちは。yu1rowです。
Windows 8 Consumer PreviewをVMware Playerにインストールしましたが、インターネットにつながらなくてちょっと困りまして、解決方法の備忘録です。

対象の環境


VMware Playerのバージョン 4.0.2 build-591240
※他のバージョンでも起こるかもしれません
ネットワークカード複数存在する
※仮想NICや物理的に複数のNICがある場合

確認と設定変更手順


  1. ネットワークアダプタのプロパティを一つ一つ見ていってください。 
  2. 「VMware Bridge Protocol」のチェックを確認します
    インターネット接続に使っているアダプタの場合チェックを付けます
    それ以外のアダプタはチェックを外します

作業はこれだけです。
VMwareのアップデート時などに急につながらなくなた時などに有効かもしれません。
アップデートの時などに全部のアダプタの「VMware Bridge Protocol」を有効にするようなのですが、複数有効になってしまうとゲストOSがインターネットに接続できなくなってしまうみたいです。

これでもブリッジ接続がうまくいかない場合はまた別の問題でしょう。
すみませんが他をググってください。

2012年4月21日土曜日

JenkinsのビルドをWindowsコマンドプロンプトから即時で走らせる

Jenkinsで今すぐビルドをしたいとき


Jenkinsでは一定時間毎にポーリングを行い、資源に変更のあった ジョブに対してビルドを行います。
※「一定期間」とはLinuxではcronで設定するみたいです
※Windowsではどうするのか知りません。タスクスケジューラとか?

今回、ポーリングを待たずにスグにビルドするにはどーしたらいいの!?ってことで、優しいikikkoさんが教えてくれました。
↓ikikkoさんの棲家↓
http://d.hatena.ne.jp/ikikko/

実際に試してみたらうまくいきました。ありがとうikikkoさん!
というわけで備忘録を残しておきます。

手順


* 前提
JenkinsへのアクセスURLhttp://myhost/jenkins/
java.exeへのパスあらかじめ通してあること

  1. ブラウザから以下のURL(自分の環境に読み替えてね!)にアクセスして、jenkins-cli.jarをダウンロードする
    http://myhost/jenkins/cli
    ※Dドライブ直下にダウンロードしたと仮定して以下の作業を進めます
  2. コマンドプロンプトから以下のようにビルドを実行
    C:\Users\Hoge>D:
    D:\>java -jar jenkins-cli.jar -s http://myhost/jenkins/ build -c <JobName> --username myUsername --password myPassword
    ※前提条件の通り、java.exeにパスを通しておいて下さい
    ※<JobName>は実際には山括弧で囲みません
    ※ユーザ名とパスワードは制限がかかっている場合に必要です
    ※ユーザ名とパスワードに記号とか使っていたらダブルクオーテーションで囲むといいかもしれません
これでビルドがすぐに開始されることを確認できました。
ねっ?カンタンでしょ!?

2012年3月15日木曜日

CraftLaunch - 僕のイチオシランチャー

CraftLaunch


こんにちは。
イチ技術者、yu1rowの時間です。

プログラムを書くワタクシとしては、どれだけ速くアプリを起動できるかって事にもこだわりがあって、良いランチャーを色々探していました。

今回ご紹介するのは「CraftLaunch」!
 キーボードからアプリを起動する、コマンド型ランチャーです。
↓[CapsLock]キーを押すだけでランチャーを呼び出せます。


↓[CapsLock]キーを押すとこんなんが出ます

ダウンロード&インストール


↓ここで配布されてます。
CraftLaunch - craftware

インストール方法は、ダウンロードしたZIPファイルを解凍。
出てきたフォルダを任意の場所に置く。だけ。
※Windows Vista, 7の人は諸々の理由からProgram Filesとかには置かないほうが良いかも。
マイドキュメントの中とかがお勧め。

フォルダの中の「clnch.exe」をダブルクリックすると起動します。

Windows起動時に自動的に起動させたいって人は、スタートアップにショートカットを入れときましょう。
 ↓俺はそうしてます

設定


別に使わないときは画面から消えてて欲しいので、その設定をします。
俺はそうしてます。

設定方法:
[CapsLock]押す → "Config"と入力 → [非アクティブ時の動作] → [非表示]

使い方1:ドラッグ&ドロップでランチャーにプログラムを登録する


[ファイルやフォルダをドラッグ] → [CapsLock]押す → CraftLaunchの窓にドロップ

↓こんなんが出るんで、Enter押すと登録できます

使い方2:直接入力でランチャーにプログラムを登録する


[CapsLock]押す → "Command"と入力 → [Shift+E]押す

↓したらこんなん出ます
入力項目説明
名前コマンド ※ここに入力したものが実行コマンドになります
ファイルファイルやフォルダ、URL
パラメタコマンド実行時に渡すパラメータ
ディレクトリコマンド実行時の作業ディレクトリ

  • 例1:"y"でヤフーのトップページを表示させたい!
    名前y
    ファイルhttp://www.yahoo.co.jp/


  • 例2:"c"でCドライブを表示したい!
    名前c
    ファイルC:\

登録してあるコマンドを削除する


[CapsLock]押す → "Command"と入力 → 消したいコマンドを選んで[Del]押す

↓確認ダイアログで「はい」を選ぶと削除できます

番外編:BMIを計算しよう


数値が22くらいだったら「標準体重」ですよーとかいうアレです。
CraftLaunchは簡単な電卓になるので、ちょっと計算して遊んでみましょう。
  • BMIの計算式

    体重(kg)÷身長(m)の2乗

  • 計算方法 ※50kgで160cm(=1.6m)の人の例

    [CapsLock]押す → "50/pow(1.6,2)"を入力

  • 結果の確認

    [Enter]で結果が即座に表示されます。
    19.531250ですって。
    この人「やせ気味」ですよ!

  • 履歴の削除

    実はCraftLaunchは前に入力したコマンドを覚えています。
    上記の例だと、"5"を入れると前に入力した"50/pow(1.6,2)"が出てきます。
    け、消してくださいー!!(*/∇\*)
    って人は、すかさず[Ctrl+K]を押すと消せますよ!
    ↑ここで[Ctrl+K]!

色々カスタマイズできて面白いよ!


プログラマならもちろん、ちょっとプログラムも書けるよって人はpython知らなくても、少し勉強するだけでCraftLaunchを色々カスタマイズできます。
時間のある時に遊んでみると面白いかもしれませんよ?

2012年2月25日土曜日

JSpinnerの表示文字列を中央寄せに

JSpinnerといえば

どうも、プログラマのyu1rowです。
以前「JSpinnerのちょっと困った話」っていう小ネタのエントリを投稿しましたが、これが結構アクセス数多いんですね。
今回はその続きというか、派生の話題です。

要は「horizontalAlignment」が欲しいってだけ

JSpinnerにはhorizontalAlignmentがありませんでした。
でも欲しかったんで足しました。
今回はそれだけです。
需要、あるかなぁ?

JSpinnerにメソッドを付け足したクラスを作ります。
足された公開メソッドは以下の2つ。
  • void setHorizontalAlignment(int alignment)
  • int getHorizontalAlignment()
JSpinnerを継承したJAlignSpinnerクラスのコードを以下に示します。
package com.yu1row.blog;

import javax.swing.JFormattedTextField;
import javax.swing.JSpinner;

/**
 * Spinner implemented property horizontalAlignement.
 * @author yu1row
 */
public class JAlignSpinner extends JSpinner {

 private static final long serialVersionUID = 1L;

 private JFormattedTextField getTextField() {
  return (JFormattedTextField) getEditor().getComponents()[0];
 }

 public void setHorizontalAlignment(int alignment) {
  getTextField().setHorizontalAlignment(alignment);
 }

 public int getHorizontalAlignment() {
  return getTextField().getHorizontalAlignment();
 }
}


使い方

setHorizontalAlignmentの引数には以下を指定できます。
javax.swing.SwingConstants.LEFT左詰
javax.swing.SwingConstants.CENTER中央
javax.swing.SwingConstants.RIGHT右詰
javax.swing.SwingConstants.LEADING(日本語環境なら)左詰:デフォルト
javax.swing.SwingConstants.TRAILING(日本語環境なら)右詰

実際に使ってみたコード例を以下に示します。
import java.awt.Container;

import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.SwingConstants;

import com.yu1row.blog.JAlignSpinner;


public class ShowAlignSpinner {
 public static void main(String args[]) {
  JFrame frame = new JFrame();
  Container c = frame.getContentPane();

  c.setLayout(new BoxLayout(c, BoxLayout.Y_AXIS));
  JAlignSpinner spinner;

  // LEFT
  spinner = new JAlignSpinner();
  spinner.setHorizontalAlignment(SwingConstants.LEFT);
  c.add(spinner);
  // CENTER
  spinner = new JAlignSpinner();
  spinner.setHorizontalAlignment(SwingConstants.CENTER);
  c.add(spinner);
  // RIGHT
  spinner = new JAlignSpinner();
  spinner.setHorizontalAlignment(SwingConstants.RIGHT);
  c.add(spinner);
  // LEADING
  spinner = new JAlignSpinner();
  spinner.setHorizontalAlignment(SwingConstants.LEADING);
  c.add(spinner);
  // TRAILING
  spinner = new JAlignSpinner();
  spinner.setHorizontalAlignment(SwingConstants.TRAILING);
  c.add(spinner);

  frame.setSize(300, 200);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setVisible(true);  
 }
}

以上です!

2012年2月24日金曜日

R+Ubuntu Server+Apache+PHP

R+俺=無限大の可能性?

Osaka.Rでの刺激を受け、Ubuntu ServerにRをインストールしてみたのはこないだの話。
さてそれでは一体これを使ってどう遊ぶんだ?ということで。

今WordPressってものに興味がありまして。
とりあえず「第2回WordBench大阪」参加してきます。
まだ触ったこともありませんがw

そんでもってWordPressはPHPで実装されているらしいです。
ならばRにアクセスするライブラリをとりあえずPHPで書いてみようかって思いまして。
↓こんなイメージです

はいできた!

で、とりあえずパフォーマンスは置いておくとして、ブラウザからちょっとスクリプト走らせて結果を見られるものができました。

■実行中のスクリーンショット



これ頑張って作り込めばIDEみたいなもの作れるんちゃうかな?

と思ったんですがっ!

後で知ったんですが、RStudioっていう素晴らしいIDEが既にあったようです。

まぁIDEは諦めよう。
二番煎じはなんだかイヤだ。

PHPで書いたし、WordPressと一緒に仲良く動いてくれるんちゃうかな?
WordPressまだよぅ知らんけどw

アイディアとか、ないですか?

作ったものの、活用するアイディアが今のところ思いついていませんw
なんか面白いアイディア、ないでしょうか?

作ったスクリプトを公開するかはちょっと考え中です。
実験してみたいって人は連絡下さい。
スクリプトをブン投げますお渡しします。

Rのほかに、apache2、php5、ghostscriptを使います。
インストールはRが動くUbuntu(※)があれば↓5ステップぐらいでできます。
  1. Install packages(apache2, php5, and ghostscript)
  2. Create app(web) directory
  3. Configure permission and owner to directory
  4. Copy script files
  5. Start http service(and open port no.80)
Rが動くUbuntu Serverは、前に書いたエントリが参考になるかもしれません。
実験なら別にVMware Playerでお使いのPCで仮想マシン作っても良いんじゃないでしょうか?

これ使って携帯電話でR!とかできたら、ワクワクしません?

...しませんよねぇw

2012年2月22日水曜日

R+Ubuntu Server

R・中田・雄一郎

↑のタイトルに全く意味はありません。
ただ思いついたことを垂れ流しただけです。

Osaka.Rでの刺激を受け、Ubuntu ServerにRをインストールしてみました。
実験環境なんで無茶苦茶やっても大丈夫ですw
マシンVMware Player 4.0.2
OSUbuntu 11.10 Server x64
コスト¥0+やる気

ホントはね、EC2とかで実験するとまた勉強になるかもなんやけどね。
ちょっと今ケチンボな気分なのw

1.リポジトリ追加

Ubuntu Serverのインストールは完了しているものとします。
VMware Playerならサクっとインストールできるし!
まずはaptでインストールするパッケージのあるサーバをリポジトリに追加せねばなりません。
「/etc/apt/sources.list」の最後に一行加えるだけでいいんやけど、管理上別のファイルのほうが良いと思う。
なんかカッコええし。
というわけで、まずはファイルを以下のコマンドで一つ作成。
# "oneric"は下の注釈を参考にしながらOSのバージョンによって書き換え
$ printf 'deb http://essrc.hyogo-u.ac.jp/cran/bin/linux/ubuntu oneiric/ \n' | sudo tee /etc/apt/sources.list.d/cran.list

※「printf 'deb...」のところ
上記コマンドの"oneiric"って書いてあるのは、Ubuntuのバージョンによって変更してください。
ウチではUbuntu11.10なので"oneiric"です。
他のバージョン使ってる人は↓見て書き換えなされ。
deb http://essrc.hyogo-u.ac.jp/cran/bin/linux/ubuntu natty/    # 11.04
deb http://essrc.hyogo-u.ac.jp/cran/bin/linux/ubuntu maverick/ # 10.10
deb http://essrc.hyogo-u.ac.jp/cran/bin/linux/ubuntu lucid/    # 10.04 LTS
deb http://essrc.hyogo-u.ac.jp/cran/bin/linux/ubuntu hardy/    # 8.04 LTS
deb http://essrc.hyogo-u.ac.jp/cran/bin/linux/ubuntu dapper/   # 6.06 LTS

※サーバはミラーリストから「http://essrc.hyogo-u.ac.jp/cran/」を選びました。
単純に兵庫県はウチから近いからですw

2.CRANサーバの鍵をインストール

以下のように鍵をダウンロードしてインストールします。
$ gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9
$ gpg -a --export E084DAB9 | sudo apt-key add -

※「gpg --keyserver...」のところの「E084DAB9」について
http://essrc.hyogo-u.ac.jp/cran/bin/linux/ubuntu/README
↑から辿ると、2015-10-18までこのキー(E084DAB9)でいけるらしい。
まぁそれまでに変更されたら知らんです。
Couldn't be verifiedが出た場合は鍵の更新をしようねってお話です。

鍵をインストールしたら、忘れずに以下のコマンドでパッケージリストを更新しときます。
$ sudo apt-get update

3.Rをインストール!

↓のコマンド叩いて終わりですw
$ sudo apt-get -y install r-base-dev

インストールできたら、以下のコマンドでRの起動ができますよ!
$ R

フォントぅっ!!

まず何しよっかなって感じですが、Osaka.Rでちょっと疑問に思っていたフォントについて調べてみました。
…が、挫折しましたw(早
あきらめではない。見切りなのだよ。(何

まぁ結局familyに日本語系のフォント指定してPDF作って、ghostscript通して作ったラスタイメージに別に不満はありませんでしたよってお話。

・ぉコード例(Encoding: UTF-8)
par(family = "Japan1GothicBBB")
par(mar = c(5, 5, 5, 5))
plot(
 rnorm(100,-10,10),
 type="l",
 main = "タイトルぅ!乱数っ!!", cex.main = 2,
 xlab = "X軸に意味は無い", ylab = "Y軸など飾り", cex.lab = 2)

ここいらで今回は力尽きましたとさw

2012年2月21日火曜日

Osaka.R #7

日時:2012/02/12 13:30~18:30

遅くなりましたが、参加してきましたので簡単にレポート、というかまぁいつもの感想です。
毎日コツコツちょっよずつ書いてるのですよ!

会場の阪大、自宅から超近いんで油断してたら遅刻しそうになって車飛ばして行きました。
…が、開始時間を30分間違えていてちょっと時間つぶしていたのは内緒ですw

自己紹介

参加者が一様に自己紹介を行うという…
色々な勉強会がありましたが、こういうのは初めてでした。
学生や院生や教員、教授だったりと、大学関係者が多い感じでした。
サラリーマンってのはそんなおりません。若干アウェーだけど気にしない。

入門者講習

主催者「@phosphor_m」氏自らの発表です。

初心者も安心の、インストール&実際に触ってみよう講座です。

インストールできる環境はWin & Mac & Linuxと充実!
PC持って行きませんでしたが、他の参加者の習熟度具合や環境がちょっと見れて逆に良かったかもしれません。
一番後ろからジロジロ見てましたw

RはApacheなんかと組み合わせて面白いことできないかなーって軽い気持ちで勉強会に参加したので、個人的にはLinuxでのインストールとか気になりました。

統計の勉強とか1ミリたりともしたこと無かったので、そこに触れる話題には全く付いていけませんでしたが、ライブラリの開発の部分がすごく魅力的でした。
あと、Rのスクリプトの配列?っていうかコレクションかな?のインデックスって1から始まるんですって!VBみたいやねw
スクリプトを見ていて、「R言語」?はオブジェクト指向言語と関数型言語の両方を特徴を持っているように見受けられた。
なんかちょっと他の「プログラミング言語」とはちょっと違ったイメージです。

主催のススメ:Nagoya.Rの発足から引退まで&フォントのオハナシ

発表者は「@sakaue」氏。

勉強会なんかの主催はどんどんやったほうがいいよっていうメッセージから。
うん。言えてる。確かに。
チャンスを掴もうぜ!若人よ!って感じですかw

あと、Rでプロットするグラフなんかで使うフォントの変更方法について。
っていうかWindowsとMacでフォント変更の関数が違うんやねwマジっすかw
Linuxではどうなんやろね?ってのが気になるので、後で調べてみよう。

WindowsのMS系フォントではアンチエイリアスが効かないんできちゃないーって言ってはりました。
あとフォントきれいだからMac買え。阿呆。とも(←言ってない

そう、MS系フォントは小さいとビットマップフォントになるんです。
たしか16ポイントくらいまではビットマップフォントやったっけな??
XPあたりで搭載されたメイリオフォントを使えば少し綺麗。等幅やけどねw

Rzパッケージの紹介

主催者「@phosphor_m」氏再登場です!

Rでは「パッケージ」って呼ばれているライブラリを自作できます。
主催者自ら製作した「Rz」っていうパッケージの紹介でした。
っていうかRってGUIのフォーム?的なモノも作れるんや?ほほう。
SPSSでは簡単にできるけど、RではメンドイようなことをGUIで簡単にポチポチっと操作できるパッケージらしいです。
しかしSPSSとはいったいどのような味がするのだ?というレベルの俺には利点があまりわかりませんでした。すんません。
フォームエディタだの高機能なIDEとかは存在するんだろうか?
でなければ、まぁまぁメンドぅーんなコーディングしてそうやなぁって思ったり。でした。

Rでテキストマイニングをする前に

発表者は「@langstat」氏。

データを機械に通す前にそのデータ自身をキレイな形にしておきなさいって話です。
余分なものは取り除いて、ダブってるものは統合して…
全く地味で目立たない作業かもしれないけど、とっても大事。

ホントそのとおりだと思います!

統計だとかもう関係なくて、こういうのを面倒くさがって疎かにしてしまうことへの危険性について、声を大にして警告したい!
ニュースサイト(っていうか2chとか)でチラ見した内容を誇大妄想的に語るおっちゃん!
どこかのサイトで拾ってきたコード例をそのまま実務アプリにコピペしてろくにテストもしないエンジニア!!!

自分の思うものと一致しているか、妥当性を検討したか?
間違いが混じりこんでいないか確認したか?
いらないものが混じりこんでいないか?っていうか全部いらないものじゃないか?
チームメンバーの偉大なる努力の歯車を再開発していないか!?

インターネットが当たり前、情報のコピペが簡単にできる現状、その情報にゴミが沢山紛れていると考えてほしい。
こういったゴミを丹念に取り除いて磨き上げた情報の珠玉を作り出す作業はとっても大事だと。

俺はこうしてすっかり感化されてしまいましたとさw

Google AnalyticsとRを使ったアクセスログの主成分分析

発表者は「@seisumi」氏。

実はアジェンダを見ていて一番気になっていた発表でした。
moodleでとあるサイトを構築し、そのアクセスログをGoogle AnalyticsにかけてやってRでデータマイニングしてやったんだぜって内容です。俺は昔社員研修用にmoodleでeラーニングを構築しようとして放り出した人ですwwあれから転職してしばらく経ったことだし、もう一度手を染めたいなと、「moodle」って単語を聞かされて刺激を受けました。

seisumiさんのキャラクターにもう首ったけだったんですが、興奮はやや抑え目にワクワクして聞いてました。

が、正直やっぱりデータマイニングの部分は知識がゼロなんでさっぱりでした。
それ以外の内容については、耳で聞いていて、目で見ていてすごくわかりやすい発表で俺は好きです。
思わずコクります。

個人的にはログをどのように整形して、どのようにRに流し込んでやったのかなーなんて、実際の手順の部分が気になりました。
最終的にプロットに落とし込むまでにどうデータを料理してやろうかなーって考えるのに手間がかかる感じなんでしょうか。
一つ前の発表の、「データの整形」って部分が非常に大切だってことが再認識させられます。
あとはどの情報が必要で、いらないのか、経験とデータに対しての十分な理解が必要なんだなと、データマイニングの奥深さが垣間見えました。

Rで方言のネットワーク分析

発表者は「@aonoa732384」嬢。
まずは一言。美人でした。
見たい人は勉強会に参加しなはれw

内容としてはオンラインのフリーのデータ(「日本語情報資料館」より)をターゲットにしてデータマイニング、プロットを作るデモでした。
っていうか「めばちこ」にそんなに沢山の言い方があるのかとちょっと驚きました。

スクリプトのことを「おまじない」って呼んでましたので、我々プログラミングをする人々は「まじない師」と呼ぶのがいいんだと思います。

それはともかく、実際に行った作業をスライド上でキレイに可視化、スクリプトコードも短めにまとめてあってすごい聞きやすかったです。
で、肝心の「ネットワーク分析」ですが、これ実は何のことかわからなくて、EthernetやWebやらの用語の「ネットワーク」をイメージしていました。
ぜんぜんちゃいましたw

いや、ネットワークが何らかのリレーションを持った集合体だと考えるならば、意味的にはつながるのかもしれません。
分析結果が何らかのリレーションを持つものとして、その関係性?強度?そのあたりを可視化するのがネットワーク分析なんでしょうか?
ぜんぜんわかりませんw
ググレカスって感じですよね。わかります。


まとめー!

Rへの興味は、とある目的のためインターネットからクロールしたデータをRを使って分析し、結果を利用してWebサービスを構築できないか、といったところが発端でした。
しかし勉強会に参加してみて、統計学や言語学なんかへの造詣も少なからず必要ではないかと、またその奥深さの一端に触れて少し二の足を踏んでいる今です。

しかし、目的があればそれを実現するためにはどのようなステップを踏めばいいのか考えて一つずつ達成していく。
このステップのアイディア引き出しに一つ「R」が加わったのは大きな成果だったと言えます。
あとは自分の得意分野とRとをどう結びつけられるかが鍵だろう、そのように思います。

それでは、ここまでっ!