Tambourine作業メモ

主にスキル習得のためにやった作業のメモ。他人には基本的に無用のものです。

docsifyを入れてみる

下準備 まずはNode.jsを入れるところから。 > brew install nodebrew Warning: nodebrew 1.0.1 is already installed and up-to-date To reinstall 1.0.1, run `brew reinstall nodebrew` あれ? > nodebrew -v nodebrew 1.0.1 Usage: nodebrew help Show th…

Java13にヒアドキュメントが入ったらしい

http://jdk.java.net/13/ からダウンロード。展開して、 > sudo mv ./jdk-13.jdk/ /Library/Java/JavaVirtualMachines/ > /usr/libexec/java_home /Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home > set -x JAVA_HOME (/usr/libexec/java_home …

DataGripでモデルの絵を書く

DB

絵は本来、「描く」ものだが、データモデリングの場合、「書く」のが正しい気がするのでタイトルはわざとである。つっこまないように。そして、見習わないように。 さて、DataGripの話をしようとしていたのにAWSに不慣れなせいでDBに接続するところで前回は…

データモデリングをしようと思い、DataGripを使ってみることにする

DB

でっかいSIerでお仕事をしていると、データモデリングをすることが・・・それほどはない。だいたい、そのポジションは1アプリケーションにつき、1人が専任してやることが多いからだ。それぐらいデータモデリングは統一された考え方が必要だし、重要なものだ…

プロセスフローを書きたいと思い、BlueworksLiveに出会った

でっかいSIerでお仕事をしていると、プログラムコードを書くよりもビジネスプロセスを書く方がよっぽど頻度が高い(個人の感想です)。 ビジネスプロセスというとスイムレーンが水平に並んでいて、お仕事が左から右にフローチャートみたいな書式で流れていく、…

w3mをインストールしたら、opensslがインストールされて・・・あとでみる

ちょっと必要があってw3mをhomebrewでインストールした。 途中でopensslがインストールされてCaveatsがいっぱいでてるけど、 後で読む。そのためにとりあえずここに貼っときます。 > brew install w3m ==> Installing dependencies for w3m: bdw-gc and open…

C++でも遊んでみたい

2019年にもなって、C++を勉強しなくてはいけなくなった。嘆かわしい。 C++は大変に歴史があり、かつ、あり得ないぐらいに幅広く使われているので、大量の歴史的経緯を抱えている。 そのため、実体がよくわからない。私が最後にC++を勉強したのは20世紀のこと…

attr_accessorを自分で実装する

自作クラスでデータを保持しようとしていて半角カナが入ってきて発狂し、絶叫し、半角カナ絶対殺すマンが覚醒した。 といっても、Rubyで半角カナを全角カナに変換するのはとても簡単。NKFを使う。 > irb irb(main):001:0> require 'nkf' => true irb(main):0…

treeコマンド

treeコマンドは、たまーに欲しくなる。 プロジェクトの共有ディレクトリの使い方を説明するととかに。 Macにはない。Homebrewで入れれば良いらしい > brew install tree ==> Downloading https://homebrew.bintray.com/bottles/tree-1.8.0.mojave.bottle.ta …

OCamlでコマンドライン引数を処理する

さて、次はファイル名や表示行数を指定できるように修正しよう。 引数は、Cのargv相当がSys.argvに入ってくるが、自分でパースするのはめんどうだ。 もちろん、標準ライブラリでパースできる。Argモジュールを使う。 以下の手順を踏む。 引数で指定された情…

OCamlでナイーブなtailを作る

プログラミングの基礎 ((Computer Science Library))を読み終わった。それなりに面白かった。正直、赤黒木とかちゃんと理解するのは普通に難しいので飛ばし読みしたけど。昔、一度理解はしたけど、実装しろと言われたらもう一度勉強し直さないとどうにもなら…

GoでMarkdownをHTMLにする

OCamlに浮気していたけど、golang版の議事録作成ツールの最後のピースとして、Makdownの変換部分について調べてみる。 Markdownの変換は標準ライブラリでは出来ない。外からライブラリを持ってくるときにはGOPATHが大事になるらしいが、 それも過去のことら…

utopを使う

プログラミングの基礎 ((Computer Science Library)) というタイトルからは想像つかないことに、この本を読んでOCamlを勉強している。 本当に最初に関数型言語でプログラムを勉強した人は、どんなプログラマーに育つのだろうか。 OCamlはocamlコマンドでREPL…

OCamlのインストール

良い本とあちこちで紹介されている、プログラミングにまったく触れたことがない人向けの入門書を買って読んでみる。 これはお茶の水女子大の理学部情報学科の教科書として書かれた本で、初々しい女子大生たちがこの世界に初めて関わる時に 最初に読むという…

GoでJSONをパースする

Go

