2019-04-30

italkiのTシャツをもらった。

italkiのlanguagechallenge2019/2の20時間達成の景品であるTシャツが届きました。ようやくLATVIAから届いたのです。italkiはskypeなど使ってオンライン講師とマッチする言語学習サイトです。そのitalkiで2月に20時間のレッスンしたことで、景品のロゴTシャツをもらいました。

郵便受けにLATVIAからの不在票が入っていたときは何のことかと思った。



ガジュマルきた

届いたガジュマル。足を組んで座っているみたいでかわいい。


amazonで購入したガジュマルが届きました。沖縄や東南アジアに原生している植物です。沖縄では「キムジナー」と呼ばれ、火の精霊が宿るとされています。また、他の木々に巻きつく「絞め殺しの木」としても知られ、アユタヤにある石仏を飲み込もうとするガジュマルは有名です。
Image result for アユタヤ ガジュマル
アユタヤにある石仏を飲み込みつつあるガジュマル

今回購入した花屋さんは下記の店舗です。朝注文したら、翌日には届きました。栃木から東京への発送でした。早かった。

2019-04-29

MacでkotlinとGUIフレームワークtornadofxによる開発環境を揃える

必要なもの

  1. gradle
  2. jdk8 (jvm 1.8)
  3. javafx8
  4. kotlin
  5. IntellJ

インストールについて
1. gradle:
ビルドツールです。
brew install gradle
https://gradle.org/install/#with-a-package-manager

2, 3. jdk8
Oracle Javaを使って商用ソフトウェアを作るとお金がかかるので、ここではOracle以外のものを使う場合を扱う。
また、tornadofxが依存するjavafxのインストールには二通りある。javafx8をビルドしてインストールする場合と、javafx8とjdk8が同梱されたビルド済みのものをインストールする場合。後者の方が手軽である。いずれにしても、JDKもjavafxもversion11, 12のものが多いが、kotlinとtornadofxは, jdk9, 10を無視すると、jdk8, javafx8までしか対応していないので、jdk8, javafx8を導入する必要がある。同梱の場合、amazon corretoおよびzuluを使うと簡単にインストールできる。いずれもopenjdkのライセンス、GNUv2 GPLを引き継いでいる(GPLウイルス)。javafx8のビルドは情報が少なく、あっても古く、非常に手間がかかるので、私は諦めた経緯がある。
https://docs.aws.amazon.com/ja_jp/corretto/latest/corretto-8-ug/what-is-corretto-8.html

4. kotlin
brewでインストールする
brew install kotlin
https://kotlinlang.org/docs/tutorials/command-line.html

5. IntellJ
KotlinはそもそもJetbrainsによって開発が始まったものなので、彼らが提供するIDE, IntellJを使うのが正攻法でしょう。Tornadofxのプラグインを入れてください。詳細は省略します。

ここまでが終わったら、intellJで tornadofxのプラグインを導入し、tornadofx-gradleのプロジェクトを作り、Runすれば以下のwindowが表示されます。




参考
AdoptOpenJDKのJava8にOpenJFX8を自分でビルドして組み込んで使う方法
https://seraphy.hatenablog.com/entry/2018/09/28/010354
KotlinとTornadoFXで流れるHello world
https://qiita.com/boochnich/items/b7cba85efa49e6426858#comment-36d21cf436d0b209b710

Kotlin + TornadoFX + IntellJ on Macの環境構築

(本記事ではjavafxのビルドに失敗。別記事で、javafxを同梱したjdkを使う方法について説明します)

KotlinおよびTornadoFXがJDK 8を要請しており、JDK11は未対応
OracleはJava 8の有償サポートは切らしており、Java 11の無償利用は非商用の開発のみ。

OpenJDK8のインストール

caskを使う
brew tap AdoptOpenJDK/openjdk
brew cask install adoptopenjdk8
https://apple.stackexchange.com/questions/334384/how-can-i-install-java-openjdk-8-on-high-sierra

Gradleのインストール

brewを使うのが楽

 brew install gradle
==> Downloading https://services.gradle.org/distributions/gradle-5.4-all.zip
==> Downloading from https://downloads.gradle.org/distributions/gradle-5.4-all.zip
######################################################################## 100.0%
🍺  /usr/local/Cellar/gradle/5.4: 13,767 files, 235.4MB, built in 1 minute 21 seconds

~/work master* 1m 25s
 gradle -version

Welcome to Gradle 5.4!

Here are the highlights of this release:
 - Run builds with JDK12
 - New API for Incremental Tasks
 - Updates to native projects, including Swift 5 support

For more details see https://docs.gradle.org/5.4/release-notes.html


------------------------------------------------------------
Gradle 5.4
------------------------------------------------------------

Build time:   2019-04-16 02:44:16 UTC
Revision:     a4f3f91a30d4e36d82cc7592c4a0726df52aba0d

Kotlin:       1.3.21
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM:          1.8.0_212 (AdoptOpenJDK 25.212-b03)

OS:           Mac OS X 10.14.4 x86_64

https://gradle.org/install/

gradleがbuildすることを確認。

 vim build.gradle

