Hyperappでhead内のタグを書き換えるライブラリ、Hyperapp Helmetをリリースしました!

はじめに Hyperapp Helmetという、Hyperappフレームワーク用のライブラリをリリースしました。 Helmetとは、React Helmetが有名/はしりですが、<head>タグの中を書き換えるコンポーネントのことを言います。 昨今の検索エンジンbotはJavaScriptを解釈しますので、S</head>…

『カンバン仕事術』を読んでいる3

6章 WIP制限を読んだ。 「デヴィッド・P・ジョイス」が誰だかググッてもよくわからなかった。 おーっ、人にWIP制限をかけるとか、作業項目をタスクに分割するとか、自由度が高い! 物理強い!! カンバン仕事術作者: Marcus Hammarberg,Joakim Sundé…

『カンバン仕事術』を読んでいる2

5章 仕掛り作業を読んだ。WIPについて。 チケットに付ける[WIP]と紛らわしそう。「チケットのWIP」「カンバンのWIP」って呼び分けるのかな。それとも前者をWork in Progress、後者をWork in Processと呼び分けるのかな。(追記:角さんのTwitterでのツッコミ…

Clojureを勉強している20

4clojureの問題はギブアップして最後の章やった。難しくて億劫になってしまったもんで。 Clojure 1.7.0から入ったtransduceの説明だった。 これにて終わり。 Living Clojure作者: Carin Meier出版社/メーカー: O'Reilly Media発売日: 2015/04/14メディア: Ki…

『カンバン仕事術』を読んでいる1

いまのところ4章まで。おもろい。特急レーンのとこで「おっ、頭いいな。なるほど〜」と思った。 4章の作業項目カードは全部はできないなと思った(全部やる必要ないと書いてある)。既に買った付箋がそんなに大きくないので。Post-itの75x100mmのを買ったん…

『リモートチームでうまくいく』を読んだ

手を動かさないでよい本も読むことにした。 内容なんですが、流石実践者ということで一日の長があるな、と感じた。特に、2章3節の「オフィスにあってリモートにないものを補完する」が面白かった。オフィスにはある「存在感」「雑談」などを試行錯誤でリモー…

Clojureを勉強している19

Week3 Day 1 To Tree, or not to Tree バイナリツリーのチェックかー。3要素のコレクションだったらいいのかな?と思ったらfalseと空リストはアカンっぽい できた。 Beauty is Symmetry 安直に95の条件に(= (second t) (last t))を加えてみたが4つ目で死ん…

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

Done: サーバ Goal.Commands.deleteを作る(positionを詰めるため) Goal.Commands.update_positionsでポジションが変わらないときの処理を追加 ブラウザ new/create n: 新規(下) N: 新規(上) enterで作成 escでキャンセル edit/update e: 編集、enterで更新…

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

Done: サーバ ブラウザ TreeModelのオプションchildrenPropertyNameをdescendantsからchildren(デフォルト)に変更 /goalsで初期ステートを構築するようにした 子が0のときのゴールの新規作成ができるようにした コンポーネントの構造(ul,liの包含)を変更 T…

Clojureを勉強している18

Week 2 Day 5 Pascal's Triangle パスカルの三角形の指定した行を描けというもの。 お手上げ。 ググッてすごく綺麗だなと思ったのがこれ gist.github.com あ、mapってそういう動きするんだ、っていう。 Living Clojure作者: Carin Meier出版社/メーカー: O'R…

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

Done: サーバ サインアップ後のログインでエラーになっていたのを直した /goals/roots作成 /goalsでカレントユーザーのrootsとその子孫を返すように変更 JSON APIでセッションを認識するようにした ブラウザ URLが/goalsのとき/goalsをリクエストし取得する…

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

Projectモデルやっぱいらんなということでまた大改造した。フラフラして良くない。 Done: サーバ Activity(activities)モデルを作成 User.nickにunique属性をつけた Projectを削除 ブラウザ Todo: ブラウザ /projects/で取得したprojectに基づき/goals/(JSON…

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

今日はめちゃめちゃしんどくてコード書くのを諦めたら元気出てきたのでコード書いた。Fetch API初めて使ったんですけど、これ楽しいですね。 Done: サーバ TWITTER_REDIRECT_URI必要なさそうなので.envrc.exampleから消した サインアップ後は/projects/に飛…

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

Done: サーバ Projectモデルを作成 Membershipモデルを作成 Statusモデルを作成 Project(projects) サインアップ時にproject, membership, goal(root)を作るようにした Goal(goals) project_idを足した owned_byを削った Todo: ブラウザ GoalController.inde…

Clojureを勉強している17

Week 2 Day 4 Symmetric Difference clojure.set/{intersection,difference,union}を使ってクリア。 Least Common Multiple -最小公倍数か。効率よいアルゴリズムとか知らんな……。ググる。2つを掛けたものを先日やった最大公約数で割ればいいのか…… ゲーッ…

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

Done: ブラウザ onKeyDownイベントハンドラをGoalAppComponentからItemTreeComponentに移した hjklキーを押したときの処理をItemTreeComponentに移動した siblingを求める処理でツリーを探索しないようにした currentを求める処理でツリーを探索しないように…

Clojureを勉強している16

頭使うんで数日分をまとめてできなくなってる。1日分の問題数が少なくなったのでリンクを張ることにした。 Week2 Day 3 Simple Clojures できた。関数を返す関数ですな Cartesian Product 全組み合わせかよ。デカルト積・直積って言うのか。 REPLではできて…

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

Done: ブラウザ mocha/power-assertの導入 ispartaの導入 Todo: ブラウザ コンポーネント化 TreeModelを継承したモデルを作ってsiblings関係の関数を生やす new/create n: 新規、enterで作成 edit/update e: 編集、enterで更新 delete X: 削除 copy/cut/past…

Clojureを勉強している15

Week 2 Day 2 (let [[a b & c :as d] __] [a b c d])難しいな。dはa b & c全体の変名っぽい not=は引数いくらでも取れるんだなぁ gcd書けとな。ユークリッドの互除法かー、名前だけ知ってて覚えていないのでググる。できた。 Living Clojure作者: Carin Meie…

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

Done: ブラウザ フォーカス移動時、要素が中央にこないのを修正 スムーススクロールやめたらガクガクしなくなった Todo: ブラウザ new/create n: 新規、enterで作成 edit/update e: 編集、enterで更新 delete X: 削除 copy/cut/paste c: 単体コピー C: サブ…

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()に飛ばしてそこでスクロールする ツリー全体を…