明日会社がなくなっても

明日会社がなくなっていても動揺しないように、情報を残していきたい

10/3-10/10 学習日記

Spring Bootを使い始めたので、それ関係の内容です。

lombok

  • @AllArgsConstructor:引数を使ったコンストラクタ

  • @NoArgsConstructor:引数なしのコンストラクタ

  • inner classに@Dataを付けた場合は?正しく動かない?

Maven

  • pom.xmlにバージョンを記述しない場合の動きは?
  • WebJars: クライアントライブラリをMavenなどで管理できるようにした仕組み
    WebJars - Web Libraries in Jars

Spring

  • OGNL(Object-Graph Navigation Language)式:Javaの値にアクセスするための式言語
  • OGNL式で取得したURLクエリは配列形式。${param.id[0]}
  • MyBatisを使う方法
  • TransactionMnager
  • Spring BootでFilterを追加する方法。FilterRegistrationBeanを使えばよいらしい。 java - How to add a filter class in Spring Boot? - Stack Overflow

その他


『改訂新版 Spring入門』の読書

gihyo.jp

気になった文章

最悪なパターンは、ビジネスロジックス層に含まれる複数のクラスがjava.sql.Connectionを扱い、トランザクション管理を行うものだ。

P29 1.2.5.2章 引用

なお、MyBatisを好むのは日本だけのようで、海外のエンジニアにMyBatisを使っていると言うとたいてい驚かれる

P30 注釈 引用

1章

  • Objec→Relation Mapping: オブジェクト指向分析でエンティティを抽出
  • Relation→Object Mapping: システムのデータ分析をDOA(Data Oriented Approach)などで行う

ROマッピングで、かつテーブル構造が複雑であればSpring JDBCのように直接SQLを利用することも考えよう P30 1.2.6.3章

  • 「偉いほうがインターフェースを持つ原則」by トム・エンゲルバーク
  • 設計する上でレイヤは増やすよりも、減らす方が簡単 (1.2.6.4章)

2章

クラスからnew演算子が消えたということは開発者がFactoryMethodなどのデザインパターンを駆使しなくても、DIコンテナから受け渡されるインスタンスをインターフェースで受け取れば、インターフェースベースのコンポーネント化が実現できるわけだ。

P48 2.1.1章 引用

  • @Autowiredはpublic setterメソッドがなくても、インジェクションされる。

  • @Autowiredでインジェクション可能なクラスが複数存在したら、エラーになる。

    • @Qualifierでクラス名を指定すれば、解決
  • @Componentでなく、それを拡張したアノテーション@Controller@Serviceなどを使うべき。(P60 参考)

  • @Scopevalue

  • applicationContext.xml<util:properties>で、プロパティファイルを読み込める。

用語

疑問

TODO

「名古屋版IoT縛りの勉強会」に参加

「名古屋版IoT縛りの勉強会」に参加しました。

iotlt.connpass.com

覚えた用語

感想

  • IoTが全然分からない状態で参加しました。発表を聴いて、やってみたい気持ちにはなったのですが、一体何から始めればよいのか。。。

読み聞かせ(9/17)


読み聞かせに使った本

『かくしたの だあれ』

www.ehonnavi.net

  • 『きんぎょが にげた』と同じで、探し物シリーズ。
  • 子供たちに大人気。大型絵本が出るといいなー
  • 作者である「五味太郎」のイントネーションに注意。練習時には、メンバーに「ゴミの人のように聞こえてしまう」と、指摘を受けました。

『ぼくのきいろいバス』

www.ehonnavi.net

  • 前回の読み聞かせで気になった絵本。http://yuji38kwmt.hatenadiary.jp/entry/2017/08/28/234307
  • 「たのしく たのしく たのしく」のセリフが好き。
  • 主人公が地面にめちゃくちゃな絵を描いているシーンでは、子供たちは少し笑っていた。
  • 読み終わったあと、子供が「意味わかんなーい」と言っていました。確かに意味分からないよね。正直、私も分からないし。
  • 荒井良二さんの絵本が、好きになりました。

『オリビア

www.ehonnavi.net

  • クスっと笑えるシーンがいくつかあります。 砂のお城を作るシーンでは、「こんなの作れる訳ないでしょ!」とツッコミを入れながらクスッと笑ってしまいました。
  • 子供から教えてもらったんですが、アニメにもなっていたんですね。確かにアニメ向きかもしれない。 オリビア (アニメ) - Wikipedia

気になった本

『ぼくとチマチマ』

  • 好きになった荒井良二さんの絵本。
  • この本も黄色いです。
  • タイトルでもある猫の「チマチマ」が、最後の方にようやく出てくる。夜明けのシーンとの関係がイマイチよく分からない。
  • 優しい気持ちになるような文章です。次回の読み聞かせで使おうかな。また子供に、「意味わからない」と言われそうだけど。

がいこく絵本展

読み聞かせの日に、ちょうど「がいこく絵本展」があったので、見に行きました。

