フォースは覚醒しませんでした。

4/28日からStar Warsフォースの覚醒がBlu-ray/DVD発売・レンタル開始となりましたので早速借り視聴しました。
劇場公開時はなんとも映画館に足を運ぶ気力が起きず今回が初見となります。

  • 盛大に金をかけたファンムービーだこれは。
  • FN-2187改めフィンは反抗勢力に手をかけるのを何故ためらう。あんた前線部隊に配属されたばかりなの?
  • ブラスターから放たれたエネルギー弾を空中で留めてドヤるのダサいっす。
  • レンさん物にあたりすぎ。思春期か。
  • 随所に過去作の要素が盛り込まれてはいる。
  • 水に溶くとメロンパンみたくなる粉、どこの駄菓子屋に売ってるんです?
  • 重要なブツ持ってるBB-8を差し置いてファーストオーダーからいの一番に逃げるレイとフィン。お前らね・・・。
  • あっさりハン・ソロ帰宅(登場)してきたな。
  • BB-8は人間寄りのキャラ押し出しすぎじゃないですかね。
  • 撃たれて痛がってるチューバッカが萌えポイント。
  • スノーク司令官、とても大きいです・・・。って投影かーい。
  • マズ・カナタは悟ったようなこと言い出してヨーダ的な何かですか?ってか誰やねん。
  • アナキンのもたらしたフォースの調和も長くは持たなかった。選ばれし者の存在価値ってそんな程度かよ。
  • ベンという名前でオビ=ワン想起しちゃうよね。
  • 親子の関係をテーマに据える流れは踏襲されている。
  • 銀河を巻き込むレンの反抗期のお話ですかこれは。
  • 父と再会し素直になるレン。(でもこいつヤル気満々やん。→期待を裏切ることなくヤル。)
  • レンと対決してる時レイが明らかにダークサイドに堕ちてる。
  • 次回作でレンはサイボーグになってるなこれは。そして憧れのベイダーに一歩近づく、と。
  • 誰も知らないはずの引きこもりの居場所を誰が地図に残したんだろうか。
  • 除幕しに一直線に走りだすBB-8そして再起動するR2-D2、きっかけ何なのよ。
  • レイはどうせ奴の娘でしょ。
  • ルークの右手がスケルトンになってるけど。
  • 島に道や階段が整備されて違和感あり。


以上、所見でした。

Visual Studio Code on Ubuntu 14.04

Build 2015

MicrosoftデベロッパーカンファレンスBuild 2015が米国時間4月29日から開催されています。

www.buildwindows.com

Project Spartanとして注目されてきた新Webブラウザーの正式名称「Microsoft Edge」が 発表されたり.Net含むユニバーサル、クロスプラットフォーム化への施策が示されたりと 様々なトピックが公表されています。

Visual Studio Code

その中の一つとしてVisual Studio Codeがリリースされています。Gitでのソースコード 管理やIntellisense、デバッギング機能などを備えた、コード編集にフォーカスした エディターだということです。 Sublime TextやAtom、Bracketsにといったモダン・コード・エディターに加わる形と なるでしょうか。

https://code.visualstudio.com

WindowsはもちろんのことLinuxと Mac OSXをサポートしたクロスプラットフォームな アプリケーションとしてリリースされている点は、Microsoftの目指す方向性を示している のではないでしょうか。

Visual Studio Code on Ubuntu 14.04

イベントでデモされたようですが、試してみます。Ubuntu 14.04の仮想マシンにインストール してみます。

展開 & 実行

ダウンロードされたzipファイルを展開し実行します。

$ unzip -d tmp VSCode-linux-x64.zip
$ ./tmp/Code Person.ts

動きましたね。(当然だ。) f:id:sun-rise:20150430073542p:plain

f:id:sun-rise:20150430080642p:plain

スクリーンショットに撮れなかったのですがIntellisenseも効いていました。 Documentが充実している風なので読んでみましょう。 code.visualstudio.com

軽くメニュー類を見渡して見たのですが、プラグイン拡張機能に当たる項目が 見つかりませんでした。見逃しているのか、まだサポートされていないのか。 また、エディターの分割が垂直方向のみ(?)なのは好みが分かれるかも。 (設定があるのかもしれませんが。)

本格的な移行先の選択肢として、はたまたEmacsVim回帰の通過点として 色々試してみると良いでしょう。

Have a good coding!

卵が先か鶏が先か

「自分は何の為に生まれてきたのか。」という問いかけをすることがある。
理由などない。ただ生まれた。それだけ。

人生を歩むにあたり何かしらの理由付けをするかしないかはその人次第。

流されるように生きたっていいじゃない。
使命を抱いて生きてたっていいじゃない。

無題

スマート○○とかフィットネス・デバイスで生体活動や行動を

数値でトラッキングする。

そのデータはアルゴリズムによって分析され、人間にフィード

バックする形で意思決定にサジェストする。

 

いずれ人間の活動はアルゴリズムによって制御され、デジタル

に管理される存在となる。

そんな未来はあり得るだろうか。

イーロン・マスクスティーヴン・ホーキング人工知能

懸念を示す発言をしているが果たして。

技術系書籍・棚卸し

いつの間にか年が変わった。
棚卸しがてら所有している技術系書籍を羅列する。

ピープルウエア 第2版 ? ヤル気こそプロジェクト成功の鍵

ピープルウエア 第2版 ? ヤル気こそプロジェクト成功の鍵

ゆとりの法則 ? 誰も書かなかったプロジェクト管理の誤解

ゆとりの法則 ? 誰も書かなかったプロジェクト管理の誤解

デスマーチ 第2版 ソフトウエア開発プロジェクトはなぜ混乱するのか

デスマーチ 第2版 ソフトウエア開発プロジェクトはなぜ混乱するのか

Joel on Software

Joel on Software

More Joel on Software

More Joel on Software

達人プログラマー―システム開発の職人から名匠への道

達人プログラマー―システム開発の職人から名匠への道

  • 作者: アンドリューハント,デビッドトーマス,Andrew Hunt,David Thomas,村上雅章
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/11
  • メディア: 単行本
  • 購入: 42人 クリック: 1,099回
  • この商品を含むブログ (348件) を見る
ソフトウェア職人気質―人を育て、システム開発を成功へと導くための重要キーワード (Professional Computing Series)

ソフトウェア職人気質―人を育て、システム開発を成功へと導くための重要キーワード (Professional Computing Series)

  • 作者: ピートマクブリーン,McBreen Pete,村上雅章
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2002/03
  • メディア: 単行本
  • 購入: 4人 クリック: 85回
  • この商品を含むブログ (63件) を見る
情熱プログラマー ソフトウェア開発者の幸せな生き方

情熱プログラマー ソフトウェア開発者の幸せな生き方

プログラマが知るべき97のこと

プログラマが知るべき97のこと

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

ビューティフルコード (THEORY/IN/PRACTICE)

ビューティフルコード (THEORY/IN/PRACTICE)

言語設計者たちが考えること (THEORY/IN/PRACTICE)

言語設計者たちが考えること (THEORY/IN/PRACTICE)

アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣

アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣


コンピュータアーキテクチャのエッセンス (IT Architects Archiveシリーズ)

コンピュータアーキテクチャのエッセンス (IT Architects Archiveシリーズ)

  • 作者: ダグラス・E・カマー,Douglas E. Comer,鈴木貢,中條拓伯,仲谷栄伸,並木美太郎
  • 出版社/メーカー: 翔泳社
  • 発売日: 2007/06/01
  • メディア: 単行本(ソフトカバー)
  • 購入: 2人 クリック: 107回
  • この商品を含むブログ (18件) を見る


ソフトウェアライセンスの基礎知識

ソフトウェアライセンスの基礎知識


ユーザーインタフェースデザインの基礎知識 ~プログラム設計からアプリケーションデザインまで~

ユーザーインタフェースデザインの基礎知識 ~プログラム設計からアプリケーションデザインまで~


インターネットのカタチ―もろさが織り成す粘り強い世界―

インターネットのカタチ―もろさが織り成す粘り強い世界―

小悪魔女子大生のサーバエンジニア日記 ――インターネットやサーバのしくみが楽しくわかる

小悪魔女子大生のサーバエンジニア日記 ――インターネットやサーバのしくみが楽しくわかる

ウェブオペレーション ―サイト運用管理の実践テクニック (THEORY/IN/PRACTICE)

ウェブオペレーション ―サイト運用管理の実践テクニック (THEORY/IN/PRACTICE)

エンジニア実験室 試してわかるWebサービス

エンジニア実験室 試してわかるWebサービス


テストから見えてくる グーグルのソフトウェア開発

テストから見えてくる グーグルのソフトウェア開発


やさしいXML

やさしいXML


Head First JavaScript ―頭とからだで覚えるJavaScriptの基本

Head First JavaScript ―頭とからだで覚えるJavaScriptの基本


増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

Java言語で学ぶリファクタリング入門

Java言語で学ぶリファクタリング入門

リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法

リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法


Java並行処理プログラミング ―その「基盤」と「最新API」を究める―

Java並行処理プログラミング ―その「基盤」と「最新API」を究める―


ガベージコレクションのアルゴリズムと実装

ガベージコレクションのアルゴリズムと実装


入門vi 第6版

入門vi 第6版


初めてのSQL

初めてのSQL

SQLアンチパターン

SQLアンチパターン


プログラミングRuby 第2版 言語編

プログラミングRuby 第2版 言語編

はじめよう Ruby on Rails

はじめよう Ruby on Rails


独習PHP 第2版

独習PHP 第2版




Hadoop 第3版

Hadoop 第3版



グーグル ネット覇者の真実 追われる立場から追う立場へ

グーグル ネット覇者の真実 追われる立場から追う立場へ

DockerオーケストレーションツールFigを試す

DockerのオーケストレーションツールであるFigを試してみます。

Fig開発開発元であるOrchard社は2名のみからなる企業で、Docker社による買収が発表されています。

ちなみにFigはイチジクという意味を持った英単語だそうな。確かにFigサイトにはイチジクの画像が載っています。
(何故にイチジク?)


今回はFigサイトに掲載されているQuick startの手順に沿って、Figを体験してみます。

環境

Figを試すにあたって今回使用した環境は次のとおりです。

Dockerインストール

まず、Figに先立ってDockerをインストールします。
DockerサイトのUbuntu向けインストール方法 Ubuntu - Docker Documentation を参考に実施します。
なお、最新版のDockerをインストールします。

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
$ sudo sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
$ sudo apt-get update
$ sudo apt-get install lxc-docker

バージョン確認

$ sudo docker version
Client version: 1.1.2
Client API version: 1.13
Go version (client): go1.2.1
Git commit (client): d84a070
Server version: 1.1.2
Server API version: 1.13
Go version (server): go1.2.1
Git commit (server): d84a070

Figインストール

次に、Figをインストールします。
Figサイトのインストール方法 Installing Fig "On 64-bit Linux"を参考に実施します。

$ wget -O fig https://github.com/docker/fig/releases/download/0.5.2/linux
$ sudo mv fig /usr/bin/
$ sudo chmod +x /usr/bin/fig

バージョン確認

$ fig --version
fig 0.5.2

試す

ではQuick startを実践してゆきます。

プロジェクトフォルダ作成

Figプロジェクトのフォルダを作成します。

$ mkdir figtest
$ cd figtest
Webアプリの作成

PythonによるWebアプリを作成します。フレームワークFlaskおよびRedisを用いるようです。

from flask import Flask
from redis import Redis
import os
app = Flask(__name__)
redis = Redis(host="redis_1", port=6379)

@app.route('/')
def hello():
    redis.incr('hits')
    return 'Hello World! I have seen %s times.' % redis.get('hits')

if __name__ == "__main__":
    app.run(host="0.0.0.0", debug=True)
依存性定義ファイルの作成

Pythonの依存性定義ファイルrequirements.txtを作成します。

flask
redis
Dockerfileの作成

Webアプリの動作コンテナとするイメージ作成用にDockerfileを作成します。

FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
fig.ymlの作成

Figの肝であるサービス定義fig.ymlを作成します。
このファイルにおいて、各Dockerコンテナのオーケストレーションを定義するわけですね。

