読者です 読者をやめる 読者になる 読者になる

現在聞いているポッドキャスト 2015

現在聞いているポッドキャスト 2015

昨年後半ぐらいからポッドキャストを聞いています。聞く番組が固定化してきたので一旦2015年版として公開します。 面白い番組がありましたら教えてください。

テクノロジー

rebuild.fm

http://rebuild.fm/

定番のテクノロジー系ポッドキャストです。この番組からポッドキャストにはまりました。著名なゲストと最新のテクノロジー系の話を分かりやすく聞くことができます。

wada.fm

http://wada.fm/

ジングルが楽しいテクノロジー系ポッドキャストです。難しい話題でも、とても身近に感じるポッドキャストです。

codelunch.fm

http://codelunch.fm/

プログラマ向けのコアな情報が満載です。直近の二回はTDDで有名な和田さんがゲストで実装時にためになる内容で面白かったです。

WoodStream のデジタル生活

http://windows-podcast.com/podcast/

Microsoft系と言えばこのポッドキャストです。穏やかな雰囲気のなかで最新のMicrosoftの話題が聴けます。

mosaic.fm

http://mozaic.fm/

Javascript の話題を中心にかなりガチなテクノロジーの話題を知ることができます。 特にフロントエンドエンジニアの方は必聴の番組です。

ガジェット

backspace.fm

http://backspace.fm/

二番目に古くから聞いているポッドキャストです。AppleMicrosoft 製品を中心に Web サービスなど多彩な内容になっています。 ゲストの回も面白く刺激を受けるポッドキャストです。

スマートフォン王国

http://smartphoneokoku.net/

スマートフォンに特化したポッドキャストです。沖縄のラジオ局の放送なのですがポッドキャストで聞くことが出来ます。 最新のスマートフォンの情報をゲットするのにはおすすめの番組です。

電器屋walker

http://www.inst-web.com/denkiya_blog/

最近聞き始めたポッドキャストです。主に家電の内容かと思いきやそこにとどまらない内容になっています。

そんないっとだる

http://sonnai.com/dull

こちらも最近聞き始めたポッドキャストです。ガジェットやWEBサービス関係の話題が多いです。

その他

バイリンガルニュース

https://www.facebook.com/BilingualNewsPodcast/

英語の勉強のために聞き始めました。最近は英語よりも話題にしているニュースが面白くてそちらが楽しいです。

主に日本の歴史のことを語るラジオ

http://omoreki2013.seesaa.net/

日本の歴史について語っているポッドキャストです。いろいろな時代のいろろな人物についての話が聞けます。 知らない内容ばかりで面白いです。

宇宙と素粒子の夜

http://cosmo.space-podcast.net/

最近更新されていませんが、宇宙や素粒子の話が聞けます。難しい内容を様々な例で説明してくれます。聞き終わると分かった気になります。 内容が内容だけにかなり眠気がでてきます。安眠用のポッドキャスト評判だったりします。

PHP の文字コード変換

PHP

忘れないように書いておきます。 主に Windows でブラウザ対象ということで、機種依存文字とかはしご高とかをうまく変換するには、

文字コード PHPで利用する文字コード
Shift_JIS SJIS-win
UTF-8 UTF-8
EUC-JP CP51932
ISO-2022-JP ISO-2022-JP-ms

とすると良いようです。とりあえずテストしてみたけど、想定通りに変換されています。

https://gist.github.com/unok/85656d998059433501f0

これ使ってテストしました。

Vagrant を利用した Play! Framework 開発環境の作成

#play_ja scala Play! Framework

Vagrant を利用した Play! Framework 開発環境の作成

Play framework 2.x Scala Advent Calendar 2013 の 9日目の記事です。

チーム開発をしていると、WindowsMac を使って開発をされていて、環境や細かいソフトウェアの違いによって特定の場所でしか発生しないようなバグや、設定の違いによる動作の差異に苦しくことがあります。 そこで、Vagrant を利用して構築した例を紹介します。

作成したファイルは、github に up しています。 https://github.com/unok/vagrant-playframework

Vagrant ってなに?

Vagrant とは、主に仮想環境構築や運用操作を便利にしてくれるアプリケーションです。 設定ファイルに沿った形で仮想環境を構築することが可能です。今回は、VirtualBox を利用した環境構築を行います。

どんな環境ができるの?

今回作成する環境では、以下のことが可能です。

  • CentOS 6.4 x86_64 の環境で Play! Framework が動く仮想環境
  • ローカルファイルの共有
  • 複数の Play! Framework のバージョンが共存できるように、簡単なスクリプトが配置済み

事前準備

