momolog

生きていく中で考えたことをつらつらと

色々とごちゃごちゃやってたら行き詰まった

 なんだか行き詰ってきたので、現状をまとめようと思います。

やりたいこと

 twitter-conduitを使ってツイートしたい。まず、ここのoauth_pin.hsを実行したい。

 開発環境はWindows8.1(←苦行の道とわかっているけど、譲れない)

四苦八苦

 私のPC(WIn8.1,GHC7.8.2)だとコンパイルが通らない。

 人のPC(Mac,GHC7.6.3)だとコンパイルできた。

 仮想マシンのmikeちゃん(Linux,GHC7.6.3)だとコンパイルできた。

 Win8.1にGHC7.6.3入れてやってみたがcabalでこけた。(ghc.exeが途中で止まる)

 LinuxにGHC7.8.2入れてみようとしたんだけど、挫折した。(GMPがうまく入らぬ)

わからないこと

 Windowsがダメなのか?

 GHCのバージョンがダメなのか?

 それとも他の何かなのか?

 

 もう、どうしたらいいんだ!!??

Windows7でAsakusaSatelliteをセットアップしてみたよ

 背景

開発者間のコミュニケーションはどうしてる?

•メール?

•× スピード感がない

IRC

•× サーバ立てるのがめんどい

•× 検索が弱い

•AsakusaSatellite

•→ [せいかい]

http://www.slideshare.net/mallowlabs/a-realtime-chat-application-for-developers-asakusasatellite

 ということらしいので、会社PCでセットアップしてみることにしました。

 その方法はまあ、こちらに書いてあった通りなのですが、しかし色々と躓くことも多かったので、手順を忘れないように書いておきます。

 

動作環境

以下のソフトウェアのインストールが必要です。

    ※インストール後、binフォルダにパスを通してください。

また、以下のアドオンのインストールが必要です。

    ※インストール後、binフォルダにパスを通してください。

 

Ruby1.8.7のインストール後、gem installより以下をインストールします

  • RubyGems 1.4.2 or later
  • Bundler 1.0.7 or later

MongoDBを公式サイトからダウンロードします。

     ダウンロードしたファイルを適当なフォルダに解凍します。

      その後、binフォルダにパスを通してください。

 

インストール

ダウンロードリンク から最新版をダウンロードし、適当なディレクトリに展開してください。 展開したディレクトリを AsakusaSatellite にリネームしてください。

 MongoDBのデータフォルダを作成し、(ここではC:\mongoとします)コマンドプロンプトから以下のコマンドを実行してください。

 # MongoDBの起動(起動済みの場合は不要)

> mongod --dbpath C:\mongo(↑で作ったデータフォルダを指定してください)

 別のコマンドプロンプトを立ち上げ、以下のコマンドを実行してください。

 # MongoDBへのアクセス

>mongod

  さらに別のコマンドプロンプトを立ち上げ、以下のコマンドを実行してください。

# 展開ディレクトリへの移動

> cd AsakusaSatellite(↑で展開したフォルダを指定してください)

# 依存ライブラリのインストール

>bundle install --path .bundle --without development test

# リソースのプリコンパイル (0.8 以降)

> bundle exec rake assets:precompile RAILS_ENV=production

 あとは起動するだけです。

# WebSocketサーバ、AsakusaSatellite本体の起動

> bundle exec thin -R socky/config.ru -p3002 -t0 start &

 さらに別のコマンドプロンプトを立ち上げ、以下のコマンドを実行してください。

>bundle exec rails server -e production

 これでOK。

 ここまで来た時、4枚のコマンドプロンプトのウインドウが立ち上がっているはずです。

 では、AsakusaSatelliteにアクセスします。

 http://localhost:3000/ 

 こんなかんじのページが開けたら成功です。

 

f:id:momocus:20140424215305j:plain

 開けなかった方は、プロキシの設定を見直す必要があるかもしれません。

 IEならインターネットオプションを、GoogleChromeなら設定→詳細設定→ネットワーク→プロキシの設定の変更 を開きます。

 接続 タブ→LANの設定→詳細設定 を開き、プロキシの例外にlocalhostを追加してください。

 

 localhost 以外で運用する場合には、WebSocket サーバの設定を変更してください。 AsakusaSatelite\config\message_pusher.yml の localhost を IP アドレス等で置換してください。

socky:

  http: http://localhost:3002/http

  http: ws://localhost:3002/websocket

  app: as

  secret: secret

 設定の反映には、AsakusaSatellite の再起動が必要です。

 

 一度インストールが完了したならば、次回からは以下の手順でAsakusaSateliteを起動できます。

 # MongoDBへのアクセス

