はじめに Hyperapp Helmetという、Hyperappフレームワーク用のライブラリをリリースしました。 Helmetとは、React Helmetが有名/はしりですが、<head>タグの中を書き換えるコンポーネントのことを言います。 昨今の検索エンジンbotはJavaScriptを解釈しますので、S</head>…
6章 WIP制限を読んだ。 「デヴィッド・P・ジョイス」が誰だかググッてもよくわからなかった。 おーっ、人にWIP制限をかけるとか、作業項目をタスクに分割するとか、自由度が高い! 物理強い!! カンバン仕事術作者: Marcus Hammarberg,Joakim Sundé…
5章 仕掛り作業を読んだ。WIPについて。 チケットに付ける[WIP]と紛らわしそう。「チケットのWIP」「カンバンのWIP」って呼び分けるのかな。それとも前者をWork in Progress、後者をWork in Processと呼び分けるのかな。(追記:角さんのTwitterでのツッコミ…
4clojureの問題はギブアップして最後の章やった。難しくて億劫になってしまったもんで。 Clojure 1.7.0から入ったtransduceの説明だった。 これにて終わり。 Living Clojure作者: Carin Meier出版社/メーカー: O'Reilly Media発売日: 2015/04/14メディア: Ki…
いまのところ4章まで。おもろい。特急レーンのとこで「おっ、頭いいな。なるほど〜」と思った。 4章の作業項目カードは全部はできないなと思った(全部やる必要ないと書いてある)。既に買った付箋がそんなに大きくないので。Post-itの75x100mmのを買ったん…
手を動かさないでよい本も読むことにした。 内容なんですが、流石実践者ということで一日の長があるな、と感じた。特に、2章3節の「オフィスにあってリモートにないものを補完する」が面白かった。オフィスにはある「存在感」「雑談」などを試行錯誤でリモー…
Week3 Day 1 To Tree, or not to Tree バイナリツリーのチェックかー。3要素のコレクションだったらいいのかな?と思ったらfalseと空リストはアカンっぽい できた。 Beauty is Symmetry 安直に95の条件に(= (second t) (last t))を加えてみたが4つ目で死ん…
Done: サーバ Goal.Commands.deleteを作る(positionを詰めるため) Goal.Commands.update_positionsでポジションが変わらないときの処理を追加 ブラウザ new/create n: 新規(下) N: 新規(上) enterで作成 escでキャンセル edit/update e: 編集、enterで更新…
Done: サーバ ブラウザ TreeModelのオプションchildrenPropertyNameをdescendantsからchildren(デフォルト)に変更 /goalsで初期ステートを構築するようにした 子が0のときのゴールの新規作成ができるようにした コンポーネントの構造(ul,liの包含)を変更 T…
Week 2 Day 5 Pascal's Triangle パスカルの三角形の指定した行を描けというもの。 お手上げ。 ググッてすごく綺麗だなと思ったのがこれ gist.github.com あ、mapってそういう動きするんだ、っていう。 Living Clojure作者: Carin Meier出版社/メーカー: O'R…
Done: サーバ サインアップ後のログインでエラーになっていたのを直した /goals/roots作成 /goalsでカレントユーザーのrootsとその子孫を返すように変更 JSON APIでセッションを認識するようにした ブラウザ URLが/goalsのとき/goalsをリクエストし取得する…
Projectモデルやっぱいらんなということでまた大改造した。フラフラして良くない。 Done: サーバ Activity(activities)モデルを作成 User.nickにunique属性をつけた Projectを削除 ブラウザ Todo: ブラウザ /projects/で取得したprojectに基づき/goals/(JSON…
今日はめちゃめちゃしんどくてコード書くのを諦めたら元気出てきたのでコード書いた。Fetch API初めて使ったんですけど、これ楽しいですね。 Done: サーバ TWITTER_REDIRECT_URI必要なさそうなので.envrc.exampleから消した サインアップ後は/projects/に飛…
Done: サーバ Projectモデルを作成 Membershipモデルを作成 Statusモデルを作成 Project(projects) サインアップ時にproject, membership, goal(root)を作るようにした Goal(goals) project_idを足した owned_byを削った Todo: ブラウザ GoalController.inde…
Week 2 Day 4 Symmetric Difference clojure.set/{intersection,difference,union}を使ってクリア。 Least Common Multiple -最小公倍数か。効率よいアルゴリズムとか知らんな……。ググる。2つを掛けたものを先日やった最大公約数で割ればいいのか…… ゲーッ…
Done: ブラウザ onKeyDownイベントハンドラをGoalAppComponentからItemTreeComponentに移した hjklキーを押したときの処理をItemTreeComponentに移動した siblingを求める処理でツリーを探索しないようにした currentを求める処理でツリーを探索しないように…
頭使うんで数日分をまとめてできなくなってる。1日分の問題数が少なくなったのでリンクを張ることにした。 Week2 Day 3 Simple Clojures できた。関数を返す関数ですな Cartesian Product 全組み合わせかよ。デカルト積・直積って言うのか。 REPLではできて…
Done: ブラウザ mocha/power-assertの導入 ispartaの導入 Todo: ブラウザ コンポーネント化 TreeModelを継承したモデルを作ってsiblings関係の関数を生やす new/create n: 新規、enterで作成 edit/update e: 編集、enterで更新 delete X: 削除 copy/cut/past…
Week 2 Day 2 (let [[a b & c :as d] __] [a b c d])難しいな。dはa b & c全体の変名っぽい not=は引数いくらでも取れるんだなぁ gcd書けとな。ユークリッドの互除法かー、名前だけ知ってて覚えていないのでググる。できた。 Living Clojure作者: Carin Meie…
Done: ブラウザ フォーカス移動時、要素が中央にこないのを修正 スムーススクロールやめたらガクガクしなくなった Todo: ブラウザ new/create n: 新規、enterで作成 edit/update e: 編集、enterで更新 delete X: 削除 copy/cut/paste c: 単体コピー C: サブ…
今日はスタートが遅かったので1日分で終わり Week 2 Day 1 おなじみフィボナッチ数列がなぜかできなくて、ンゴーンゴー言ってたら0からじゃなく1から始まるバージョンだった。 全部自力で解けたぞう(言語リファレンスは見ながら) Living Clojure作者: Cari…
Done: ブラウザ tabindexを付ける onFocus, onClick時にカレントゴールを変更しスクロールする hjkl移動のとき、フォーカスも移動するようにした ItemTreeComponentで自分自身のnodeをthis.props.nodeで取れるようにした Todo: ブラウザ 親から子に移動する…
Done: ブラウザ smoothScroll()を修正 #wrapの高さ変更(windowの高さに応じて固定) 上下左右移動で行き先の要素の有無を確認するようにした 上下左右移動でカレントゴールを変更するようにした Todo: ブラウザ new/create n: 新規、enterで作成 edit/updat…
How Do I Use This Training Plan? 1週5日、7週間、即ち35エクササイズで終わるトレーニングプランとのこと 最初の3週間は4Clojureというウェブサイトの課題を解く 穴埋め形式っぽい 次の3週間はルイス・キャロルと不思議の国のアリスにインスパイアされたプ…
第9章をやったというか調べた。頑張っていっぱい書いたのだが、はてなブログが"The body contains NG words"のエラーを出し死亡。リンク集的になったのがダメだったのかもしれない。本を読んでくれ。良いリンク集だった。 gist37e41fa3e42572b34538 Living C…
Done: ブラウザ this.props.childrenを上書きしてるので修正 children -> descendants ItemTreeComponentに与えるprops見直し goal_tree全体は含まない ツリー全体に関わる処理はsubscribe()でやる JsonPath入れる やめ。insertなどできるモデルを導入。 木…
Chapter 8 The Power of Macros Exploring Macros マクロだ! マクロで何ができるかというと…… 自分自身で言語機能を作成し埋め込むことができる プログラムに必要なコードの行数を減らし、より簡明に読みやすくできる パターンや繰り返しのコードを包んで、…
昨日は風邪ひいて寝まくった。今日はやるぞ。やった。 Done: ブラウザ Material Design Lite導入失敗。 スクロールが効かなくなる 現在あるべき位置をsubscribe()に飛ばしてそこでスクロールする 初期表示&スクロールのときだけ遅延させる react-keydown導…
Making HTTP Calls with ClojureScript and cljs-http cljs-httpライブラリはclojurescriptでHTTPを扱うライブラリと。 core.asyncと組み合わせて使うととってもいい感じ?(英語を雰囲気で読んでいるのでご勘弁) :require-macrosとかいう新しいのが出てき…
Done: ブラウザ ゴールツリー全体をセンタリング 現在のゴールが中心になるようにスクロール スクロールのイージング power_assert_exのバグが直ったので再び採用 Todo: ブラウザ 現在あるべき位置をsubscribe()に飛ばしてそこでスクロールする ツリー全体を…