CLOJURE for the BRAVE and TRUEでClojure学習 part7

はじめに Clojure の学習備忘録。今回はChapter 8: Writing Macrosでマクロの書き方について学ぶ。 これでようやく1章の全Chapter完了である(^o^) 前章がマクロをメカニズムを紹介するのに対して、今回はマクロのより実践的な話。 専門用語をどう訳すが適切…

CLOJURE for the BRAVE and TRUEでClojure学習 part6

はじめに 久しぶりの投稿になったがClojure の学習備忘録。 今回はChapter 7: Clojure Alchemy: Reading, Evaluation, and Macrosで以下を学ぶ Clojureの評価モデル Readerについて Evaluatorについて 評価モデルこそ、Lispが他の言語と大きく異なる特徴的な…

CLOJURE for the BRAVE and TRUEでClojure学習 part5

はじめに Clojure の学習備忘録。 今回はChatper 6: Organizing Your Project: A Librarian’s Taleで以下を学ぶ def がなにものか? 名前空間とその使い方 名前空間とファイルシステムの関係 前半が、名前空間についての説明で、 後半は、lein new app で作…

CLOJURE for the BRAVE and TRUEでClojure学習 part4

はじめに Clojure の学習備忘録。 今回は、Chapter 5: Functional Programming では以下を学習する pure functionとはなんであるか? pure functionがなぜ便利なのか? 以下pure functionを純粋関数と呼ぶ。 目次 Pure Functions: What and Why Pure Functio…

CLOJURE for the BRAVE and TRUEでClojure学習 part3

はじめに Clojure の学習備忘録。 今回は、Chapter 4: Core Functions in Depthの残り箇所。 今回のあつかうテーマは、以下の通り。 遅延シーケンス 無限シーケンス コレクション関数(conj, into) 代表的な高階関数(apply, partial, complement) 遅延シーケ…

CLOJURE for the BRAVE and TRUEでClojure学習 part2

はじめに Clojure の学習備忘録。 今回は、Chapter 4: Core Functions in Depth の途中まで。 Sequence とはなにかを説明した章であり、map, reduce といったいくつか重要な Sequence 関数が紹介される。 js と違って、 Clojure が hashMap も sequence とし…

CLOJURE for the BRAVE and TRUEでClojure学習 part1

はじめに Clojure の勉強をはじめた。 最近出版された Clojure 書籍がないため、Clojure/ClojureScript 関連リンク集で入門者向けとして紹介されてる Clojure for the Brave and Trueを翻訳?(読み)ながら自分が重要だとおもったところメモしていくスタイルで…

awkでvlookupみたいな表結合させる

はじめに 最近、bash, awk, jqにお世話になっております。 特にawkは使い始めたばかりなので、awkを使ってワンラインでexcelのvlookup的なことをやりたいときにどうすればよいのかわからなくて、excelで頑張ってたりしてました。 でもエンジニアならば、exce…

typescript導入したprivateなnpmパッケージの作り方

はじめに 開発の規模を大きくなってくると、共通化したコンポーネントを利用したいこともあると思います。 git submoduleをつかって共通部分を切り出すことも可能ですが、branchの変更忘れてしまうと反映されないので、個人的には好みではないです。 一方pri…

goで継承をつかう

go

はじめに goを勉強始めるとjavaなどで学習してきたオブジェクト指向の考え方を違う場面に出くわす。 たとえば、goでは継承できないことである。 しかし委譲を使えば、同じことを実現できるのでその整理をしようと思う。 仕様整理 下図のような関係を考える。…

述語論理をつかったSQL

sql

はじめに 僕は、SQLが苦手である。 普段使い慣れている言語とは別の考えがSQLには必要なのであろうと痛感している。 ということで、達人に学ぶ SQL徹底指南書を使って最近SQLの考え方を学習中。 今回は、SQLで数列を扱うの備忘録を残す。 達人に学ぶ SQL徹底…

DataGripでクエリの大文字化設定

sql

SQLのエディタ?は、Datagripを使うようになった(勉強中) その理由は、 1. キーバインドがカスタマイズできる 2. 補完が最強 3. フォーマット機能が優秀 にある。 さらに、クエリを自動で大文字化してくれることがわかったので 載せておこう。 Datagrip > Pre…

SQLの集合演算整理

sql

はじめに SQL は集合的思考が必要ということだが、和集合や差集合など求める集合演算の仕方は複数存在するようなので、一度整理しようと思う。 集合演算子形式 exist を使った述語論理形式 (外部・内部)結合形式 3パターンで考えてみた。 データの準備 まず…

TypescriptでSequelize してみる

はじめに 前回 Sequelize の一番基本的な使い方を紹介したが、typescript で記述可能ならば、以降 ts で書きたいなと思ったので、今回は typescript の環境を紹介したいと思う。 ts で記述するメリットは、型が使えることだけではなく、エディタからの候補表…

Sequelize入門

SequelizeというORMについて知識の整理のため、記録を残そうと思う。Databaseはmysqlを使用する。 今回は、 1. database作成 2. table作成 3. insert, update, delete という基本的なことの整理をしたい 1. databaseの作り方 databaseを作成するのは、sequel…

