ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

1千億円を使い果たしたウェアラブル

2017-02-21 20:34:02 | Weblog
1千億円を使い果たしたウェアラブル「Jawbone」 医療向けシフトか
http://forbesjapan.com/articles/detail/15267/1/1/1

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Kotlinについていろいろ聞いてきた

2017-02-21 14:30:28 | JavaとWeb
昨日(2月20日)JJUG ナイトセミナー「Kotlin(ことりん)」に行ってきた!ので、その内容をメモメモ



■クラスの作り方に見るKotlinの表現力
・Kotlin入門
・Kotlinとは
 JVM言語(すからー、ぐるーびーとかのなかま)
 androidもサポート
 JetBrainsが開発(IntelliJ IDEAを開発している)
 2011年に発表され、2016年2月にVer1.0(1.1もうじきでそう)
 静的型付け
 簡潔安全Javaとの相互運用

・Hello World
package sample

fun main(args: Array<String>){
if(args.isEmpty())return
val name=args[0]
println("うつせなかった・・ここまでしか");
}

・自己紹介
 Kotolinスタートブック

・もくじ
 有理数(分数)
 片方向リストのノード

・題材その1:有理数を表現するクラス
 有理数クラス:Rational
 プロパティ
   分子
   分母

・クラス定義
// プライマリコンストラクタ
 class Rational(val numerator : Int,
val denominator: Int)

//使い方
fun main(args:Array<String>){
// newと書かなくても生成
val half = Rational(1,2)
// getter setterが書かないでもいい
printf(half.denominator)
}

・オーバーライド
 class Rational(val numerator : Int,
val denominator: Int){

//オーバーライドのとき
// overrideのことば必須
override fun toString():String
= "${numerator}/$(denominator}"

//式が評価された文字列内に展開
// ストリングテンプレート
}

・イニシャライザイー
 不正なものを生成させない
init{
require・・・・
}

・非公開メソッド private fun

・if elseは、式(値を返す)

・末尾再帰の場合、tailrecとかくと、最適化可能
  →スタックオーバーフローなくなる

