明日会社がなくなっても

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

0108-01/14 学習記録

Spring Boot

application.propertiesの独自プロパティ

Eclipse上で、 application.propertiesの独自プロパティに、"XXX is an unknown property."という警告が表示されていた。 @ConfigurationPropertiesで独自プロパティを定義して、警告を解消した。 さらにEclipseで補完が効くようになり、便利になった。

Scala

Intellij IDEA

MyBatis

  • parameterTypeは指定しなくてもよい。というか指定しない方がよい?
  • OGNL(Object-Graph Navigation Language):Javaオブジェクトのプロパティにアクセスしたりメソッドを呼び出したりすることの出来るJavaに似た言語

PostgresSQL

  • PostgreSQL JDBC Driverのデフォルトフェッチサイズは制限なし。

抽出サイズを 0 に戻せば、(デフォルトの動作である)すべての行がキャッシュされます。

引用
PostgreSQL の JDBC Driver メモ - 徒然なるままに 参考

1/4-1/7 学習記録

Scala

  • Function0~Function22ある?

  • Scalaでは関数が第一級の値

  • メソッドはdefで始まる構文.メソッドは第一級の値ではない。

  • ローンパターン:高階関数を利用してリソースの後始末を行うパターン

コレクションライブラリ

  • Arrayはパフォーマンス上必要になる場合以外はあまり積極的に使うものではありません。
  • Listはimmutable
  • 中置記法:
  • 「mapをfoldLeft, reverseで実装する」という練習問題が分からなかった。

Spring Boot

@PathVariableで拡張子を取得できない

以下のContollerを定義して、/donwload/sample.jpgにアクセスすると、変数filenaneの値はsampleだった。

   @GetMapping("/download/{filename}")
    public String sample(@PathVariable String filename) {
        //filename -> "sample"
    }

拡張子も取得したいので、正規表現を使ってパスパターンを取得した。

   @GetMapping("/download/{filename:.+}")
    public String sample(@PathVariable String filename) {
        //filename -> "sample.jpg"
    }

Thymeleaf

  • Dialectの意味:「DOM操作を行うプロセッサ」、「th属性の属性値に指定された式を解釈するコンポーネント」、「暗黙オブジェクトを生成するコンポーネント」の総称

環境構築(pom.xml)

Spring Boot Reference Guide 参照

<properties>
    <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
    <thymeleaf-layout-dialect.version>2.1.1</thymeleaf-layout-dialect.version>
</properties>
spring.thymeleaf.mode=HTML

EclipseのThymeleafプラグイン

12/29-1/1 学習記録

Maven

「invalid LOC header (bad signature)」

Maven Installを実行すると、以下の警告が発生した。

[WARNING] C:\Users\yuji3\.m2\repository\org\springframework\boot\spring-boot-devtools\1.5.7.RELEASE\spring-boot-devtools-1.5.7.RELEASE.jarの読込みエラーです。invalid LOC header (bad signature)

問題となっているjarを削除して、再度Maven Installを実行したら、解決した。

STSでTomcat起動時エラー解消方法:Caused by: java.util.zip.ZipException: invalid LOC header (bad signature): ある SE のつぶやき

Spring Boot

@RequestParam@RequestAttributeの違い

  • @RequestParam : Query String. ServletRequest#getParameter(name)に対応する。
  • @RequestAttributeServletRequest#getAttribute(name)に対応する。 Spring - @RequestAttribute Example

Scala

覚えた用語

  • Scala Worksheet: IntelliJ IDEスニペットを試せる
  • 糖衣構文(シンタックスシュガー)
  • コンパニオンオブジェクト:クラスと同じファイル内、同じ名前で定義されたシングルトンオブジェクト
  • 菱形継承問題
  • 自分型
  • tupple

書き方

クラス

https://dwango.github.io/scala_text/class.html * Scalaでは1クラスに付き、基本的には1つのコンストラクタしか使わない * 返り値の型は明記する習慣を付けるようにしましょう。

型パラメータ

http://dwango.github.io/scala_text/type-parameter.html * Scala言語では最初から順に、A、B、…と命名する慣習がありますので、それに合わせるのが無難でしょう。 * 配列型はJavaでは共変なのに対してScalaでは非変である

Javaと比較して気になったこと

match式

  • _ワイルドカード

  • オーバライドするときは、overrideというキーワードを使う。

疑問

「ThinkPad 10」を中古で購入しました。

購入した経緯

勤務先で、ネットを見るためにタブレットを購入しました。

最近、常駐先が変わりまして、そこはほぼネットが使えません。 そこで働く人(社外常駐者)は、スマホを使ってググっています。

スマホは画面が小さくてググる効率が悪いので、タブレットを購入することに決めました。 本当ノートPCを持ち込みたかったんですが、ノートPCだと持ち込み申請が面倒なので、タブレットにしました。 しかし、タブレットとノートPCの違いは何だろうか。。。

タブレットに求める条件

  • 10インチ以上

    • 大きい画面で検索できて、調べる効率がが良い
  • 外部ディスプレイに接続できる

    • どうせなら普通のPCとして使いたい
  • 5万円以内

    • ネット用なので、できるだけ金額は押さえたい

Thinkpad 10を購入

