2016-01-01から1ヶ月間の記事一覧

Clojureを勉強している14

今日はスタートが遅かったので1日分で終わり Week 2 Day 1 おなじみフィボナッチ数列がなぜかできなくて、ンゴーンゴー言ってたら0からじゃなく1から始まるバージョンだった。 全部自力で解けたぞう(言語リファレンスは見ながら) Living Clojure作者: Cari…

Elixir/Phoenixでウェブサービスを作っている24

Done: ブラウザ tabindexを付ける onFocus, onClick時にカレントゴールを変更しスクロールする hjkl移動のとき、フォーカスも移動するようにした ItemTreeComponentで自分自身のnodeをthis.props.nodeで取れるようにした Todo: ブラウザ 親から子に移動する…

Elixir/Phoenixでウェブサービスを作っている23

Done: ブラウザ smoothScroll()を修正 #wrapの高さ変更(windowの高さに応じて固定) 上下左右移動で行き先の要素の有無を確認するようにした 上下左右移動でカレントゴールを変更するようにした Todo: ブラウザ new/create n: 新規、enterで作成 edit/updat…

Clojureを勉強している13

How Do I Use This Training Plan? 1週5日、7週間、即ち35エクササイズで終わるトレーニングプランとのこと 最初の3週間は4Clojureというウェブサイトの課題を解く 穴埋め形式っぽい 次の3週間はルイス・キャロルと不思議の国のアリスにインスパイアされたプ…

Clojureを勉強している12

第9章をやったというか調べた。頑張っていっぱい書いたのだが、はてなブログが"The body contains NG words"のエラーを出し死亡。リンク集的になったのがダメだったのかもしれない。本を読んでくれ。良いリンク集だった。 gist37e41fa3e42572b34538 Living C…

Elixir/Phoenixでウェブサービスを作っている22

Done: ブラウザ this.props.childrenを上書きしてるので修正 children -> descendants ItemTreeComponentに与えるprops見直し goal_tree全体は含まない ツリー全体に関わる処理はsubscribe()でやる JsonPath入れる やめ。insertなどできるモデルを導入。 木…

Clojureを勉強している11

Chapter 8 The Power of Macros Exploring Macros マクロだ! マクロで何ができるかというと…… 自分自身で言語機能を作成し埋め込むことができる プログラムに必要なコードの行数を減らし、より簡明に読みやすくできる パターンや繰り返しのコードを包んで、…

Elixir/Phoenixでウェブサービスを作っている21

昨日は風邪ひいて寝まくった。今日はやるぞ。やった。 Done: ブラウザ Material Design Lite導入失敗。 スクロールが効かなくなる 現在あるべき位置をsubscribe()に飛ばしてそこでスクロールする 初期表示&スクロールのときだけ遅延させる react-keydown導…

Clojureを勉強している10

Making HTTP Calls with ClojureScript and cljs-http cljs-httpライブラリはclojurescriptでHTTPを扱うライブラリと。 core.asyncと組み合わせて使うととってもいい感じ?(英語を雰囲気で読んでいるのでご勘弁) :require-macrosとかいう新しいのが出てき…

Elixir/Phoenixでウェブサービスを作っている20

Done: ブラウザ ゴールツリー全体をセンタリング 現在のゴールが中心になるようにスクロール スクロールのイージング power_assert_exのバグが直ったので再び採用 Todo: ブラウザ 現在あるべき位置をsubscribe()に飛ばしてそこでスクロールする ツリー全体を…

Clojureを勉強している9

7章の続き。 Using Clojure in Your Browser with ClojureScript ClojureScriptだっ! project.cljのdependenciesにorg.clojure/clojurescriptを加え、pluginsにlein-cljsbuildを加え、cljsbuildの設定を書く、と。 lein trampoline cljsbuild repl-rhinoでc…

Elixir/Phoenixでウェブサービスを作っている19

寝てて更新が遅れた。今日は深夜大寒波で足が寒くてプログラミングやってらんなかったのと、Clojureの勉強の方でVimの設定にハマったので、些少な進捗しか出せなかった。明日は頑張る。 Done: ブラウザ 開いてないゴールをdisplay: noneするようにした Todo:…

Clojureを勉強している8

Creating a Web Server with Compojure 第7章はウェブアプリを作るということなので楽しみでござる おっ、ClojureScriptも書くらしい。 Compojureというライブラリを使うらしい。 CompojureはRingというローレベル・ウェブアプリケーション・ライブラリにシ…

Elixir/Phoenixでウェブサービスを作っている18

Done: ブラウザ jsでスムーススクロールする方法の調査 scrollTop animation without jquery jsでマウスホイールイベントを取得する方法の調査 ホイール系イベント2014年版クロスブラウザ HTMLの構造をカラムからツリーに変更 Todo: ブラウザ ツリー全体を展…

Clojureを勉強している7

ns関数の引数に(gen-class)を入れないとREPLが立ち上がったときに環境を読んでくれないのでハマった。 Basics of core.async Channels まずは同期: chanでチャネルを作成 chanの引数に数字を与えるとその分だけバッファが作られる >!!でブロッキングput !で…

Elixir/Phoenixでウェブサービスを作っている17