・非公開プロパティ
valとかかないと、非公開プロパティ
 class Rational(numerator : Int,
denominator: Int){

・演算子オーバーロード Operator
  plus +演算子を使ったメソッド呼び出し
 →ユーザー定義クラスにも

・2 * Rational(2,5)
 →拡張関数
 operator fun Int.times

・題材その2片方向リストのノード
 プロパティ
   値 value
   次のノードへのポインタ next

・抽象クラス
//共変指定
 abstract class Node<out T>{
abstruct val value:T
abstruct val next:Node<T>
}

・継承してノードを表現

・シングルトンオブジェクト object
 クラスとは違う
 Nothing あらゆる型のサブタイプ

・リストを作れる!

・コンパニオンオブジェクト
  スタティックな宣言に近い

・呼び出し時に引数が省略されるとデフォルト値が使用される

・通常の抽象クラスは見える人なら継承OK

・クラスの前にsealedとつけると、外側にいる人は継承できない

・ノード数プロパティsize
  再帰呼び出しで計算
  when式:switchの強い版

・委譲プロパティによる遅延初期化
 byのあとにかく

■spark Framework with kotlin
・自己紹介
 サーバーエージェントのFresh!(動画配信プラットフォーム)について
  マイクロサービス
  フルDocker
  AWSのEC2コンテナ(ECS)
  主にGo
・GoとFRESH
 1個のサービス、1個のコンテナ 1個のリポジトリ
 十数個のマイクロサービス
・つらくなってきた
 →基本的に筋力に頼る言語:書く量多い
  生産性を挙げる:コード生成
 →新たな基軸言語を求めた
・マイクロサービス:言語変えられる
  ミドル、低レイヤはGo
  新たに1つの基軸言語(乱立はいけない→学習コスト)
・Kotlinを選択
 API実装の基軸言語として
 新しいマイクロサービスは基本ことりんで
・選んだ理由
 モダンな文法
 IDE(IntelliJ IDEA)
 一番現実的
  社内リソース(JVM系人材、Androidでの実績)
・助走期間
 サービスをKotlinで
  SpringBoot
  Springfox
  domaframework
 感想
  生産性高い
  そこそこの学習コスト
  もうちょっと薄いものでいいかもしれない?
   モノリシックなサービスを作るわけではない
・Spark Framework
  小規模Javaフレームワーク
  Java8ベースのマイクロWebフレームワーク
  Apache Sparkとは別物
  ラムダ式
  DIない

・Spark Framework With Kotlin
 ラムダ式では満足できない
 SparkFrameworkとことりんのよさ
 相性の悪さ、迷いはあまりない

・Spark With Kotlin
 コントローラー・ルーティング
 フィルター(横断的関心ごと)
 レスポンストランスフォーまー(JSON)
 データクラス
 拡張関数
 Guice(DI):Google
 愚直なDI(とばす)
 okhttp
 hystrix
 メトリクス

・コントローラー
package io.stormcat.controller
import spark.*

class EchoController{
val echo = Route{ req,res ->
"Hello・・・・

・ルーティングmainからgetで

・Filter
handleをオーバーライドする
 mainメソッドで定義 after
  →around的なものがない

・レスポンストランスフォーマー
 どのように整形するか
 jacksonのkotlinモジュール
 dataclassをサポート

・data class
 Javaだと入れ物定義
 echoの返すところ EchoResultを作って返す
 JSONにシリアライズ

・拡張関数
 リクエストに対して、authUser
 beforeでユーザーオブジェクト取ってきて
 拡張関数の仕組みを使うと、メソッドに

・じゅーす
 SparkにDIのしくみない→DIほしい
 GuiceでDIを利用
 コンストラクタインジェクション

・愚直なDI
 Guiceのインジェクター

・okhttp
 マイクロサービス間の通信
 ことりんのでーたくらすにでしりあらいず

・Hystrix
 ネットフリックスがつくっている
 分散システムにおいて、回復力のアルアーキテクチャを実現するライブラリ
 サーキットブレーカーをサポート

・サーキットブレーカー
 どこかがダウン→ダウンしたところにリクエスト→タイムアウト→連鎖的におかしくなる
 コレを防ぐ
 閾値超えたらアクセス遮断
 ダッシュボード

・Hystrix Command
 をいれていく

・メトリクス(Jolokia じょろきあ)
 Dockerビルドの際にいれておいて、とれるようにする

・FrashにおけるSparkとKotlin
 公開APIとして本番稼動

・まとめ
 Spark+ことりんは現実的な選択肢
 マイクロサービス:シンプルなもの
 サーバーサイドことりんの波は少しずつきている
 Kotlin気持ちいい

■Spring はーとまーく Kotlin
・自己紹介

・今日のお話
 SpringBootをKotlinで
 Spring5で入っているKotlinサポート

・せばすちゃんの受け売り

・SpringBootをKotlin
 Spring Initializr
  →IDEも裏でコレたたいている
 デフォルトでJava
 →スイッチ フルバージョン
  →言語Kotlin選択できる

・MVCコントローラー

・DIコンテナーに管理してもらいたい
 Javaconfig
 ことりんの場合 openつけないといけない
 →なぜ、Openいるの?
 シングルトンオブジェクトになる
  →同じインスタンス:Cglib
 ことりんは、Finalを勝手に付ける
  →勝手に付けなくするのがopen
 →spring のopen問題

・セバスチャンが解決
 springだったらfinalつけないというspringプラグイン
 →JPAのプラグインも
 →今はOpenいらない。

・Spring5のことりんサポート
 Spring5
 Java8ベースライン、Java9コンパチ
  :
  :
 Http2サポート
 Kotlinサポート

・ことりんサポート
 拡張関数のサポート
 Reified type parameters

・ことりんKクラス
 Bar::class.java
 Javaのクラスは.javaが必要
 →拡張関数:もともとの関数を書き換えることなく

・Reified(らいふぁいど)type parameters
inline fun <reified T:Any> Foo.create()

 ことりんらしいコード
 idiomatic Kotlin code

・Reactiveサポート
 今:サーブレットベース
 →リアクティブランタイム(ノンブロッキング)
  →Webflux
   リアクティブストリーム
 サーブレット3.1→Netty

 いままでと同じようにサーブレット
  +
 ルーターファンクションモデル
 SpringMVCも

・WebMVC+@Controller
 →いままでどおり:ブロッキング
 WebFlux+@Controller
 →帰り値:ノンブロッキング、引数ちょっと変わる
 WebFlux+RouterFunction in Java

 ルーターファンクションはDIなしで動く

・mix-it

・そのほかのことりんサポート
 本家見てね

・5.0 M5がリリースされれば、使えるはず

http://start.spring.io/#!language=kotlin

・JJUG CCC 2017 Spring
 CFP募集中

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ネットの削除要請代行は弁護士業務

2017-02-21 11:02:50 | Weblog
ネットの削除要請代行、非弁行為と認める判決
http://news.goo.ne.jp/article/yomiuri/nation/20170220-567-OYT1T50101.html

(以下太字は上記サイトより引用)

弁護士法は、弁護士以外が報酬目的で法律事務を行うのを非弁行為として禁止している。訴訟で業者側は「サイトの通報用フォームを使って削除を依頼しただけで法律事務ではない」と主張した。

 判決は「フォームの入力は男性の人格権に基づく削除請求権の行使で、サイト運営者に削除義務という法律上の効果を発生させる」と判断


とのことらしい。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

五次方程式が代数的に解けないわけ

2017-02-21 01:28:19 | Weblog
の説明がよかったので、メモメモ

3-2. 五次方程式が代数的に解けないわけ - 2015/5/22
https://www.youtube.com/watch?v=qwYyXtttns0


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする