til

日本語練習

2019-07-03 日報

Get Programming with Haskell のUnit2のLesson15を読み切った。

関数型言語のお気持ちを知りたくて学んでいる。 Haskellで良さそうな本書があったので読んでみている。

Lesson15は今まで学んできた型クラスを実用的に使う例として暗号周りに応用するというお話。 最初はただずらすパターンだったが、もう少し凝ったことをし始めて全ては追えていない。。。。 ただずらすパターンだとかなり予測がしやすいので、何かしらフィルタを付けてやるという理解だったはずだが最終的には使っていないような気もする。

もうちょっとちゃんと読んだほうが良いかもだが、せっかくなのでUnit3を読み始める。あしたはUnit3の冒頭解説とLesson16を読み切れれば良い。

論理と計算のしくみの2章1節、定理2.1の復習からシーケント演算まで読んだ。

型システム周りに興味があり、丁寧に書かれていてよいとの噂を聞いたので入門。

2.1節は命題論理の話で、その周りの定義などのまとめがある。

定理2.1が若干理解できていない気がするが、結果的には前のページあたりで示したことをそれぞれAに当てはめて証明をしている様子。 A \in \Gamma なら I(A) = T というような定理の主張を Aが命題記号の場合、not(B)の場合、B and C の形式など網羅すればよく、それを命題の大きさ(どちらかというと長さ)の機能法で示している。(というのを理解するのにしばしかかった)

ヒルベルト流の推論の話やシーケント演算をやって今日は終了。

以下読んでいる2章の目次

第2章 命題論理と述語論理
  §2.1 命題論理
  §2.2 一階述語論理
  §2.3 高階述語論理とその部分体系

昔より写像の集合 f: A-> B を満たす写像fの集合を AB とかく形式に違和感がなくなっていた。

Revised Revised 型の国のTypeScript | Revised Revised TypeScript in Definitelyland の 3章まで読んだ。

実践TypeScriptを買ったものの、ページ数的にももうちょっと気楽に読めるとこからステップアップしてみようと思い検索に引っかかった本ページを熟読。 かなり良さそうで、boothにも同様の内容でPDFが投げられていたので購入しておいたRevised Revised TypeScript in Definitelyland【C92新刊】 - - BOOTH

余談

引き続きアルゴリズムイントロダクションがなかなか進まないのはどうにかしたい。今日のninjaを読む時間くらいはそちらに割けるよう意識的に動きたいが、いかんせんhaskell本が重い。

2019-07-02 日報

Get Programming with Haskell のUnit2のLesson15を途中まで読んだ。

関数型言語のお気持ちを知りたくて学んでいる。 Haskellで良さそうな本書があったので読んでみている。

lesson15もかなり長いので半分に分けることにした。だいたい1日で読めるページ数は15ページくらいが限界(それをすぎるとモチベーションが下がる)ので、これを目安に見たほうが良さそう。

Lesson15は今まで学んできた型クラスを実用的に使う例として暗号周りに応用するというお話。 enum, boundedなどを用いて最初は一番簡単な文字をずらして暗号化するパターン。

読みながらより良い実装が思いついたりしたので、暇を見て実装したくなってきた。

引き続き暗号の話。明日はLesson15読み切れると良い。

論理と計算のしくみの2章1節、定理2.1まで読んだ

型システム周りに興味があり、丁寧に書かれていてよいとの噂を聞いたので入門。

2.1節は命題論理の話で、その周りの定義などのまとめがある。

定理の証明など見ているとかなり懐かしい気分にもなるが、理解にしばし時間がかかってしまったので今後の進展が若干不穏。

2章からだんだん見慣れない定理が出てきたりするのはだいぶ面白い。

以下読んでいる2章の目次

第2章 命題論理と述語論理
  §2.1 命題論理
  §2.2 一階述語論理
  §2.3 高階述語論理とその部分体系

昔より写像の集合 f: A-> B を満たす写像fの集合を AB とかく形式に違和感がなくなっていた。

余談

引き続きアルゴリズムイントロダクションがなかなか進まないのはどうにかしたい。

2019-07-01 日報

Get Programming with Haskell のUnit2のLesson14を最後まで読んだ

関数型言語のお気持ちを知りたくて学んでいる。 Haskellで良さそうな本書があったので読んでみている。

