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

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

関数型の話を聞いてきた・・・たぶん・・・

2016-04-28 21:18:19 | Weblog
4月28日 第12回勉強会 Satis function( ){ ... };を聞いてきた

ので、その内容をメモメモ


■実践F#関数型プログラミング入門
・技術評論社から出版した書籍をもとに
・ストリーミングOFFの理由→アカデミックを相手にしたくない
ACMのお年表から
 FORTRAN 手続型 バッカス→チューリング賞
 IPL 関数型プログラミング
→関数型は同じくらい古い
インパラティブパラダイム
宣言型
  →論理型 PLANNER,Prolog
   関数型
論理型 述語論理 どうする、なにを
手続き型とお作法が違う

宣言型:連立方程式のときかたをかくようなかんじ

手続き方と関数型まじわらない

日本の関数型
 エリス→LISP専用機 なぜこの当時作られたのか?
 専用機なんて、誰も買えない→研究者用
 パーソナルコンピューターが出てきてから

宣言型パラダイム:リソースとパフォーマンス必要
Javascriptの関数型→プロトタイプオブジェクト
SQLも関数型→集合理論だけ特化

 IF文、FOR文がある

関数型は、IF,FORいらないというか、ステートメントいらない

C言語でLIST処理をやる理由→集合を扱うものがない
関数型;集合型をあつかうのが前提
 LIST,タプル→

IF文ではなく、IFファンクションである
IF関数=返す値が重要 型
関数→値を返す→文法チェックができる
バグが少ない=あいまいさを許容しないから

 手続き型プログラミング
 構造化プログラミング
 モジュール化プログラミング
 オブジェクト指向プログラミング
 関数型プログラミング
→どれも影響を受けている

OCAMLでオブジェクト→書き換え不可
イミュータブル
並列→デッドロック→イミュータブルだと出ない

Qiitで関数型:たたかれてる→宗教論争:誰の立場で叩いている?
遅延実行→遅延評価:実現方法違う

・引数を取って値を返す
・同じ値が変える(参照透過性:副作用がない)→並列
副作用を持っているとバグになりやすい

古くからあるのに、なんでメジャーにならないのか?
・パラダイムが違う→いままでのやり方では失敗する
 ラムダ式 りんく 
  パイプライン→オブザーバー
 リアクティブ→関数型に端を発している
・目線を変えて勉強する




■(表題は書けなかった)
・宣伝から
 みなさん、iphoneユーザーですね!統計によると・・・
・自己紹介
・映画の話
 じくうのさけめ
・関数:集合
 データと操作
  手続き型:操作
  関数型:データ
 →関数:別の空間に行くため ワームホール
・ブラウザも一種の関数
 ソースコードきまれば、画像決まるでしょ

・JS 関数型影響受けている

関数型
 第一級
 参照透過性
 単一代入
 型による制約
 遅延評価
 直和型 エラーハンドリングで関数を全域で扱えるか?

関数をモノとして扱えるだけで、いろいろできる

無名の関数を作って呼び出している
式=評価すると値になるモノ

関数を引数にとる関数
同じ関数を使いまわすのに有効

リスト処理に聞いてくる

関数を返す関数
・フレームワークを作りやすい

・ラップ

引数を関数としてわたし、関数を返す
ランダム:プログラム実行環境を引数にとっている
IO

カリー化
・1つの引数に変える

Yコンビねーたー

コールスタック→呼べる関数の上限
末尾再帰

パフォーマンス
 遅いイメージ
 パフォーマンス プロファイラーで採れる

イベント:時系列データ→一種のストリーム

■Introduction to Reactive Extensions
Without saying "functional" or "reactive"

・自己紹介
・今日はなさないこと
  関数プログラミングの話もしません
  アプリケーションアーキテクチャの話もしない
  RxJSの推薦をするわけではない
・なにをするのか
 プログラミングスタイル

・イベント
 どこでも。イベントは集合
・イベントを購読して、フラグ管理
 ReactiveX:イベントのマネージメント

・RxはC#から来た
 ボルタ(votta)というプロジェクトからきた
 エリックメイヤー
 LINQ to Event
 ネットフリックスのひと
 RxをJavaにもってきて、オープンソース化
 
・Rxの構成要素
 オブザーバブル
 オペレーター
 サブジェクト

Observable
 値は向こうからとんでくるけど
 ゼロから無限まで

