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

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

Rで日本地図出して、気象庁のデータ読み込んで、軌跡を描くところまでは、できた

2014-08-31 15:08:48 | Weblog
きのう(8月30日)「夏休み最後の自由研究をしよう!データビジュアライゼーションもくもく会」に行って来た!

その内容をメモメモ




本日の趣旨
 手を動かして作る
 これまでのダイジェスト
 最後に成果発表

AITCの紹介


■R言語ではじめよう、データサイエンス!(ハンズオン勉強会)
~機械学習・データビジュアタイゼーション事始め~
(すがいさん)
http://www.slideshare.net/dsuket/ss-38507785

・SVMとK-means
・R-Studio
・ggplot2
  気象庁の台風の軌道

・~相関分析による需要予測~
東京電力の電力使用量
気温

■D3.jsでLODをビジュアライゼーション
http://www.slideshare.net/dsuket/d3js-35239244
Data駆動→グラフツールではない。
 宣言的に記述。何を表すかを記述する
 データセット→順次指定
  足りないとき、Enter,Exit
  スケール
地図を表示できる
SPARQL
 DBPedia

■D3.JSを使ったデータビジュアライズ勉強会
http://cloud.aitc.jp/20140717_D3js/
のall.zipを解凍すればOK
・横浜のオープンデータ
・横浜市統計情報ポータルサイト
横浜市/統計白書
Excel→CSVへ
緯度経度に直すサイト
テレビ受信→地図へ




「もくもく会」でやったこと

<<目標>>
台風の軌道をD3.jsで書く

■まずは、Rで書くことの復習

(1)Rで日本を書く
  R起動
  install.packages("maps")
  library(maps)
  map(xlim=c(121,155),ylim=c(20,50))

(2)気象庁データのダウンロード:2014年版を利用
  bst<-readLines('http://www.jma.go.jp/jma/jma-eng/jma-center/rsmc-hp-pub-eg/Besttracks/bst2014.txt')
View(bst)

 ・ヘッダー部分処理
  header<-read.table(textConnection(bst[grep("^66666",bst)]))
View(header)

 ・レコード部
  record<-read.table(textConnection(bst[-grep("^66666",bst)]),fill=TRUE)
record<-record[!is.na(record[,7]),]
View(record)

 ・必要な行のみ抽出し、列名をつける
header<-header[,c(3,4,8)]
names(header)<-c("NROW","TC_NO","NAME")
View(header)

record<-record[,c(1,3:7)]
names(record)<-c("DATE_TIME","GRADE","LAT","LON","HPA","KT")
View(record)

・RecordにHeaderのID(TC_NO)を付与
  record$TC_NO<-rep(header$TC_NO,header$NROW)
View(record)

・HeaderとRecodeをJoin(merge)する
  data<-merge(header,record,by="TC_NO")
View(data)

 ・緯度経度補正(10倍されている)
  data<-transform(data,LAT=LAT/10,LON=LON/10)
View(data)

 ・緯度経度幅の確認
  range_lon<-range(data$LON)
range_lon
  range_lat<-range(data$LAT)
range_lat
 →103.6~183.2,1.8~53.7と確認できる

(3)mapに台風の軌道を書く
map<-data.frame(map(plot=FALSE,
xlim=c(range_lon[1]-10,range_lon[2]+10),
ylim=c(range_lat[1]-5,range_lat[2]+5))[c("x","y")])

 ・描画
install.packages("ggplot2")
library(ggplot2)
ggplot(data,aes(LON,LAT,colour=NAME))+
geom_point(aes(size=GRADE))+
geom_path(aes(x,y,colour=NULL),map)

 ・保存(change dirで適当な作業ディレクトリに変更後)
 p<-ggplot(data,aes(LON,LAT,colour=NAME))+
geom_point(aes(size=GRADE))+
geom_path(aes(x,y,colour=NULL),map)
ggsave("typhoons2014.png",p)

(4)CSVファイルに保存
write.csv(data,file="typhoons2014.txt")

■D3.jsで日本地図を出し、プロットしてみる
・jsfiddleで日本地図表示
   http://jsfiddle.net/に行く
   http://jsfiddle.net/sEFjd/ のjavascriptの内容をコピー
   Framework&Extensionsを
     D3 3.0.4
     OnDomready
   に設定
   External Resourcesに topojson.v0.min.js を追加

・ここで終わってしまいました・・・
 このあと、http://jsfiddle.net/dsuket/W9sVC/を参考に
 点を書く予定でした。

■発表会
NVD3
c3.js




このあと、D3.jsで日本地図出して、点をうつ方法までは分かりました。
別エントリで書きます

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

Oracle In-Memory(CPUコアごとに数10億行/秒のスキャン)

2014-08-29 09:18:53 | Weblog
Oracle Database In-Memory 徹底解説に行って来た。その内容をメモメモ




内容
・Oracle In-Memory外観
  7月23日に発表
・βプログラムのフィードバック
・技術的ポイント
・考察

■外観
・現在のトレンド In-Memory
  メモリ安くなっている
  メモリ高速
  つめる容量大きい
  ユーザーの期待が変わる

オラクルが提供するIn-Memory関連製品
・こひーれんす、
・たいむず10
今回、DBのインメモリ、
  →ミドルウェアも、DBも
ちがい:コヒーレンス:Java、→スケールアウト
    タイムズ10→リレーショナル、スケールアップ

既存のOracleDatabaseの
資産をそのままに
大量データ分析を超高速で
   
Oracle-Database In-memoryの開発ゴール
  ラリーエリソン発表
  長年かけて開発
 ゴール4つ
   ・リアルタイムアナリティクス 100倍
   ・OLTP高速化
   ・アプリケーションの変更なし
   ・最新のHWを有効活用しようとする
     →CPUとのインテグレーション

大量データ分析の中核となるインメモリ処理
 ビッグデータ処理:Hadoopクラスタ
   →加速してくると、データサイズ大きくなる
 高速処理→インメモリ処理

アイデア

■カスタマーの声
・6/10 グローバルカスタマーの3つの声
  既存のOLTPを変えてくれる可能性
  導入が容易
  インメモリの可溶性