実際に自分で定義したdataクラスに対してshowなどを実装するお話。 ぎりぎりついていっている気はするものの、やはり置いていかれやすいので頑張ってついていく or 2周目で拾う形にしようと思う。

golangでsitemapのparserを一旦全部書き終わった

golangを書くついでにsitemapのdownloaderを作ることにした。

現状parser、downloader、それらを組み合わせるschedulerと役割を分けており、残っていたdownloaderとschedulerを作り上げた。

もうちょっとかかると思っていたが、再帰的に取得する箇所もすんなり通ったのでよしとする。

一応ユースケースに対しては動くことを確認し、実際に動くexampleも作成できたのでなかなか満足ではある。

以降やるとしたら↓のとおりだと思われるが、テスト以外はそこまでやる気はないのでこのまま放置になりそう。

  • sitemapがxml.gz前提で書いてしまっている箇所の修正
    • gzip以外も対応できるようにするという機能追加
  • 新しく作成したscheduler/downloader周りのテストケース追加
    • testにhttp serverのメソッドが生えているようなので、そちらを利用してgzipされたxmlを返すようにしてテストをしようと思う。

論理と計算のしくみを読み始め、1章をざっと目を通した

型システム周りに興味があり、丁寧に書かれていてよいとの噂を聞いたので入門。

1章は集合などの定義の箇所で、復習がてら全体を見たが、特段感想はなし。(演習問題は解いていない)

目次は以下

はしがき
  学習の手引き

第1章 集合と関係
  §1.1 集合
  §1.2 関係

2章は命題論理と述語論理なので楽しみにしている。

余談

アルゴリズムイントロダクションがなかなか進まないのはどうにかしたい。

2019-06-30 日報

Get Programming with Haskell のUnit2のLesson14を途中まで読んだ。

関数型言語のお気持ちを知りたくて学んでいる。 Haskellで良さそうな本書があったので読んでみている。

Unit2の型システムの話の続きで、自分で定義した方のshowカンスをhaskellによしなにしてもらうのではなく、自分で書くというお話。polymorphism周りの話もしていそうだが、そのあたりはまだ読めていない?ので引き続き読む。

前日の予測どおり見事に1日で1Lesson終わらなかったが、どちらかというと外に時間をかけすぎたというのはある。

golangでsitemapのparserを書き始め、一部機能を追加した

golangを書くついでにsitemapのdownloaderを作ることにした。

現状parser、downloader、それらを組み合わせるschedulerと役割を分けており、今日はparserを仕上げ、downloaderをだいたい動くようにした。

golangでのテストの書き方が全くわかっていなかったが、書いてみると案外こんなものかという印象。ただ、package周りの理解が甘かったり、そもそもテスト対象の考慮が足りなかったりでなかなか苦戦した。 そのおかげもあり、少しgolangに慣れてきたように思う。おそらくpythonより慣れている。

とりあえず進めていくが、他タスクとの折を見てやることにする。

[第2版]Python 機械学習プログラミング 達人データサイエンティストによる理論と実践 の1 ~ 3章の途中、scikit-learnの説明途中まで読んだ。

相変わらずアルゴリズム理解のために読んでいるが、あまり乗り気ではない。 復習も兼ねて1 ~ 3の途中まで目を通し、都度実装 & 計算家訓をした。

pythonその他のコツが掴めていないのかあまり頭に入っていないのでどこかでガッツリやったほうが良いかも。

余談

引き続き論理と計算のしくみが読みたい

2019-06-27/28/29 日報

Get Programming with Haskell のUnit2のLesson11, 12, 13を読んだ

関数型言語のお気持ちを知りたくて学んでいる。 Haskellで良さそうな本書があったので読んでみている。

Unit2の型システムの話。すでに学んだことが更に詳しく書いているような内容で、例えばdataでの宣言など、実例を通して書いてくれているので具体と抽象の行き来がしやすかった。

このあたりから理解が甘いところが顕著になるので再読も含めて手厚く理解していきたい。

このまま1日1Lessonの速度で進めてみたいが、13がかなり大きく平日1日じゃ終わらなそうなところを見ると、適宜調整という感じになりそう。

問題解決力とコーディング力を鍛える 英語のいろはを読み終えた

英語はいつもやらなければいけないものなのに手を付けられていないので、本が読めているうちに本書も手を付けておいた。

3章以降に間しては興味のあるところだけを拾い読みという形式をとった。(今の自分にとって個別のケースは役に立ちそうになかったため)

