うなすけとあれこれ

2014年05月20日

Slackにアカウントをつくるまで

Slack

グループでのコミュニケーションツールとして何かと話題になってきているSlackなのですが、紹介記事を見ることはあっても導入記事が見あたらなかったので書くことにしました。 ※画像はクリックで大きくなります。大きくなりすぎる恐れがあります。

手順

たとえば、僕が「ABC株式会社」内のプロジェクト「123」に参加しているとします。 まず最初に、メールアドレスと会社名(ここで入力する必要はない)を入力してサインアップします。 サインアップ

するとメールで確認用URLがくるので飛びましょう。 確認用URL

さらにメールアドレスを確認されるので、もう一度確認します。 メルアド確認

Team Nameを聞かれます。ここでは「ABC株式会社」としましたが、ここにプロジェクトの名前を入力して、後述するChannelで課題管理や機能議論を行っていくスタイルのほうがいいかもしれません。まあ、この記事を最後まで読んで感じを掴んでから決めればいいかと思います。 team name設定

URLを聞かれます。ここでは同様に「abc-corp」としました。 URL設定

企業等で独自のドメインのメールアドレスがあればここで設定するっぽいんですがよくわかんないのでチェックを外して続行します。 独自ドメイン設定

招待を送ります。あとでやるのでSkipします。 招待はSkip

ユーザー名を決めます。 ユーザー名を決める

パスワードを決めます。強度インジケータが出てるので参考に。 パスワードを決める

とりあえずこれで使えるようになりました。 ひとまず完了

プロジェクト123についての会話をするチャンネルを作りたいので「Create a channel…」をクリックします。 チャンネルを作る

必要事項を記入します。 色々書く

できました。 できました

招待

あるグループに他人が参加するにあたっては、招待制度を利用したほうが良さそうです。 ここでは「ABC株式会社」のプルダウンから「Send Invitations」をクリックします。 招待を送る

招待したい人のメールアドレスを1行ごとに入力し、デフォルトで追加するチャンネルを指定します。 メルアドとデフォルトチャンネル

すると、招待される側にこんなメールが届くのでクリックしましょう。 メールが届く

すると名前とパスワードを聞かれるので入力します。 名前とパスワードを決める

参加出来ました。 参加成功

参考URL

SkypeやYammerよりも使いやすい!チーム向けコミュニケーションツール、Slackが超便利! 社内コミュニケーションにはIRCを思い出すSlackがおすすめ

詳しい使い方については上のページを見てください。

2014年05月20日
2014年05月20日

audio-technica ATH-IM50を買った

ATH-IM50

新しいイヤホンが欲しかった

Shure SE215 Special Editionを買って、なくしたので、新しいイヤホンが欲しかった。なのでe-イヤホンに行って視聴してこれに決めて買った。

音質については語れる耳を持ち合わせていないので使い勝手について書く。低音がいい感じ(だと思う)。

Shure SE215 Special Editionと比べて

音漏れがする

そんなにしないけども、Shure SE215 Special Editionに比べたら音漏れする。

装着しづらい?

ケーブルが着脱式だが、MMCXではないためにコネクタ部分で回転せず付けにくいと感じるかもしれない。

2014年05月20日
2014年05月13日

GitHub Shopでマグカップを買った

マグカップがほしい

卒研室に配属されて、みんなが思い思いに快適にしようと色んな物を持ち込んでくるようになりました。電子ケトル、インスタントコーヒー、ココア、味噌汁などなど。でもそれって、大きめのカップがないとだめだよね? というわけで、自宅用と卒研室用に2つマグカップを買いました。

github:shop

GitHubの一番下には、「shop」という名前のリンクが有り、そこからはGitHub Shopへと行くことができます。Tシャツ、マグカップ、ステッカーなどを販売しています。

How to Buy?

英語ばっかり……といってもつまづくのは住所の入力と支払い方法くらいだと思います。 住所を外国表記にするのにはJuDress 住所→Address変換を使いました。支払いはクレジットカードがあると便利です。Vプリカで問題なく支払えました。 国際発送になるので送料が$20かかりますが、仕方ないですね。 ちなみに、5月4日に注文して、5月7日に発送、5月13日に届きました。だいたい1週間とちょっとかかるっぽいですね。

写真

ステッカーが貼られて送られてきました。ひと目でGitHubからだとわかります。 GitHubステッカーのはられた箱

