bouzuya.hatenablog.com

ぼうずやのにっき

bouzuya/w010 と w010 v3 をつくった / 『ザ・プレデター』を観た

bouzuya/w010 をつくった。 mockmock.dev での取り組み w010 の成果をまとめたもの。ルールや結果をまとめていく。


w010 のルール v3 をつくった。 bouzuya/w010 に書いた。ここにも全文引用する。

# w010 v3

## 概要

w010 は毎週日曜日の 13:00-15:00 でアプリケーションの 0.1.0 をつくる取り組み。

## 目的

w010 の目的は mockmock.dev の時間 (毎週日曜日 13:00-15:00) をうまく活用できたと感じられるようにすること。

- 実力を測る
- 反復練習によりできるまでの時間を減らす
- 挑戦によりできることを増やす
- 新規作成の速度を上げる
- 定期的に成果物を上げる

NOTE: http://www.shuburi.org/ 週ぶりに通じるものがある

## ルール

- 毎週日曜日の 13:00-15:00 でアプリケーションの 0.1.0 を作成する
- おおまかな流れ
  - (1) mockmock.dev に向けて計画する・ルールを見直す
  - (2) mockmock.dev のコアタイムで 0.1.0 を作成する
  - (3) 0.1.0 を 1.0.0 にする
- (1) mockmock.dev に向けて計画する・ルールを見直す
  - 「やること宣言」を作成しなければならない
    - 内容制限:
      - 「〜を試す」挑戦(まだ知らない新しいものを試すこと)を項目に含めなければならない
      - 「〜を使う」練習(既に知っているものを使うこと)を項目に含めなければならない
      - 「〜をつくる」つくるものの名前を項目に含めなければならない
    - 個数制限:
      - 5 項目に絞らなければならない
      - 例: A を試す, B を試す, C を使う, D を使う, E をつくる
    - 回数制限: 「〜を試す」は 3 回まで「〜を使う」は 7 回までにしなければならない
  - 仕様の概要を検討しなければならない
  - コアタイムで作成するアプリケーションに必要なライブラリを作成してもよい
  - コアタイムで作成するアプリケーションを作成しはじめてはならない
  - 過去の活動を踏まえてルールを見直しても良い
- (2) mockmock.dev のコアタイムで 0.1.0 を作成する
  - 「やること宣言」を投稿する
  - リポジトリを公開しなければならない
  - リポジトリに v0.1.0 のタグをつけなければならない
  - ライブラリではなくアプリケーションを作成しなければならない
  - 集中しなければならない
    - 特に途中でもぐもぐしてはならない
  - 1.0.0 までの追加機能の概要を「やったこと成果発表」に含めなければならない
  - 「やったこと成果発表」を投稿する
- (3) 0.1.0 を 1.0.0 にする
  - 「やったこと成果発表」を踏まえて改修する
  - リポジトリに v1.0.0 のタグをつけなければならない

今回は↓のふたつの発想を入れてみた。

  • 「探索と活用」
  • 「 5 つに絞る」

探索と活用は↓に出てきた表現。新しいものを試す。既にあるものを活かす。どうすると効率が良いのか……。そういう形で出てくる。

トム・グリフィス: コンピューターのように考えることで良い決断をする3つの方法 https://go.ted.com/CtRj

w010 の中では「新しいものを試す」ことばかりが強調されていたので「既にあるものを使う」ことをきちんとルールに含めた。また purescript-react-basic を試すばかりが続くので回数の上限を含めて「試す→使う→やることには書かない」という段階を踏めるようにした。

5 つに絞る。これは『ビジョナリー・カンパニー』 (2019-01-24) で出てきたんだっけか……。間違っているかも……。最近の読んだ本のどれかだ。個数の上限を決めることで集中できるのではないかという実験。 5 という数字はぼくが決めた適当なもの。並べたときに何個か判断できる個数。 6 だと判断が難しかった。

過去の経験からも良さそうな気がしていて。いまはいろいろなところで試している。

明日から w010 v3 を試していく。


ザ・プレデター』を観た。どことなく『ジュラシック・ワールド』と同じにおいがする。

