ようへいの日々精進XP

よかろうもん

2016 年 10 月 21 日(金)

朝の読書

メタプログラミング Ruby

  • 第四章
  • スコープ、ブロック、Proc とか lambda の話で面白かった...けど、まだ頭には入ってきていない

Python チュートリアル 第 3 版

  • 訳者まえがき、概要、第一章
  • Python の由来は爬虫類の方では無いのは初めて知った

今夜は鍋が食べたいと奥さんに行ったら...

  • 帰ってこなくなった...
  • おーい、奥さん、どこぢゃー

体調

  • 頭痛、倦怠感が辛いので寝ることにする

2016 年 10 月 19 日(水)

朝の読書

メタプログラミング Ruby の第二章の 2.4.2 から第三章まで読み終わった。

  • Ruby の達人になりたいなら常に self を意識する」
  • 三章で扱っている動的メソッドの話は個人的な最近のトレンドだったのでちゃんと理解は出来ていないけど面白かった

テンパる

  • 依頼された業務、想定外が諸々有りテンパる
  • やるっきゃないけど

logstash を久しぶりに触る

  • 慣れないけど、頑張る

Amazon Aurora の slow_query_log の挙動に違和感がある

  • slow_query_log を ON にすると一時間に一回 mysql-slowquery.log.YYYY-MM-DD.HH というログが生成される
  • general_log を ON にすると mysql-slowquery.log というログが生成されてリアルタイムに確認出来る

普通の MySQL の認識でログをリアルタイムに確認しようとするとテンパる。通常の運用で general_log をオンにして運用することってあるのか解らないけど、slow_query_log をリアルタイムに確認するのに general_log もオンにしなければいけないのは違和感あるなー。

2016 年 10 月 18 日(火)

朝の読書

もっと読みたかったけど時間が足らず。明日は二章は読み終わりたい。

俺のべんとぅ

奥さんに弁当を作ってあげるのを再開した。

俺のべんとぅ復活一日目 #俺のべんとぅ

俺のトレーニング

  • (腕立て x 30 + 腹筋 x 30 ) x 3

仕事バタバタ

  • 準備漏れやらでバタバタでバタバタ
  • 準備大事

いつもより朝が早かったので

  • 早めに寝る

2016 年 10 月 17 日(月)

朝の読書

メタプログラミングとはコードを記述するコードを記述することである」

途中まで読んでいた「メタプログラミング Ruby」を改めて最初から読み始めた。

WinRM

手羽中

  • 我が家では手羽先よりも手羽中がブーム
  • 手羽先よりも手羽中の方が食べやすいのが要因

理不尽

  • 詳しくは書けないけど、すごく理不尽な状況がとても近くで起こっている
  • 腹立たしいやら情けないやら...

弁当

  • 明日から奥さんにお弁当を持って行かせようと思って仕込み
  • ご飯を一合しかける

Azure AD で簡単な Web アプリにパスワードシングルサインオンしてみるよ

tl;dr

Azure AD でログインフォームだけの Web アプリケーションを作ってシングルサインオンを試してみたのでメモ。用語の使い方や認識の誤り等あればご指摘いただければ幸いですmm

memo

参考

ありがとうございます。

Password-based single sign-on と Federation-based single sign-on について

こちらより引用。

  • Password-based single sign-on
Plug-in (extension) をブラウザーにインストールすることで、パスワードなどの入力を自動化し、シングル・サインオン (SSO) をおこなう方法です。
Azure AD は各ユーザーの情報を SaaS アプリにセットアップし、パスワードは Azure AD 側で一括で管理します
  • Federation-based single sign-on
いわゆる SAML などの標準プロトコルを使ってフェデレーションをおこなう方法です。Plug-in のインストールも不要です。

構成

今回は以下のような構成で試す。

f:id:inokara:20161016232650p:plain

Web アプリケーション

は Heorku にアップロード済み。

github.com

#
# アプリケーション作成
#
$ heroku create oreno-app
Creating ⬢ oreno-app... done
https://oreno-app.herokuapp.com/ | https://git.heroku.com/oreno-app.git

#
# heroku に push
#
$ git push heroku master
Counting objects: 33, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (32/32), done.
Writing objects: 100% (33/33), 3.49 KiB | 0 bytes/s, done.
Total 33 (delta 11), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Ruby app detected

(snip)

remote:        https://oreno-app.herokuapp.com/ deployed to Heroku
remote: 
remote: Verifying deploy... done.
To https://git.heroku.com/oreno-app.git
 * [new branch]      master -> master