web:
  build: .
  command: python app.py
  ports:
   - "5000:5000"
  volumes:
   - .:/code
  links:
   - redis
redis:
  image: redis:latest


以上でファイルの作成は完了です。
ファイル構成は次のようになります。

figtest
 ├ Dockerfile
 ├ app.py
 ├ fig.yml
 └ requirements.txt
サービスの起動

コマンド fig up を実行します。
これによってDockerイメージのpullやイメージのビルド、各コンテナの起動が行われます。

$ sudo fig up
Creating figtest_redis_1...
Pulling image redis:latest...
5cd5c0d9ebfc: Pulling dependent layers
(中略)
Creating figtest_web_1...
Building web...
1c8df2f0c10b: Pulling dependent layers
(中略)
Attaching to figtest_redis_1, figtest_web_1
web_1   |  * Running on http://0.0.0.0:5000/
web_1   |  * Restarting with reloader

どうやら起動した模様。

確認

まずコンテナを一覧表示するコマンドfig psで様子を見てみます。

$ sudo fig ps
     Name            Command      State       Ports      
--------------------------------------------------------
figtest_redis_1   redis-server    Up      6379/tcp       
figtest_web_1     python app.py   Up      5000->5000/tcp

起動および動作してますね。

Webブラウザーから見てみます。
初回
f:id:sun-rise:20140812220613p:plain
2回目以降
f:id:sun-rise:20140812220640p:plain
お、動いてる。

動作確認が終わったのでコンテナを停止します。fig stopコマンドを実行します。

$ sudo fig stop
Stopping figtest_web_1...
Stopping figtest_redis_1...

$ sudo fig ps
     Name            Command      State    Ports 
------------------------------------------------
figtest_redis_1   redis-server    Exit 0         
figtest_web_1     python app.py   Exit 0         

止まりました。

以上、Fig体験記でした。

JenkinsのDockerコンテナの作成

DockerでCentOSベースのJenkinsコンテナを作成しました。

  • ホストOS

CentOS 6.5

cat /etc/redhat-release 
CentOS release 6.5 (Final)
  • Docker 1.0
docker version
Client version: 1.0.0
Client API version: 1.12
Go version (client): go1.2.2
Git commit (client): 63fe64c/1.0.0
Server version: 1.0.0
Server API version: 1.12
Go version (server): go1.2.2
Git commit (server): 63fe64c/1.0.0
  • Dockerfile
FROM centos:latest

## Install core modules.
RUN yum -y install ntp curl && yum -y clean all

## Install Oracle JDK8
RUN curl -LO 'http://download.oracle.com/otn-pub/java/jdk/8u5-b13/jdk-8u5-linux-x64.rpm' -H 'Cookie: oraclelicense=accept-securebackup-cookie' && rpm -i jdk-8u5-linux-x64.rpm && rm jdk-8u5-linux-x64.rpm

## Install jenkins.
RUN curl -o /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo && rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
RUN yum -y install jenkins && yum -y clean all

## Change timezone and synchronize to ntp server.
RUN sed -i -e "s|Europe/London|Asia/Tokyo|g" /etc/sysconfig/clock && mv /etc/localtime /etc/default.localtime && cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && ntpdate ntp.nict.jp

## Start jenkins.
EXPOSE 8080
CMD service jenkins start && sleep 10 && tail -f /var/log/jenkins/jenkins.log

(serviceコマンドでjenkinsを起動し、コンテナもrunし続ける手法は何かないのでしょうか。)


あとは、このDockerfileを使ってイメージの作成とコンテナの起動を行う。

  • イメージの作成

t オプションで指定しているタグ名はお好みで。

docker build -t centos/jenkins:1.0 .
  • コンテナ起動

name オプションで指定しているコンテナ名もお好みで。

docker run -d -p 8080:8080 --name jenkins centos/jenkins:1.0

Webブラウザーからアクセスしてみます。
f:id:sun-rise:20140622111826p:plain
見れました。OK。

「とりあえず動かす」目的でありましたが、本格的に利用する場合は永続化のために
ホストにボリュームをマウントするなどした方がよいのでしょう。