(1)既存のOLTP,DWHの概念を変える
 分析処理を直接できる(DWHを作らずに)
 OLTP,DWHのワークロードをひとつのDBで処理できる可能性

(2)導入が容易かつ運用管理性と高速性の高度な両立
 導入難しくない。
 インデックス減らせる
 ネットスイート、マイクロストラテジ(パッケージ会社)→高速化に言及
  パッケージソフトを改修しなくても?

(3)インメモリにおける高度な可用性と拡張性
  インメモリでも信頼性が高い?

■DBIMの3つのポイント
(1)既存のOLTP,DWHの概念を変える
・一般論
  ロー型、カラム型が一般的
   ORACLEはロー型:トランザクション
   SyBaseIQカラム型:集計系
  →同時に実現しようとしているのがトレンド
   メモリ上で同時に生成
 メモリ上のロー型、カラム型が展開
 既存のフォーマット:バッファキャッシュ
 カラム型を追加
  →オプティマイザが判断して利用
 同期は?
  ロー型をアップデート、
  カラム型を同期→更新したあとすぐに検索してもOK

ORACLE
 1つのテーブルから2つのフォーマットを作成
他は、
 CREATE TABLEで選択する

(2)導入が容易かつ運用管理性と高速性の高度な両立
Oracle Database In-Memory導入ステップ
  事前調査:
    どのデータをカラム型にのっけると、こうかあるか
  導入作業:
    サイズは?(領域確保)
    乗っけていく
    乗っけると、インデックスがなくなる→削除
  監視する:

インメモリ・カラム・ストア
  SGAの中に、カラム専用エリア→インメモリ・エリア(スタティック)
  alter tableで選択
  インメモリに乗っけるプロセス
    ロード:ポピューレート
    圧縮とデータ変換:バックグラウンドプロセス
    テーブル、パーティション、マテビューも載せられる!
  ポピュレーションできない:OLTPの一部
  圧縮:スループットとの関係
  ロード→プライオリティが指定できる
    データを乗っけたとき、プライオリティが低いものから落ちていく

コスト効率性の高いメモリ上へのデータ配置
 頻繁にアクセスされるデータのみを乗っける
 メモリ全部あることを前提としていない
 どのデータを選べばよいのか?
   →Oracle In-memory Advisor:レコメンデーションツール

OLTPにおけるインデックスの影響
  インデックス:更新処理の場合、張ればはるほど、遅くなる
  SQLレビュー:アドホックなクエリーを管理
  インデックス:予期する
  カラム型:予期いらない

CPUコアごとに数10億行/秒のスキャンを実施
  →SIMD:CPU内部の並列処理
  SPARC 384コア→1兆行のレコード
   →カラム型を採用したから
  パラレルクエリ 16億行
  ビットマップインデックスでもある程度なめられるが、そのメンテナンスがいらない

エクサデータ
 ストレージインデックス→インメモリでも
 チャンクに分けて

JOIN系
 内部的にはインテリジェント(使う人は特に何もしなくても)
 結果セットのメモリ空間

エンタープライズマネージャーとIn-Memory融合
→In-memory central
  カラム型

(3)インメモリにおける高度な可用性と拡張性
・柔軟な拡張性を提供するメモリテクノロジ
  スケールアウト/スケールアップ、どっちでも
  RACとIn-Memoryの組み合わせ

  分散配置と複製配置の組み合わせ

  複製配置:障害時、ロードする時間が省ける
  12.1.0.2最新で載っている
  どんなプラットフォームでも・・だいたいOK
   一部、エクサデータ用(複製配置)
    →ノード間通信

 高速的にOLTP
  →TimesTenとの構成

・いままでの12c

・In-memory-Advisor
・SGAの中に領域確保
・Alter Tableでインメモリ
・ポピュレーション
・インデックス削除

■考察
・効果あった場合、分析早くなる
  アップしたら、変わること
  テーブルなめる処理が早くなる
   →応答性もあがるけど、その分、リソース使わなくなるので、
    他の処理も
  OLTP、DWH→集約効果
・適用パターン
  分析とトランザクション→影響受けてはいけない
  更新を反映させたくない場合→マテビューを非同期にする!
  別筐体:ゴールデンゲート
   いままで11G→インメモリ部分のみ12c
・アプリケーションの変化
  単純にSQLを投げれば、早く帰ってくるジャン!
  どんどんSQL投げちゃえ!!


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

人間のように思考するコンピューターは作れるのか

2014-08-28 23:14:39 | Weblog
きのう(8月27日)、NII市民講座「未来を紡ぐ情報学」第3回の

人間のように思考するコンピューターは作れるのか
~脳の情報処理プログラムを探る~

を聞いてきた。その内容をメモメモ




・人間のように思考するとは?
 人工知能:人間と同様の知能を実現
 2つの段階:
   機械にやらせる(自動化)
   方法にもこだわる

 人間のほうが効率的かも?→最適化

・例:チェスの名人を破った
  機械にできた。同じ方法??
   全ての可能性を書き上げる
   勝てる確率最大

・人間の知能を実現する
  シミュレーションする
 →脳の活動を量る
  コンピューター内に脳をつくる

・脳活動の計測
  領野ごとにしごとぶんかつ
  微小回路
  神経細胞

・マクロで量る
 大きな脳活動 fMRI

・ミクロで量る
 神経細胞に電極
 電圧のパルスを送るなど

・マクロとミクロの中間「メゾ」

・脳活動のシュミレーション

・脳から数理モデル
  神経細胞モデル、シナプスモデル。
   興奮性細胞と抑制性細胞
 モデル
  本物の神経細胞と同じときにスパイク

・脳活動のシュミレーションの例

・人の脳全体のシミュレーション
  部品の数多い:12年後には?

・医学への応用
 脳・精神疾患が社会へ与える影響大きい
   認知症、てんかん、パーキンソン病

・欧米における投資

・計測データの爆発:ビッグデータ活用

Q&ADeepLearningの関連
・DeepLearning:学習がカイゼン→シナプスの太さ

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

Excel2007など、Office系でリボン(上のメニュー)が出なくなったとき