中には大きな2つの箱が 箱のなかに箱

大きめのプチプチにくるまれてるので輸送中に割れることは多分無いでしょう。 アメリカサイズの緩衝材

でかい。 でかい

500mlが全部は入りきらないくらいの大きさ。 大量に入る

2014年05月13日
2014年04月29日

Cygwin使うならcyg-fastも

Cygwinのパッケージ管理

Cygwinは、それにインストールするパッケージをsetup.exeによって管理するようになっています。パッケージをインストールしたいときにはいちいちsetup.exeを起動して、あの重いパッケージ一覧の中からインストールするパッケージを指定しなければいけません。 あの重い一覧

apt-cygの登場

そこで、aptの使い心地をCygwinにも!ということで開発されたのがapt-cygです。(憶測) だがこのapt-cygは遅いらしい。(伝聞)

cyg-fastは速い

そんな遅い(要検証)apt-cygに代わって、lambdaliceさんによって開発されたのがcyg-fastです。名前にfastなんて入っているあたり、速さには自信があるように感じます。

cyg-fastのインストール

まずは、cyg-fastが動作するのに必要なパッケージをsetup.exeでインストールします。

これらを検索してインストールする必要があります。setup.exeが必要なのはここまでです。もう捨てちゃいましょう。

次にgit cloneなりzipで落とすなりして本体を手に入れます。 lambdalice/cyg-fast

そしたらcyg-fastC:\cygwin\bin(cygwinのインストールディレクトリ\bin)にコピーします。(もしくはPATHが通っているところにコピー) 最後に、実行権限を付与します。

$ chmod chmod +x /cygdrive/c/cygwin/bin/cyg-fast

cyg-fastの使い方

最初に起動したら、

$ cyg-fast build-deptree

を実行します。これにより依存関係のアレがソレされて速いっぽいです。 ただ、毎回聞いてくるので、rapidオプションをaliasしておくと良い(作者談)そうです。

$ alias cyg-fast='cyg-fast -r'

パッケージを探す

$ cyg-fast find ruby

パッケージの情報を見る

$ cyg-fast show ruby

パッケージをインストールする

$ cyg-fast install ruby

パッケージを削除する

$ cyg-fast remove ruby

使えるコマンドは引数なしで実行すると見れます。だいたいapt-cygと同じです。

本当にcyg-fastはapt-cygよりも速いのか?

計測してみましょう。どちらもデータベースは更新済みで、最新版を落とすのではなくキャッシュからの検索の時間を測りました。

まずはapt-cygでやってみます。

$ time apt-cyg -u find ruby
Working directory is /setup
Mirror is ftp://mirror.mcs.anl.gov/pub/cygwin
gpg: WARNING: unsafe permissions on homedir `/setup/.apt-cyg'
gpg: WARNING: unsafe permissions on homedir `/setup/.apt-cyg'

Searching for installed packages matching ruby:

Searching for installable packages matching ruby:
ruby
ruby-caca
ruby-debuginfo
ruby-doc
ruby-json
ruby-minitest
ruby-rake
ruby-rdoc
ruby-tcltk
subversion-ruby
weechat-ruby

real    0m0.304s
user    0m0.090s
sys     0m0.197s

次にcyg-fastはどうでしょう。

$ time cyg-fast -r find ruby
Working directory is /setup
Mirror is ftp://mirror.mcs.anl.gov/pub/cygwin

Searching for installed packages matching ruby:

Searching for installable packages matching ruby:
ruby
ruby-caca
ruby-debuginfo
ruby-doc
ruby-json
ruby-minitest
ruby-rake
ruby-rdoc
ruby-tcltk
subversion-ruby
weechat-ruby

real    0m0.140s
user    0m0.000s
sys     0m0.151s

約半分です。やっぱりcyg-fastは速いですね。

2014年04月29日
2014年04月20日

Crayon Syntax Highlighterを導入

今までシンタックスハイライトのために導入していたプラグインはSyntaxHighlighter Evolvedだった。 それをCrayon Syntax Highlighterへと変更した。

理由

特になし

2014年04月20日
2014年04月04日

Qiitaに記事を投稿しました

homesickとhomeshickの違い homeshickを使ったdotfilesの管理 HomebrewでMacVim-Kaoriyaのビルド 〜luaを添えて〜

ご確認ください

「ストック」っていう仕組みがいい。「あとで読もう」的な仕組みなんだけど、気になってくれたのがわかるからうれしい。

