bouzuya.hatenablog.com

ぼうずやのにっき

bouzuya/purescript-bouzuya-datetime 0.4.0 / bouzuya/purescript-bouzuya-datetime-formatter 0.1.0

bouzuya/purescript-bouzuya-datetime 0.4.0 をつくった。

purescript-bouzuya-datetime は PureScript の Bouzuya.DateTime モジュールを提供するパッケージ。

0.4.0 では OffsetDateTime を追加した。これはタイムゾーン付きの日時型だ。 JSDate に近い。 2019-02-192019-02-21 で触れていたもの。

経緯としては purescript/purescript-datetime が提供する DateTimeタイムゾーンが付いていない (……というか過去にはあったのだけど削除されたようだ) 。 Durationadjust で適用すればいいだけではある。実際にはかなり混乱するのできちんと型を用意することにした。

inOffsetinUTCTimeZoneOffset を変更してその時間の DateTime を得られる。ちなみに TimeZoneOffsetBouzuya.DateTime.TimeZoneOffset として提供しているものだ (datetime にはない) 。


bouzuya/purescript-bouzuya-datetime-formatter 0.1.0 をつくった。

purescript-bouzuya-datetime-formatter は PureScript の Bouzuya.DateTime.Formatter モジュールを提供するパッケージ。

上記の bouzuya-datetime には formatter / parser がない。せめて fromString :: String -> Maybe OffsetDateTimetoString :: OffsetDateTime -> String くらいは欲しい。それがこのパッケージ。

DateTime についても fromString / toString を提供している。 slamdata/purescript-formatters で決まりきったフォーマッタの作成を繰り返しすぎているのでパッケージに追加しておいた。

形式は ISO 8601 の extended format にしている。 ms を含まない点で Date.prototype.toISOString と互換性がなくて嫌がられそうだ。細かい形式を指定するというより決まった形をお手軽に……という気持ちで居る。


AtCoder は ABC119 C / ABC 118 C / ABC116 A 。 C 問題さえ自力で解けない。ダメだ。


体調が悪い。子どもを病院に連れて行って薬をもらう。むしろぼくがもらいに行きたい。

いつになったら保育所へ行けるのだろう。

Clojure & Ruby リポジトリの廃止等

ぼくの ClojureRubyリポジトリを廃止した。

2019-04-01 にも書いたとおり廃止した。 2019-03-19CoffeeScriptJavaScriptリポジトリを廃止したのと同様の対応を済ませた。

今回は残すリポジトリがなかったのであっさりと完了。 bouzuya/cars の前身っぽいものがあった。あとは bouzuya/oikura の作り直し (というか完成) はいつかしてみたい。

現在の言語別リポジトリ数は↓。集計は 2019-03-15 のもので実施。

79,TypeScript
46,PureScript
14,null
6,Java
6,Haskell
5,VimL
5,CSS
3,Visual Basic
3,Rust
3,HTML
2,Shell
2,C#
1,Swift

『折れた竜骨』の上を読んだ。ぼくの中ではいまひとつ盛り上がっていない。魔法でモヤモヤしてしまう。


ABC117 A を解いた。 ABC120 D に挑戦したのだけど途中で切り替え。

D のほうはできそうな気がするのだけどまだ。


風邪で倒れている。妻・子もそろって倒れている。保育所に初日から行けていない。

王子動物園の夜桜通り抜け等

王子動物園の夜桜通り抜けに行ってきた。

わりと行っている。去年は葉桜だったが今年は咲いていた。満開ではないものの去年を考えると良い。


子どもの入園式。また離乳食の件で責められる。育児力が足りない。


次の条件を満たすリポジトリの数を数えた。

  • GitHub のユーザー bouzuya の持つ
  • 公開されている
  • フォークでない
  • 言語が Clojure または Ruby

Clojure が 24 で Ruby が 9 。

これらを今週で廃止する。 2019-03-19CoffeeScript & JavaScriptリポジトリの廃止の完了について書いてある。そこに書いた理由はほとんど同じだ。「書きたい言語・書きたくない言語を明示したい」などの意思表示だ。


AtCoder 過去問題。 ABC118 の A および B 。 AB ばかりは避けたいけど時間的に苦しい。

2019-W13 ふりかえり / 2019-03 ふりかえり

2019-W13 をふりかえる。

2019-W13 の目標 とその記事