実際に URL にアクセスすると以下のようなトップページ。

f:id:inokara:20161016213345p:plain

適切なユーザー名とパスワードを入力すると以下のようなあたかもマイページのようなページにアクセスする。

f:id:inokara:20161016213401p:plain

Azure AD Premium を有効にする(必要があった)

Web アプリケーションをアクセスパネルにに登録するよ

ここからはほとんどスクショで。

f:id:inokara:20161016223839p:plain

  • 「アプリケーション」タブを選択、[追加」を選択

f:id:inokara:20161016223852p:plain

  • 「ギャラリーからアプリケーションを追加します」を選択

f:id:inokara:20161016223901p:plain

  • 「カスタム」→「私の組織で使用している、一覧になりアプリケーションを追加」→「名前」にアプリケーション名を入力

f:id:inokara:20161016223910p:plain

f:id:inokara:20161016223920p:plain

f:id:inokara:20161016223929p:plain

  • 「サインオン URL」に Web アプリケーションの URL を入力(ログイン画面の URL を入力)

f:id:inokara:20161016223937p:plain

  • 設定完了

f:id:inokara:20161016223948p:plain

  • 「ユーザーとグループ」からシングルサインオンを割り当てたいユーザーを選択し、「割り当て」を選択

f:id:inokara:20161016223959p:plain

  • Web アプリケーションの認証情報を入力する(今回はユーザー名:foo とパスワード:foo01 を入力する)

f:id:inokara:20161016224008p:plain

f:id:inokara:20161016224022p:plain

  • Extension のインストール後、改めてアクセスパネルにアクセスすると以下のような状態となり、登録された Web アプリケーションのパネルをクリックすると...

f:id:inokara:20161016224032p:plain

  • パスワードが自動的に入力され、Web アプリケーションにログインすることが出来た

f:id:inokara:20161016224045p:plain

以上

  • 今更だけどシングルサインオン便利
  • Azure AD の実力をほんの少し垣間見れた気がした
  • Heroku が簡単過ぎてビックリした

2016 年 10 月 16 日(日)

二度寝、三度寝

ジューオージャー、仮面ライダーを見るために頑張って 7 時半に起きたけど、見終わったら死んでしまっていた。ジューオージャーは相変わらず。仮面ライダーは新シリーズが始まっているが、前作のゴーストと比較するとさらに話がぶっ飛び過ぎているし、全体的にチープ感が否めない。色んな大人なシガラミがあるんだろうなあと思いつつ、唯一の救いは博多華丸がちょい役で出ていることかな。

最近、疲れやすく、疲れが抜け難くなってきた気がする。

ジョギング

  • 香椎浜 x 2 周
  • (腕立て x 30 + 腹筋 x 30 ) x 3

Ubuntu 16.04 で Arc Touch Bluetooth Mouse が使えた

14.04 の時には Bluetooth でリンクすら出来なかったけど、試しにリンクしてみたら利用できた。

www.microsoft.com

ラッキー。

西部警察

西部警察のテーマ曲を鼻歌にトイレ掃除等。

丹波の黒枝豆

直美おばさんから送って頂いた。有難うございます。

丹波の黒枝豆。

2016 年 10 月 15 日(土)

早起きし過ぎた

  • 4 時半に目が覚めた

Python3 エンジニア認定基礎ベータ試験

補欠だけど申し込んでみた。

pythonic-exam.connpass.com

教材として指定されている「Pythonチュートリアル 第3版」を購入。

www.oreilly.co.jp

MCP 70-533

  • https://www.microsoft.com/ja-jp/learning/exam-70-533.aspx
  • 700 点以上が合格ラインだが 700 点で合格
  • 血ヘドを吐きそうな位にテンパってしまう位難しかった
  • 資料や動画だけの勉強では絶対に足りない、ちゃんと Azure を触る必要がある

ジョギング

  • 70-533 終わった後、頭の中がモヤモヤしていたのですっきりしたくて走った
  • 香椎浜 x 2 周
  • (腕立て x 30 + 腹筋 x 30 ) x 3
  • 左足が少し良くなってきた気がする

香椎花火大会

  • 先月開催予定だったけど延期になって今日開催
  • 今年も自宅マンションの踊り場からちょろっと見えるのでそこから見る予定

何もやる気が起きない

  • 勉強等手を付けたいことがあったが、ボヤーッと眠いのだるさがあって何も手につかず

香椎のそこヂカラ

香椎のそこヂカラ。

2016 年 10 月 14 日(金)

動的なメソッド生成

ド素人ながら Python でメソッドを動的に生成したいなと思って色々と調べている。ちゃんと手を動かせていないけど調べてみると面白そうだ。

boto3

AWS をコードで扱おうとすると必ずぶちあたる boto3 だけど、今日は ELB を弄るようなコードを少し書いた。細かいことはよく解らないけど、自分のような人間でも簡単に書けてしまうような boto3 の実装に感動。

奥さん職場で吠える

奥さんが職場で吠えたらしい。事情を聞くともっと吠えても良いのではと思ったり。奥さんは吠えたことを後悔しているようだが、ガチで仕事をしているからこそ吠えたんだと思うのでそこは自信を持って欲しいなあ。

夕飯

香椎の「よし本」で夕飯を食べる。ここは 1000 円で生ビール、つまみ 4 種というサービスセットがかなりイイ。つまみも手抜きが無く、今日は小鉢、干物、刺し身に唐揚げとコスパ最高。

Azure AD とアプリケーションの連携

簡単な認証があるアプリケーションを Heroku にアップして擬似的なシングルサインオンを試してみたが、Active Directory メニューから既定のディレクトリからアプリケーションの追加でサクッとシングルサインオンを試せた。細かい内容は改めて別記事に書こうと思う。

2016 年 10 月 13 日(木)

朝が辛いよおっかさん

  • 数年前までは朝早く起きて勉強とか平気だったのに、最近はめっきり辛いよおっかさん

LAMP 構成

  • 時代はサーバーレスだー Docker だーと言われているけど世の中を支えているのは LAMP 構成なんぢゃないかと思うくらい LAMP 構成

博多オフィス

  • 筑紫口二階のプロント、電源も取れて穴場
  • Surface Book を広げて仕事されている方がいらっしゃった
  • Surface Book を店頭以外で見たのは初めて

斎藤さん

  • 前々職で同僚だった斎藤さんとほろ酔い横丁で呑む
  • すげー久しぶりだったけど、お互いの近況報告等しながら日本酒を八合程呑む
  • 色々と苦労されているみたいだけど、あの頃と変わらないノリで話しが出来て本当に良かった
  • 斎藤さん、ありがとう

Infrataster

モチベーション

  • 構築した LAMP 構成のチェックで Serverspec を書こうと思ったけど、Infrataster を書いて Web サイトのレスポンスをテストした

サンプル

冗長な書き方かもしれないけど。

  • spec/spec_helper.rb
require 'infrataster/rspec'

Infrataster::Server.define("foo", "foo.example.com")
Infrataster::Server.define("bar", "bar.example.com")
  • spec/sample_spec.rb
require 'spec_helper'

VHOST=[
  { "server_name": "foo", "url": "foo.example.com/test.php" },
  { "server_name": "bar", "url": "bar.example.com/test.php" },
]

VHOST.each do |p|
  describe server(p[:server_name]) do
    describe http('http://' + p[:url]) do
      it "responds as '200'" do
        expect(response.status).to be 200
      end
      it "responds as 'ok'" do
        expect(response.body).to include('ok.')
      end
    end
  end
end

capistrano

モチベーション

  • 複数サーバーにテスト用のコンテンツをバラマキたい

サンプル

  • Gemfile
source "https://rubygems.org"

gem "capistrano", "2.15.9"
gem "capistrano_colors"

3 系で無いのはすいません。

  • capify から config/deploy.rb 修正(タスクを書く)
mkdir example
cd example
bundle exec capify .
vim config/deploy.rb

以下のような感じ。

require "capistrano_colors"

set :user, "ec2-user"
set :ssh_options, :keys=>"/path/to/key"
set :use_sudo, false

role :dev, "xxx.xxx.xxx.1"
role :stg, "xxx.xxx.xxx.10", "xxx.xxx.xxx.11"

#
# カレントディレクトリの index.html をリモートホストの /var/www/html/index.html にアップロードする
#
namespace :deploy do
  desc "contents upload"
  task :file_upload, :roles => :stg do
    top.upload("index.html", "/var/www/html/index.html", :via => :scp)
  end
end

久しぶりなので混乱したけど、Capistrano 便利。

ノーベル文学賞

怪しいメール

  • キャリアコンサルタントを名乗る外国の方から英語でなんかメールが来ていた
  • よくよく見ると何度か送って下さっているようで恐縮してしまう
  • こんなワシにもメールを送るってのはよっぽど人が集まらないんだろうな