24 Nov 2012, 05:56

WindowsでVMware Player上のUbuntuを動かしてみたメモ

Windows 7 64bit環境で、VMwareからUbuntus(ウブンツ)を立ちあげてみたので、
どんな感じかメモしとく。

Hello Ubuntu

image

インストール環境

  • Windows 7 64bit (ホストOS)
  • Intel Core i5
  • メモリ 4GB

インストールするもの

  • VMware Player 5.0.1
  • Ubuntu 12.10 (ゲストOS)

VMware Playerインストール手順

VMware Playerを使うと、1台のPCで複数OSを実行できる。
つまり、Windows を実行しつつ、Linuxが使える。しかも、無料。

VMware Player for Windows 32-bit and 64-bitをダウンロードする。 
http://www.vmware.com/go/get-player-jp

あとは、ダウンロードした実行ファイルを使ってインストール。
(VMware-player-5.0.1-894247.exe)ここまでは、簡単。

image_thumb4

ubuntuのインストール手順

次は、Linux OSである、Ubuntuを入れる。

Ubuntuのダウンロード

VMware PlayerでLinux OSを実行するには、ISOイメージファイルが必要となる。
Ubuntsuの日本コミュニティのページからダウンロードできる。http://www.ubuntulinux.jp/

[Ubuntu Desktop 日本語 Remix CDのダウンロード]を選択し、最新版を落とす。
(ubuntu-ja-12.10-desktop-i386.iso)

Ubuntuのインストール

VMware Playerを起動して、[新規仮想マシンの作成]を選択。
[あとでOSをインストール]を選択。

image

Linuxを選択。
つづいて、Ubuntu選択。(ISOが32bitなので、32bitを選択)

image

仮想マシンの設定で[CD/DVD]を選択。
デバイスのステータスは[起動時に接続]を選択する。
[接続]では、さっき落としたISOイメージファイルを選ぶ。

image

OKを押すと、Ubuntuが起動する。
VMware Toolのインストールを聞いてきたりするが、後回しで。

image

Ubuntuのインストールを選択。

image

特に、チェックをいれずに次へ。

image

ディスクを削除してUbuntuをインストールを選択。

image

インストールが終わったら[再起動]。
再起動後にUbuntuにご対面  \(^0^)

image

21 Nov 2012, 23:05

Java JDK インストール方法まとめ(Windows)

JavaをWindowsPCにインストールをしたので、手順メモ。

JDKのダウンロード・インストール

JDKとは

Java Development Kitの略。
Javaでプログラミングする際に必要なツールがセットになったもの。

(コンパイラやライブラリ、java仮想マシンなど)

ちなみに、JREはJava Runtime Editonの略で、Javaを動作させるためのツール。

というわけで、JAVA開発をするには、JDKが必要となる。

JDKのダウンロード

OracleのHPへアクセスして、JDKをダウンロードする。

http://www.oracle.com/index.html

上のツールバーから[Downloads]を選択。

(ここから直接飛んでもよい)

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Java JDKの種類

Java JDKには以下の種類がある。

  • Java SE 一般的開発向け(Java Standard Edition)
  • Java EE  大規模開発向け(Java Enterprise Edition)
  • Java ME  モバイル開発向け(Java Micro Edition)

初めの導入なので、Java SEを入れるのがよい。

サイトから自分の開発環境にあったものをダウンロードする。

(ここではWindows 64bit-jdk-7u9-windows-x64.exe)

ダウンロードした jdk-7u9-windows-x64.exeを実行して、インストール。

Javaの環境変数を通す

インストールしたフォルダのbin配下に、java.exeとjavac.exeができる。

これを実行するためには、

“C:\Program Files\Java\jdk1.7.0_09\bin\java.exe”

とコマンドプロンプトから打ち込めばよいが、これだと大変。

なので、環境変数を設定することで、これを省略する。

[コントロールバネル] > [システム] > [システムの詳細設定] > [環境変数]を選択。

image

下段のシステムの環境変数の中からPathを選択して、[編集]を選択。

image

すでに入っている値の最後に”;”をつけてから、パスを追加する。

