The King's Museum

ソフトウェアエンジニアのブログ。

Scheme 手習い(7)

第8章:究極の lambda rember-f (define (rember-f test? a l) (cond [(null? l) '()] [(test? (car l) a) (cdr l)] [else (cons (car l) (rember-f test? a (cdr l)))])) リストから要素を削除する rember の派生版。 要素の一致を判定する関数を引数で与…

道路を舗装する

仕事をしていると、アウトプットがあった日とそうでない日がある。 プログラマのアウトプットはコードだと思っている。 だから、コードが書けない日はアウトプットがなかったと感じる。 もちろん、コードの「量」だけがアウトプットだとは思っていない。 書…

『イノベーション・オブ・ライフ』を読んで

今年は毎月一冊本を読もうと思い立って三ヶ月。 今月は『イノベーション・オブ・ライフ』を読んだ。 イノベーション・オブ・ライフ ハーバード・ビジネススクールを巣立つ君たちへ作者:クレイトン・M・クリステンセン,ジェームズ・アルワース,カレン・ディロ…

『プロフェッショナルの条件』を読んで

今年二冊目の本。ドラッカーの『プロフェッショナルの条件』。 プロフェッショナルの条件 はじめて読むドラッカー (自己実現編)作者:P F ドラッカー発売日: 2012/09/14メディア: Kindle版 ドラッカーが組織や社会ではなく個人に焦点を置いて書いた本。 よ…

Amazon Aurora について

業務で Amazon Aurora を使っているが、ほとんど何も意識せず MySQL の代替として使ってる。 何が違うのか。 せっかく使っているのだから、少し勉強したほうがよさそう。 ということで、Aurora についてまとめられた資料を読んだ。 20190828 AWS Black Belt …

Scheme 手習い(6)

第7章:友達と親類 set? (define (set? lat) (cond [(null? lat) #t] [(member? (car lat) (cdr lat)) #f] [else (set? (cdr lat))])) lat が重複要素を持たない(= セットかどうか)かを調べる関数。 前章までですでに定義した手続き member? を利用する。…

『HIGH OUTPUT MANAGEMENT』を読んで

去年はあまり本を読めなかったので、今年はせめて毎月 1 冊は何かしらの本を読んでいこうと思う。 一冊目はインテル CEO だったアンドリュー・グローブの『HIGH OUTPUT MANEGEMENT』。過去に何度か読んだことがある本だけど、また読みたくなったので再読。 H…

CSS Writing Modes Level 3 が W3C Recommendation になった

Web で縦書きを実現するための仕様である CSS Writing Modes Level 3 が長い道のりを経て W3C 勧告となった。 CSS Writing Modes Level 3 最初にこの仕様に関わったのが 2010 年頃。もう 10 年前だね。 当時は大学院生で Firefox の Gecko に実験的に縦書き…

Scheme 手習い(5)

第6章:影法師 numbered? (define (numbered? aexp) (cond [(atom? aexp) #t] [(eq? '+ (car (cdr aexp))) (and (numbered? (car aexp)) (numbered? (car (cdr (cdr aexp)))))] [(eq? '* (car (cdr aexp))) (and (numbered? (car aexp)) (numbered? (car (c…

Scheme 手習い(4)

第5章:*すごい* 星がいっぱいだ 元ネタは『2001 年宇宙の旅』のボーマン船長のセリフらしい。 そういえばそんなセリフもあったな。 rember* (define (rember* a l) (cond [(null? l) '()] [(atom? (car l)) (cond [(eq? a (car l)) (rember* a (cdr l))] […

Scheme 手習い(3)

第4章は数字に関する関数をどうやって再帰的に書くかという話が中心。 第4章:数字宛てゲーム add1/sub1 (define (add1 n) (+ n 1)) (define (sub1 n) (- n 1)) 数に 1 を足す関数と数から 1 をひく関数。 +/- (define (+ n m) (cond [(zero? m) n] [else (…

Scheme 手習い(2)

第3章:偉大なる cons rember (define (rember a lat) (cond [(null? lat) '()] [(eq? (car lat) a) (cdr lat)] [else (cons (car lat) (rember a (cdr lat)))])) rember は remove member の略。 ラット(すべての要素がアトムのリスト)内で一致した最初…

『Scheme 手習い』はじめました。

Gauche 本を進めていたけれど、なんだかあんまり身についてる気がしなかったので『Scheme 手習い』に手を出してみた Scheme手習い作者: Daniel P. Friedman,Matthias Felleisen,元吉文男,横山晶一出版社/メーカー: オーム社発売日: 2010/10/22メディア: 単行…

クラウドのもろさとは

昨日起きた AWS の障害。自分の会社も AWS を利用しているので影響を受けた。 この出来事に対してクラウドを利用することへのもろさを懸念する論調が一部であがった。 「もろさ」には二種類あると思う。個別のサービスに対するもろさと、社会全体として見た…

AWS のデフォルト VPC

AWS

AWS で新規にアカウントを作成すると最初から『デフォルト VPC』が設定されている。 docs.aws.amazon.com ただそれだけ。

Scheme の number? と complex?

Scheme にある number? と complex? という手続き。 number? : 引数が数値であるかどうか complex? : 引数が複素数であるかどうか (number? x) => #t かつ (complex? x) => #f の数値ってあるのかな?と思った。 リファレンス(6.3.2 数値に関する述語)を見…

Dart の非同期プログラミング(Future, async/await)

仕事で Flutter をちょっといじっていて、いい加減 async あたりをちゃんと理解しておこうと思ったのでメモ。 https://dart.dev/tutorials/language/futures Dart コードはシングルスレッドで実行される Dart は基本的にシングルスレッドで実行される。 並列…

cut 式とプログラミング Gauche 7章

cut 式 関数を部分適用したい時に使えるらしい。 例えば、 二つのパラメータを取る cons。片方のパラメータを 1 に特殊化したい。 そういう場合には、 (cut cons 1 <>) と簡潔に書くことができる。 cut 式は実際には lambda の糖衣構文。 (lambda (x) (cons …

プログラミング Gauche:4章〜6章

プログラミング Gauche の4章〜6章のメモ。ちなみにコードはここ。 4章: Gauche の開発スタイル Read, Evaluate, Print, Loop => REPL リテラル 数値、真偽値、文字、文字列 1, 3.14, 2/3 => 単一トークン 真偽値 #t, #f => #f 以外の値はすべて真 文字 #\a,…

Gauche/Scheme を勉強する(三度目の正直)

過去二回挫折した Gauche/Scheme の勉強を再開したいと思う。 www.thekingsmuseum.info www.thekingsmuseum.info 今までは少しストイックに勉強しようとしすぎて挫折してしまったきらいがあるので、ゆるく進めていこうと思う。 ついでに、Evernote にまとめ…

『失敗の本質 - 日本軍の組織論的研究』を読んで

久しぶりの投稿。というか今年初投稿だ…。 失敗の本質―日本軍の組織論的研究 (中公文庫)作者: 戸部良一,寺本義也,鎌田伸一,杉之尾孝生,村井友秀,野中郁次郎出版社/メーカー: 中央公論社発売日: 1991/08/01メディア: 文庫購入: 55人 クリック: 1,360回この商…

寄付

ちょっとしたきっかけで毎月一定額を寄付してる。 寄付先は World Food Programという団体。 理由は、 学校で給食が出るようになると、親にとっては子供を学校に行かせる大きなモチベーションになる という話を聞いて「なるほど〜」と思ったから。 この世界…

小さく理解する

ちょっと必要があって Tensorflow.js を勉強している。 Tensorflow のようなボリュームのある新しいフレームワークを目の前にすると、わくわくする気持ちがある反面、「自分には理解できるのだろうか」という不安にかられる。 その不安を前にどうするか。 少…

Coursera: Convolutional Neural Networks を修了したよ

Coursera: Deep Learning Specialization の Course 4: Convolutional Neural Networks を修了しました。 内容としては次の通り。 Convolutional Neural Network (CNN) Convolution Edge Detection Padding & Stride Pooling Network Architecture LeNet-5 A…

Coursera: Structuring Machine Learning Projects を修了したよ

Coursera: Deep Learning Specialization の Course3: Structuring Machine Learning Projects を修了しました。本当は1ヶ月くらい前に終わってたけど…。 内容としては次の通り。 Machine Learning Strategy Orthogonalization Evaluation Metrics train/dev…

Dependencies - The Twelve-Factor App

12 Factor App シリーズ。2個目は依存関係の管理について。 Dependencies: The Twelve-Factor App パッケージマネージャ 12 Factor app は決してライブラリに暗黙的に依存しません。 プログラミング言語にはライブラリを管理するためのパッケージマネージャ…

macOS High Sierra で "macOS could not be installed on your computer" が出たときの対処法

macOS High Sierra の更新に失敗してしまい、次のようなメッセージがでて OS が起動できなくなった。 macOS could not be installed on your computer 再起動しても同じエラーで起動できない。 これはまずい。。。 起動する まず「起動できない」という状況…

Codebase - The Twelve-Factor App

12 Factor App シリーズ。最初はコードの管理について。 Codebase: The Twelve-Factor App バージョン管理システム 12 Factor App は常に Version Control System で変更をトラックしています。 このリビジョンのデータベースは Code Repository と呼ばれ、…

Introduction and Background: The Twelve-Factor App

サーバーアプリケーションの開発において The Twelve-Factor App という考え方があるのをつい最近知った(いまさら感がすごい)。 勉強がてら記事にしておこうと思う。 まずは Twelve-Factor App の Introduction と Background から・・・ The Twelve-Facto…

Coursera: Improving Deep Neural Networks を修了したよ

Coursera: Deep Learning Specialization の Course 2: Improving Deep Neural Networks を修了しました。 学んだ内容は次の通り。 Train/Dev/Test set Bias/Variance L2 Regularization Dropout Normalizing Mini-Batch Gradient Descendant Momentum, RMSp…

(c) The King's Museum