task hello doLast {
    println 'Hello world!'
}
                                                                           

 gradle hello

> Task :hello
Hello world!

BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed                                                          

         

ちなみに、gradle5からはleftShift (<<) ではなく、doLastを使う必要がある。
https://qiita.com/navekazu/items/af886fa200be8a683132
https://qiita.com/ossan_pg/items/608134f44ccf4542edf2


OpenJFXのインストール
次、OpenJDK 8 に含まれていないjavafxを導入する。Tornadofxはjavafxを内部で使っている。javafxのoracleと切り離されたオープンソース、openjfxを導入すれば良い。

依存関係のあるmercurialをインストールする

$ brew install mercurial

 ant -version

Apache Ant(TM) version 1.10.5 compiled on July 10 2018


JAVA_HOME, JDK_HOMEにパスを通す。まずはjava_homeを
 /usr/libexec/java_home -V
Matching Java Virtual Machines (1):

    1.8.0_212, x86_64: "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home


export JAMA_HOME="/usr/libexec/java_home -v 8"

export JDK_HOME="/usr/libexec/java_home -v 8"

antをインストール (MacOS Maveriks 10.9以降、antはデフォルトで入っていない)
$ brew install antant

https://stackoverflow.com/questions/3222804/how-can-i-install-apache-ant-on-mac-os-x


しかし、ここでBUILD失敗。別の手法を探すことになった。

OpenJFX8の公式インストールページ
https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX+8u#BuildingOpenJFX8u-Mac

2019-04-23

OpenJDKのインストール

OpenJDK11は

https://jdk.java.net/archive/

でダウンロード可能。Macの場合、解凍したら


sudo mv jdk-11.0.2.jdk /Library/Java/JavaVirtualMachines

によってmacが認識できる場所に移動。これによってjavaやjavacのパスは通る。



emacs HelloWorld.java
class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

javac HelloWorld.java
java HelloWorld
Hello World!

Javaのライセンス問題

KotlinでGUIアプリを開発しようとしていて環境構築で問題が発生しました。
どのJavaを使えばいいんだ・・・?
https://www.orangeitems.com/entry/2018/02/08/152022

とりあえず問題提起まで。答えが出たら別記事書きます。

2019-04-17

フランス語の例文のうち発音されない文字について


muet(黙字)を読み勝ちなので、メモしておきます。紫背景は発音されません。

On fait une hypothèse sur le présent lorsqu’on imagine une chose, un fait qui n’existe pas ou qui n’est pas vrai au moment où on le dit.

2019-04-16

一遍が飲尿されるのは性癖ではなく治療だった

竹筒に一遍の尿を採取する人たちの絵が"天狗草紙"にあるが、これらは一遍の尿が万病に効くと信じていた人たちらしい。尿療法と呼ばれる。

2019-04-12

Progressive Growing of GANsの計算時間

ネットワークの構造やGPUにもよるところはあるが、以前行った学習について、それぞれの解像度でかかった計算時間を図にした。

中国語の発音は表記をあてにしてはいけない。bは/p/

https://www.youtube.com/watch?v=tg9TnOdJrhc
この動画でboとpoの音の区別が難しく感じた、いや中国語は区別が難しい発音がとても多いと感じる。その謎が一部解けた。

b (IPA: /p/)
p (IPA: /pʰ/)

どっちもpじゃん

(個人用メモ) italkiのサイトで学習時間を合計する

https://www.italki.com/lessons/sessions/completed


consoleで次を入力。私の場合は2月から32.5時間だった。

duration2time = (dur) => {
let [t0, t1] = dur.split(' - ');
let [h1, m1] = t1.split(':');
let [h0, m0] = t0.split(':');
let hour = Number(h1) - Number(h0);
let minute = Number(m1) - Number(m0);
let ans = hour * 3600 + minute * 60;
return ans;
}

document.documentElement.outerHTML
.match(/\d{2}:\d{2} - \d{2}:\d{2}/gi)
.map(duration2time)
.reduce((pv, cv) => pv + cv, 0)/3600;

2019-04-02

AWS S3で公開したホームページをCloudfrontでSSL化する際、ACMの証明書は米国北部(バージニア北部)で作らないといけない。

はまりがちなので気をつけて。

Amazon CloudFrontで ACM 証明書を使用するには、米国東部(バージニア北部) リージョンで証明書をリクエストまたはインポートする必要があります。CloudFront ディストリビューションに関連づけられたこのリージョンの ACM 証明書は、このディストリビューションに設定されたすべての地域に分配されます。(https://docs.aws.amazon.com/ja_jp/acm/latest/userguide/acm-regions.html)


SSL化にはこの記事が参考になります。
https://qiita.com/jasbulilit/items/73d70a01a5d3b520450f

食事制限のためのサラダチキンといきなりステーキ

値段とタンパク質について、セブンイレブンのサラダチキン(プレーン)といきなりステーキのワイルドステーキ300gを、それぞれ100gあたりで比較した。 サラダチキン, 185円, 21.7g ステーキ, 820円, 22.97g 値段の大きな違いのわりにタンパク質には大き...