C:\Program Files\Java\jdk1.7.0_09\bin

コマンドプロンプトを開いて、以下を入力してJavaのバージョンがされればOK.

java 窶砺ersion

C:>java -version

java version “1.7.0_09”

Java™ SE Runtime Environment (build 1.7.0_09-b05)

Java HotSpot™ 64-Bit Server VM (build 23.5-b02, mixed mode)

Hello Worldしてみる

お決まりのHello Worldをしてみる。

サンプルプログラム作成

まずは、メモ帳でプログラムを作成。ファイル名は sample.javaで保存。

(拡張子を.javaとする)

[java]

public class sample {

public static void main(String[] args) {

System.out.println(“Hello World!!”);

}

}

[/java]

javacでコンパイル

コマンドプロンプトを開き、以下を入力。

javac sample.java

javacコマンドによって、プログラムをコンパイルする。

sample.classというファイルが生成される。

javaで実行

コマンドプロンプトで”java sample” と入力。

Hello World!と表示されれば成功。

C:\temp>java sample

Hello World!!

JavaをWindowsPCにインストールをしたので、手順メモ。

JDKのダウンロード・インストール

JDKとは

Java Development Kitの略。
Javaでプログラミングする際に必要なツールがセットになったもの。

(コンパイラやライブラリ、java仮想マシンなど)

ちなみに、JREはJava Runtime Editonの略で、Javaを動作させるためのツール。

というわけで、JAVA開発をするには、JDKが必要となる。

JDKのダウンロード

OracleのHPへアクセスして、JDKをダウンロードする。

http://www.oracle.com/index.html

上のツールバーから[Downloads]を選択。

(ここから直接飛んでもよい)

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Java JDKの種類

Java JDKには以下の種類がある。

  • Java SEツꀀ 一般的開発向け(Java Standard Edition)
  • Java EEツꀀ 大規模開発向け(Java Enterprise Edition)
  • Java MEツꀀ モバイル開発向け(Java Micro Edition)

初めの導入なので、Java SEを入れるのがよい。

サイトから自分の開発環境にあったものをダウンロードする。

(ここではWindows 64bitツꀀ jdk-7u9-windows-x64.exe)

ダウンロードした jdk-7u9-windows-x64.exeを実行して、インストール。

Javaの環境変数を通す

インストールしたフォルダのbin配下に、java.exeとjavac.exeができる。

これを実行するためには、

“C:\Program Files\Java\jdk1.7.0_09\bin\java.exe”

とコマンドプロンプトから打ち込めばよいが、これだと大変。

なので、環境変数を設定することで、これを省略する。

[コントロールバネル] > [システム] > [システムの詳細設定] > [環境変数]を選択。

image

下段のシステムの環境変数の中からPathを選択して、[編集]を選択。

image

すでに入っている値の最後に”;”をつけてから、パスを追加する。

C:\Program Files\Java\jdk1.7.0_09\bin

コマンドプロンプトを開いて、以下を入力してJavaのバージョンがされればOK.

java 窶砺ersion

C:>java -version

java version “1.7.0_09”

Java™ SE Runtime Environment (build 1.7.0_09-b05)

Java HotSpot™ 64-Bit Server VM (build 23.5-b02, mixed mode)

Hello Worldしてみる

お決まりのHello Worldをしてみる。

サンプルプログラム作成

まずは、メモ帳でプログラムを作成。ファイル名は sample.javaで保存。

(拡張子を.javaとする)

[java]

public class sample {

public static void main(String[] args) {

System.out.println(“Hello World!!”);

}

}

[/java]

javacでコンパイル

コマンドプロンプトを開き、以下を入力。

javac sample.java

javacコマンドによって、プログラムをコンパイルする。

sample.classというファイルが生成される。

javaで実行

コマンドプロンプトで”java sample” と入力。

Hello World!と表示されれば成功。

C:\temp>java sample

Hello World!!

21 Nov 2012, 11:57

TopCoder用プラグイン EclipseCoderを試す

本屋でTopCoder用の本を購入して依頼、毎日コツコツと問題を解いている。

