sense

知っておくと便利なこと、最初につまずきそうなことを中心にまとめています。ちょっとした備忘録も兼ねています。

Active Directory ドメインユーザのシェルを変更

Active Directory ドメインユーザのシェルを zsh に変更しようとしたら、詰まったのでメモ。

 

環境

Ubuntu 14.04

 

現象

$ chsh
パスワード: 
smooth3919 のログインシェルを変更中
新しい値を入力してください。標準設定値を使うならリターンを押してください
ログインシェル [/bin/bash]: /usr/bin/zsh
chsh: ユーザ smooth3919 は /etc/passwd に存在しません

 

解決策

$ sudo getent passwd smooth3919 | xsel -ib
$ sudo vim /etc/passwd

最終行にペーストし、ログインシェルを zsh に変更

Pythonをソースからビルド、Theanoのインストール

経緯

最近話題の「Deep Learning」で使われる Theano 。

ソースからビルドした Python でインストールしようとしたらつまずいたので手順をメモ。

 

環境

 

Python(2.7.10)をソースからビルド

$ wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
$ tar xvf Python-2.7.10.tgz
$ cd Python-2.7.10

今回はpipを使うので

$ sudo apt-get install libssl-dev
$ ./configure --enable-shared --with-ensurepip
$ make
$ sudo make install

pip のアップグレード

$ sudo -H pip install --upgrade pip
/usr/local/bin/python2.7: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

まずは確認。

$ ldd /usr/local/bin/python
linux-vdso.so.1 => (0x00007fffd4fcc000)
libpython2.7.so.1.0 => not found
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f3fcada2000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3fca9dc000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3fcafc8000)

libpython2.7.so.1.0 が not found なので

$ sudo ln -s /usr/local/lib/libpython2.7.so.1.0 /lib/

として、再度 pip のアップグレードコマンドを実行するとOK。

 

Theano のインストール

必要なライブラリをインストール

$ sudo apt-get install gfortran liblapack

最後に Theano のインストール

$ sudo pip install numpy scipy theano

 

SciPyのインストールにかなり時間がかかりますが、無事インストール完了。

Linux Mint 17.1 KDE デスクトップが起動しない

経緯

リモートで作業をしていたら何故か KDE デスクトップが起動しなくなってしまったので解決方法をメモ。

 

表示されたメッセージ

Xsession : unable to lanch "/usr/bin/startkde" Xsession --- "/usr/bin/startkde" not found; falling back to default session.

 

解決方法

1コのコマンドで解決。

sudo apt-get install kde-workspace-bin

Windowsでパッケージ管理 - Chocolatey -

今回はWindowsのパッケージ管理ソフト「Chocolatey」の紹介です。

 

導入

 PowerShellを搭載しているマシン(標準搭載はWindows 7以降)ならあっという間にChocolateyを導入することができます(下記を管理者権限で実行してください)。

 

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%chocolateyin

 

iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1')) 

 

使用方法

よく使うのは

  • choco -h
  • choco list
  • choco install パッケージ名
  • choco uninstall パッケージ名

あたりでしょうか。

chocolateyでは、あらかじめエイリアスが用意されています。例えば

  • choco list → clist
  • choco install → cinst
  • choco update → cup

というものがあります。便利ですね!

また、パッケージは公式サイト(Chocolatey Gallery | Packages)で確認することができますので、一度目を通してみるのがいいかもしれません。

 

動作確認

試しにいくつかインストールしてみます。

まず、パッケージリストを確認します。

clist sublime

f:id:smooth3919:20150406103814p:plain

20個のパッケージが見つかりました。この中からSublimeText3とSublimeText3.PackageControlをインストールしたいと思います。

この時、オプションの -y を加えると確認を飛ばしてくれます。

cinst sublimetext3 sublimetext3.packagecontrol -y

f:id:smooth3919:20150406103840p:plain

 

メニューを確認すると、Sublime Text 3がインストールされていて、ついでにPackage Controlも使えるようになっています!

同様にGitとRubyをインストールしていきます。

cinst git.install ruby -y

f:id:smooth3919:20150406103852p:plain

 

メッセージを見ると、Rubyのパスは追加されていますが、Gitは追加されてないようです。なので、Gitのパスを追加しておきましょう(もしかしたらマシンによってGitのパスが違うかもしれません)。

setx Path "C:Program Files (x86)Gitin;%Path%"

 

ここまでできたら、PowerShell(またはコマンドプロンプト)を立ち上げ直し、確認しましょう。

f:id:smooth3919:20150406103908p:plain

 

ちゃんと使えるようになっています。

他にもいろいろなパッケージがあり、Chocolateyを使えば一気にインストールできるので、是非試してみてください。

Ruby on Railsで作ったアプリケーションをMOGOKで公開してみる(2/2)

前回の続きです。

 

アプリケーションを公開

アプリケーションをビルドして、データベースマイグレーションまでやってみます。

mogok build
mogok rake db:migrate

mysql2を使ってくださいと言われました。Gemfileを編集しましょう。