目標。

  • ☑ bouzuya/purescript-npm-bin-google-tasks 0.2.0 をつくる
  • AtCoder Beginner Contest に参加する
  • ☑ 2019-03 ふりかえりを書く
  • ☑ bouzuya/yzrh 0.1.0 をつくる
  • AtCoder 過去問題を毎日解く

記事。

AtCoder Beginner Contest については開催されていなかったので参加していない。代わりにエクサウィザーズ 2019 へ参加した。何かしら参加したので達成したものとする。

つくったもの

2019-03-25/2019-03-31

purescript-at-coder は AtCoder 過去問の解答置き場。

create-version-module は version module を生成するコマンド。 1.0.0 にした (2019-03-30) 。入力検証などの軽微な修正。

yzrh は routes.rb を変形するコマンド。 0.1.1 にした (2019-03-29) 。長期に渡って寝かされた良くないリポジトリ

create-b は bouzuya/bs のための npm initializer 。 0.5.1 にした (2019-03-28) 。変数の追加など。

google-tasks は Google Tasks API のためのコマンド。 google-tasks task list を追加して 0.2.0 にした (2019-03-25) 。普段づかいの予定だけどまだ機能が足りていないので置き換えるには至っていない。

今日は mockmock.dev #210 で w010 v3 として time-table 0.1.0 をつくった (過去のものは bouzuya/w010 を参照) 。日時が先頭についたメモ (bouzuya/bs-code の一覧表示のようなもの) を 15min 刻みの時刻表に整形するコマンド。 1 メモ 1 行ではなく 15 分 1 行のほうがかかった時間を把握しやすくなるのではと思って作成。良さそう。

よんだもの

みたもの

その他

ゲーム。 2018-11-24 からの BLUE REVOLVER 。停滞中。 2019-01-03 からの大乱闘スマッシュブラザーズ SPECIAL 。停滞中。 2019-03-03 からのモグラーニャ。停滞中。先日の Twitch Prime 経由での Nintendo Switch Online の特典でテトリス 99 を遊んだ。

買い物。特になし。

体調。毎日のストレッチを継続している。

育児。ベッドを移動した。ベッドの柵にしがみついている。一人座り・つかまり立ちもだいたいできたかな……。もう何週も前からだけどぶーぶー言っている。より激しくなっている。前歯の歯ぐきに白っぽい部分が見える。もしかしたらそろそろ歯が生えてくるのか……。

2019-W14 の目標

  • Clojure & Ruby リポジトリを廃止する
  • bouzuya/purescript-npm-bin-google-tasks 0.3.0 をつくる
  • bouzuya/purescript-npm-bin-time-table 1.0.0 をつくる
  • bouzuya/purescript-bouzuya-datetime-formatters をつくる
  • 履歴書・職務経歴書を書いてみる

2019-03 をふりかえる。

2019-03 の目標

  • CoffeeScript & JavaScript リポジトリを廃止する
  • ☑ mockmock.dev w010 で PureScript を使用する
  • AtCoder の問題に挑戦する
  • ☑ 週に 1 冊は本を読む
  • ☑ 毎日の計画・ふりかえりをする

目標を達成した。 2019-01-07 からのリポジトリの削減は 2019-03-19 でひとつの区切りを迎えた。 mockmock.dev での w010 。 w010 での PureScript の利用は継続している。 AtCoder は過去問題を 1 日 1 問は解いていくつもりだ。 ABC への参加もしていく。週に 1 冊も内容はともかく続いている。毎日の計画はぼんやり過ごすことが減ったように思う。毎日の計画は目標を意識することにもつながったように思う。

週別のふりかえり

つくったもの

2019-03-01/2019-03-31

よんだもの

みたもの

コードギアス 反逆のルルーシュ III を観たはずなのに書かれていなかった。今日ここに書いておく。

その他

勉強会。なし。

おでかけ。ちょっとした買い物。キャプテン・マーベルを観に行ったくらいか……。子どもを預けてのおでかけははじめてだった。

ゲーム。 2018-11-24 からの BLUE REVOLVER 。停滞中。 2019-01-03 からの大乱闘スマッシュブラザーズ SPECIAL 。停滞中。 2019-03-03 からのモグラーニャ。停滞中。

買い物。珪藻土のバスマット。

体調。ストレッチを継続。

育児。動くようになった。はいずって動くところから壁につかまって立つところまで。柵を導入した。お風呂は椅子でシャワーを使うようになった。離れると泣くようになった (?) 。