2014-08-28 12:16:37 | Officeソフト&VBA
Excelとか、ふつう

のように、リボン(メニューの下の選択欄)が出てるけど、
これが消えることがある。こんなかんじ

クリックすればリボンは出てくるんだけど、これを出しっぱなし
にしたい場合

Officeボタン(ホームの上)を右ボタンクリック

出なくなっている状態の場合「リボンの最小化」に
チェックが入っているはず。これを選択して
チェックをはずせばOK

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

Windows Server2003のサポート終了(2015年7月15日)と攻めのIT

2014-08-27 07:36:50 | Weblog
きのう(8月26日)
ITPro Expo Special in Summer 2014
2020年へのITパラダイムシフト~さらばWindows Server2003~
に行って来た。その内容をメモメモ。




■サポート終了まで1年切る!
 対策の実態と先行事例に見る移行の勘所

日経BPイノベーションICT研究所のえらいひと

・サポート切れOSを使うのはセキュリティ上問題
・4月XPサポート終了
 →サーバーの場合、移行の時間は比べ物にならない
 →10月15から17日のITExpoの前に
 →これを機に見直し

・日経BPイノベーションICT研究所の紹介
 メディアの枠組みを超えて

・WindowsServerの進化
 2008のとき掲載のもの
  1996年 日経WindowsNT
    Windowsはクライアント→サーバーへ
    ファイル、プリント共有
  2000サーバー
    Activeディレクトリ→基盤
  2003  Windows Server2003
    Windows.NETサーバー→.NET戦略
  2008 Windows Server2008
    仮想化、品質
  2012 Windows Server2012
    仮想化の進化→クラウドでのシングルサインオン、
    VDI

・2003登場時
  NTserver4.0からの移行→多数のメリット
  2000ユーザーはそれほど魅力でなかった

・Windowsのサポート期限
  Microsoft 10年サポート
   メインストリームサポート
   延長サポート→その延長サポートが切れる
 Linuxもサポート期限がある

・Windows2003で発見された脆弱性
  →セキュリティパッチの提供なくなる
  →経営課題

・WindowsXPのマルウェア感染率
  →7の10倍の感染率

・2003以前がどれくらい使われているか?
  →30万台
 新たなサーバー移行/使い続ける8%、計画なし6%
  →10万台くらい残るのでは?

・WindowsXPの状況
 4月末 中堅・中小企業の半数がWindowsXPを継続利用
  WindowsXP以外では動かない
  費用を捻出できない

・クライアントOSの違い
  とめられるタイミング
  接続に時間かかる
  選択肢多い

・移行手順
  棚卸し:調査
  移行方法の検討
  移行先の検討
  移行作業

・2003導入時と今の違い
  →クラウドを使える

・プライベートクラウドの利用状況 (JUAS)
  利用進んでいる。1兆円以上の8割
  規模が小さいと進んでいない
 パブリッククラウド
  2割くらい。

・クラウドの導入を見送った理由
  コストダウンするかわからない
  セキュリティ、個人情報、データ連携、
 →全てが移行することはない

・基幹系システムはオンプレミスが7割
 →組み合わせて使う

・2003から2012への主な移行方法
 ・アプリケーション
   IIS5→IIS8
    書き換え、再開発
 ・ハード:かえる

・サーバーの進化
  インテル Xeon5300 → Xeon ES E5
  処理性能885%工場、消費電力66%削減
  クロック→マルチコア

・移行事例1:第一生命
 ラックの標準化

・移行事例2:サンリオ
 全体最適
  オンプレ→クラウド:あまりDB見に行かない
  オンプレ→オンプレ:メインフレーム連携
  オンプレ→再構築:メールをOffice365へ

・IT活用における課題
  低コスト
  新規事業に向けたサービス

・第3のプラットフォーム+IoTの台頭
   クラウド
   ビッグデータ
   モバイル
   ソーシャル 

・日本は「守り」、米国は「攻め」にITを活用
   日本:業務効率化
   米国:ビジネスモデル変革

・まとめ
  いこうけいかくはまったなし
  オンプレミスだけでなくクラウド
  IT基盤構築のきっかけ




■Windows Server2003サポート終了をITインフラ刷新の好機にするには
(パネルディスカッション)
  パネリスト
    経済産業省、MS、インテルのたぶんえらいひと
  司会
    日経BPイノベーションICT研究所のえらいひと
  
・自己紹介

・サポート終了について
 大切なお知らせ 2015年7月15日 サポート終了
  パッチのリリースが止まる
  サーバー223万台 2013年:Windows2003 36万台→30万台

・使い続けるリスク
 セキュリティ:塩漬けにしても?→ありえない
  →攻撃の高度化:クライアントの脆弱性を利用し、入ってくる
   サーバー:大量のデバイス

・広報活動
  XP:注意、啓発
  2003:早い段階から。IPAと協力、広報活動
     海外のサイバー攻撃
     税制優遇、クラウド移行の補助金

・古いテクノロジーが効率とコストを圧迫
  電気代:高騰している。経費削減4年以上サーバー
   場所を32%、性能は4%、でも電気65%

・XPのサポート切れ
  移行:どこから手をつけてよいのかわからない
   →移行計画、実施支援が多かった
  予算:事前に教えてほしい
  ベンダーが考える以上に時間がかかる

 サーバ
  支援体制:13000人トレーニング
  移行費用の融資プログラム(ハードも含める)

・移行
  お金の問題
  システムが作られている
  ハードのリース
 →政策:税制

・移行シナリオ
  4つ:用途と費用で
   1.そのままアップグレード 2012へ
     →オンプレミスはなくならない
     →2008でなく、2012を検討してほしい
      次の10年は、ハイブリッドクラウド
   2.Azure(パブリッククラウド)へ
     →親和性でAzure
   3.ホスター(他社クラウド)
   4.SaaS:Office365、シェアポイント
  →全部組み合わせもある。0か1かではない。

・最新サーバーの進化
  年20% 2000年が1なら、130倍
   ハードウェアのアクセラレーター
   ここ数年で加速度的に増えている
  ハードウェアでセキュリティを守る
   暗号化支援、マルウェア防止

