miyohideの日記

技術的なメモなどを記しています

2019年11月1日(金)

一週間が長かった。

Markdownの脚注対応

Markdownには脚注記法というものが存在します。こんな感じ。

ここに脚注を入れたいな。[^1]

[^1]: 脚注の注釈内容。

1個や2個ぐらいなら手で番号を振ってもいいのですが、3個以上になってくると面倒くさい。

そこで、注釈の内容をで囲んで脚注を入れたい場所にその文字列を挟み、後でRubyで変換させるようにしました。

例としてはこんな感じ。

ここに脚注を入れたいな。★脚注の注釈内容。★
ここにも脚注を入れたいな。★脚注の注釈内容2。★

これを下のようなRubyスクリプトで変換させます。

contents = File.read('sample.md')

i = 0
f = []

contents.gsub!(/(.+?)/) { |m| i += 1; f << "[^#{i}]: #{$1}" ; "[^#{i}]" }

print contents
print "\n"
print f.join("\n")

上のスクリプトconvert.rbってなファイルとして保存し、

ruby convert.rb > result.md

ってな感じで実行してやると脚注の番号付けがちょっと楽になります。

2019年10月24日(木)

Docker + Proxy

私が勤めている会社ではインターネットに繋ぐときはProxy(認証付)を経由する必要があります。このため、色んなツールを使うときはProxyと戦う羽目になります。今日はDocker編。

環境は以下のもの。

 Docker for Windows ではProxyの設定ページがあるので、基本はそれだけでOK。

docs.docker.com

ただ、これだけではDockerfile内でapt-getしとうとするとProxyの壁に阻まれます。ちょっと前はbuild-argを指定することで回避できたのですが、今はこの方法ではダメみたい。

docs.docker.com

 色々と探し回った結果、以下のページに有るように~/.docker/config.jsonに設定を追加することで解決しました。

docs.docker.com

色々と設定があって難しい。

その他調査事項

Docker for Windowsな環境では、volumeの指定で$PWDの指定をどうすればいいのかがよくわかっていない。Windows環境(コマンドプロンプト)ではPWD環境変数がないっぽい?

2019年10月21日(月)

Vue.js入門

これまで何度かVue.jsに入門していたんだけれども、あまり身についた気がしなかった。

何度目かのVue.jsということで、書籍を買ってお勉強。今回買ったのは、以下の本。

Vue.js入門 基礎から実践アプリケーション開発まで

Vue.js入門 基礎から実践アプリケーション開発まで

まだ第一章と二章を読んだだけだけれども、結構しっかり書いているので個人的には嬉しい。例えば、

var vm = new Vue({
  el: '#app',
  data: {
    message: 'hello!'
  }
});

って書いたときに出てくるelとかdataとかの説明がP35にバッチリ書かれている。こういうの、あまり気にせずに進めてもいいんだけれども、小さいことが気になる私の悪い癖で。

2019年10月18日(金)

久々に再開。

エンジニアリング組織論への招待

最近、「エンジニアリング組織論への招待」という本を読んでいる。

色々と感覚値で話していたことを理路整然と書かれていて、非常に興味深い。第3章の「アジャイルなチームの原理」や第5章の「技術組織の力学とアーキテクチャ」が興味深い。アジャイル vs ウォーターフォールという形で語られることが如何に的外れか気付かされた。

機械学習

社内の研修で今更ながら機械学習について学ぶ。本当に触りの触りだけれども。

参考として推薦された本は以下のもの。

機械学習入門 ボルツマン機械学習から深層学習まで

機械学習入門 ボルツマン機械学習から深層学習まで

仕事ではじめる機械学習

仕事ではじめる機械学習

読むべき本がたくさんありすぎる...

要調査項目

Java開発でいろいろと調べることが出てきている。

  • mavenでローカルjarをインポートする方法
  • 既存のpom.xmlを編集せずにgoalを追加する
  • GItLabにmavenリポジトリ機能を追加する

本当、最近何屋さんなのかがわからなくなってきている。まあ、マルチに能力を発揮できる人ということで。

2019年7月18日(木)

Babel 7.5について調べたこと

あまり勉強ができなかった。前回の続き。

JavaScriptclass構文など新しい文法を使いたいが古いブラウザ(例えばIEなど)に対応する必要がある場合、ソースコードを変換する仕組みを導入することで対応できるみたい。その変換を「トランスパイル」といい、トランスパイルするツールの一つがBabel

ココらへんは「JavaScriptコードレシピ集」のサポートページに書かれているので、合わせて読むとよいかと。

JavaScript コードレシピ集

JavaScript コードレシピ集

で、サポートページを読んでいくと出てきたpolyfillというもの。Babelは文法の変換のみで、機能(新しく定義されたメソッドやオブジェクト)の変換までには対応していない。それを埋めるのがpolyfill。

更に調べていくと、polyfillもターゲットブラウザによって必要な場合は何もせずにネイティブな実装を使い、必要な場合のみ変換することができるとのこと。それを実現するのが@babel/preset-env

というわけで、Babelインストール時は

npm install --save-dev @babel/core @babel/cli @babel/preset-env

という感じで@babel/preset-envもインストールしておくと良さそう。

その後、設定ファイルである.babelrcにて@babel/preset-envを使うことを宣言。

{
  "presets": ["@babel/preset-env"]
}

2019年7月11日(木)

黙々とJavaScriptテスト

Jestを使ってみる

簡単なものから始めようということで、とりあえずJestを使ってテストを書いてみる。

「Getting Started」という入門編的なページがあるので、それを参考に。

jestjs.io

npm initpackage.jsonを作り、後は示されたソースを書くのみ。書いてyarn testを実行すると次のような画面になって成功。

f:id:miyohide:20190711230349p:plain

最近はカラフルに画面が表示されて大変わかりやすい。

次はBabelかな。モダンなJavaScriptの構文が使えるらしい。IE対応だと必須っぽい。