bouzuya/purescript-react-basic-calendar-heat-map 1.0.0 をつくった

bouzuya/purescript-react-basic-calendar-heat-map 1.0.0 をつくった。 mockmock.dev #202 における w010 の成果物。これまでのルール・活動は bouzuya/w010 を参照。

calendar-heat-map は GitHub の contributions の表示っぽいもの。任意のデータに対して任意の色で表示できる。

0.1.0 から 1.0.0 では↓の変更を加えた。

  • 色の変更機能を追加
  • ヘッダーに月を表示
  • title 属性に日と値を表示
  • 年の最終日まで表示されていなかったのを修正
  • 昨年・翌年の日付が表示されていたのを修正

プログラミング言語は PureScript 。パッケージマネージャーに spago と npm 。 npm initializer に bouzuya/create-purescript-react-basic 。 purescript-react-basic 経由で react や react-dom を使っている。 postcss で CSS Modules を使っている。日付の操作に bouzuya/purescript-bouzuya-datetime を使っている。

CSS Modules は 0.1.0 のタイミングで使うのははじめて。 1.0.0 のタイミングでは使っているので特に問題はない。

purescript-bouzuya-datetime にバグを見つけた。そこの対応に時間をとられて年の切り替え機能をつけられていない。

昨日 (2019-02-07) も書いたとおりループ習慣トラッカーの代替をつくろうと思っている。また書く。

まだ w010 のルールの v3 はつくれていない。 Routing / History API / SSR / CI 設定 / スクリーンショット / まとめページは次回以降。今週で SSR の検証をしておきたかったのだけど厳しそうだ。

bouzuya/purescript-react-basic-calendar-heat-map をつくっている

bouzuya/purescript-react-basic-calendar-heat-map を進めている。

calendar-heat-map は GitHub の contributions の表現に使われているアレ。任意のデータをあの形で表示できるようにする。

もくろみとしては Google Tasks API でとってきた Task のデータをこれでうまく表示してループ習慣トラッカーの役割を終わらせたい。

実装に関してはまた 1.0.0 のタイミングで書く。 purescript/purescript-datetime にいまひとつ慣れていなくて使いづらく感じる。

bouzuya/node-hatena-blog-api 1.0.0 をつくった

bouzuya/node-hatena-blog-api 1.0.0 をつくった。

node-hatena-blog-apiはてなブログ AtomPub API の wrapper 。昨日 (2019-02-05) も書いていたもの。 実は中途半端なのだけど……一応は動くはずなので revert して公開した。

実装には npm:@bouzuya/xml (2019-02-04, 2019-02-05) や npm:wsse (2019-01-22) を使っている。

中途半端と書いたのは AtomPub 用の型を追加したのだけどまったく使わず削除したこと。それらを使うよう内部で変換しようと思ったのだけどいざはじめると @bouzuya/xml だと DOM APIxpath が使えなくて面倒で……。

↓あたりを使って書き直そうとした。

……したのだけど @bouzuya/xml のくだりが無駄になるので萎えてしまった。次は↑を使った @bouzuya/atompub をつくって……とか。 @bouzuya/atom のような Atom Feed を処理できるパッケージがないと厳しいかも。そこに力をかけたいわけでもないし一応は動くから……というところで妥協した。


髪を切った。

bouzuya/node-xml 0.2.0 をつくった

bouzuya/node-xml 0.2.0 をつくった。

昨日 (2019-02-04) の 0.1.1 に続いての更新。 npm:sax で self-closing tag を識別できないと書いていたが間違っていた。 isSelfClosing: boolean の形で onopentag に情報が来ていた。

node-xml の 0.2.0 では self-closing tag のときは children: [] 。そうでなくて子要素がないときは children: [''] にした。またその情報を使って <a /><a></a> を出しわけられるようにした。


bouzuya/node-hatena-blog-api のほうは Atom の解釈をしはじめて……。

bouzuya/node-xml 0.1.1 をつくった

bouzuya/node-xml 0.1.1 をつくった。

node-xmlXML の parse/format を提供する npm パッケージ。 npm i @bouzuya/xml で使える。