VagrantVirtualBox の最新をインストールしてください。 Vagrant は、サイトからダウンロードしてインストールしてください。 Windows は、chocolately (http://chocolatey.org/) を使うと便利です。 VagrantVirtualBox がアップデートされると時々動かなくなることがありますので、その時は twitter 等を検索してみてください。

構築

% git clone https://github.com/unok/vagrant-playframework.git
% cd vagrant-playframework/vagrant
% vagrant up

以上で構築は終わりです。 最新の状態だと VirtualBox の Guest Tools のバージョンが合わない旨の警告がでますが、使うのがファイル共有ぐらいなので今のところ無視して問題なさそうです。 vagrant-playframwork フォルダが VirtualBox の /vagrant_data にマウントされていると思います。

chef で実行している内容

Vagrant から実行している chef のレシピの内容は以下のようになってます。

  • ntp の設定
  • selinux の無効化w
  • oracle の jdk7 をインストール
  • typesafe stack のインストール
  • timezone の設定
  • yum update
  • 必要っぽい rpm のインストール
  • iptables の削除
  • Play! Framework のダウンロードと展開
  • play コマンドラッパーインストール

起動終了

起動は、構築と同じで、

% vagrant up

落す時は

% vagrant halt

です。

接続方法

% vagrant ssh

で仮想環境に入ることができます。

% vagrant ssh-config --host=vagrant-play >> ~/.ssh/config

のようにすると

% ssh vagrant-play

でどこでも入れるようになります。

他の細かい操作については、Vagrant のドキュメントをご覧ください。

最後に

今回は、CentOS 6.4 x86_64 の環境で構築を行ないましたが、Linux 環境であれば操作はあまり変わらないと思いますので、是非チーム用にカスタマイズしてください。 OS インストール以降の処理は chef で書かれていますので、実機等に対しても chef-solo で利用することが可能だと思います。node とかないので追加が必要ですが。 なんか全然 scala じゃなくてすみません。

明日は、まだ未定みたいですが、たぶん seratch さんが…。

IntelliJ IDEA で PHP のソースフォルダが見えなくなってしまったけど復旧してみた

IntelliJ IDEA #jbugj PHP

トリッキーな使い方をしているのか、時々 PHP のプロジェクトのソースが消えてしまうことがある。 修正の仕方を google で探してみたんですが、ちょっと見当らなかったのでメモとして書いておきます。

project_name.ipr か .idea/modules.xml の modules の中身が空になっていると発生するみたいです。 ということで、中身を復活させれば見えるようになりました。

まず iml ファイルを探します。プロジェクトのファイルを管理しているファイルですね。 ↓こんな内容のものです。

<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
  <component name="NewModuleRootManager" inherit-compiler-output="true">
    <exclude-output />
    <content url="file://$MODULE_DIR$">
      <excludeFolder url="file://$MODULE_DIR$/old_projects" />
    </content>
    <orderEntry type="sourceFolder" forTests="false" />
  </component>
</module>

これをインクルードするように修正すれば OK みたいです。

.idea/modules.xml の修正例

修正前

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
    <component name="ProjectModuleManager">
        <modules />
    </component>
</project>

修正後

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
    <component name="ProjectModuleManager">
        <modules>
            <module fileurl="file://$PROJECT_DIR$/project_name.iml" filepath="$PROJECT_DIR$/project_name.iml" />
        </modules>
    </component>
</project>

iml ファイルは重要っぽいので、Git で管理した方がいいのかな?

wri.pe の編集を vim で効率化

wri.pe vim

@masuidrive さんの作成した wri.pe を最近使っています。これは、ブラウザで軽快にメモをとるためのツールです。 本格的に使うために、こんな方法もあるよということで、記事を書いてみます。

wri.pe が気にいっている点は、以下の点です。

  • Markdown で記述できる(プレビューも見れる)
  • 動作が軽快
  • 操作にショートカットが設定してありマウスの利用が少ない

しかし、不満な点が無い訳ではありません。これは、wri.pe というよりもブラウザの話なのですが、テキストエリアでの編集が面倒だということです。

私は、基本的にテキスト編集は、vim で行なっていて、IDE(Intellij IDEA、EclipseNetbeans) 系も極力 vi のキーバインドにしてしています。 こんな状態なので、Chrome のテキストエリアでの編集作業は不満でした。 Chrome の plugin で vimキーバインドを提供するものがあるようなのですが、wri.pe とのショートカットと競合すると面白くありません。 そこで、テキストエリアの内容を直接 vim で編集するための外部エディタ連携用の plugin を探してみました。

いくつかあるのですが、今回使ったのは、Edit with Emacs です。 名前からすると、vim が使えるとは思えないネーミングなのですが、vim を使うことが可能ですw

詳しくはこちら

簡単な手順

  1. プラグインを入れる
  2. サーバプログラム ( https://github.com/gfxmonk/edit-server.git )を git clone する
  3. 起動したいプログラムを設定する(何もしないと何故か gvim)
  4. サーバプログラムを起動する
  5. plugin の設定画面から接続テストを行う
  6. 実際に使ってみる
  7. サーバ起動の自動化(任意)

サーバを起動しておく必要はありますが、動作も軽快で今のところ不具合も発生してません。

たぶん、そのうち wri.pe 用の vim の plugin が作成されると思いますが…。

Scala Conference in Japan 2013 に参加してきました @scalaconfjp #scalajp

scala #scalajp

3/2(土) の Scala Conference in Japan 2013 http://scalaconf.jp/ に行ってきました。 日本では最大規模の Scala のイベントです。

プログラム

私は、朝から昼過ぎの LT大会まで参加しました。 ずっと A 会場にいたので私の参加したプログラムは以下のものです。

  • 水島さんのオープニングスピーチ
  • Jonas Boner さんの「Up up and Out: Scaling Software with Akka」
  • 竹下さんの「芸者東京とScala〜おみせやさんから脳トレクエストまでの軌跡〜」
  • 浅海さんの「Scala in Model-Driven development for Apparel Colud Platform」
  • LT大会

どれもすばらしい内容でした。発表者の方は、本当に Scala を好きなんだなと感じましたし、参加されている皆さんからも熱気を感じました。 特に LT 大会は、さまざまな立場からそれぞれ Scala についての愛を語っているのが楽しかったです。

業務向けシステムでは、独自に DSL を定義して柔軟性をもたせるという内容がいくつかあったので、方向性として面白いなと思いました。このあたりは、Scala の得意技ですね。

今回のカンファレンスで Scala 自体もですが、Akka や Play! Framework 等の周辺技術も成熟度が増してきていると感じました。 また、Scala は決して学習コストが高い言語ではないという説明が何度かあったのが印象的でした。 色々と敷居が高いと思っていたのですが、実際に業務での利用を見ていると安心感が増します。どんどん業務で使っていきたいです。

IntelliJ IDEA を使った Play! Framework のコーディングの模様を動画があれば是非見たいです…。

最後に

勉強会も定期的に行なわれていて、今後もどんどんユーザが増えていくことを期待します。 書いていてい楽しく、すらすら書けるように精進せねばという思いを新たにしました。 それと、英語の勉強もしようと思いましたw

今回のカンファレンスを運営された方、登壇された方、スポンサーの方、参加された方すべてのレベルが高くクオリティの高いカンファレンスだったと思います。その場に居たことに感謝しています。今後ともよろしくおねがいします。

IntelliJ IDEA から cakephp の test を実行する方法(PhpStorm でも多分大丈夫) #jbugj #cakephp

CakePHP IntelliJ IDEA PHP #jbugj #cakephp

IntelliJ IDEA で、まだ cakephp の対応が行なわれておらず、test が普通に実行できないという嘆きをつぶやいていたのですが、昨日調べたところ、設定すれば実行可能であるという情報を入手したので早速やってみました。

元の記事はこちらです。

http://blog.jetbrains.com/webide/2013/02/running-cakephp2-unit-tests-in-phpstorm/

このままやってみたのですが、うまく動かなかったので、その内容も入れてまとめます。

基本設定

cake のコンソールででテストが実行できていることが前提です。

  1. このファイル( https://gist.github.com/unok/5095891 ) を cakephp の lib や app のあるフォルダにコピー
  2. [Run]-[Editing Configurations...] の Defaults にある PHPUnit を開く
  3. 以下の設定を行う
場所 項目
Test Runner Test scope Directory
Test Runner Directory [cakeunit4phpstorm.php 置いたフォルダ]
Test Runner Test Runner options --cake-app --stderr
Command Line Interpreter options -f [cakephpunit4phpstorm.php のフルパス]

これで、testTestMethod 単位での実行が可能になっていると思います。多分。カバレッジもちゃんととれるようです。 --stderr の部分は、環境によって違うと思いますが、セッション回り使う時は無いと NG だと思います。

ケース指定

  1. [Run]-[Editing Configurations...] で + を押して PHPUnit を追加
  2. 適当に名前をつける
  3. 以下の設定をする
場所 項目
Test Runner Test scope Directory
Test Runner Directory [cakeunit4phpstorm.php 置いたフォルダ]
Test Runner Test Runner options --cake-app --stderr --cake-case=casename
Command Line Interpreter options -f [cakephpunit4phpstorm.php のフルパス]

これで、指定したケースを実行することができるようになっているかと思います。

変更した点

動かすために以下の修正をしました。

  • cakeunit4phpstorm.php を編集
    • chdir で実行場所に移動するように変更
    • IDE_PHPUnit_TextUI_ResultPrinter と IDE_PHPUnit_Framework_TestListener のコンストラクタの引数が違うようなので修正
  • session 系のテストが失敗するので実行時の設定に --stderr を追加

これで、ターミナルの役目が一つ減りました。 IDEA や PhpStorm で正式に cakephp に対応して欲しいので、YouTrack の cakephp framework 対応のタスクに vote おねがいします。 http://youtrack.jetbrains.com/issues?q=cakephp