dockerでnginx を使ってリバースプロキシをたてる

概要 前回node プロジェクトの dokcer image を作成した。 express などで作成した node でサーバは well known port を使用できないので、80 ポートで HTTP 通信するには、nginx などの web サーバが必要になる。 今回はnginx でリバースプロキシのコンテナ…

node プロジェクトの docker image をつくってみる。

社内でAWS ECS を使うことになったが、そもそも dokcer image を作ったことがなかったので 調べてみた。 目次 node プロジェクトの用意 Dockerfile の作成と build image からコンテナ起動 docker-compose 起動 1. node プロジェクトの用意 typescript & Exp…

docker run -vとDockerfileのVOLUMEは違うのか?

はじめに 最近dockerについてプログラマのためのDocker教科書(以下教科書と呼ぶ)で勉強し始めた。 プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化作者: 阿佐志保,山田祥寛出版社/メーカー: 翔泳社発売日: 2015/11/20メデ…

jsでオブジェクト配列をつかった集合演算

js

はじめに jsで集合演算についてしらべてみた。 調べた限り集合演算の例は[1,2,3]と[2,3,4]の積集合をもとめるといったプリミティブ値の配列が多くて、オブジェクト配列をつかった 集合演算が見つからなかったので、残して見ようと思う。 問題(特定の本の返却…

flow-typedで型情報を管理しやすくしてみた

flowで型を導入後、毎回importするのが面倒だなと感じるようになってきた。 flow-typedをつかえば型情報をグローバルに定義できるようなので、これでimport文書く手間をカットしたり型情報をうまく管理できるのでは... ということで今回は、flow-typedをつか…

Prettierについて調査

最近エディタをsublimeからvscodeに変更しました。 その中でPrettierも適用することになったので、こいつのことを理解しようとおもうようになりました。 はじめはimport内のタブサイズが4になってたりと思うどおりに動かなくて断念かと思ったが、再インスト…

WebpackのdevServerを使ってもサーバと通信できるフロント開発がしたい

はじめに 自分はReactやReduxを使ってWebアプリを開発するときにWebpackのdevServerにお世話になる。devServerを使えば、ソース変更時に自動でブラウザをリロードしてくれて便利だからである。 しかし、devServerを使った場合、localhostで動かしてるwebサー…

Higher Order Componentについて調査

はじめに Higher Order Componentについて学習。 atomic Designと呼ばれるものを実現するよい手法なのだろうと感じ、 使い方を少し学ぼうと思ったので、その記録を。。。 ゴール MyButtonを拡張して、MyCustomButtonコンポーネントをつくる。 ポイントは、st…

React DnD tutorial翻訳してもっと理解を!!

はじめに React DnDは、Reactアプリでドラッグ&ドロップを楽に実装できるライブラリである。 React DnDのOverviewの翻訳を前回記述した。 そこで、Overviewを呼んだだけでは実装イメージがつかめなく、使い方がわからないということを指摘をした。 なので、…

React DnDの公式Overviewを訳して理解を深めたい!

React環境で、ドラッグ&ドロップ操作をどうやって扱えばよいのだろうかと思ってると、 React DnDというライブラリを見つけた。便利そうではあるが、いくつかのブログを見てもよくわからないし、DecoratorやHigher Order Componentの考え方も登場し正直難し…

webpackで.babelrcっているんだっけ?

他人のwebpackの設定をみてると人によっては.babelrcがあったりなかったりする。 どっちが正解なんだと思うことがあったが、別にbabelrcがあってもなくてもよい。 webpack.config.jsでbabelの設定するか、babelrcで設定するかの違いということがわかったので…

gulpを使ってReact Electron Webpack環境にLiveReloadを!

electron開発してると、毎回トランスパイルして起動というのが面倒だなと思ってくる。 webpackのHot Module Replacementを使えばもっと早くできるようだが、僕には理解できなかった。 だがしかし、gulpを使えばそれなりに実現できる!! とわかり挑戦してみ…

babelでトランスパイル

今回はいつも以上に基本的なこと。 webpackを使って複数のjsを単一ファイルにトランスパイルしてきたが、トランスパイルはbabelの仕事。 だからbabel単体を利用して、トランスパイルするにはどんな環境構築作業が必要なのかを備忘録として残しておく。 ただ…

jsでリファクタリングを学びたい(Nullオブジェクト編)

リファクタリングについて学びたく、「Java言語で学ぶリファクタリング」を読んでる。タイトル通り、Javaで記述されているが、js(ES6) + flowで書いてみて、リファクタリングの技術とflowの理解を深めようと思う. 今回取り上げるリファクタリング内容は、4章…

electronでキャプチャーソフトつくってみるpart2

キャプチャーソフトを作成中に、録画経過時間を表示する機能が必要になった。フラグのON/OFFでタイマーの開始・リセット出来るならば、他のアプリにも活かせるかもと思い、タイマーコンポーネントを作ってみた。 要件 タイマーつくる propsであるisRecordを…