EmacsでJazz
EmacsでJazzが聴けるという素敵なelispがあったので、 Macで導入した手順をメモする。
このelispを導入する条件は以下のとおり
Emacsのバージョンは24.5だったので、クリアしている。
$ type mplayer -bash: type: mplayer: not found $ type curl curl is /usr/bin/curl
mplayerだけない状態だったので、brewを使ってインストールした。
$ sudo brew update $ sudo brew install mplayer
少し、インストールに時間はかかるが、これで下準備は完了。
~/.emacs.d/init.elに以下を追加した上で、 init.elを読み込んだ。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; jazzradio ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (el-get-bundle syohex/emacs-jazzradio) (require 'jazzradio)
パッケージ管理にはel-getを使っている。
あとは、M-x jazzradioをすればチャンネルを選ぶポップアップが上がるので選択するだけ。
集中したいときのBGMをブラウザ経由で音楽を探すと、 ついつい関係ないサイトも見ちゃったりしてしまう。 emacs内ですぐjazzを聴けるこのツールだと、その心配がないので今後も使っていくかも。
Shinjyuku.ex #10に行ってきた
最近、Elixirが気になっていたので、 6/2(火)に新宿で行われていたElixirの勉強会に参加してきた。
自分のレベル的には、 ElixirとPhoenix Frameworkとインストールしてみて、Hello Worldしつつ、 mixの使い方に四苦八苦している程度。
とりあえず、ElixirをElixerと間違わないようにはなった。
勉強会ページ
発表内容
現時点でのElixir情報収集サイトやブログの紹介をされていた。
海外サイトには公式サイト以外は辿れなかったので、 注目のElixir情報が載っている海外サイトを紹介してもらったのが嬉しい。
日本語のサイトが少ないのは、新しく海外で作られて言語なので仕方ないけど、 だからこそ、Elixirについてこれから何か自分から発信できたらいいなと思う。
GNU gettestという、 プログラムに予め決められた書式で記載されたメッセージを 別ファイルに情報を用いて翻訳してくれるアプリケーションと そのElixirバージョンを紹介されていた。
GNU gettextというものも初めて知ったので、そこから紹介してもらって助かった。
あと、ライブコーディングの代わりに、Youtubeを挟むのはいいなと思った。 自分が社内の発表で簡単なライブコーディングしたときに、 エラーが出てしまって、しばらくライブデバッギングになってしまったので。。。
Elixirを勉強していると時々でてくる用語 OTPに関して、 説明と何が便利かをライブコーディングを交えて説明されていた。
コーディングされていた内容は難しくてわからなかったけど、 いままでぼんやりしていたOTPの内容が、わずかながら輪郭をはっきりさせることができたのがよかった。
書き方的には同じ(ほんとは、Railsの方が洗練されてるかも)だけど、 パフォーマンスは3倍!!らしい。
パフォーマンスは置いておいて、 M,V,Cに分けて、Railsとの記載方法の比較があって面白かった。
もうちょっと、自分がElixirやPhoenix Frameworkを使えるようになったら、 Javaのフレームワークとのパフォーマンス比較もしてみたい。
全体感想
当日まで、というか開催の直前まで「補欠」だったから、参加できるかどうかわからなかったけど、 参加できてよかった。
OTPなどのElixir/Erlangの用語などは普段仕事などで触れる機会がないため、 いままでは調べ方もよくわからなかったけど、こういう勉強会で輪郭だけでも理解できたことが増えたのはよかった。
Spring Boot @ComponentScanの使いどころ
@ServiceがInjectionできない
Spring Bootで以下のプログラムがコンパイルできなかった。
Controllerクラス
package com.sample.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import com.confront_them.bean.ResultBean; import com.confront_them.bean.ResultRequestBean; @Controller public class ResultController { @Autowired private ResultService resultService; @RequestMapping("/results") public String results(Model model) { ResultRequestBean requestbean = new ResultRequestBean(); ResultBean bean = new ResultBean(); resultService.execute(requestbean, bean); model.addAttribute("bean", bean); return "results } }
Serviceクラス
package com.sample.service; import org.springframework.stereotype.Service; import com.confront_them.bean.ResultBean; import com.confront_them.bean.ResultRequestBean; @Service public class ResultService { public void execute(ResultRequestBean requestbean, ResultBean bean) { bean.setHoge("hoge"); } }
エラーは以下の通り。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resultController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.sample.service.ResultService com.sample.controller.ResultController.resultService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.sample.service.ResultService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
対策
AutowiredしているのにScan対象のbeanがないと行っている。
@ComponentScanは記載されたControllerクラスと同じパッケージ配下のクラスしかScanしないらしく、それが原因でServiceクラスがみれていない。
なので以下のようにパッケージ名を変更したら、コンパイルできるようになった。
package com.sample.controller -> package com.sample; package com.sample.service; -> package com.sample;
Ubuntu Mate 14.04 インストール直後にした設定
システムアップデート
以下をたどって、ソフトウェアを最新にします。
システム > システム管理 > ソフトウェアの更新
日本語化
以下のコマンドを実行します。
$ sudo apt install fcitx-mozc $ im-config -n fcitx
※ 参考 日本語化 - Ubuntu となかまたち
ディレクトリ日本語化
アプリケーション > システムツール > Mate端末 でターミナルを立ち上げる。
以下を入力します。
$ LANG=C xdg-user-dirs-gtk-update
ウィンドウが立ち上がるので、「Update Names」を押します。
注意点としては、名前が変更されるディレクトリないにファイルがあると日本語ディレクトリが残ってしまいます。
Oracle Java インストール
以下を実行します。
$ sudo add-apt-repository ppa:webupd8team/java $ sudo apt-get update $ sudo apt-get install oracle-jdk7-installer
以下のバージョン確認でインストールされていることを確認します。
$ java -version java version "1.7.0_80" Java(TM) SE Runtime Environment (build 1.7.0_80-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
Linux Mintのインストールとその後の設定
Linux Mint 17.1をインストールした。
Cinnamon版をインストールした。
手順は以下の通り
- MacOSX上でUnetbootinを利用して、LiveUSBを作成する。
- 起動時にUSBから見に行くように、BIOSを設定する。
- インストールするPCにUSBをさす。
- 起動して、USB上でLinux Mintを走らせた後、デスクトップ上にあるInstall Linux Mintをダブルクリックする。
- 表示に従って、設定していく。
インストール後は以下を設定した。
Synapticパッケージマネージャの設定
- 設定 > 設定を選択する。
- 全般タブ > 指定の変更 > 「依存関係で推奨されたパッケージを考慮する」にチェックをする。
- OKをクリックする。
ソフトウェアソースを変更
- メニュー > システム管理 > ソフトウェアソースを選択する。
- ミラーのMainとBaseを好きな取り込み先を選択する。(日本の取り込み先はBaseしかなかったので、Mainは元のアメリカのまま)
- 「キャッシュをアップデート」をクリックする。
ソフトウェアアップデート
- メニュー > システム管理 > アップデートマネージャを選択する。
- 更新をクリックする。
- アップデートをインストールをクリックする。
日本語入力設定
- Synapticパッケージマネージャを起動する。
- 検索をクリックして、fcitx-mozcを検索する。
- fcitx-mozcにチェックして、適用をクリックする。
- メニュー > 設定 > Languageを選択する。
- Input methodでFctixを選択する。
※ 参考 http://viva-ubuntu.com/2014/12/systemupdate/ (ほぼ、ここに書いてあることを実行した。)
play2.3のインストール(brew)&起動確認
brewでplay2.3をインストールする。
sudo brew install typesafe-activator
インストールできていたら、以下のコマンドでヘルプが確認できる。
activator -help
次に、起動させてみる。
"activator new"でアプリケーションを作成する。
activator new my-first-app play-scala
アプリケーションのディレクトリで、"activator run"を実行する。
cd my-first-app activator run
デフォルトのポート9000でlocalhostに接続する。 以下の画面がでてきたら、成功。
gitのbranch名を変更する
ローカル、リモートともにgitのbranch名を変更したい。
ローカルのbranch名を変更
しかし、このままpushすると新しい名前のremoteブランチは作成されるが、古い名前のremoteブランチも残ってしまう。
なので、以下のコマンドも実行する必要がある。