読者です 読者をやめる 読者になる 読者になる

OSXでText.RegexにUTF8な文字列使うとエラーでるっぽい

regex - Matching specific unicode char in haskell regexp - Stack Overflow

みたいです。実はこれと同じような状態で、Localeだけja_jp.UTF-8だけどUTF-8担ってるからいいのかなあと思ってたけどダメだった。 今回は特定の文字で文字列を分解するためだけに使ってたので諦めてsplitパッケージを使いました。 これから使うような状況になったら困るから解決法を調べたい

OSXでWord2Vec

OSXでWord2Vecを使おうとするとおかしなことになったのでメモ。 まずmalloc.hがないと言われるのでmalloc.hをstdlib.hに置換。 そいでmakeしてdemo-analogyを実行するとなんかターミナルがおかしくなります。 なんでだろうと思って色々やっていたらダウンロードしたコーパスgzipを展開するところで起こっているみたいだったので別の方法で展開して直接word2vecを実行したら普通に動きました。 とってもしょーもない落ちでした……

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:

このエラーがいまいちよくわかってないのでなんとも言えないのですが、いろいろやっているうちにHaskellMeCabパッケージにある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となっていたので、どこかに前なんかやった時のゴミが残っててそれを見に行ってしまってたようですが、そのごみがどこにあるのかわからないので気持ち悪いです。 ひとまず解決。よかった。

追記:

実際謎なので気持ち悪さが残りまくる。
追記2:まとめ

まとめ

FFIを使って他の言語のコードをリンクするようなプロジェクトの時はできるだけextra-lib-dirsとか渡したほうが面倒は少ないかもね(なげやり)

Yesodで部員管理用Webサービス作った

作ったのは結構前のことですが、書くのがいまさらになったのでメモ。
Yesodはじめてみました - haru2036のブログ
でYesodが意外としっくりきたことを書きましたが、そのままYesodで行ってみました。
私の部活はソフトウェア研究部とかいう名前のくせに部員の管理はExcelでやるとかいうとってもしょぼい感じだったので、それよりはマシかと……部員の登録から所属に合わせたメールの一括送信までを今のところサポートしています。
リポジトリはこちら:
haru2036/Member-Manager · GitHub

やる気

最近やる気がでない


ただ、単にやる気が無いだけじゃない気がしてきた
やる気とは何かという問いにぶち当たってきて結構あれ。
直近でやる気を振り分けたい目的がないという問題で、長期的にやりたいことはそれなりに決まっているのでやたらよくわからなくなってきた。

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とかに対してかなり強いらしい)のでもうちょい触ってみるかなー