つくった経緯。今日は bouzuya/node-hatena-blog-apiCoffeeScript -> TypeScript 移植をしていた。 node-hatena-blog-apinpm:xml2js を使っていた。これのオブジェクト形式には $_ などが出てくるなどどうもモヤモヤした。設定でそのあたりは変更できるのだけど思い切って書き直した。

Virtual DOM のときの雰囲気で Node を定義して npm:hyperscript っぽい create* を提供した。 format (Node -> string) は適当に書いた。 parse (string -> Node) は npm:sax を使った。ちなみに xml2js は npm:xmlbuildernpm:sax を使っているようだ。

コメントや DOCTYPE を捨てていたりルート要素の外のテキストを捨てているので format(parse(xml)) === xml とならない。まじめにやってない。

sax は <element /> のような self-closing tag を区別する手段が提供されていない点でモヤモヤする。ただこれ以上の脱線はさすがにまずい。明日はこれを使って node-hatena-blog-api きちんと進める。

追記: onopentagisSelfClosing: boolean の形で渡ってきていた。

2019-W05 ふりかえり

2019-W05 をふりかえる。

2019-W05 の目標 とその記事

目標。

  • ☑ 2019-01 ふりかえりを書く
  • ☑ bouzuya/purescript-react-basic-repository-list の 1.0.0 をつくる
  • ☑ bouzuya/purescript-react-basic-timer の 1.0.0 をつくる
  • ☑ bouzuya/purescript-react-basic-crud の 1.0.0 をつくる
  • ☐ bouzuya/yzrh の 0.1.0 をつくる
  • ☐ w010 v3 およびアプリの方針を考える

記事。

目標。半分はできた。そも無理っぽい目標設定だった。 w010 の 1.0.0 化の遅れを取り戻した。

先週 (2019-01-27) も書いた CoffeeScript & JavaScript リポジトリ削減は 267/278 。なんだかんだで総数が減ったことや着実に進めて残りを 11 にした。

つくったもの

2019-01-28/2019-02-03

今週も CoffeeScript & JavaScriptリポジトリ削減やそれに関連した TypeScript 移植がほとんど。 bouzuya/node-hatena-bookmark-api は AtomPub API のドキュメントがなくなっている (API が廃止された (?)) ようだったので REST API 向けに書き直した。

bouzuya/purescript-language-serverCSS Modules の読み込みのために Fork した (2019-01-28) 。

今日は mockmock.dev #202 w010 で purescript-react-basic-calendar-heat-map 0.1.0 をつくった (Slack のスレッド) 。 CSS Modules を試した。今週 2 回も 0.1.0 -> 1.0.0 の中で使っているので試すという風ではない。

次は Router と SSR かな。

よんだもの

次は『ピープルウェア』かな。その次が 2018-12-05 の『みんなのデータ構造』あるいは『入門監視』を読むかもしれない。

みたもの

週 2 本におさまっている。

その他

ゲーム。 2018-11-24 からの BLUE REVOLVER 。停滞中。 2019-01-03 からの大乱闘スマッシュブラザーズ SPECIAL 。クリアゲッターのコンプリートを狙っている。アドベンチャー・スピリッツ・いろんなあそび・その他は済。スピリッツボードがあとひとつ。大乱闘・勝ち上がり乱闘・オンラインはまだまだ。

体調。毎日のストレッチを継続できている。 2019-02 に入って決まった時間に起きることができている。続けていく。

育児。寝返りをするようになった。保育所が決まった。準備をしていかないと……。

2019-02 の目標 を遵守しようとがんばった。決まった時間に起きて毎日の計画を立てた。 CoffeeScript & JavaScript リポジトリの廃止を進めて w010 の遅れを取り戻した。週に 1 冊の本を読んで映画は控えた。ストレッチもしている。 3 日坊主にならないよう続けよう。

2019-W06 の目標

  • 髪を切る
  • CoffeeScript & JavaScript リポジトリの廃止を進める
  • bouzuya/purescript-react-basic-calendar-heat-map の 1.0.0 をつくる
  • w010 v3 およびアプリの方針を考える
  • bouzuya/yzrh の 0.1.0 をつくる