議事録のテンプレート的なことは、JSONで指定することにした。こんな感じ { "会議名": "セッション0312", "開催日時": "2019年3月12日(火)14:00 – 17:00", "場所": "本社10F会議室", "出席者": { "ABC": ["安倍", "麻生", "石田", "山下", "河野"], "XYZ":…

Goでコマンドライン引数を処理する

Go

おんなじファイルしか開けなかったり、常にラスト5行しか表示できないのは寂しいので、 コマンドライン引数を処理できるようにする。flagというパッケージを使えばよいらしい。 // コマンドライン処理 nFlag := flag.Int("n", 5, "Line numbers for display"…

Goでナイーブなtailを作る

Go

私が日頃作るツールの大抵はフィルタなので、まずはcatコマンドが実装出来ることが必要。 とりあえず、ファイルをいったん全部読み込んで、最後の5行だけ書き出す、ナイーブな実装のtailコマンドを作ってみる。 パッケージのリストを眺めるとio/ioutil.ReadF…

Goのチュートリアルをやる(4)

Go

Goroutine GoのGoたる所以だと、風の噂に聞いた。 関数をgo付けて呼ぶと、Goroutineで動く 通信するにはチャネル(型名はchan)を渡す チャネルはmake(chan int, 255)のようにしてバッファに出来る。 チャネルはclose(ch)でクローズ出来る。しまっていることは…

Goのチュートリアルをやる(3)

Go

メソッド メソッドはレシーバーの型を指定した関数。その型を定義したパッケージでしか定義できない。 オブジェクト指向言語だとthisを使うようなところで、レシーバーの仮引数があるのが変わってるかもしれない。 type MyFloat float64 func (f MyFloat) Ab…

Goのチュートリアルをやる(2)

Go

More types スライス スライスが出てきた。スライスの概念はRustで初めて知ったけど、Goも大体同じ 長さと容量を別に持ってる スライスリテラルは[]int{5, 4, 3, 2, 1}の様に作る。 スライスに要素を追加するには、append()を使う。容量を増やさないといけな…

Goのチュートリアルをやる(1)

Go

仕事でMarkdownっぽいフォーマットで議事録を書くと、ダサいフォーマットのHTMLに変換するスクリプトをRubyで書いたら、gem installがsudoでしか出来ないと言われ、悲しんだ。 実行ファイルを作って配るのがやはり楽かもしれない。Rustでやろうかとも思った…

Rails チュートリアルをやってみる(11) 5.1 テンプレートまわり

5章に入る。 5.1 5.1.1でまずはHTMLにdivタグとclass設定で構造を入れる。この時点ではCSSを当ててないので、しょっぱい。演習はcurlコマンドを使ってみろとかなので省略。 5.1.2でBootstrapを適用する。まずはgemをインストール > vi Gemfile > git diff Ge…

Rails チュートリアルをやってみる(10) 4章 Rubyについて

「Rails風味のRuby」とのこと。味わってみよう。 4.1 リスト4.1で例として、app/views/layouts/application.html.erbの以下のコードを取り上げている。 <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> Rubyを…

Rails チュートリアルをやってみる(9) 3章完了 minitest reporterとGuard

3.6 3.6.1 minitest reporters 見やすくなるらしい REDになってないとありがたみがないなあ 3.6.2 Guard 初期化する > bundle exec guard init 00:16:27 - INFO - Writing new Guardfile to /Users/tambara/study/rails_study/sample_app/Guardfile 00:16:27…

Rails チュートリアルをやってみる(8) 3.4〜3.5 ちょっと動的っぽいページ

3.4 理由はわからないけど、レイアウトファイルをリネームしておけと言われるので、する > mv app/views/layouts/application.html.erb layout_file > ls Gemfile README.md app config db lib package.json test vendor Gemfile.lock Rakefile bin config.r…

Rails チュートリアルをやってみる(7) 3.1〜3.3 静的なページとコントローラーのテスト

3章を始める。これから作るサンプルは、長くいじることになるらしい。 3.1 > bundle exec rails _5.1.6_ new sample_app --skip-bundle create create README.md create Rakefile create config.ru create .gitignore create Gemfile run git init from "." …

Rails チュートリアルをやってみる(6) 2.3.4〜2.4 DBを使うアプリをHerokuにデプロイ

2.3.4 から読む。 ApplicationRecordとか、ApplicationControllerって昔からあったっけ? なんか昔はActiveRecord::Baseを直接継承していたような気もするけど、気のせいのような気もする。ここの演習は、特にどうということもないので、パス。 2.3.5 でデプ…

Rails チュートリアルをやってみる(5) 2.3.1〜2.3.3 validationとrelation

2.3.1からやってみよう。 投稿(Micropost)の方も同じようにgenerateする。 > bundle exec rails generate scaffold Micropost content:text user_id:integer invoke active_record create db/migrate/20181121142643_create_microposts.rb create app/models…

Rails チュートリアルをやってみる(4) 2章を開始〜2.2まで

2章はscaffoldを使ってみるらしい。 さて、前回Railsのバージョンでかなりヒドい目に遭って、訳がわからなくなった。 恐らくは、rails newしたタイミングではbundle installが走ってはいけないのだと思う。 こんな記事もある rails new でバージョン指定した…

Rails チュートリアルをやってみる(3) 1.4〜1.5 Git、そしてHerokuへのデプロイ

1.4はGitの話。しかし、rails newしたときにgit initもされているように見える。お節介だなあ。 git add -Aして全部をコミットする。ん?bundle installのパスは要らないかもしれない。ミスった。まあ、いいや。 Bitbucketにコードを上げる説明が書いてある…