gem 'mysql2'

を追記してください。その後、commit->pushし、再びビルドとマイグレーション

今度はうまくいったみたいなので、アプリケーションを起動。

mogok start

アプリケーション起動成功。しかし、ページを開いてみると、「Internal server error」...

こういうときは、ログを見るのが鉄則ですね。

mogok log

じっくり見ていくと、compiled assetsがないと言われてるのに気づく。

rake assets:precompile

で、commit->push->buildとやっていき、アプリケーションを再起動。

mogok stop
mogok start

しかし、再び「Internal server error」。これが直接的な原因ではないみたいです。

もう一度ログを確認すると、secret key baseがないと言われてることに気づきました。config/secrets.ymlを見ると、production環境ではsecret key baseが環境変数が使われていました。

mogok secret

これでシークレットキーが出力されます。これを環境変数として設定します。

mogok env set SECRET_KEY_BASE <シークレットキー>

ページにアクセスすると、成功します!

 

終わりに

ここまでの流れはMOGOKのDocumentsのチュートリアルhttp://mogok.jp/documents/rails_deployment_guide)で確認できる内容でもありますが、Windows環境でない場合の一例として紹介してみました。

よくよく見るとMOGOKはまだRuby 2.2に対応してないし、いろいろと無茶苦茶なこともしていますが、そこらへんは目を瞑って頂ければと思います。

これを参考に新しいアプリケーションを作ってぜひ公開してみてください。

Ruby on Railsで作ったアプリケーションをMOGOKで公開してみる(1/2)

ローカルで開発したアプリケーションを実際に公開してみたい人は多いと思います。
今回は、無償で簡単に使えるMOGOKサービスを利用して、Ruby on Railsで作ったアプリケーションを公開する手順を説明していきます。

 

環境

  • Virtual Box 4.3.20

  • Ruby 2.2.0

  • Rails 4.2.0

  • gem 2.4.5

  • git 1.7.1

 

アプリケーション作成

rails new MemoApp

早速、サーバを起動

rails s -b 0.0.0.0

すると、JavaScript runtimeが見つからないと言われたので、Gemfileを編集。therubyracerのコメントアウトを外してあげればOK。
もう一度、サーバを起動してブラウザで確認するとWelcomeページが見えるようになります。
そしたら、scaffoldを使って機能を追加してみます。

rails g scaffold Memo title contents:text
rake db:migrate

ついでに、config/routes.rbを編集。

root 'memos#index'

を追加しておきましょう。

 

アプリケーションを登録

まず、MOGOK(http://mogok.jp)のアカウントを取得します。そして、mogokツールをインストール。

gem install mogok

次にアプリケーションを登録します。アプリケーション名は被らないようなものにしましょう。このとき、アカウント情報が必要となります。

git create <アプリケーション名>

アプリケーションの登録はできましたが、remoteの設定に失敗。gitの初期化を忘れてました。

git init
git add .
git commit -m "first commit"

ここまでやったら、もう一度remoteの登録。ついでに、アプリケーションの詳細とremoteの確認も。

mogok bind <アプリケーション名>
mogok info
git remote -v

確認ができたら、pushしてみましょう。

git push mogok master

401(認証エラー)が出てしまいました。これは、リポジトリのURLにユーザ名(とパスワード)を追加すれば解決できます。パスワードを指定しない場合はpushするときに聞かれます。

git remote set-url mogok https://<ユーザ名>:<パスワード>@git.mogok.jp/<アプリケーション名>.git
git push mogok master

とりあえず、pushまではうまくいったので、次回は実際に公開までやってみます。

Eclipseの補完いろいろ

たまにしか使わないからと設定を疎かにしていたEclipse

デフォルトのままだと補完機能がいまいちだったので、簡単な部分だけとりあえず変更。

 

環境

 

手順

まずは、Auto Activationの設定

  • Eclipse -> 環境設定... -> Java -> Editor -> Content Assist -> Auto Activation

  • とりあえず、Enable auto activationにチェックが入っていることを確認

  • Auto activation delay(ms)はお好みで

  • Auto activation triggers for Javaにいろいろ足すと便利なので、

    ._abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

    に変更

  • Auto activation triggers for Javadocは今のところ困ったこと無い(経験が浅いからかな?)のでこのまま

 

候補の並び

  • Auto Activationの上にあるSorting and Filtering

  • Sort proposalsはby relevanceに設定。

  • by relevanceだと使わないと短い名前でも下位候補になって不便という方も。alphabeticallyは、どれくらい打てば補完がでるのかが分かればスピードアップできるが、似たような名前がたくさんあるときは不便。規模に合わせて変更するのがベター

 

他のEclipse

基本的に、Window -> Preferences -> 言語(JavaとかC/C++とか) -> Editor -> ...といけば大丈夫

 

感想

補完機能でそれなりに便利になったものの、space入力したいのに候補選択されてしまうのは不便。プラグインで解決できるけど、デフォルトで入れておいてほしい機能なので、今後に期待。