・クラウド
  使いたいだけ:アイデアがあれば→新規事業
  究極的にはハイブリッド

・IT投資をどう考えるか?
  クラウド時代のIT基盤
   適材適所のリソース配置による、経済性と経営スピードの向上
   サービスとIDの一元化によるセキュリティと利便性の向上
  →カフェテリアで載せていくイメージ
  →シングルサインオン

・7~8割:保守→これを新規へ
 厳しい要件はオンプレミスへ

・予算事業
 クラウドコンピューティングの推進に向けた取り組み
  中小企業等省エネルギー型クラウド利用実証支援事業
①中小企業等(大企業、自治体も使える)ハウジングも、コロケーションも
  →クラウドにもっていけば

 改修費、本番移行作業費、並行運用
 単年度申請
SII:環境共働イニシアチブ

・攻めのIT
 ユーザー側にアメリカは立っている
 俊敏性のあるIT基盤:単純な置き換えでなく




午前中ここまで。午後は忙しくっていけなかった。
 
 

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

Treasure DataとRedShiftとTableauとTalend、そんなもんだよね

2014-08-25 23:44:29 | AI・BigData
データドリブンマーケティングの最短ルート

すかいらーくにおけるマーケティングとITの融合
すかいらーく 神谷さん

・すかいらーくについて

・本日の内容
 分析から創出された価値
 分析を加速させるためのIT
 テクノロジーによる外食のさらなる進化

・分析から創出された価値
 POSデータを分析するために構築したシステム
   →クラスメソッド
    RedShift→たぶろー
 POSデータから分かること
  単純な販売数だけではない
  新メニュー開発の方向性立案、及び効果検証に活用
 平日・郊外・ロードサイド→どういうメニュー
  ABテストみたいに・・
  方向性を出して、当たったのかどうか
  仮説:人間 検証

 そのほかPOSデータで分かること
   オペレーションの質
   販促の質
   将来売り上げ

 販促例:サンクスくじのカイゼン事例
   ブランドごとに顧客属性が違う
   デザート、サイドメニュー中心
     →付加価値の高いグリル商品中心
    これまでの4倍

 つぎ:ガストでフォアグラ
   消費者テスト→ネガティブ
   食べるとおいしい:説明した上でだから
  実験計画法
   どの店と比べるか?
   統計的に同じ動きの店舗で比較
   うまくいった→来月よりフェア

 つぎ:継続率
   セグメントに差:立地
   習慣化:タイムライン
   10%の客数成長

・分析を加速させるためのIT
  新しい分析基盤導入の背景
    できていたこと
    できていなかったこと:時間
  →回せる仮説検証の数
  仮説検証を数多くまわすことの意義
  そのためには IT大事
   人間の時間効率をITで最大限に高める
     分析自体の自動化
     レポート作業の省力化

・テクノロジーによる外食のさらなる進化
  すかいらーくにおけるデジタルマーケティング
   ネットのノウハウを外食産業へ:アプリ
  スマホアプリのポテンシャル
  アプリの機能:特に目新しいものはない
    →運用が大事
  更なるテクノロジー活用の可能性

------------

トレジャーデータ流データ分析
井上さん

・自己紹介
 トレジャーデータブログ

・いきなりですがQ&A
  →なにもない・・・

・サービス概要
 データ解析の世界をシンプルにしたい
 分析レイヤーの下位からの積み上げが必須
   あつめる、管理する
   やりたいデータ分析に専念

データ収集
 センサーデータ:テレマティックスデータ
 Androidログ
 Webログ

過去に蓄積

  並列分散、バッチ処理、集計
   →アドホック型
  クラスメソッド:監視
分析
  たぶろーBI

・分析プロセス
 データ分析の期待値が高すぎる
 仮説→検証をまわす
 前段:敷居が高い
   目的明確化
   目標設定
   データ収集
 いままで:仮説を立てないとはじめられない
 →トレジャーデータ:スモールスタートができる
  データを見る
   データ収集
   データWatch
   目標設定
  データ:過去と未来
   ログインログ
  データWatch
   データの「項目」を見る
     バッチ処理・アドホックの使いえけけ
   データの「内訳」を見る
     でぃめんじょん、メジャー
    あるからむをセグメント
     メジャー:PV,UUなど数値型
     テンプレートがある
     ディメンジョン
   データの「分布」を見る
     数値でグルーピング
タブロー
  項目、内訳、分布、全部やる
  さくさく分析=GROUP BYで

POC

続きは公式ブログ

質問:Hadoopの違い
 Hadoop:HDFS トレジャーデータ:もちかたちがう
 HIVEを使える

   まはうとはまだ。機械学習:PIGのスクリプトでかくか?
   はいぶもーる

 すぱーくは?(ストリーミング処理)
   いまはない。ふるーえんとべーす。

------------

顧客理解のためのビッグデータ分析基盤
クラスメソッドの偉い人

・カスタマージャーニー
  タブローであるデータ
    やばそうなのはなんなのか?
  配送方法の違いで

・カスタマーストーリー

今日の内容
・会社事例
・すかいらーく
・カスタマーストーリー

Developers.IO
・ノウハウひたすら垂れ流し
・事例:紅白歌合戦
  AWS秒間20万トラフィック→落ちたら困る
  クラウドフォーメーション 900台
集英社、ガリバー:クルマのセンサー
ANAシステム、スシロー、すかいらーく等

3000店舗のPOSデータを整形して、クラウドへUP
分析しやすい形で加工、RedShiftへ
1.5ヶ月で構築30秒で分析

ログ→トレジャーデータ
  →スキーマレスでとりあえず突っ込める!
   後から考えて整形

1秒ごとのユニークユーザー
  →中の人にFaceBook

RedShiftは最初に設計するのが大事。
この設計にミスると、パフォーマンスがでない。

・カスタマーストーリー
 顧客理解のためのビッグデータ解析
 構成図:talendで引っ張ってきて、
  個人情報を削り、S3へ
  モバイルログ、センサーをトレジャーへ(→例、スシロー)
  最後はRedShift
   →9月のあまぞんの講演で
  たぶろー:生データを手繰りながら