これからもQiitaに投稿したらこっちにも書くかも。

2014年04月04日
2014年03月23日

Hangouts使おう

hangouts

Hangouts

HangoutsはGoogle+のチャット的なアレです。 Google+ ハングアウト 似たようなサービスにSkype LINE メッセージ(apple) twitter facebookなどがあります。Hangoutsはそれらとどう違うのでしょう。

Hangoutsと比べた時

Skype

Skypeはサインインしていないとメッセージを受け取れないという欠点があり、そのせいでスマートフォンで常駐させておくのは気が引けます。

LINE

電話番号と結び付けられていて面倒です。個人情報の流出が話題になったけど今はどうなの……?既読機能は便利かも。 LinuxだとWine使わなきゃいけないし面倒です。

メッセージ(apple)

いまいち仕組みがつかめません。AndroidやWindowsでも使えるの?

twitter

会話が筒抜けで、DMだとグループチャットはできません。全員鍵垢なら……そうでもないか。

facebook メッセージ

一番Hangoutsに近い存在(だと思う)。強いて欠点を上げるならAndroidだとアプリのインストールをしなければいけない。

between

論外

Hangoutsを比べた時

まず、Googleアカウントが必要になります。これはAndroidユーザーも増えてるしだいたいみんな持ってるでしょう。 そしてGoogle+に登録する必要があります。実名感あって抵抗が高いのがここ。 そのあとはチャットでもグループチャットでもビデオ通話でもなんでもどうぞ。 Linuxでもブラウザ主体だしパッケージもあるので導入は容易です。 ただiOSはアプリのインストールをしなければいけないのが欠点?

2014年03月23日
2014年03月22日

Homebrewとbrewfileとhomebrew-caskでMacの環境構築

homebrew

Homebrewとbrewfileとhomebrew-cask?

Homebrewとは

Homebrew パッケージ管理システム Homebrew 以前、OpenCVの導入に使ったMacPortsのようなまた別のパッケージ管理ソフト。MacPortsとは違い、依存関係をいちから導入するのではなく、元からインストールされているもので解決するためMacPortsより軽い……?

brewfileとは

Homebrewのコマンドを羅列したテキストファイル。要するにシェルスクリプト。 BrewfileでHomebrewパッケージを管理する

使えなくなります(下記事参照) 2014-7-30追記 Brewfileで管理するのはもうオワコン

homebrew-caskとは

Homebrew Cask phinze/homebrew-cask HomebrewをつかってChromeやVirtuaBoxなどのアプリケーションをインストールするための仕組み。 つまりは、これらでBoxenを置き換えることができる。

導入

Boxenのアンインストール

$ script/nuke ---all ---force

このスクリプト、中身見れば分かるんだけどRubyで書かれてる。さらばBoxen。

Homebrewのインストール

必要な物は

Javaについては必須じゃないけど、それが必要なソフトをインストールするときに必要になる(あたりまえ)

XcodeとCommand Line Tools

XcodeはMac App Storeからインストールする。 Command Line ToolsはXcodeのPreferencesのDownloadsからインストール。 Mavericksの場合は

$ xcode-select --install

もしくはDownloads for Apple Developersから.dmgをダウンロードしてインストール。 その後、ライセンスに同意しておく。

$ sudo xcodebuild -license

Java

$ java -version

これで、Javaがインストールされていればバージョンが、インストールされていなければインストールを促すダイアログが出る。

Homebrew

Homebrewの一番下のコマンドより、

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

を実行。なんて簡単なんだ。

homebrew-caskのインストール

$ brew tap phinze/cask
$ brew install brew-cask

これでおしまい。もしくは、Brewfileに

tap phinze/homebrew-cask
install brew-cask

と記述して、同じディレクトリで

$ brew bundle

としても同じ。これがBrewfile。

homebrew-caskでインストールできるアプリケーション

phinze/homebrew-cask/Casks やたらある。MacPortsまである。

インストール

とりあえず、自分がほしいものをいろいろ書いたBrewfileをつくった。 unasuke/my-homebrew-setup

$ git clone https://github.com/unasuke/my-homebrew-setup.git
$ cd my-homebrew-setup
$ ./install.sh
$ brew bundle