まとめるとどんな感じだろう……。

大きなできごとは CoffeeScript & JavaScript リポジトリ廃止の完了。 AtCoder への参加 。……あたりかな。 w010 を継続できているのは良い点。 CoffeeScript & JavaScript から TypeScript さらに PureScript へと移行したい。 PureScript を普段から使いたいと考えている。 AtCoder や w010 (mockmock.dev) を通じて実現に近づいている。

次はどうすべきだろう。

リポジトリ整理は Clojure & Ruby 。余裕があれば TypeScript にも手を出したい。それが終われば Security Alerts や Issues 。 PureScript は Haskell をまた学習したほうが良さそうだ。 AtCoder は継続していきたい。自分の情報を整理していくために履歴書などを書いてみようと思う。

2019-04 の目標

bouzuya/create-version-module 1.0.0

bouzuya/create-version-module 1.0.0 をつくった。 mockmock.dev #209 における w010 の成果物。 2019-03-24 に 0.1.0 をつくっている。 w010 のこれまでのルール・活動は bouzuya/w010 を参照。

create-version-module は package.jsonversion から JavaScript / PureScript のモジュールを生成するコマンド。実行時に fs__dirname で参照するのを避けるためビルド時にモジュールを生成して埋め込みたかった。

0.1.0 から 1.0.0 では --language の引数の検査を加えたくらいでほとんど差はない。

実装。プログラミング言語は PureScript 。パッケージマネージャーに spago 。 npm initializer に bouzuya/create-purescript-npm-bin を使っている。 purescript-newtype を試してみた。……があまり意味のある使い方にならなかった。


AtCoder ABC120 C を解いた。 エクサウィザーズ 2019 に参加した。 A, B の 2 問しか解けなかった。次。

bouzuya/yzrh 0.1.0, 0.1.1

bouzuya/yzrh 0.1.0, 0.1.1 をつくった。

routes.rb または yas.json (独自形式) を読み込んで yas.json または openapi.json を書き出すもの。中途半端なので使えない。

長期に渡って迷走したものなのでここまでの様子を調べてみる。

2018-10-16 。目的・目標なくつくりはじめる。

名前に困った。何をつくるのか決めていないので。適当に決めた。読めない。

いまは Ruby on Railsroutes.rb を雑に読んでいる。適当に変形して使えるものを書き出したい。

2018-10-19 。ぼんやりと routes.rbOAS: OpenAPI Specification をからめたものという方向を示す。

目標のないプロジェクトだったのだけど、とりあえず既存プロジェクト (Ruby on Rails) の routes.rb から OAS: OpenAPI Specification 形式っぽいものに変換して、逆に routes.rb を出力できるようにすれば……と思っている。 OAS を触るのは routes.rb を触るより苦痛なので、外部 DSL をつくるのも良さそう。それを JSONYAML にするくらいなら、 dhall 試せないかな……とも。

2018-10-21 。 2018-W43 の目標に yzrh 0.1.0 が掲げられる。

  • bouzuya/yzrh を 0.1.0 にする

2018-10-27JSON / YAML を読みたいと書いている。 PureScript には pure な YAML パッケージが存在しない。 FFI で npm のものを使うことになるだろうな……。

bouzuya/yzrh をすこしだけ。自分に必要な中間形式を用意し、既存分を変更した。次は、これを JSON / YAML で書けるようにしようかな。

しばらく放置。

2018-11-17コマンドラインオプションの実装に迷う。

bouzuya/yzrh 。 PureScript でのコマンドラインオプションをどう扱おうか迷う。ぼくの検索が悪いのかちょうどいいパッケージが見当たらない。 PureScript のコマンドラインオプションのためのパッケージってないのかな。 pcapriotti/optparse-applicative みたいのがあると良いんだけど……。

2018-12-17コマンドラインオプション部分が bouzuya/purescript-bouzuya-command-line-option-parser として抽出される。型レベルのことなどに手を出している。

2018-12-29 。パッケージ管理を spago に移行する。

ずっと放置して今日。今日までには bouzuya/w010 で多くのものを 0.1.0 にした。 鉄は熱いうちに打て……か。


AtCoder ABC 122 D 問題 (bouzuya/purescript-at-coder) 。解けなくて写経。自力で解けるようになりたい。 ST の扱いにもっと慣れたい。