・企業に眠る大量データあるある
  歴史的背景が複雑
  個人情報や機密情報法が多い
  複数のシステム、DBにまたがっている
  多数のテーブルがある
    正規化されたデータをインポートする?
     →1まいのでっかいCSVください!

・データ分析のためのインフラあるある
  とても高価なハード、ソフト 初動が遅い
  導入しただけで使っていない
  分析する専門家がいない
  処理が遅い
  運用保守する人がいない

・分析ビューワーあるある
  何も決まっていない
  分析軸の変更をしずらい
  特定の人しか使うことが許されない
  異なるリソースにアクセスできない
  地図と天気を重ねて表示したい
  市場データを重ね合わせたい
  結局Excelでガンバってしまう

・データ収集あるある
  最初にフォーマットを決められない
  大量すぎで処理しきいれない
  縦もちを横もちに
  意味のある情報にしてから活用したい
  そのうち分析をするかもしれない

・カスタマーストーリーによる解決

・TDとRedShiftとタブローとたれんど
  →そんなもんだよね 

・導入手順
  インプット
  アウトプット
  代表的なビュー
   →パフォーマンスチューニング
    RedShift
      ノード分散:これをチェックする構文がある
      最適プロダクト
  ロールモデル

・Rとかクラスタリングは次。まず、足元を固める
  1ヶ月、2ヶ月

・設計
  スキーマ/スキーマレス
  バッチ
  データ定義

 1ヶ月でプレ
 3ヶ月すれば
 わかんなかったら、ブログ見て

・地図、ジオコーディング、市場データ
  階段を1段半

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

ajaxでUnexpected end of inputとかUnexpected tokenとか

2014-08-24 13:29:27 | JavaとWeb
$.ajax()をやったときの返り値で、はまったので、メモメモ
ちなみにブラウザはChrome

SyntaxError: Unexpected end of input
  出力が全くないのに、結果を出力しようとしている
  サーブレットなら、サーブレット側で
response.setContentType("text/plain;charset=UTF8");
PrintWriter out = response.getWriter();
out.print("ok");
  など、何か送る


SyntaxError: Unexpected token
  たとえば、$.ajaxの引数dataType:"json"とか指定しているのに、
  返り値はテキストなど、dataTypeで期待される返り値ではない。


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

シングルサインオンのOpenAMの話を聞いて来た!

2014-08-21 21:46:56 | Weblog
今日(8月21日)
「シングルサインオンとID管理を実現するOpenAM&OpenIDM技術解説セミナー(OpenAM、OpenIDM)」の話を聞いてきた!
その内容をメモメモ!!




OpenAM
・エージェント方式、リバースプロキシ→HTTPヘッダをみる
・代理認証 OpenIGを入れてエミュレート、カスタマイズできないとき
・SAML 連携先がSAMLに対応していること
・OpenID Connect OAuth2.0 OpenAM11.0から。今後主流

OpenAM10.0
 OpenIG
   代理認証(ログインリクエストをエミュレート)
   単独でリバースプロキシとして動く
   SAML2.0フェデレーションゲートウェイ
     →あたかもSQML2.0に対応しているように見せかける

 リスクベース認証
   不正アクセスのリスクに配慮
   地理的、認証失敗回数、IPアドレス履歴など

OpenAM10.1 Express
 セッションフェールオーバーの改良
   設定が簡単→OpenDJでマルチマスター
   チェック入れるだけ
 OAuth対応
   2種類のワンタイムパスワード
     カウンタ、時刻

OpenAM11.0
   OpenID Connect1.0
   JDK7.0
   Restful ・・・JSON対応
   IPV6対応

NRI拡張
  セキュリティ強化
  JDK7.0
  OpenStandia/Portal(Liferay)
  代理認証(OpenIGと異なる)
  バグ修正

・OpenIDM
  OSSのアイデンティティ管理
 特徴
  REST API 他のシステムとの連携簡単
  サーバーサイドスクリプトエンジン
    Javascriptエンジン(Rhino)組み込んでいる
  柔軟なデータモデル
    ワークフローが使える
 コア機能
   同期機能(人事DB⇔Active Directory)
    リコンシエーション:差分管理
    ライブシンク:(対応していること前提)変更点
    オートマチックシンクロナイゼーション:変更されると同期
  実施のトリガー
    REST API
    スケジューラー
    更新検知による自動実行

  マネージドオブジェクトとシステムオブジェクト

  マッピング定義→Javascriptが書ける

  スケジュール設定
   発令日ベースでプロビジョニングできる

  コネクタ
   OpenICFなど

  ワークフロー連携
   お絵かきで簡単にできるわけでなく、OpenIDMのAPIをコールする

■OpenAMトレーニング
OpenAMでシングルサインオンを実現しよう

OpenAM概要
・シングルサインオン
  一度のログインで複数のアプリケーション
  ユーザー:システムごとの認証、管理が楽
  管理者:アカウント一元化、認証方法変更しやすい
 需要の高まり
   クラウドサービス
   企業コンプライアンス

・OpenAMとは
  SunのOpenSSO → ForgeRock
  CDDL
  最新11.0.0
 代表的なSSO方式
  ・エージェント方式
   ログイン→
    ポリシーエージェントがリダイレクト
   SSOサーバーでログイン→SSOトークン
    ポリシーエージェントがトークン確認
   SSOトークンを確認、認証
   ※ポリシーエージェントを入れる
    SSOトークン=クッキー

 ・リバースプロキシ方式
   ポリシーエージェントをリバースプロキシに持っている

・OpenAMインストール
  CentOS
    http://forgerock.org/openam-archive.html
 ・ネットワークのセットアップ(FQDNの登録)
 ・JDKのダウンロード
   →8だと動かない!
 ・Tomcatのインストール
 ・OpenAMのダウンロード
 ・TomcatにWarをデプロイ
 ・OpenAM初期設定:Step1
   →カスタム設定
  管理者のID,パスワード
  ユーザーデータストア
  ロードバランサー
 ※ブラウザから設定できる

・連携先システムのSSO
  JREダウンロード
  連携先に
  ネットワークの設定
  ポリシーエージェントをダウンロード
  ポリシーエージェントを連携先サーバーにインストール
  エージェントプロファイルの作成
    SSOのみモード