今日は出だしが遅かったので進捗が少ない(しかし、コミット数は多め)。 Done: ブラウザ Component分割 CSS3でリストのツリーをカラム表示に変換できるか調査 実験中…… 先祖を詰めるのが難しい JSONPathが必要? JavaScript用: s3u/JSONPath こっちは多分要…

Clojureを勉強している6

Getting Set Up with a Clojure Editor やっとファイルに書ける! ずっとREPLでやってきてtypoしたとき不便だった。 vimなのでvimプラグインを入れる guns/vim-clojure-static シンタックスハイライト、インデントなど。基本。 tpope/vim-fireplace vimからR…

Elixir/Phoenixでウェブサービスを作っている16

Done: サーバ リファクタリングいろいろ Goal.Commands copy Goal.Queries self_and_descendant_ids descendant_ids POST /goals/:target_id/copy?dest_parent_id=:dest_parent_id&dest_position=:dest_position Todo: サーバ Activity(activities) id goal_…

Clojureを勉強している5

Javaとの互換性の話。 .だけでJavaのメソッド呼び出せるのかすげえな。 new関数はわかりやすいんだけど、型の後ろに.付けてインスタンス生成するのはちょっと覚えにくいな。 ElixirもErlangのモジュール呼び出すの簡単になってるし、VM利用言語は気を使って…

Clojureを勉強している4

状態とコンカレンシーの話。 atom出てきた。 reset!で再セットか swap! 別のスレッドで使ってる場合はリトライされるのか。 例ではfutureで別スレッドを用意 printlnみたいな副作用を含む関数などを差し挟むと当然同じ出力が発生する しかし、atomは想定通り…

Elixir/Phoenixでウェブサービスを作っている15

今日は軽微なコミットしただけで、画面の方考えてた。そろそろサーバの方終わるので、と思ったんだけどサーバ側も増えた。先に画面やるけど。 Done: Phoenix 1.1.1から1.1.3へアップグレード 参考:1.1.1 -> 1.1.2 package.jsonを書き換えた後、npm install…

Elixir/Phoenixでウェブサービスを作っている14

Done: サーバ PUT /goals/:id check_descendants! 自分の子孫に移動しないように確認 descendants self_and_descendants DELETE /goals/:id cascadeに任せてる…… Todo: サーバ Goal child_ids sibling_ids ancestor_ids descendant_ids POST /goals/:id/copy…

Clojureを勉強している3

今日は第2章第2節から第2章の最後までやりました。いや〜面白かった。綺麗だね。 Functions Creating Functions and Other Neat Expressions partialがカリー化か。 compすごい。 Destructuring 最近の言語は付けるようになってるね。良い mapのdestructurin…

Elixir/Phoenixでウェブサービスを作っている13

読書の方は1冊読み終わったので1日休憩ズラ。 Done: サーバ PUT /goals/:id update move inc positions dec positions ややこしいしめっちゃ汚い Todo: サーバ PUT /goals/:id 自分の子孫に移動しないように確認 DELETE /goals/:id POST? /goals?:from_id&to…

Elixir/Phoenixでウェブサービスを作っている12

起きるのが遅かったのでここまで。久しぶりにめっちゃ熟睡できたのでヨシ。 Done: サーバ 閉包テーブルやめて隣接リストwith再帰クエリにする DBをPostgresにする 一応テスト書いてたので割りと簡単にできた insert children parent siblings Todo: サーバ P…

DDDを読んでる15

全部読み終わった。感想は特にない。スマン。 「それは違うだろ」とか「もっと上手いやり方がある」とかは一切出てこなかったな。元々の自分の読書の仕方が「鵜呑み」であるということもあるのだが、至極真っ当なソフトウェアの作り方だと思う。 う〜ん、全…

Elixir/Phoenixでウェブサービスを作っている11

Done: サーバ 閉包テーブル勘違いしてたのでいろいろ修正 MySQL/MariaDBをターゲットにやってたけど、PostgreSQL再帰クエリ使えるやんけ。どうしようかな…… Todo: サーバ PUT /goals/:id update move DELETE /goals/:id ユーザーチェックを入れる ブラウザ …

DDDを読んでる14

この章は特に直近で必要としてないので身が入らない。読んだだけだなぁ。 第16章 大規模な構造 進化する秩序(EVOLVING ORDER) システムのメタファ(SYSTEM METAPHOR) 「素朴なメタファ」とそれを必要としない理由 責務のレイヤ(RESPONSIBILITY LAYERS) …

Elixir/Phoenixでウェブサービスを作っている10

Done: サーバ GET /goals/:id/parent GET /goals/:id/siblings Goalにparent_id, generationsカラム(ヴァーチャル)を付ける POST /goals create insert copy Todo: サーバ PUT /goals/:id update move DELETE /goals/:id ユーザーチェックを入れる ブラウ…

DDDを読んでる13

やっぱ最低2度は読まないと分からないな。分かっても頭に入ってないので、また機会を設けて読みなおす必要がある。 第15章 蒸留 コアドメイン(CORE DOMAIN) コアを選択する 誰がこの作業をやるのか? 蒸留の拡大 汎用サブドメイン(GENERIC SUBDOMAINS) …