これでHomebrewのインストールからhomebrew-caskの導入とインストールまでやってくれる。 install.sh内でbrew bundleしてもいいが、念のためbrew doctorを挟んだ。brew doctorで指示されたことはやっておくこと。お医者さんの言いつけは守ろうね。

本末転倒

MacVim KaoriyaをsplhackさんのリポジトリにあるFormula(splhack/homebrew-splhack)からビルドしようとしたけど、pythonのあたりでどうしてもこけるのでビルド済の.appをインストールするCasksを作っちゃいました。unasuke/homebrew-unasuke HomebrewでMacVim Kaoriyaがビルドできるようになったらリポジトリ消します。いや、消します。 ついでにビルドの仕方教えてください。 追記 tapするリポジトリをsupermomongaさんのforkの方にしたらビルドうまく行った。(supermomonga/homebrew-splhack) それに伴いBrewfileとかも書き換えた。

2014年03月22日
2014年03月21日

Boxenの導入……ができない助けて

Boxenとは

まずBoxenとはなんぞや? BOXEN なるほど、わからん。 次にこっちを見てほしい。 Boxen使わなくても許されるのは2012年までだよね

つまり、OS installerにとってはありがたいツールであるということだ。2012年も過ぎ去ったし、導入しない手はないだろう。

How to Use BOXEN?

Boxenを使うには、次のものが必要である。

導入だが、Boxen使わなくても許されるのは2012年までだよねと、GitHubの公式マニュアルを見つつ順を追って僕がやったことを説明していく。複数のやり方がある時は公式マニュアル通りにやった。 今は2014年だし今更解説記事書いてるあたり許されないと思った。

Xcodeのインストール

基本的にまっさらな状態からつくり上げることとする。だからすでにhomebrewが入ってたりしたら消さなきゃダメかもね。しらんけど。 で、まずはAppStoreからXcodeをインストールする。インストールが終わったら環境設定からCommand Line Toolsをダウンロードとインストール。 まっさら バッテリーは%表示になってないし壁紙は銀河だし本当にOSインストール直後にやってる

Mavericksの場合

Mavericksから、Command Line ToolsがXcodeからインストールできなくなっている。 command line toolsがない なので、ターミナルで

$ xcode-select --install

と入力し、インストールしなければならない。 Xcode 5.0 Error installing command line tools Mavericks上のXcode 5.0でCommand Line Toolsがない場合

Boxenフォルダの作成

Boxenがいろいろダウンロードしたり実行したりするフォルダを作る。(と思い込んでる) ターミナルで、

$ sudo mkdir -p /opt/boxen
$ sudo chown ${USER}:staff /opt/boxen

mkdirのpオプションはサブフォルダも一気に作るということ。chownでそのフォルダの所有者を自分に、グループをstaffに設定。間違ってる可能性大。不安なら自分で調べてほしい。

設定の編集

まずはGitHubのほうでリポジトリを作る。中身は空で。 ここから こんなかんじで

$ git clone https://github.com/boxen/our-boxen /opt/boxen/repo
$ cd /opt/boxen/repo
$ git remote rm origin
$ git remote add origin <the location of my new git repository>
$ git push -u origin master

大本のboxen/our-boxenからそっくり引っ張ってきて、そのままだとpushする先が大元様なのを削除→自分のリポジトリに変更。そんでもってpushする。-uはupstreamの意味。これにより、大元様の変更を取り込むことができる……っぽい? 実際はこんな感じ。

ちょっと表示が乱れている

puppetに書き込む

Boxenでは内部でPuppetを使用している。それに関連するファイルなのだろう。Puppetについての詳しくはgihyoで。 boxenフォルダの中にPuppetfileというファイルがある。それを編集していく。

# This file manages Puppet module dependencies.
#
# It works a lot like Bundler. We provide some core modules by
# default. This ensures at least the ability to construct a basic
# environment.
--中略--
## unasuke setting
# web browser
github "chrome",      "1.1.2"
github "firefox",     "1.1.8"
github "opera",       "0.3.2"

# voip
github "skype",       "1.0.8"

# memo
github "evernote",    "2.0.5"

# player
github "vlc",         "1.0.5"

# utility
github "dropbox",     "1.2.0"
github "keyremap4macbook",    "1.2.2"
github "better_touch_tools",  "1.0.0"

# editor
github "sublime_text_2",      "1.1.2"
github "macvim_kaoriya",      "1.1.0",  :repo => "boxelly/puppet-macvim_kaoriya"