Eclipse用のTopCoderプラグインである『EclipseCoder』を試してみた。
公式URL:
http://fornwall.net/eclipsecoder/

EclipseCoderのインストール

ダウンロードは、ツールバーの
[ヘルプ] > [新規ソフトウェアのインストール] から。
作業対象に以下のURLを貼り付ける。
http://fornwall.net/eclipsecoder/

  • EclipseCoder Core
  • EclipseCoder Problem Archive
  • EclipseCoder (好きな言語) Support

を選択してダウンロードとインストール。
言語は JAVA, C++ , Pythonがあるようだ。ここでは、C++を選択。

image

EclipseCoderの使い方

ツールバーの [ウィンドウ] > [設定] > [EclipseCoder]から設定画面を開き、
Username/Passwordを入れる。
(入れなくても、ログイン時に入力すれば大丈夫だけど)

image

[ウィンドウ] > [ビューを開く]から、EclipseCoderのビューを選択。
開いたビューの右上の赤いマークをクリックすると、TopCoderが開く。

temp

問題を開いて、言語[C++]を選択すると、自動的にEclipse上で、
ヘッダファイルとテストファイルが生成される。

自動的にできたプロジェクトのオプションから
[C/C++ビルド] > [ツール・チェーン・エディタ]を選択して、自分のツール・チェーンを選択。(Default は Microsoft Visual C++]なので [Cygwin GCC]に変更している)

プロジェクトをビルドしてバイナリを実行してみると、コンソールにテスト失敗の失敗が表示される。

Test case 0 PASSED!
Test case 1 FAILED! Expected: <2> but was: <0>
Test case 2 FAILED! Expected: <4> but was: <0>
Test case 3 FAILED! Expected: <8> but was: <0>
Test case 4 FAILED! Expected: <6> but was: <0>

あとは、ヘッダファイルを編集して、問題を解くのみ。

感想

テストコードを自動生成してくれるところが秀逸だと思う。
Eclipseが好きな自分としては、このプラグインは素晴らしい。
問題がスラスラ解けたら、もっと素晴らしい。

18 Nov 2012, 10:17

Youtube動画で連続リピート再生する方法を調べてみた

好きな曲を見つけると、何度でも何度でも、その部分だけを聴いていたい性分である。

作業用のBGMはYoutubeから持ってくることが多いので、Youtubeの曲を連続再生できたら便利だなと思い、方法を調べてみたので、メモメモ。

youtuberepeatと入力するだけで、簡単リピート

連続再生は意外に簡単。
YoutubeのURL(www.youtube.com)を(www.youtuberepeat.com)へ変更するだけ。

image

そうすると、LISTEN on REPEATというサイトへ飛んで、そこでYoutube動画を連続再生してくれる。便利なサービス!

image

例:repeat追加

URL変更前:
http://www.youtube.com/watch?feature=fvwp&v=03JTfvK2o9c&NR=1

URL変更後:
http://www.youtuberepeat.com/watch?feature=fvwp&v=03JTfvK2o9c&NR=1

18 Nov 2012, 07:50

WordでEmacsキーバインドをしてみたメモ

Wordでも、Emacsのキーバインドができるらしいので、メモしとく。
以下、Word2010の環境で。多分他のバージョンでも同機能はある。

以下の手順で設定画面へ。
[ファイル] > [オプション] > [リボンのユーザ設定] > [ユーザ設定]

右側に表示されているコマンドに対して、
[割り当てるキーを押してください]からショートカットを入力。

image

基本的なコマンドとショートカットの対応表

コマンド ショートカット 意味
StartOfLine Ctrl+A 行頭へ移動
EndOfLine Ctrl+E 行末へ移動
CharRight Ctrl+F 次へ移動
CharLeft Ctrl+B 前へ移動
LineUp Ctrl+P 上へ移動
LineDown Ctrl+N 下へ移動
EditClear Ctrl+D 一文字削除
EditCut Ctrl+W 切り取り
EndOfLineExtend Ctrl+K 行末までを選択
EditPaste Ctrl+Y 貼り付け

小さなライフハック。

28 Oct 2012, 03:50

EvernoteでEmacsを使う(emacs-evernote-mode)

