OSXでText.RegexにUTF8な文字列使うとエラーでるっぽい
regex - Matching specific unicode char in haskell regexp - Stack Overflow
みたいです。実はこれと同じような状態で、Localeだけja_jp.UTF-8だけどUTF-8担ってるからいいのかなあと思ってたけどダメだった。 今回は特定の文字で文字列を分解するためだけに使ってたので諦めてsplitパッケージを使いました。 これから使うような状況になったら困るから解決法を調べたい
OSXでHaskellとMeCab
ハマったのでメモ。(割りとどうでも良い落ちだったのでアレ)
困った
環境: OSX10.9.4 + GHC7.8.2 + MeCab0.996(HomeBrewでインストール) + cabal1.20.0.2 (問題のプロジェクトはCabal sandboxにインストールしています。)
発生した問題: mecabを使ったプロジェクトでcabal install するとリンク中にエラーが発生する
Linking dist/dist-sandbox-e0def0a9/build/command-line/command-line ... Undefined symbols for architecture x86_64: "_mecab_get_all_morphs", referenced from: _cfSP_info in libHSmecab-0.4.0.a(MeCab.o) "_mecab_get_lattice_level", referenced from: _cfFl_info in libHSmecab-0.4.0.a(MeCab.o) "_mecab_get_partial", referenced from: _cfW9_info in libHSmecab-0.4.0.a(MeCab.o) "_mecab_get_theta", referenced from: _cfCP_info in libHSmecab-0.4.0.a(MeCab.o) "_mecab_set_all_morphs", referenced from: _cgo1_info in libHSmecab-0.4.0.a(MeCab.o) "_mecab_set_lattice_level", referenced from: _cfXT_info in libHSmecab-0.4.0.a(MeCab.o) "_mecab_set_partial", referenced from: _cfU5_info in libHSmecab-0.4.0.a(MeCab.o) "_mecab_set_theta", referenced from: _cfEc_info in libHSmecab-0.4.0.a(MeCab.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) cabal: Error: some packages failed to install:
このエラーがいまいちよくわかってないのでなんとも言えないのですが、いろいろやっているうちにHaskellのMeCabパッケージにあるversionを使ってみると0.97が帰ってきて、意図的にインストールした0.996とは違うのでどこかに別のMeCabがあるのではないかと思っています
なおった
cabal installするときに、使いたいMeCabのあるディレクトリを渡してあげないとダメなようです。とりあえずこれで解決しました。
cabal install mecab --extra-include-dirs=/usr/local/Cellar/mecab/0.996/include/ --extra-lib-dirs=/usr/local/Cellar/mecab/0.996/lib/
これで動作するようになってからversionを見たら0.996となっていたので、どこかに前なんかやった時のゴミが残っててそれを見に行ってしまってたようですが、そのごみがどこにあるのかわからないので気持ち悪いです。 ひとまず解決。よかった。
追記:
でもまあMeCab 0.97なんてインストールした覚えがないんだよなあ、OSXに最初から含まれてるのかな……
— はる(ATMで紙幣が詰まる) (@haru2036) 2014, 8月 16
実際謎なので気持ち悪さが残りまくる。
追記2:まとめ
まとめ
FFIを使って他の言語のコードをリンクするようなプロジェクトの時はできるだけextra-lib-dirsとか渡したほうが面倒は少ないかもね(なげやり)
Yesodで部員管理用Webサービス作った
作ったのは結構前のことですが、書くのがいまさらになったのでメモ。
Yesodはじめてみました - haru2036のブログ
でYesodが意外としっくりきたことを書きましたが、そのままYesodで行ってみました。
私の部活はソフトウェア研究部とかいう名前のくせに部員の管理はExcelでやるとかいうとってもしょぼい感じだったので、それよりはマシかと……部員の登録から所属に合わせたメールの一括送信までを今のところサポートしています。
リポジトリはこちら:
haru2036/Member-Manager · GitHub
やる気
最近やる気がでない
やる気なさすぎて辛い
— はる (@haru2036) 2014, 8月 4
ただ、単にやる気が無いだけじゃない気がしてきた
やる気欠乏症というよりやる気を振り分けるに値する目的欠乏症な気がしてきた
— はる (@haru2036) 2014, 8月 4
やる気とは何かという問いにぶち当たってきて結構あれ。
直近でやる気を振り分けたい目的がないという問題で、長期的にやりたいことはそれなりに決まっているのでやたらよくわからなくなってきた。
MacBook Pro を買って返品して買った
MacBook Pro Retina 13の2.4GHz/8GB/256GBモデルを先日買ったのですが、その直後にお値段据え置きでCPUが2.6GHzになったモデルが発売されてしまいました。
なんか負けた気がしたのでダメ元で購入先のApple Store Ginzaに電話して聞いてみたらあっさり「ええでw」との返答がいただけたのでリフレッシュ版のモデルに交換していただきました。内心マジでそんなことが可能だとは思ってなかったのでめっちゃ焦った。
ちなみに:AOCのWebショップにつながらなかったけどアポーストアで聞いたらAOC適用価格で買えました。すてき。
個人的にりんご製品買うことがめったにないけど買うとしたらリアルなアポーストアでかうのがよさげ。
Yesodはじめてみました
これまでWebアプリをまともにやったことなかったので、どうすればいいのかわからなかったのと、FlaskとかRoRとか触ってみてもなんかしっくり来なかったので、ヤケになってHaskellのWebフレームワークであるYesodを触ってみました。
YBlog - Haskell web programmingを参考に最後の簡易ブログのところまでと、Yesod.AuthのGoogle認証を使った認証までを試してみました。
テンプレート言語であるhamlet自身とそのとHaskellコードの対応に若干戸惑いましたが、それなりに行けたのでもしかしたらこれがこれまで触った中で一番しっくり来る可能性が……
あとWebアプリに手を出さなかった最大の理由である怖いという理由も払拭してくれそう(デフォルトでXSSとかに対してかなり強いらしい)のでもうちょい触ってみるかなー