・ヘッダーにユーザーIDを追加して連携

・まとめ
  OpenAM概要
  OpenAMインストール
  連携先システムとのSSO

Q&A
・アプリをつくるときに、ユーザーIDを見るようにプログラムを作るということ?
  →そういうこと
・OpenAMをマルチテナントにできるか
  →ドメインが違うのはできるが、
   データソースは、1つにまとめる=他社のデータも?
   となってしまう。それがいやなら、分けるしかない

■ForgeRock OpenAM公式サブスクリプションのご案内
・NRIがForgeRockの日本語サポート窓口となる
  サブスクリプションを買うと・・・
    ForgeRockのビルド版受け取る権利ある
    知的財産権保護
  Freeは、デベロップメントライセンスで、
    ソースからビルドした場合のみ製品として使える
  SAMLの場合は、GOLD、OpenIGはプラチナ

・トレーニングとQ&A
  トレーニング:2日間、オンサイト
  DesktopSSO:Active Directory

・オンサイト、オンラインQ&A
  オンサイトは、オンラインが前提

Q&A
・マイナーバージョンは非公開になった。
 それは提供できないので、新しく買った場合は、ForgeRock版となる

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

2014年8月の月例Windows UpdateでWindowsが起動しなくなったときの対処法

2014-08-18 18:05:58 | Weblog
自分は大丈夫だったけど、一応メモメモ


2014年8月の月例Windows Updateでトラブル続出? - Windowsが起動しなくなったときの対処方法
http://headlines.yahoo.co.jp/hl?a=20140816-00000002-mycomj-sci


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

美少女キャラと企業情報の融合サービス「IRroid」

2014-08-17 01:15:22 | ネットワーク

http://ir-roid.com/


IRroidは、株価連動型の人工知能プログラムだそうな。


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

「やりたいこと」をやるのが、プロセス指向、「やるべきこと」をするのが、ゴール指向

2014-08-15 14:02:52 | Weblog
人には
  やりたいこと
  やるべきこと
  やれること
があると、どこかで読んだ。

(オリジナルがどれか、わからない。
 「やりたいこと やるべきこと やれること」
 で検索すると、いっぱい出てくる)

例えば、
  やりたいこと:不倫は文化だと称し、遊び三昧ほうける
  やるべきこと:家庭を守る。社会の倫理を守る

ここで、不倫できるだけのお金と器量があり、
自分が不倫したいとする。
それをやってしまうのは、プロセス指向。

「やりたいこと」が「やれる」から、やる。
この場合、どういうゴールにつながっているか、わからない。
家庭崩壊となり、もしかしたら、自分の望まないゴールに
到達するかもしれない。




一方、ゴール指向はちがう。

「やるべきこと」をトップゴールとして、これを実現するには・・?
と考えていく。やるべきことをブレークダウンして、「やれること」に結びつけば
ラッキー、結びつかなければ、できない。
このときは、ゴールを変えるか、ブレークダウンの内容を変える。

やるべきことは、「家庭を守って、楽しく過ごす」だとすると、
「家庭を守って、楽しく過ごす」方法があるかを考え、
それが思いつけば、今度それが実現できるか、実現するには何が必要か
さらに考える。

なければ、そこでおしまいになる。
「家庭を守って、楽しく過ごす」
ことをあきらめ、ゴールを変える。
例えば
「家庭を省みず、楽しく過ごす」
とか
「家庭を守って、平凡に過ごす」
とか・・・




さきほどの
  やりたいこと
  やるべきこと
  やれること
を唱える人をいろいろ見てみると
「やるべきこと」→「やれること」→「やりたいこと」
の順に考えろというのが、ぶがいいようだ。

http://www.okegawa-h.spec.ed.jp/zaikouseihe/H26_1_b.pdf
http://schliemann.ti-da.net/e5695577.html
http://blogs.itmedia.co.jp/shiro/2014/07/post-6058.html

(かならずしもそうでないのもある)
http://blog.indee-jp.com/innovation/2012/11/33-mustcanwillmustcanwillthe-bucket-listmustmustmust-mustwillmustmustwillcanwhere-there-is-a-will-th.html


まあ、そうだよね。やりたいことは、不倫!、
不倫は文化だ!とか言われても、社会的にこまりますし・・・

P.S ちなみに、
  ゴール指向と、
  「思考は現実化する」と、
  「こうして、思考は現実になる」は

似たところがある。

 ゴール指向では、まず、思考・トップゴールに意識を集中する。
 そうすると、「こうして、思考は現実になる」では、自然と、できるようになる・・・
 とあるけど、ゴール指向の場合、それは宗教じみているので、そうは言わず、
 「もっとやさしい問題に分解できる」→「そのうちに、現実に解ける問題になる」と説く。

 どうしてかというと、ゴール分解ごとに考える範囲が狭まるので、意識を集中しやすく、
 集中すると、いままで気づかなかったことに気づいたり、考えやすくなったりするから。

 そして、「現実に解ける」とは、どういう状態かというと、
 「思考は現実化する」みたいに、
 ありありと、あるものが想像できる状態、シナリオが書ける状態を指す。

という関係にある。
 

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

サーブレットをJUnitでテストしたいとき

2014-08-14 18:25:49 | JavaとWeb
HTTPUnitを使って、はまった。
セッションがうまく取れなかったり・・・なにが悪かったんだろう・・
とにかくうまくいかなかったんだけど、

ここ

■[Java][Spring] JUnit(djUnit)でServletをテスト(with MockHttpServletRequest)
http://d.hatena.ne.jp/pikipikipikky/20110614/1308057548


に書いてある
•MockHttpServletRequest
•MockHttpServletResponse

を使えば、一発だった。

そこで、今回は、これについて




【サーブレットテストをJUnitで行うときの問題】

サーブレットを生成(new)することろはいいが、duGet,doPost,serviceを呼び出すとき、
HttpServletRequest、HttpServletResponseで、リクエストとレスポンスをセットしなければならない。このとき、以下の問題が起こる

・この2つは、インターフェースであり、クラスではない。どのクラスからインスタンス化するのか?