Evernote、いつも常用しているけれども、なにしろ

エディタが使いにくい!

毎日Emacsを使っている自分としては、是非Emacsの入力がしたいと思った。

毎度、Google先生にお伺いをたてたら、こんなツールを見つけたので、使ってみた。

その名も、emacs-evernote-mode(そのままの名前だぁ)

emacs-evernote-modeのダウンロードとインストール方法

Windowsユーザなので、CygwinでEmacsを利用しています。

なので、ここではCygwinでのインストール方法で。

ダウンロードは以下のサイトから

emacs-evernote-mode

インストール方法と使い方の日本語訳は、以下のサイトから見ることができる(感謝)

http://emacs-evernote-mode.googlecode.com/svn/branches/0_21/doc/readme_ja.html

解凍したら、適当な場所において、おいたディレクトリで以下のコマンドを実行。

Rubyスクリプトインストール

[text]

ruby ruby/setup.rb

[/text]

ただし、注意が必要だ。

evernote-mode-0_41.zip では、バグが2つくらいあった。

下に書いたエラーメッセージがでたときは、Rubyスクリプトを手動で修正する必要がある。

evernote-mode.el をロードパスにコピーする

[text]

cp evernote-mode.el (load-path)

[/text]

(load-pathってなんだよって人は以下のサイト参照)

http://d.hatena.ne.jp/sandai/20120304/p2

evernote-mode設定を.emacs に追記

.emacsでもいいけれでも、自分の場合は~/.emacs.d/init.elファイルに書いた。

[text]

(add-to-list ‘load-path “”)

(require ‘evernote-mode)

(global-set-key “\C-cec” ‘evernote-create-note)

(global-set-key “\C-ceo” ‘evernote-open-note)

(global-set-key “\C-ces” ‘evernote-search-notes)

(global-set-key “\C-ceS” ‘evernote-do-saved-search)

(global-set-key “\C-cew” ‘evernote-write-note)

(global-set-key “\C-cep” ‘evernote-post-region)

(global-set-key “\C-ceb” ‘evernote-browser)

(setq evernote-username “USERNAME”) ; Evernote アカウント名

[/text]

使い方

動画で説明。