オペレーター
 Arrayの拡張メソッドみたいなもん
 関数適用値返す

サブジェクト
 Observableとして、購読できるが

スケジューラー
 イベントループ
 コンストラクタの生成後にとってくるとか
 settimeoutなどの時間軸管理とか

プログラミングのキーポイント
 おぶざーばぶるの定義
 オペレーター
 フィルター
 変数に入れる
 繰り返す

スキャンの実装

Rxはオブザーバーパターンの拡張

イテラブルとオブザーバー

ブロッキング:コスト高い

まとめ
・pushとpullは表と裏
・Rxはちょっと進化したオブザーバー

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

さくらのDockerホスティング「Arukas」などを会場内限定”以外”のところをメモ

2016-04-28 13:03:28 | Weblog
4月27日「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベントの話を途中から聞いてきたので、「会場内限定」以外のところをメモメモ




■Dockerホスティング「Arukas」について(途中から)

・Dockerのワークフロー
  Dokerfile:環境定義
  DockerImage:作成
  Dockerhub
  いろいろ展開

・VM VS Docker

・Container as a Service
  Build:定義ファイルを定義するだけ
  Ship:開発、テスト、配布のサイクルが標準化
  Run:スケール
 →Build,Ship,andRun any app,anywhere

・Container as a service Platform Stack

・Docker
  シンプルなワークフロー
  ライトウェイト
  あいそれーしょん
   CPU,RAM

・コンテナは独特の管理が必要
  スケジューリング

・Arukasについて
 Dockerコンテナホスティング
 ログイン画面

・あるかすの機能
 コンテナオーケストレーター
 API:ドキュメント書かれていない
 CLI

・あるかすのサービス
 必要なだけ保持するスケジューラー
 自動復旧
 エンドポイントを発行

・あるかすアップデート
 新しいアプリケーションを起動しながら古いのを停止
  Blue-Green deployment
 Update中は新旧バージョンのAPPが存在

デモ

以降(会場内限定)

まとめ

あるかす
・複数コンテナを管理
  オーケストレーター
・高品質な国産サービス
・起動的なスケール

あるかす開発マイルストーン

質問
・プライベートDockerイメージは今のところ扱えない
 など

■Docker Machineとさくらのクラウドで作る
「リモートDocker」のススメ
・自己紹介

・Docker Machineでできること
・さくらのクラウド用ドライバ

・Docker Machineでできること

・Docker Machineとは
 プロビジョニングツール
 単一のバイナリ→Docker Toolbox

・機能
 Create:マシンの作成
 Provizioning:TLSの設定も!
 Environment:環境設定の補助機能
 Other(Power,State)

1)Create
・Dockerを動かすためのマシンを作成する
  ドライバ:指定可能なドライバ14種類
  →あれ、さくらのクラウドは?
   大丈夫。ぷらぐいんがあります

2)プロビジョニング
 環境を意識せずに(Dockerが吸収)

・Docker
  CLIとデーモンでわかれている
  リモートAPIでやり取り

・どこでTLSが必要なの?

・TLS認証を使うには
  CAの構築
  証明書
  クライアントへ配布
  Dockerデーモン・クライアントでTLS有効にして起動

・接続設定
 
 Dockerクライアントへの接続先
  -Hオプション
  DOCKER_HOST環境変数

 補助機能
  SSHとSCPのシンタックスシュガー

・その他
 電源周りの操作
 問い合わせ

まとめ
・DockerMachineでできること
 Docker用マシンを作る
 Dockerのプロビジョニング
 Dpckerへの接続お助け

DockerMachineさくらのクラウド用ドライバ
・何をするもの?>
 さくらのクラウドにDocker用マシンを作るよ
 さくらのクラウドに特化した+α
  VPC,パケットフィルタなど
 なんで「さくらのクラウド」なの?
  つかいすてできる
  ネットワークが速い
  ローカルでコンテナ、さくらでサービスイン
  ブリッジ、ハイブリッド接続
 さっそく動かす
 インストール
 バイナリファイルを取得し、パスを通す
 桜のクラウドのコントロールパネルでAPIキーを取得

デモ

待っている間に速度比較
 ローカルのVirtual Boxとさくらのクラウドの場合

デモ続き

使い方いろいろ紹介
・活用例
 VPC機能
 GSLBで負荷分散
 ハイブリッド接続
   スケールアウトが必要なものはクラウド
   セキュアなものはハウジング

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