パッケージ名の横の数字はここから取ってくる。 最新のやつを選べば大丈夫か? 最新のやつを選べば大丈夫か?

自分用の設定を書いていく

さて、Puppetfileで記述したパッケージを、実際にインストールさせるという記述をしなければならない。なんでだ…… 個人用の設定はmodules/people/manifests/hoge.ppに書いていく。ここでhogeはgithubのアカウント名。自分の場合だとこう編集する。

$ vim /opt/boxen/repo/modules/people/manifests/unasuke.pp

ほいで、中身はこれ。

class people::unasuke{
  # core modules
  #include xquartz

  # web browser
  include chrome
  include firefox
  include opera

  # voip
  include skype

  # memo
  include evernote

  # player
  include vlc

  # utility
  include dropbox
  include virtualbox
  include keyremap4macbook
  include better_touch_tools

  # editor
  include sublime_text_2  
  include macvim_kaoriya  

  # raw package
  package{
    # japanese ime
    'GoogleJapaneseInput':
    source      => "http://dl.google.com/japanese-ime/latest/GoogleJapaneseInput.dmg",
    provider    => pkgdmg;

    # markdown editor
    'Kobito':
    source      => "http://kobito.qiita.com/download/Kobito_v1.2.0.zip",
    provider    => compressed_app;

    # ssd trim
    'Trim Enabler':
    source      => "https://s3.amazonaws.com/groths/TrimEnabler.dmg",
    provider    => pkgdmg;

    # scroll setting
    'Scroll Reverser':
    source      => "https://d20vhy8jiniubf.cloudfront.net/downloads/ScrollReverser-1.6.zip,      provider    => compressed_app;

    # typing sound
    # noisy typer
  }
}

それぞれに書いてあることは冒頭で紹介したQiitaの記事を見てほしい。簡単に説明すると、上からPuppetfieでincudeしたパッケージのインストール、webのアドレスからダウンロードしてインストールの指定をしている。

site.ppの編集

さて、このファイルにはすべてのPCに適用される設定が書かれている。というのも、Boxenがもともとチーム向けに作られたものだから。 中を見てみると、複数のバージョンがインストール指定されている部分がある。互換性など配慮しているのだろうが、個人用途というか僕にとっていらないので最新のバージョンのみインストールするようにしてもいいが、なんかあったら嫌なので放っておいた。
ひととおり設定し終わったらgit addとgit commitとgit push origin masterしておく。

インストール

では設定のとおりにBoxenに仕事してもらおう。

$ cd /opt/boxen/repo/
$ script/boxen --no-fde

–no-fdeは暗号化無しの場合につけるオプション すると、こんなのがでた。

$ script/boxen --no-fde
Need to install Bundler for system ruby, password for sudo:
Fetching: bundler-1.3.6.gem (100%)
Successfully installed bundler-1.3.6
1 gem installed
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
creating Makefile

make "DESTDIR="
compiling generator.c
linking shared-object json/ext/generator.bundle
clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a warning) in the future
make: *** [generator.bundle] Error 1


Gem files will remain installed in /opt/boxen/repo/.bundle/ruby/2.0.0/gems/json-1.8.1 for inspection.
Results logged to /opt/boxen/repo/.bundle/ruby/2.0.0/gems/json-1.8.1/ext/json/ext/generator/gem_make.out
An error occurred while installing json (1.8.1), and Bundler cannot continue.
Make sure that `gem install json -v '1.8.1'` succeeds before bundling.
Can't bootstrap, dependencies are outdated.

どうやらjsonのバージョン1.8.1が必要な様子。そこでインストールしようとすると……

$ sudo gem install json -v '1.8.1'
Fetching: json-1.8.1.gem (100%)
Building native extensions. This could take a while...
ERROR: Error installing json:
ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
creating Makefile

make "DESTDIR="
compiling generator.c
linking shared-object json/ext/generator.bundle
clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a warning) in the future
make: *** [generator.bundle] Error 1


Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/json-1.8.1 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/gems/json-1.8.1/ext/json/ext/generator/gem_make.out

失敗する。

Mavericksの場合

どうやらライセンスに同意しないといけないっぽい。 MavericksでC拡張を含むgemをインストールできない場合の対処法

$ sudo xcodebuild -license

このコマンドでダーーッと出てくるライセンスを読んで最後にagreeと入力。 さてやり直すか。

$ sudo gem install json -v '1.8.1'
Building native extensions. This could take a while...
ERROR: Error installing json:
ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
creating Makefile

make "DESTDIR="
compiling generator.c
linking shared-object json/ext/generator.bundle
clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a warning) in the future
make: *** [generator.bundle] Error 1


Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/json-1.8.1 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/gems/json-1.8.1/ext/json/ext/generator/gem_make.out

は? どうやらclangのところで警告が出ているので、無視するために以下のコマンドで実行。

$ sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install json -v '1.8.1'
Building native extensions. This could take a while...
Successfully installed json-1.8.1
Parsing documentation for json-1.8.1
unable to convert "\xCF" from ASCII-8BIT to UTF-8 for lib/json/ext/generator.bundle, skipping
unable to convert "\xCF" from ASCII-8BIT to UTF-8 for lib/json/ext/parser.bundle, skipping
Installing ri documentation for json-1.8.1
1 gem installed

成功した。 Ruby Gem install Json fails on Mavericks and Xcode 5.1 - unknown argument: ‘-multiply_definedsuppress’ ちなみにこのままscript/boxenしても同じ警告で止まるので、同様にARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-futureを付加して実行する必要がある。 Ruby Gem install Json fails on Mavericks and Xcode 5.1 - unknown argument: ‘-multiply_definedsuppress’ #528 が、しかし。

help me

$ ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future ./script/boxen --no-fde
--> Hey, I need your current GitHub credentials to continue.

GitHub login: |unasuke| unasuke
GitHub password: *
/opt/boxen/repo/.bundle/ruby/2.0.0/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/dsl/receiver.rb:119:in `instance_binding': undefined method `guthub' for #<Librarian::Dsl::Receiver:0x007f962b822c10> (NoMethodError)
from /opt/boxen/repo/.bundle/ruby/2.0.0/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/dsl/receiver.rb:33:in `eval'
from /opt/boxen/repo/.bundle/ruby/2.0.0/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/dsl/receiver.rb:33:in `run'
from /opt/boxen/repo/.bundle/ruby/2.0.0/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/dsl.rb:81:in `block in run'
from /opt/boxen/repo/.bundle/ruby/2.0.0/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/dsl.rb:71:in `tap'
from /opt/boxen/repo/.bundle/ruby/2.0.0/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/dsl.rb:71:in `run'
from /opt/boxen/repo/.bundle/ruby/2.0.0/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/dsl.rb:17:in `run'
from /opt/boxen/repo/.bundle/ruby/2.0.0/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/environment.rb:115:in `dsl'
from /opt/boxen/repo/.bundle/ruby/2.0.0/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/specfile.rb:14:in `read'
from /opt/boxen/repo/.bundle/ruby/2.0.0/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/action/resolve.rb:16:in `run'
from /opt/boxen/repo/.bundle/ruby/2.0.0/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/cli.rb:161:in `resolve!'
from /opt/boxen/repo/.bundle/ruby/2.0.0/gems/librarian-puppet-0.9.10/lib/librarian/puppet/cli.rb:63:in `install'
from /opt/boxen/repo/.bundle/ruby/2.0.0/gems/thor-0.18.1/lib/thor/command.rb:27:in `run'
from /opt/boxen/repo/.bundle/ruby/2.0.0/gems/thor-0.18.1/lib/thor/invocation.rb:120:in `invoke_command'
from /opt/boxen/repo/.bundle/ruby/2.0.0/gems/thor-0.18.1/lib/thor.rb:363:in `dispatch'
from /opt/boxen/repo/.bundle/ruby/2.0.0/gems/thor-0.18.1/lib/thor/base.rb:439:in `start'
from /opt/boxen/repo/.bundle/ruby/2.0.0/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/cli.rb:29:in `bin!'
from /opt/boxen/repo/.bundle/ruby/2.0.0/gems/librarian-puppet-0.9.10/bin/librarian-puppet:9:in `<top (required)>'
from /opt/boxen/repo/bin/librarian-puppet:16:in `load'
from /opt/boxen/repo/bin/librarian-puppet:16:in `<main>'
Can't run Puppet, fetching dependencies with librarian failed.

どうしてもCan’t run Puppet, fetching dependencies with librarian failed.で実行ができない。 Can’t run Puppet, fetching dependencies with librarian failed #78 Unable to find module ‘boxen/puppet-githubformac’ on https://github.com Can’t run Puppet, fetching dependencies with librarian failed. #313 苦悶に満ちて溢れ出した Boxen のお話 (Winter ver.) - 弐 など参考にしたが、効果はなかった。 誰か助けて…… 参考までに僕のboxen→unasuke/unasuke-boxen

2014年03月21日
2014年03月20日

Linuxでandroidの音楽管理

読み飛ばすところ

iPhoneやiPodを使っていると、iTunesの手軽さ、androidの不甲斐なさ(?)に気付く。 さて、iPhoneに機種変した僕の手元には、android端末が数個転がっている。HTC Butterfly jはBeat’s audio搭載だし、Xperia SXはwalkmanアプリ搭載だしで放っておくには少しもったいない。これらandroid端末でも、iTunesのように手軽に音楽の管理ができないものか。

環境

ubuntu 13.10 64bitを使っているが、ディストリビューションで大差はないと思う。 端末は前述のHTC Butterfly jとXperia SXを用いる。

メジャーな音楽管理ソフトウェア

ubuntuにデフォルトでインストールされるrhythmbox、一時期デフォルトだったBansheeがなかなかよい。 amarokは機能はいいだろうが、iTunesから移行しようとなるとUIが変わりすぎて取っ付きにくい(ように感じた)

iTunesと比べて

外観

ぱっと見で似ているのはBansheeだろう。アルバムアートが並んで表示されているところはiTunesそっくりである。rhythmboxではアルバムアートを使って選曲する方法はわからなかった。

機能

どちらもiPodやandroidやその他メディアプレイヤーとの音楽ライブラリ同期機能は備えている。

安定性

気のせいか、Bansheeはエラーやフリーズが多い。

見た目似ているのはBansheeだけど、機能や安定性ではrhythmboxのほうがいいと思われる。ubuntuデフォルトだし。

android端末に音楽を転送する際の下準備

接続プロトコルの変更

おそらくwindowsで音楽管理するなら転送プロトコル(端末をUSBでつないだ時の設定)は「MTP」になっている。Linux(ubuntu)でも「MTP」でのマウントは可能だが、rhythmbox(Bnashee)で音楽を転送しようとすると転送する楽曲の数だけエラーが出て使いものにならない。 よって、マウントは「MSC」(ファイル転送モード)に設定する必要がある。

MSC Xperiaでは設定→Xperia→USB接続設定から変更。HTC系端末では接続のたびに変更する必要があるかもしれない。

.isaudioplayerの設定

接続プロトコルの変更を行うと、接続した時にただの外部ストレージとして認識され、音楽管理には向かない。 そこで、音楽を同期させる領域(おそらく外部SD)のルートフォルダに「.isaudioplayer」というテキストファイルを作成する(linuxやandroidでは隠しファイルとなるのでファイルエクスプローラからは消えたようにみえる) そして内容を以下のようにする。

audio_folders=Music/
folder_depth=2
output_formats=audio/aac,audio/mp3

内容の意味としては、「音楽を格納するのはMusicフォルダ、フォルダ構成はアーティスト名/アルバム名/音楽ファイルとする。再生できる拡張子はaac(m4a)とmp3」という内容である。拡張子の指定はMIMEで指定する。Wikipediaに載っているもののうちで一般的なものをまとめると以下の通りである。

拡張子 MIME
wav audio/x-wav
mp3 audio/mpeg
aac audio/aac
mp4(m4a) audio/mp4
flac audio/x-flac
ogg audio/ogg
wma audio/x-ms-wma

CDから取り込む

今までに貯めこんできたライブラリと、これから取り込んでいくデータとでいろいろ変わる部分がある。

拡張子

iTunesだとおそらく.m4aなどになっていると思う。Linuxで扱いやすいのは.mp3か.oggか.flacだろう。もちろん.m4aも再生できないわけではないが。

フォルダ構造

アーティスト/アルバム という構造になっていると思うが、アーティスト情報などが得られないことも予想される。アルバムごとで手打ちが必要になるかもしれない。1アルバム1フォルダ的な。

CDDB

一番変わるのがここだろう。iTunesはgracenoteからCDの情報を取ってくるが、rhythmboxやBansheeではmusicbrainzから取ってくる?ようなので情報があれば御の字と言ったところ。洋楽のCDなどは情報がある可能性が高い。冊子を見ながら手打ちする必要があるかもしれない。

2014年03月20日
新しい投稿
古い投稿