ざっと見た感じだと最後のツールあたりはすっと導入できそうなものが揃っていたが、やはりというべきかgrammalyがとても見やすかった。

golangでsitemapのparserを書き始めた

golangを書くついでにsitemapのdownloaderを作ることにした。すでに、sitemap download & parseはどの言語でもやられているが、gzipされたものは扱っていなかったり、sitemap indexの場合は再帰的にdownloadするようなものは見つからなかったため、それ専用のparserを作っておくのもなかなか良さそうという結論に至った。

とりあえず進めていくが、他タスクとの折を見てになりそう。

golang(gin) & herokuでhello world

golangwebサービス周りを触る機会ができそうだったので、とりあえずherokuにpushするところまで体感することにした。

herokuの無停止デプロイが裏側で何をしているのかちょっと不明だが、とりあえずコマンドを叩いておけばきれいにデプロイされるのはRails/expressのときと変わらず快適。

Scaling a Gin Application with Memcache | Heroku Dev Center あたりがすっと試すにはかなり簡単だった。

DB周りの接続等は試していないが、postgres, mongoあたりは試したい。(mongoの良さそうなODMが見つかっていないので、postgresqlで触ってみようか少し考え中)

余談

論理と計算のしくみが読みたい

2019-06-26 日報

Get Programming with Haskell のUnit1のLesson10を読んだ

関数型言語のお気持ちを知りたくて学んでいる。 Haskellで良さそうな本書があったので読んでみている。

Lesson10はオブジェクト思考ライクな実装をHaskellでやってみるという話。

クロージャによるオブジェクトの生成、高階関数を用いたgetter/setterの実装などが主だった。

高階関数が便利な半面やはりここまで露骨に使われるとちょっと頭がフリーズするくらいにはまだ慣れていない。

次はUnit2で型システムの話。前も同様の話を読んだけれど、英語勉強がてら復習しようと思う。

このまま1日1Lessonの速度で進めてみたい。

問題解決力とコーディング力を鍛える 英語のいろはの3章を読んだ

英語はいつもやらなければいけないものなのに手を付けられていないので、本が読めているうちに本書も手を付けておいた。

2章は今の自分には不要そうな情報だったので、一旦飛ばして3章を読んだ。 言いたいこととしては単純に量を増やすという話だった。量質転嫁ということろかな。 ちょうどGet Programming with Haskellを読んでいるのが多読に近い形になっているのは僥倖な気がしている。

1日1章ペースで読めそうなので、それを目標に読む。

2019-06-25 日報

Get Programming with Haskell のUnit1のLesson9を読んだ

関数型言語のお気持ちを知りたくて学んでいる。 haskellで良さそうな本書があったので読んでみている。

Lesson9は高階関数のお話。基本となるmapやfilter、foldr, foldlの話がざっと書かれ、練習問題もそれに親しいものだった。

ただ3つ目の練習問題がmap/filterなど使わないできれいにかけてしまい、逆に学んだ関数をどうやって使うのかわからなくなってしまったので、次に読んだときは思いつければいいなと思っている。

このまま1日1Lessonの速度で進めてみたい。

アルゴリズムイントロダクション 第3版 総合版を読み始めた

本来であればScala関数型デザイン&プログラミングを読もうかと思ったが、よく考えたら同時に二つも関数型言語学んでもしょうがないという結論に至ったのでかねてから読みたかったアルゴリズム関連の本を読み始めた。

蟻本もあるにはあるが、ちょっとその前に分厚目のこちらで優しく解説されたいという気持ちが湧いてきたのでこちらを読み始め。

せっかくなのでrustで実装しようと環境を整えたところで今日は終わり。

読みながらRustで実装していこうと思う。

1日にどれくらい読めるか様子を見てからペースを決めようと思う。

問題解決力とコーディング力を鍛える 英語のいろはの1章を読んだ

英語はいつもやらなければいけないものなのに手を付けられていないので、本が読めているうちに本書も手を付けておいた。

1章は簡単な文法の基礎のように見せかけて前置詞+副詞のお話。 とりあえず読んだが、文法であればforestを読んだほうがまだ体系的な理解が進みそうという印象だった。

1日1章ペースで読めそうなので、それを目標に読む。

所感

今年の後半はアルゴリズムプログラミング言語とデータベースと統計から好きなところをつまむのが重になりそう。