https://www.gaikokuehon.com/————www.gaikokuehon.com

  • 文章が分からない分、絵をしっかり見るんですが、それが外国絵本のいいとろみたい。
  • 次回があったら(何年後か分からない)、また見に行きたいです。
  • 以下、気になった絵本です。タイトルは忘れてしまいました。
    • 「手すき紙」で作った絵本
    • ドラゴンボールやアトムなど、有名なキャラクターに招待状を渡した絵本。
    • 数字のゼロについて語っている絵本
    • 小さい雲が主人公の絵本
    • 図鑑になる大型絵本

Nagoya.swift+勉強会に参加(React)

Nagoya.swift+勉強会に参加して、もくもく勉強しました。 nagoyaswiftplus.connpass.com

「Node.jsとReactアプリケーション開発テクニック」という本の1~2章を読みました。 www.socym.co.jp

学んだこと

  • npmの使い方
  • babelの使い方(トランスパイラ)
  • ReactのHello World
  • JavaScript Standard Code Style

JavaScript

  • console.logには複数の引数を渡せる。
console.log("a=" + a); //1個の引数(プラス演算子で結合)
console.log("a=" , a); //複数の引数
  • console.infoconsole.tableなど、consoleオブジェクトに便利な関数があることを知らなかった。。。

Visual Studio Code

  • 入力補完が素晴らしい。関数の呼び出しを先に書いて、後から関数を作るときでも、関数名の補完が出る(jsファイルで確認)。

  • ESLintを導入してみた。質問形式で設定ファイルを作成してくれるのが便利。

ESLintの設定事始め - Umi Uyuraのブログ

>eslint --init
? How would you like to configure ESLint? Answer questions about your style
? Are you using ECMAScript 6 features? Yes
? Are you using ES6 modules? Yes
? Where will your code run? Browser, Node
? Do you use CommonJS? No
? Do you use JSX? Yes
? Do you use React? Yes
? What style of indentation do you use? Spaces
? What quotes do you use for strings? Double
? What line endings do you use? Windows
? Do you require semicolons? Yes
? What format do you want your config file to be in? JSON

babel.js

覚えた用語、教えてもらった用語

疑問点

本の感想

  • サンプルコードについて。末尾のセミコロンの有無が統一されていなくて、気になった。

9/4-9/10 学習日記

機械学習

全結合

  • ニューラルネットワークの全結合:隣接するすべてのニューロンで結合
  • 全結合層の問題点:1次元データに変換するため、空間情報(空間的に近い値はピクセル値も近い)が無視されている ⇒ 畳み込み層なら形状を維持できる。

CNN

  • ストライド:フィルタを移動する間隔
  • パディング:入力データの周囲にデータを埋めること。出力サイズを一定にするために行う。
  • Pooling層:縦横方向の空間を小さくする演算
  • CNNでは「Convolution - ReLU - (Pooling)」というレイヤでつながっていくが、出力層に近い部分では「Affine - ReLU」の組み合わせが用いられる。
  • 畳み込みのフィルタはエッジ(色が変化する境目)やブロブ(局所的に塊のある領域)に反応する
  • 最初の層は単純なエッジに反応し、続いてテクスチャ、物体のパーツに反応する。層が深くなるほど抽出される情報が抽象化されていく。
  • LeNetは1998年に提案されたCNN
  • AlexNetは2012年に発表されたCNN。ディープラーニングブームの火付け役。

Deep Learning

  • MNISTは簡単なモデルなので、層が深くなくても良い結果が得られる
  • Deep Augmentation:画像を回転や移動させて画像枚数を増やす手法
  • 層を深くすることの利点:
    • ネットワークのパラメータ数を少なくできる
    • 学習データを少なくできる
  • ILSVRC(ImageNet Large Scale Visual Recognition Challenge):大規模画像認識のコンペティション
  • ImageNet:大量の画像のデータセット
  • Deep Learningで有名なネットワーク:VGG, GoogLeNet, ResNet
  • ディープラーニングは数値精度はそんなにいらない。16bitの半精度浮動小数点数でもよい結果が得られる。

その他

Python

覚えた用語

機械学習 名古屋 第12回勉強会に参加

機械学習 名古屋 第12回勉強会に参加しました。

machine-learning.connpass.com

Cloud Natural Language API

Cloud Natural Language API  |  Google Cloud Platform

以下の分析ができる。

  • エンティティ分析(人、場所などの情報)
  • 感情分析
  • 構文解析

「日本人は「縁の下の力持ち」という言葉が大好きだが、日本ほど、縁の下の力持ち的な職業の待遇が悪い先進国はない。」という文章を入力すると、 感情分析のscoreが"-0.9"になりネガティブであると判断された。

感想

  • 感情分析はtwitterと連携すると、いろいろ遊べそう
  • Google Cloud Shellが便利。emacs, vi, pythonなどが使えた。

覚えた言葉、文法

CeBIT IT見本市に参加したレポート

おもしろかった話

  • タイは日本からもらったお金で、ドイツのシーメンスに電車を作ってもらった。
    • シーメンスは、ダイヤを現在の状態から自動で計算してくれる。
    • タイは日本ほど時間に厳しくないので、多少時刻がずれても問題ない
    • 新興国はどういったダイヤにすればよいかが読めないので、自動計算の方がよい