Thinkpad 10 20C1002PJP」を、中古の3万円で購入しました。

ThinkPad 10 - 20C10023JP,20C1002NJP,20C1002PJP,20C1A00HJP 製品仕様書

主な製品仕様は以下の通りです。

AndroidWindows

OSをAndroidにするかWindowsにするかで、悩みました。

Android比較したWindowsの特徴は、以下の通りです。

  • Androidタブレットより高い
  • 外部モニタに接続できる
  • キーボード入力がしやすい(慣れているので)

仕事以外で使うことを想定していなかったので、Windowsにしました。

少し使ってみた感想

これから持ち込み申請を出して、仕事で使っていきたいと思います。

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

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

machine-learning.connpass.com

TensorBoradのハンズオン

qiita.com

  • 自分の端末のTensorBoardがv0.1.6と古かったため、以下のコードが動かなかった。ハンズオン環境はv0.1.8以上を前提としている。
from tensorboard.plugins.histogram import summary as histogram_summary

tensorflowをアップデートするとTensorBoardがv0.4.0rcになり、解決した。

  • pythonのパッケージのバージョンを確認する方法
$ pip freeze
$ pip list

pipのlistとfreezeの違い - 君たちは永遠にそいつらより若い

10/08-10/15 学習記録

sample

  • sample
  • sample

『改訂新版 JavaScript本格入門』の勉強

gihyo.jp

実は今週勉強していないんですが、昔のメモがあったので載せます。

  • 6/10は、なぜ小数にゴミが出ない?
0.2*3 //⇒ 0.6000000000000001
6/10 //⇒ 0.6
  • "eval is evil"(eval関数は悪)

  • コールバック関数:呼び出し先の関数の中で呼び出される関数

  • Array.from() メソッドは、配列型 (array-like) オブジェクトや反復可能 (iterable) オブジェクトから新しい Array インスタンスを生成する。
    Array.from() - JavaScript | MDN

  • プロトタイプオブジェクトを使用すると、メモリの使用量を節減できる。

感想

  • 4.7章のスコープチェーンの図が分かりやすかった。
  • 全体的に図が分かりやすい。

MashupAwards2017 大垣ハッカソンに参加(2017/09/30-10/01)

MashupAwards 大垣予選に参加したときの日記です。

mashupaward.jp


導入

チーム

  • 会社の同僚2人誘って、参加しました。
  • 私はIoT、ロボットの知識が全くありません。

アイディアソン

作りたいアプリを、短い時間にたくさん考えます。 テーマごとに、アイディア出しを3回繰り返しました。

以下、私が考えたアイディアで、覚えているものです。

  • プレゼン練習用のスマホアプリ
  • 電車内で混雑しているところを教えてくれるアプリ

チームビルディング

  • 同僚たちと、当日お会いした方2人(Sさん、Uさん)、合計5人のチームになりました。
  • 作成するアプリは「プレゼン練習用のスマホアプリ」から発展させて、「Pepperでプレゼン練習するアプリ」になりました。
  • Sさん、UさんはMashupAwardsの経験もありでAPIの知識も豊富。頼もしかったです。

ハッカソン開始、発表

Pepper

  • 調子が悪い。最後までPepperに悩まされ続けました。

    • ネットに接続できない
    • 設定画面が表示されない
    • Choregraphe(Pepper用のSDK)が動かない
  • Pepperで表示したWebページが、正しく表示れない

    • JavaScriptでtableを作成していたが、1行目しか表示されない。
      JavaScriptを使わずに、サーバ側でHTMLを作成

音声認識

  • ChromeのWeb Speech APIを使いました。
  • 精度がよいです。精度よすぎて認識したい「えーっと」が認識されません。。。 Web Speech APIサンプル

HTTPサーバ

作業

  • ソフトピアジャパンには「ソピア・キャビン 」と呼ばれる貸切宿泊施設があります。
  • ハッカソン会場の隣に宿泊施設があるのは、とても有難かったです。夜通し作業ができる。。。まあ12時に寝たんですけど。

発表

  • Pepperのデモは失敗しやすいとのことだったので、あらかじめデモ動画を撮影しました。
  • ブルゾンちえみ」風な口調のスライドにしました。スベってたかな?
  • なんと最優秀賞をいただきました。セカンドステージ進出です。頑張ります。

反省点

ハッカソンに持っていくべきもの

  • LANケーブル、有線LANポート

    • Wi-Fiが混線して、使えないかもしれないため。
    • あとPepper用。
  • テザリング環境、モバイルルータ

    • Wi-Fiが混線して、使えないかもしれないため。
  • 電源タップ

    • ホテルなど会場以外で作業するときに使用

使えると嬉しいもの

知っていた方が良い用語

  • REST
  • HTTP(request, response)
  • HTML

自分ができることを一言で説明(チームビルディングがある場合)

チーム内で担当を決めるとき、自分は何ができるかを説明する必要があります。 以下のようなことが言えると、自分の技術レベルを正確に伝えられると思いました。

  • こんなアプリ作ったことあります
  • この本を読んだことあります

その他

  • Pepperなど技術的不安要素が大きいものを使う場合は、「それ」が使えない場合の案も考えた方がよさそうです。 実際に「Pepperが使えなくて、別のアプリに乗り換えた」チームもいました。