[http://www.youtube.com/embed/Z6yCFAcOyh0]

evernote-modeのバグを手動修正しよう

evernote-mode-0_41.zip では、Cygwin環境で使おうとすると、バグがあるっぽい。

そのままでは、以下のエラーが出て使えなかった。

以下のサイトを参考にして、直接Rubyソースを修正し、再度 ruby setup.rbを実行するとできた。

バグ修正(その1)

error in process sentinel: enclient.rb exited abnormally with code 1

-e:1: syntax error, unexpected tINTEGER, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END

:1: Use RbConfig instead of obsolete and deprecated Config.

http://code.google.com/p/emacs-evernote-mode/source/detail?r=198

バグ修正(その2)

SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A

http://code.google.com/p/emacs-evernote-mode/issues/detail?id=16

http://code.google.com/p/emacs-evernote-mode/issues/detail?id=17

28 Oct 2012, 02:26

プログラミングについて本気出して考えてみた

プログラミングに定義をあたえてみよう

自分の仕事は、プログラマだ。

そして、この仕事はどのように定義できるのか、考えてみた。

人生の定義は、幸福の定義は、仕事の定義は・・・
人それぞれで解釈が違う言葉について、自分は個人的に言葉の定義をしている。

ここでの定義は、一般的な言葉で概念を捉えようとしているのではなくて、あくまで個人的な定義だ。定義を与えることによって、安心感を得ることができる。

プログラミングの目的は、自動化による労働からの解放

自分は、プログラミングを自動化と定義する。

そしてプログラミングの目的は、

コンピュータに働かせることで、人間が楽をする

ためだと決める。

『決める』ということが、大事なキーワードだ。正しい定義など、存在しないのだから。

コンピュータは、計算機として生まれたわけだが(スパコンもそうだが)、
それは、人間の計算を自動化することが目的だ。人間がすれば、一生かかっても終わらない計算を、コンピュータを働かせることで、寝ている間に計算させておく。

それが転じて、人間がする作業をあらかじめブログラミングしておき、コンピュータに実行させるようになる。プログラミングとは、人間の作業を機械に実行させるためにある。

プログラマとは、人間を日々の労働から解放するもの、と定義する。

革命は、人間を労働から解放するために起るのだ

産業革命によって機械が発明されて、人間は楽ができるようになった。

洗濯だって、洗濯機のスイッチを押せば勝手にやってくれるし、
料理だって、薪を拾ってきて、火を起こすこともない。

IT革命によってコンピュータが生まれた。インターネットが発達した。
人間は楽ができるようになった。

図書館に行かなくても、パンツ一丁で世界中の情報を収集できる。
お金を持ち歩かなくても、電子決済で買い物ができる。

世の中は、文明は、人間が楽できる方向へ、日々進化している。

はたして、なぜ自分の人生は楽ができないのだろうか

しかし、自分の現状はどうかというと、人間が働き、一向に仕事は楽にならない。
毎日残業は続き、体調を崩している。腰が痛い。平日のリフレッシュは100%諦めている。
これは、今決めた哲学からすると、根本からして目的と矛盾している。

開発手法や開発環境へこだわることは、本当に瑣末なことだと感じる。
効率化やライフハックは、それ自体が目的であってはいけないと思った。
(困ったことに、効率化できると無上の喜びを感じるのだが)

それは、このブログのテーマである、ライフハックを否定することになるけれども。

プログラミングをすることで、労働から開放されなければならない。
そのためには、自分が働くのではなくて、プログラムに働かせなければならない。

22 Oct 2012, 07:30

KinectとMMDを組み合わせて落語をしてみた(その2)

前回の記事に引き続き、Kinect for WindowsとMMDを組み合わせて、落語をしてみたので、アップロードします。

KinectとMMDを使って落語をしてみた。

MMD古典落語3品

寿限無

[http://www.youtube.com/embed/5JpCXKQzJsg]

 

がまの油

[http://www.youtube.com/embed/sVJ5OpWfb8k]

 

あたま山

[http://www.youtube.com/embed/MFW_eOixg_Q]

 

Kinect落語の課題

技術的なところは前回となにもかわっていないけれども、いくつか課題に気づいた。

Kinect で記録できる時間が7分くらいしかない

MikuMikuMovingでモーションを記録していると、7分くらいモーションを記録したところで、記録が止まっていることに気づく。(そのせいで、何度撮り直したことか・・・)

解決策が是非欲しいところ。Youtubeへのアップロード時間も考えると、長い話の場合は、分割したほうがいいのかな?

リップシンクは手動での記録しかみつからない

自分のリップシンクの理想では、音声に合わせて口パクしてくれるソフトが欲しかったが、そのようなソフトは見つからなかった。

手動で、タイミングを教えてあげる必要がある。

それだと、ちょっと時間がかかりすぎるので、挫折。

手動でのリップシンク補助ソフトには以下のようなものがあった。

21 Oct 2012, 13:25

Eclipse CDT リファクタリング機能について調べてみた。

偶然、以下のリンクの動画を見つけて、ものすごくカッコ良かった。

実践!リファクタリング – WEB+DB PRESS Vol.37

ほぼパクリだけれども、自分でもEclipse CDT版で紹介動画を作ってみた。
ソースとかは思いつきなので、参考にならないけれども。

[http://www.youtube.com/embed/huxHVMcMfR0]

 

Eclipse CDTのリファクタリング機能はJDTに比べてショボかった

Eclipse CDTのリファクタリング機能はJDTに比べて、思ったよりもショボかった。

  • インライン化の機能はない。
  • 関数の抽出でも、重複コードを見つけてくれない。
  • 関数の移動ができない

。。などなど。

できることは、以下の通り。

  • 名前変更
  • ローカル変数の抽出
  • 定数の抽出
  • 関数の抽出
  • Toggle Function

開発元のサイト(http://r2.ifs.hsr.ch/cdtrefactoring)をのぞくと、今後機能追加がされそうな雰囲気。

CDT リファクタリング機能の簡単な紹介

リファクタリング機能の簡単な説明。

実際にC言語でどのようなリファクタリングが有効かというのは、以下のサイトが非常に参考になった。リファクタリングの経典、マーチン・ファウラーの『リファクタリング』の中で、C言語で使えるものだけを選択して紹介している。

Refactoring C-code

名前変更(Alt + Shift + R)

同一ファイル名の変数名や関数名を変更できる。
個人的には、とてもよく使う。

ただし、ファイルをまたいで置換は失敗する。
この場合は、検索&置換機能で変更したほうがよい。

ローカル変数の抽出(Alt +Shift + L)

選択した部分をローカル変数に抽出することができる。
長い条件文を簡単にするときなどや、わかりにくい式に簡単な名前を与えるときに使用する。

実行すると、選択した行のすぐ上に、型つきで変数の定義と代入文があらわれる。

int sample = ( 選択した式)
if(sample(選択した式) {
}

個人的には、この逆の変数のインライン化とセットでできればいいのにと思う。

定数の抽出( Alt + C)

数字や文字列など、むき出しな状態でコードに書いてあるときは、定数の抽出を使う。
実行すると、ファイルの先頭に、定数が 『static const 』つきで宣言される。

関数の抽出( Alt + Shift  + M)

関数の抽出もよく使う。

関数として抽出したい部分を選択して実行すると、関数の頭に選択した部分を含む関数が生成される。選択した部分にreturn文が含まれると動作しないので注意が必要。また、選択した部分に含まれる変数を自動的に検出して、仮引数とする。

これはJDTのように重複する部分を自動で検出して置換してはくれないのが悲しい。

Toggle Function( Alt + Shift + T)

指定された関数をソースファイルからヘッダファイルへ移動する。
関数をインライン関数に変更したい場合に使う機能。

参考リンク

21 Oct 2012, 12:35

『cdt-tests-runner』GoogleTestの結果をEclipse CDTから見るプラグイン

自分は、Eclipse CDTからGoogleTestを利用している。
Eclipse CDTから GoogleTestの結果を見るプラグインを見つけたので、紹介。

[http://www.youtube.com/embed/vObiKSSNJEY]

 

JUnit ViewerのCDT版『cdt-tests-runner』

プラグインの名前は『cdt-tests-runner』。公式サイトは以下。

https://github.com/xgsa/cdt-tests-runner/wiki/Tutorial

GoogleTestだけでなく、Boost Test, Qt Testにも対応している。

Eclipse CDT 8.1 からは、デフォルトで搭載されているらしい。
が、自分のCDT 8.1には入っていなかったので、手動でダウンロードした。
以下のパスを[ヘルプ] > [新規ソフトウェアのインストール] > [作業対象] に貼り付けて、C/C++ Test Runnerをインストール。

https://raw.github.com/xgsa/cdt-tests-runner/tests_runner_demo/testsrunner/org.eclipse.cdt.testsrunner-updatesite/site.xml

image

cdt-tests-runnerの設定方法

インストールできたら、GoogleTestを走らせたいプロジェクトの[実行の構成]を見る。
C/C++ Unitという新たな項目を選択して、実行構成を新規作成。

GoogleTestを利用するためには、[C/C++ Testing]タブを開いて、Tests RunnerでGoogle Tests Runnerを選択する。

image

[実行]を選択すると、テストが走り、実行結果が表示される。

実行結果

image

失敗したテストをクリックすると、そのテストまでジャンプできるところが嬉しい。
これはEmacsではできるよと書いてあったが、Eclipseでもしたかった。

Emacs で直接,失敗した行に移動するにはどうすればよいでしょうか? 窶錀 GoogleTests

Eclipse のプラグインでなければ、Guiterもあるよ

Eclipseのプラグインにこだわりがなかったり、Eclipseユーザでなければ、『gtest-gbar(Guiter)』というツールをつかうという選択肢もある。

http://code.google.com/p/gtest-gbar/

これならば、Visual Studioユーザでもレッド・グリーンが楽しめる。

今までは、自分もこっちを利用していた。
エラーしたときのメッセージ表示の欄が広くて見やすいので、またこっちに戻るかも。