・引数の値が設定したくても、パラメータはgetParameterはあっても、setParameterがない

これを解決するのが、上記のクラス。実際にそれを生成すると、setParameterして、サーブレットに値が渡せる。




【ダウンロード&インストール】

以下のファイルをダウンロードします。

1.Spring Mock:MockHttpServletRequestとMockHttpServletResponse
が入っています。

spring-mock-2.0.6.jar
http://www.java2s.com/Code/Jar/s/Downloadspringmock206jar.htm


2.spring-core:上記1が呼び出します。

spring-core-3.2.3.release.jar
http://www.java2s.com/Code/Jar/s/Downloadspringcore323releasejar.htm


3.commons-logging:なんか、必要みたいです。

commons-logging-1.2-bin.zip
http://commons.apache.org/proper/commons-logging/download_logging.cgi


これらを、ビルドパスに設定します。




【テストについて】

 テスト側のクラスはJUnitでふつうにやっているときと同じです。
 こんなふうになります。

1.サーブレット生成
Tashizan tashizan = new Tashizan();

2.リクエスト、レスポンスを生成
MockHttpServletRequest req = new MockHttpServletRequest();
MockHttpServletResponse resp = new MockHttpServletResponse();

3.リクエストにデータ設定
req.setParameter( "args1", "1" );
req.setParameter( "args2", "2" );

4.もし、セッションに設定する必要があれば・・・
HttpSession session = req.getSession();
session.setAttribute("ans","1");

5.実行!
try {
   tashizan.service(req, resp);
  } catch (Exception e) {
   e.printStackTrace();
}

6.結果をチェック

6-1.パラメータの確認、取得
assertEquals( "args1", "1", req.getParameter("args1") );
assertEquals( "args2", "2", req.getParameter("args2") );

6-2.セッションの中身確認
HttpSession session = req.getSession();
assertEquals("ans","3",session.getAttribute("ans"));

6-3.フォワード先確認(response.getForwardedUrl())
assertEquals("ans","/ans.jsp",resp.getForwardedUrl());




【サンプルソース】

チェックされる側のサーブレットサンプル
package sample;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class Tashizan  extends HttpServlet {
	public void service(HttpServletRequest request,HttpServletResponse response)
			throws ServletException,IOException
	{
		//	引数から値を取得する
		int arg1 = Integer.parseInt(request.getParameter("args1"));
		int arg2 = Integer.parseInt(request.getParameter("args2"));

		//	セッションに値を設定する
		HttpSession session = request.getSession();
		session.setAttribute("ans", String.valueOf(arg1+arg2));

		//	フォワードする
		RequestDispatcher dispatch = request.getRequestDispatcher("/ans.jsp");
		dispatch.forward(request, response);
	}
}



チェックする側のJUnitサンプル
package sample;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class Tashizan  extends HttpServlet {
	public void service(HttpServletRequest request,HttpServletResponse response)
			throws ServletException,IOException
	{
		//	引数から値を取得する
		int arg1 = Integer.parseInt(request.getParameter("args1"));
		int arg2 = Integer.parseInt(request.getParameter("args2"));

		//	セッションに値を設定する
		HttpSession session = request.getSession();
		session.setAttribute("ans", String.valueOf(arg1+arg2));

		//	フォワードする
		RequestDispatcher dispatch = request.getRequestDispatcher("/ans.jsp");
		dispatch.forward(request, response);
	}
}






いじょう。

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

これがユマニチュードだ

2014-08-13 09:42:51 | Weblog
この前NHKスペシャルでやっていた、ユマニチュードだけど、
きのう、第144回紀伊國屋サザンセミナー「これがユマニチュードだ!」でいろいろ聞いてきたので、その内容をメモメモ。



これがユマニチュードだ

Methodology of Care Gineste-Marescotti called Humanitude
IGM Japan

ユマニチュード:3年前
多くの人に興味
先生に2時間聞いていただく(ふじたみかさんのちからを借りて)

まちこさんにもきょうりょく
さよしさん
このチームなくして日本のユマニチュードはない

・ユマニチュードとは何か
老人施設
 両腕を前に出して交叉する
ユマニチュード
 両腕を前に出して上にあげて下に下ろす

ユマニチュード:人々のきずなを結ぶ哲学
ロゼット・マレスコッティ
・病院でケア
  ケアが困難な患者さん10人を担当
   未熟児
   ふれることのできない患者さん
   言葉を発しない高齢者
   昏睡状態
  看護士さんからも教わったが、患者さんから教わった
  経験を通して150を超えるテクニック
   体を洗う、リハビリ
・技術を構築する中で哲学を完成させよう
  科学:なんでもできる、なんでもしてもいいは、間違い
   倫理、哲学→ユマニチュードの価値
   人間の尊厳、自由、博愛精神、平等性→人権宣言の1条
   人間は平等、自由に生まれてくる
   →フランス国家の理念
  病院でするのは困難:ケア→守ることができない状態
   患者さんを拘束:倫理上の問題
   宣言してることと、行っていることの一貫性
   →患者さんを拘束することは許されない
・ユマニチュードをしたためた
  技術を統括する哲学
  ケア:むずかしい
・映像:
  ショック受けるかも。看護師が送ってきた
  善意の人
  落とし穴に落ちている
  いいことをしたいと思っている
・目を見つめる、肩に手を置く、ジョークを言う
  →よい人間関係
・映像:施設で目の当たりにする光景
  →批判しない
  はなしかけも、みつめもしない。
  でも、目の当たりにしている光景
 2つの不幸
  どうして良いか分からないから。