> mongod --dbpath C:\mongo(↑で作ったデータフォルダを指定してください)

 別のコマンドプロンプトを立ち上げ、以下のコマンドを実行してください。

# MongoDBの起動

>mongo

 別のコマンドプロンプトを立ち上げ、以下のコマンドを実行してください。

# 展開ディレクトリへの移動

> cd AsakusaSatellite(↑で展開したフォルダを指定してください)

# WebSocketサーバの起動

> bundle exec thin -R socky/config.ru -p3002 -t0 start &

 さらに別のコマンドプロンプトを立ち上げ、以下のコマンドを実行してください。

# 展開ディレクトリへの移動

> cd AsakusaSatellite(↑で展開したフォルダを指定してください)

#AsakusaSatellite本体の起動

>bundle exec rails server -e production

  あとがき

 …うん、えっとね、あれですね。

 めっちゃめんどい(´・ω・`)

 なんで起動するのに毎回コマンドプロンプト4枚も開かんきゃいけないんでしょう。

 DevKitの中にmsysがあったんで、それ使えばもっと楽にできるかもしれないですけど、まだ試してないです。

 まあとりあえず無事に出来たので良かったです。

 以下のサイトを参考にさせていただきました。

 http://www.codefirst.org/AsakusaSatellite/

 http://halucolor.blogspot.jp/2013/01/windowsmongodbwindows7mongodb.html

 あと助言くださったmzpさんありがとうございます。

 

 

  2014/04/25追記

 AS起動するためのバッチファイルを作成しました。

 パスの部分を適当に変えて使ってください。

start mongod --dbpath C:\mongo

start mongo

cd \AsakusaSatellite

start bundle exec thin -R socky/config.ru -p3002 -t0 start &

TIMEOUT /T 5

cd \AsakusaSatellite

start bundle exec rails server -e production

 

Windows8.1 emacs24で Haskellの環境構築

前書き

 Windows8.1 emacs24.3で Haskellの環境構築する方法について書きます。

 以前の記事、

 WindowsでHaskellのコーディング環境を整えられないよふえぇ - momolog

 の解決編になります。

  前回Haskell-modeをうまく設定できなくて困ってましたが、emacsのパッケージマネージャを利用することで解決出来ました。ご助言くださったtanakahさん、gab_kmさんありがとうございます。

本文

 Windows8.1、emacs24.3にて Haskellの環境構築をしました。

 誰かの助けになればいいなと思い、以下に手順を記しておきます。 

 

1.Haskell-Platformのインストール

 こちら(http://www.haskell.org/platform/)からインストール

 

2.emacsのインストール

 こちら(http://ftp.gnu.org/gnu/emacs/windows/)から最新版emacs-XXXX-i386.zipをダウンロード。

f:id:momocus:20140414121819j:plain

 C:\直下にファイルを解凍し、emacs-xx.フォルダが作成されたことを確認する。

 

3.emacsの初期設定

 C:\Users\ユーザー名\AppData\Roaming\ に、.emacs というファイルを作成する。

 .emacsの中に以下を書き込む。

(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")

                         ("marmalade" . "http://marmalade-repo.org/packages/")

                         ("melpa" . "http://melpa.milkbox.net/packages/")))

 

4.パッケージマネージャを利用し、Haskell-modeをインストール

 C:\emacs-24.3\bin\emacs.exeを起動する。

 以下のコマンドを入力し、パッケージ一覧を取得する。

M-x list-packages 

 パッケージ一覧の中からHaskell-modeを選択し、Installをクリック。

f:id:momocus:20140414131103j:plain

 ステータスがInstalledになればok。

 

5.動作確認

 適当に*.hsファイルを作る 例)main = putStrLn "Hello world!"

 作ったファイルをemacsから起動。

 シンタックスハイライトが付いていることを確認。

 コマンド C-c C-l を入力し、GHCiでファイルがロードできることを確認。

 main関数を呼び出して、Hello world!が出力されているのを確認。

 f:id:momocus:20140414152904j:plain

 できたー。

 

Windows8.1 Sublimetext3 で Haskellの環境構築

前書き

 前の記事では、emacsHaskellのコードにシンタックスハイライトをつけようとして、うまくいかないという話をしていました。

 そんなときにこんなリプライをいただきました。

f:id:momocus:20140412202445j:plain

  Sublime text。なんでしょうそれは。

 ぐぐってみたところ、最近話題沸騰中の素敵なエディタであるらしい。

 Haskellのシンタックスハイライトつける機能あるの?と聞きましたら、

f:id:momocus:20140412202852j:plain

 ということらしい。ふむ。

 emacsに拘る理由もないし、いろんなエディタ試してみるのもよいかなと思いまして、SublimeText上でのHaskellプログラミング環境を作ってみることにしました。 

 

本文 

 Windows8.1 Sublimetext3 で Haskellの環境構築をする手順です。

1.Sublimetext 3のインストールと初期設定

1-1.Sublimetext 3のインストール

 公式ページ(http://www.sublimetext.com/3)から、自分の環境にあったパッケージをインストールします。

 

1-2.日本語化を行うため、パッケージコントローラをインストール

 「Ctrl+`」でコマンドパレットを開きます

 こちら(https://sublime.wbond.net/installation)からインポートテキストをコピーしてコマンドパレットに貼り付け、Enterを押します。

 

f:id:momocus:20140412205307j:plain

1-3.日本語化する

 「Ctrl+Shift+P」でPackage Controlを起動します。

 ”Package Conreol:Install Package”を選択します。

 f:id:momocus:20140412210250j:plain

 "japanize"を選択します。

 ここからがポイント。

 C:\Users\ユーザー名\AppData\Roaming\Sublime Text 3\Packages\Japanize\messages\install.txt に記された手順に沿って作業しなければならないのですが、そうしてみたところ、メニューの一部が重複するという現象が生じました。

 そのため、私は以下の手順で行いました。

  適用手順  

1.C:\Users\ユーザー名\AppData\Roaming\Sublime Text 3\Packages\Japanizeにインストールされている*.jpファイルを、  

    C:\Users\ユーザー名\AppData\Roaming\Sublime Text 3\Packages\Default  

  にコピーします。※Defaultフォルダがない場合は作成してください。  

2.コピーしたファイルから拡張子の.jpを削除します。(オリジナルのファイルが有る場合は、念のため.orgなどを付けて保管しておきましょう。)  

3.C:\Users\ユーザー名\AppData\Roaming\Sublime Text 3\Packages\Japanize\Main.sublime-menu(.jpが付かない方)を、  

    C:\Users\ユーザー名\AppData\Roaming\Sublime Text 3\Packages\User  

  にコピーします。すると、他のプラグインで上書きされてしまっているトップメニューも日本語化されます。  

 

以上です。  

 適用手順の3をまるまる飛ばしました。

 

1-4.日本語IMEを入れる

 http://luna-plate.com/archives/4637 から引用です。

日本語で文字を入力してみると分かるのですが、このままでは日本語の入力時に別窓が立ち上がり、そのまま入力が出来ません。

使えなくはないけどちょっと不便なので、日本語入力がそのまま出来るようにプラグインを入れます。

日本語化したときと同様に「Ctrl+Shift+P」でPackage Controlを起動します。

「Package Control:Install Package」を選択して「IME Support」を検索します。

クリックしてインストール完了です。

 

2.Haskellの環境構築

2-1.Haskell-Platformのインストール

 こちら(http://www.haskell.org/platform/)からWindows向けのHaskell-Platformをインストールします。

2-2.SublimeREPLをインストール

 Haskellをエディタ内で動かせるようにするため、SublimeREPLをインストールします。ちなみにSublimeREPLはHaskell専用ではなく、なんかいろいろな言語に対応しています。すごいですね。

 「Ctrl+Shift+P」でPackage Controlを起動します。

 ”Package Conreol:Install Package”を選択します

 SublimeREPLを選択します。

 インストールが終わったらSublimeTextを再起動します。

2-2.SublimeREPLの設定変更

 [Preferences]->[Package Settings]->[SublimeREPL]->[Settings - Default] の中の

 "default_extend_env": {},

 を編集します。

 "default_extend_env": {"PATH":"{PATH};C:/Program Files (x86)/Haskell Platform/2013.2.0.0/bin"},

 PASSはお使いのPCの中のGHCi.exeがあるディレクトリを指定してください。Haskell-Platformのバージョンやインストール方法によって変わります。

 

2-3.FluentREPLのインストール

 Haskellソース編集後、保存と同時にghciにロードするプラグインFluentREPLをインストールします。

 インストール方法はこちら(https://github.com/zaneli/FluentREPL)に従ってください。英語だけど簡単です。

 

3.動作確認

 [ツール]->[SublimeREPL]->[Haskell]

 コードにシンタックスハイライトがつきます。

 ファイルを保存すると同時に、GHCiが自動で立ち上がりファイルをロードします。

 

f:id:momocus:20140412202201j:plain

 

 

 

参考にしたサイト

http://luna-plate.com/archives/4637(Sublimetextのインストール手順と初期設定)

http://d.hatena.ne.jp/lycoris_blog/20130705/1373044261Mac向けの設定方法)

http://elfcobe.hateblo.jp/entry/2013/05/14/161211  (HaskellではなくRの設定方法)

 

[解決済]WindowsでHaskellのコーディング環境を整えられないよふえぇ

やりたいこと

 会社のPC(Windows)でHaskellのコーディング

 コードにはシンタックスハイライトがついてほしい

 

参考にしたサイト

 http://d.hatena.ne.jp/seroron/20120701/1341153355

 

詰まったところ

 上記サイトの4.「emacs.el」の設定

 emacs.elに下記内容を追記する。

 

;; haskell-mode
(load "~/.emacs.d/haskell-mode/haskell-site-file")
(add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode)
(add-hook 'haskell-mode-hook 'turn-on-haskell-indent)
(add-hook 'haskell-mode-hook 'font-lock-mode)
(add-hook 'haskell-mode-hook 'turn-on-haskell-ghci)

 って書いてあるんだけど、一行目でロードしてるhaskell-site-fileが現在のhaskell-modeのファイル(Githubから取得)には含まれていないので、エラーが出る。

 このhaskell-site-fileに相当するほかのファイルがあるのか、あるいは別の方法をとらなければならないのかすらもわからなくて詰んでます。

 だれかたすけて。

 

 

 

 

 

Haskell勉強中

 はじめに の記事でSML#を勉強すると言っていましたが、最近主に勉強しているのはHaskellです。

 

 なんでそーなったかって言うと、

 

 理由その①

 なんでもいいから勉強会に参加してみたかったからです(なごや界隈に住んでいながら、勉強会に参加したことが一度もないことを負い目に感じていました)。

 かつ、なごやでHaskellの勉強会が定期的に開催されているのを知っていました(すごいHaskellこはまさんと学ぼう という会。http://connpass.com/series/424/)。

 

 理由その②

 TwitterのわたしのTLでHaskellがちやほやされています。流行には乗りたい派です。

 

 理由その③

 Minecraftにハマっている間に、SML#について勉強したことをほとんど忘れてしまいました。

 

 ということで、今は勉強会にむけてひたすらHaskellの本(通称すごいH本)を読んでお勉強中です。

 

[解決済]ユニティモードに出来ないよふええ

[問題編]

 うぶんつ起動したら、ユニティモード※1にできませんでした。

 ”VMware Toolが最新版か確認して下さい”というメッセージが出るのですが、何度確認しても最新版でした。

 

[解決編]

 原因は、わたしが使っていたうぶんつに標準インストールされていた「Unity」というデスクトップ環境※2がユニティモードに対応していないためでした。

 そのため、別のデスクトップ環境をインストールし、そちらを使うことでユニティモードを使うことができるようになりました。

 

※1

 ユニティモードっていうのは、WindowsLinux、異なるOS上で動くソフトをあたかもひとつのOSで動かしているような、そんな表示をしてくれるVMwareの機能です。たぶん。Windowsのソフトのように仮想環境のソフトを実行するモードです。説明は難しいですが、使ってみるとすぐに分かるはずです。

 Windows7以降にある、XPモードというのと同じような感じです。

 http://windows.microsoft.com/ja-jp/windows7/products/features/windows-xp-mode

 ユニティモードとは でぐぐると以下のサイトがヒットしたので、わかんない方は参考にしてください。

 

 http://cloud.watch.impress.co.jp/epw/docs/series/virtual/20091109_326953.html

 http://www.manbo.org/?p=828

 

※2

 デスクトップ環境 とは、Androidで言うホームアプリみたいなもんです。

 デスクトップ管理ソフト でぐぐると以下のwikiがヒットしたので、わかんない方は参考にしてください。

 http://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E7%92%B0%E5%A2%83

 

[おまけ]

 今回もVMwareを使い慣れた知人の力を借りて解決策にたどりつきました。

 いろいろ教えてもらいながら思ったのですが、Linuxの機能を、「例えば、Windowsでいう○○だよ」とか「Androidで言う××にあたるね」というように、例えで言ってもらうととてもわかり易いですね。