mmag

ハマったことメモなど

2015-01-01から1年間の記事一覧

接続端末が同期して光るサイリウムみたいなWebアプリをつくった

やったこと 年末に宴会芸みたいなものをやることになり色々と何をやろうかと話し合っていたのですが、どうにもオモシロな方向に振り切れなさそうだね〜となり、エンタメ方向なことをやりました。具体的には、 数名が舞台で踊る 観客には、あるサイトにスマホ…

iexで「recompile」が便利だった

iex(1)> MyApp.MySup.start_my_server {:ok, #PID<0.101.0>} iex(2)> recompile 15:34:42.541 [info] Application my_app exited: :stopped Compiled lib/my_app/my_app.ex Compiled lib/my_app/my_sup.ex Generated my_app app {:restarted, [:my_app]} い…

Phoenixでgulpとか(brunchじゃないやつ)を使う

Phoenixフレームワークでは、mix phoenix.serverするとデフォルトでbrunchが立ち上がって、 web/staticらへんのファイルを監視してくれます。 とてもありがたいのですが、「え〜、brunch???」と思う方もいらっしゃるでしょう。 そんなときは、おもむろにconf…

YAPC::Asia 2015に参加しました

8月20日の前夜祭から22日まで、YAPC::Asia 2015に参加してきたので、所感を書きます。 技術的なこと Kazuho Okuさんの「HTTP/2時代のウェブサイト設計」が印象的でした。 HTTP/2時代のウェブサイト設計 from Kazuho Oku www.slideshare.net これまでは、HTTP…

phoenixでGET以外のリンクが効かなくなったときのメモ

なにが起きた phoenixのv0.16.0が出たのでガッとアップデートしたら、一緒にphoenix_htmlとかもバージョンが上がりました。動くっしょ〜と何も考えずにいたら、動かなくなってました。 症状は、linkヘルパで作ったリンクの内、GET以外(確認したのはPOSTとDELE…

Elixir Playgroundが便利っぽい

My @elixirlang playground is finally out! You can run code (!) & share/embed snippets. Have a look: http://t.co/dYoYOxMPOn #myelixirstatus— Steve Domin (@stevedomin) 2015, 8月 10 ということなので使ってみよう。 便利っぽい。

Ectoで複数のRepoを使う

なにがしたい 例えば、レガシーなシステムを徐々にモダンにしていきたいので、古いDBと新しいDBを 共存させたいとします。要は、異なる接続先の2つ3つのDBを使いたい。 どうする Repoを2つ作ります。 以下、Phoenixのディレクトリ構成に合わせて説明します。…

Ectoで生成されるidカラムの名前を変える

Phoenix v0.14.0, mariaex v0.3.2. 発端としては、デフォルトでつくられるidの名前をevent_idにしたかった。というか、事情によりしなければならなかった。table/2にprimary_key: falseを与えるとidが作られないというのはすぐにわかったのだけれど、auto_in…

Phoenixでconfirm付きのdelete

phoenix_htmlのlinkヘルパは、リクエストメソッドがgetの場合は普通にaタグでリンクを作り、そうでない場合はaタグをformでラップして、onclick属性が働くような組み立て方をしてくれます。 で、何かリソースをdeleteするようなリンクでは、「ホントにOK?」…

PhoenixでDBにseed

これが正解みたいな方法は無いのでは。多分。 # priv/repo/seeds.ex alias MyApp.User alias MyApp.Repo Faker.start Enum.each 1..99, fn i -> params = %{name: Faker.Name.name, email: Faker.Internet.email} User.changeset(%User{}, params) |> Repo.i…

Rails Engineでマウントする側のモデルとされる側のモデルのassociation

目論見 MyAppという普通のRailsアプリにMyBlogというエンジンをマウントする。 MyAppにUserモデルがあることをMyBlogが知っていると仮定(設定できるようにしたほうが良いけどとりあえず)。 MyBlogにはArticleモデルがあり、Userには複数のArticleを持たせた…

HTTPoisonでパラメータありGETリクエスト

hackneyベースのElixir用HTTPクライアントライブラリのHTTPoisonでGETリクエストを送ろうとしてハマったのでメモ。 どこでハマったかというと、GETパラメータの指定方法がよくわからんかった。結論はこれ。 params = [key1: 1, key2: 2] HTTPoison.get!("htt…

社内Elixir勉強会をやってて思ったこと

5月のアタマから、だいたい週1回のペースで社内Elixir勉強会をやってきました。 新卒のペーペーですが、ちょっと思うことがあるので、だらだら雑にポエムを垂れ流しておきます。 特に、何か主張したいことがあるわけじゃないです。 ちなみに勉強会の資料はこ…

社内でElixir勉強会をした

GMOペパボ社内で「おいお前らElixirやるぞ!!」なことをしました。 資料はこちら Elixirだ 第1回 - 基礎だ - from Joe_noh 一応社内のエンジニアに届くかたちで呼びかけはしましたが、諸々の都合で急遽開催したので、結果ワタシが同期4人に対して1時間ほど…

第1回ペパボテックカンファレンスに行ってきた

はい。 行ってきました。 メモも取りましたが、こちらのブログの方が圧倒的にまとまっているのでリンクしてお茶を濁します。 第1回ペパボテックカンファレンス参加レポート - りあるふぁいとぷろぐらまーrfp.hatenablog.com さて、皆さんの発表を聞いた感想…

MapSetがElixirに入るとのこと

Erlang 18のリリース後、Elixirに新モジュールMapSetが追加されるようです。 lexmagさんが実装・ベンチマーキングし、HashSetと比較した結果がこちら。 MapSet evaluation - elixir#3242 ひゃー。爆速。 この記事を書いている時点ではまだ全ての関数のベンチ…

GMOペパボに入社しました

以上だッッッ!!!!!!1

phoenix.newがarchiveされるっぽい

以前、Phoenixプロジェクトの新規作成というエントリで書いた方法が、v0.10.0で導入されたbrunch周りでエラーを吐くようになっていて困ったっちー。 そこで、ふとphoenixframework/phoenixのmasterの様子を見てみると、こんなのがマージされてた。さすが、バ…

ElixirのHashSetを読んだ

lib/elixir/lib/hash_set.exです。 なにするやつか iex(1)> set = HashSet.new #HashSet<[]> iex(2)> set = HashSet.put(set, :a) #HashSet<[:a]> iex(3)> set = HashSet.put(set, :b) #HashSet<[:b, :a]> iex(4)> set = HashSet.put(set, :c) #HashSet<[:c,…

ember-cli adapter generate [検索]

$ ember g adapter ApplicationAdapter --base-class=Fixure --base-classには"Adapter"を付けないもよう。 追記 なんかトラブるのでember gはほどほどにしようと思いました まる

Mixプロジェクトに同梱したファイルを参照する

ある新しいライブラリに以下の問題があってムムッと思ってプルリクした。 例えばlib/data/people.ymlを置くとする。lib/my_app/module.exでこのファイルを読みたい。 # ダメな例 "lib/data/people.yml" |> File.open # 良い例 "../lib/data/people.yml" |> P…

メモ

Phoenix + Ember(Ember CLI) priv/static/js/にember-cliプロジェクトのdistへのsymリンク貼る。 web/templates/layout/application.html.eexとかに <%= if Dict.get(@conn.assigns, :ember_page, false) do %> <script src="js/dist/assets/vendor.js"></script> <script src="js/dist/assets/emph.js"></script> <% end %> とか書く。さらに、dist/ind…

Phoenixプロジェクトの新規作成

※ 追記 このエントリの内容は古くなっています。以下の記事を参照してくださいな。 phoenix.newがarchiveされるっぽい - mmag 追記終わり。 -- おひさ。 いままでは本家をgit cloneして目当てのバージョンのタグにチェックアウトして、 $ mix phoenix.new my…