・私には夢がある
 ユマニチュードの夢
 96年 思想哲学「私は夢がある」
  →マーチンルーサーキング:人種差別と戦った
 夢をかなえるため、ユマニチュードを書いた
 ケアをする人はだれか?を定義する
 人間は、どういう存在か
 動物のケア:獣医
 人間のケア:
 →人間とは?
   辞書には「人間は動物である」「99%チンパンジーのDNAと同じ」
   動物のケアで満足→人間の獣医
   人間:特殊な動物
   それを考慮→ユマニチュード
 ETがEメール:地球にいける
   ETに人間を説明する
   写真:まだ画像送れない
   言葉で定義:二本足でたつ。衣服着ている。メイクしてる人も
    うつくしくなろうと。言葉を理解できる(知性を持っている)
    人間の食事:複雑でめんどくさい。
    かしこく、うつくしく、知性、特殊な習慣、小さな集落
    価値観、思考していることを思考する
 患者さんの病室にいって、リストを見たら・・
  話していない
  2本足でたっていない
  知性あるか?
  たべているか?→いろう、注射器
 →ETは、人間だと分かるか?
 質問:この患者さんは人間ですか?はい。
 質問:なぜ?→以前は話ができた。歩けた。・・・過去形
・大きな落とし穴
 患者さん:人間だと分かる。証明できない
 ユマニチュードの定義:人間が「人間である」と認識できる
 病室に入るとき、自分が人間と認識している
 ユマニチュードは相手が人間と認識できる技術
  人間関係のきずなの技術
 人と人との関係性を中核に置いた思想哲学
  人間がケアしていると感じることができる。
  人間であることを証明する
・哺乳類
 猫なめる:なめないと、死んでしまう
  →誕生は2度ある
    1度;出産
    2度;社会的誕生 なめること
・人間
  出産した赤ちゃん→人類の家庭は踏んでいない
  人間の赤ちゃんが人類と認められないと?
 映像:フランスで有名な精神科医
  ルーマニアの孤児院を研究
  ・・・そこで・・・
  60人のケア1人の大人1日1食だけ
  話しかけてもらえず、人間関係をきづけない
  健常者と生まれたが・・
 みたことありますか?
  →高齢者:目を閉じて、体をゆすっている
   低活動症候群
・病気だから→落とし穴:人間として認識できなかった結果
  選択肢2つ
   1つは、かむ引っかく、攻撃的患者
 もう1つは、あきらめる。自分の殻に閉じ込める
     →老人性擬制自閉症
・200万人の認知症→病院へ
  人間と見ることができるか
・子供をフランスに
  脳の欠損部分が多い子供→正常な状態に戻る
  愛が脳を正常な状態に戻した
 ユマニチュードの状態に置く
・人間
  見つめる。話しかける。なでる
  人間関係の3つ+1つ:立位
  どういう風に子供を見つめるか
   水平、近く→赤ちゃんを抱くとき
   プライベートな空間内、正面
   愛情を込めて
   ポジティブな言葉
  やさしく、愛のことばを語りかける
   →人間界にはいってくる
  人生の中で、他者とポジティブな関係
  赤ちゃんと同じように恋人に
・かならずしもポジティブな人間関係ではない
  ネガティブな人間関係
   →ユマニチュードでない人間関係
   上から、はすから
   このばかもの
   音量も大きく
   こぶしになり、
   ユマニチュードの真逆をすればいい
・結婚
  みなくなる:相手の存在を認めない
  話しかけない:相手が存在しないのと同じ
  触れない
 →ずいぶん前から存在しない
・高齢になると、どうなるか?
  録音機をつけると
    24時間120秒、10秒とか
  →理解できない人に、人間は話しかけない
 アイコンタクト、9秒
  認知症だと0秒
   →だれも気づかない
    こわいものは、見ない
    浮浪者に挨拶するか→それは、大変なこと

・人の行動
   1つ:本能的行動
もうひとつ;学ぶ、習得したテクニック
同じ看護師:ユマニチュードの講義
学習しないといけない:テクニック
 オートフィードバック
  話しかけるを10倍
 触れる:おとしあな
  手の施しようがない
指を数センチ移動させただけ→触れるところを移動させただけ
 連行でも、腕をつかんで洗う
 認知症:連行される→体硬くする:語りかけることができていない
 学習必要
 プロ;ケアというのは、本能的なものではない

・わなに陥っている
  テクニックを完成させた
・映像:ロゼット
  1年以上言葉を発していない人に対して
 一定の部位を一定の方向で開く
  →過度の力を加えると、攻撃になってしまう

・第3の誕生
 子供をユマニチュードの愛で脳が戻る
  →高齢者でも:言葉を発せられる
   人間だった
   ユマニチュードの状態だったか:No

・ロビンソンクルーソー症候群
  フライデー
  認識を取り戻す
 私たちのミッション:フライデーになる

・文化の違い
  日本は見ない、触れない

・映像:フランス:手を開かせられない
日本:
 家族に参加してもらう
 ユマニチュードはラブストーリー
  →通訳を通して愛を語るのは難しい
 アイコンタクトをはかるためだけに1人使う
  →脳の中で革命

・ユマニチュードは日本でも機能する
 日本では、キスしたりハグしない

・ユマニチュードは文化を超える
 公衆の面前で抱き合ってはいけない→後天的
 文化を超えて
 患者さんから学ぶべき
 患者さんは私の師匠

・夢を見た
 全ての人が平等
 望むような最期

・最後の映像:90台のおばあちゃん。

ETは納得してくれるでしょう。人間はすばらしいと。

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

8月11日(月)のつぶやき

2014-08-12 04:55:37 | ネットワーク

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

スーパー、百貨店相手の流通の開発は、どうなんでしょうね?

2014-08-11 15:16:30 | Weblog
「日経ビジネス」2014年8月11日・18日合併号の特集
「eコマース大乱戦」について、もう一つ。

25ページによると。

2013年
スーパー市場 12.7兆円
コンビニ市場  9.4兆円
百貨店市場   6.2兆円
Eコマース市場15.9兆円(うち、楽天1.7兆円、amazon1.1兆円)

2015年
Eコマース市場20.1兆円(うち、楽天2.5兆円、amazon1.6兆円)

ということで、現状でも、スーパー、コンビニ市場よりネットが多いが、
2015年には、4兆円分も市場が伸びるらしい。
ということは、それだけ、既存のスーパーコンビニ百貨店市場は
食われることになり、これらの開発は減る?

一方、e-コマース市場は、いままでとは違った開発になるので、
流通業やってた人が、そのまま行けるとは限らない。

・・・スーパー、百貨店相手の流通の開発は、どうなんでしょうね?

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