Musicプログラマー備忘録やお酒や音楽この広告は、90日以上更新していないブログに表示しています。2014-12-16Microsoftに行って来ましたプロジェクトが忙しかったのでしばらく更新してませんでしたが、年末になり心と財布に余裕ができたこと、放置状態のブログがいつの間にか1万アクセスを超えてたことで少しモチベーションが上がったので久しぶり書いてみようと思いました。JAUG)主催の第五回クラウドデザインパターン勉強会に行って来ました。クラウドサービスはAWSで充分過ぎるからAzuruにはあんまり興味がなかったのですが、ただ単にマイクロソフトに行って見たかったという軽はずみな気持ちで行きました。軽はずみな気持ちだったんですが、講義内容がすごく面白かったので行ってすごいよかったです。Pattern(英語のドキュメントしかないです。Behindを非同期かつQueue使って疑似的に実現しましょーというような内容でした。デザインパターン以外の話がすごく多く、特にインテルが提唱する次世代のインフラアーキの話がすごく面白かったです。社内を探索イケイケIT企業によくあるフリードリンクむだにかっこいいオフィス(エントランスではない)最後にお土産にステッカーとポスターいただいて帰りましたーので、さっそくMACに張りました。~ニッポンにクラウドを~に行ってきました。ELBを使ったEコマースサイトです。AWSAWSの概要について紹介でした。AWS導入を検討してる福岡の企業の方がスーツ着てたくさん来られていて、私服の僕は場違い感が半端なかったです。Flontを利用して解決していくという感じの事をしました。CDNと言うのは、簡単に言うとネットワークの最適化です。Flontは地域性でネットワークの最適化をすることに特化してます。日本にサーバーがありアメリカからのアクセスがあった場合、距離的に凄い離れているのでどうしても遅くなります。そこでわざわざアクセスの度にオリジナルの日本のサーバーにデータを取りに行くのではなくアメリカにキャッシュサーバー設けアメリカ国内からのアクセスはそこからデータを取りに行くようにすることによって距離的問題でかかっていたコストを削減することができるということです。Flontを利用することで個人レベルで数クリックでできちゃう時代になっちゃったんですね。Flontにかぎらず、AWSサービスはロケーションを意識できるってところが凄い強みだと思います。ELBを使ったEコマースサイトこのセッションでは、EC2でWEBアプリを冗長化しよーということでELB(ロードバランサー)使ってWEBアプリを2つ動かすって感じのことをしました。ロードバランサーって、高くて、構築難しくて、ネットワークエンジニア専用のよくわからない機械ってイメージが強いですが、ELB使うと僕みたいな素人でも30分もあれば調達から構築が可能なのでこれはかなり素晴らしい製品だと思いました。Image)を作る事によってそのひな形から2台目移行のEC2インスタンスをワンクリックで作成できる事ができます。PlaceからいろんなAMIを入手できるのでそれを使えばWEBアプリってなんなの?レベルの人でもすぐにECサイト立ち上げたりすることができるのでこれも凄い便利です。最近マインクラフトやってて、サーバー立ち上げた時もマインクラフトのAMIを入手して構築したので数分で使えるようになりました。ソフトウェアプログラミングでは車輪の再発明はやめよーっていうのが常識ですが、ハードに対してもここまで出来るようになったってのはただただ凄いですねー。ハンズオン資料:https://horiyasu.s3.amazonaws.com/presentations/20140801_japan_tour_CDP-ec-handson.pdfインフラのクラウド化で思ったこと独自でインフラ周りの調達とか保守とか無駄な労力で馬鹿らしいから、その分コード書いた方がいい。ネットワークエンジニアの必要性が余りなくなる。03:51AWSジャパンツアーに行ってきました(^O^)Tweet広告を非表示にするもっと読むコメントを書く2014-07-28Java8のラムダ式ってイラネ(゚⊿゚)ここ数か月Javaから離れた生活を送ってきたのですが、久しぶりにJavaを入れたらVer8になっていたので少し習得する意味を込めて触れてみようと思い立ちました。公式も謳っていますが、今回のバージョンアップで一番の目玉は何といってもラムダ式が書けるようになったことらしいです。Java8のラムダ式って?凄く簡単にいうとコード量をだいぶ削減できる書き方です。関数を疑似的にオブジェクトとして扱うようなイメージなのかなー程度に思ってます。C言語とかで使ってる関数ポインタに相当するようなものがJavaにはなかったのですが、これが実装されたような感じです。いうコードが削減できるの?結構限られていて、第一級関数で関数型インターフェースで表現できるものだけです。おなじみのRunnableインターフェースのrunメソッドとかみたいな実装できるメソッドが1個だけのInterfaceです。記載サンプルは死ぬほどネットに転がってるので割愛します。なんでわざわざややこしくなるような記法を追加したの?正直、削減できたコード量は簡単な処理だと2-3行、ちょっと複雑になっても数十行程度です。大規模なシステムで書いたとしても0.5k行くか行かないかくらいでしょう。大規模なシステムならいろいろなエンジニア、デベロッパーがいます。それだったら、たかだか500行削除するよりは、Java7標準のわかりやすく・見やすく・共有しやすい従来のコードで書いたほうがまだましです。コード削減が結構注目されているラムダ式記法ですが、オラクル公式見解では並列処理を簡単に実装できるというところにあります。同時に提供されたStreamと組み合わせることで初めてJavaでラムダを使うメリットが出てくるってことです。嫌がらせレベルで可読性を下げたり不慣れな記法でバグを大量発生させようとかいうオラクルの目論見ではないってことらしいです。その1上記で述べましたが、並列処理を行わせたいときに使うのが一番でしょう。メソッド一本噛ませるだけでできちゃいます。コレクションを扱う上では凄くイケてる感じの記法になります。.collect(Collectors.toList());1行ののparallel()つけるだけで勝手に並列処理してくれます。Streamと組み合わせることによって、見た目も結構すっきりかけます。同一JVM上での並列処理の話なので分散コンピューティング行いたいときはRMIとか組み合わせると便利かもです。その2非同期処理を実現するときに、関数ポインタとしてフレームワーク的な何かへのコールバックを実現するとかできそうかも。最後に特に並列処理で今まで困ったことはないし、変な書き方がただ追加されたただの改悪だと個人的に思ってます。そもそもコレクションを扱う上で並列処理が必要って状況が思い浮かばないし、そういう状況に置かれるってことはまずストレージやDBからのデータ取得方法を再検討したほうが効率がいいと思います。18:11Java8のラムダ式ってイラネ(゚⊿゚)Tweet広告を非表示にするもっと読むコメントを書く2014-07-13システムでは個人情報を持つべきではない(理想と現実)Webのこと最近作っているシステムで僕が設計した個人情報の扱い部分について痛烈にディスられたので吐き出しです。経緯ユーザーが持っている情報を別のユーザーに移管するときに、そのユーザーがシステム利用者であればユニークなユーザーIDをキーとして移管し、ユーザーがシステム非利用者であればメールで通知しシステム利用を促す仕組みを僕が設計。「利用者のメールアドレスを移管担当者が知ることはナンセンスなんじゃね?」との批判を受ける。現実を踏まえた反論そんなことはわかりきってます。現実問題として顧客の要望を叶えるユースケースを実現するためにはメールアドレスを移管担当者が知る必要があります。移管のキーをワンタイムトークンにして、QRコードとかで受け渡せばメールアドレスを知る必要は全くなくなりますが、移管者の運用フローにQRコードを発行して受け渡すという手間が出てきます。QRコードを発行するにはプリンターが必要だし、印刷の手順もわかりやすく周知しなければ行けないです。顧客側としてもiPhoneとかだとデフォルトでQRコードの読み込みが出来ないし、そもそもQRコードってなに?美味しいの?みたいな人もいる可能性だってあります。今回作ってるシステムは老若男女問わずの利用される可能性があるので、QRコードを選択するほうがユーザー獲得枠を狭めてしまう可能性が大いにあります。(だってメールからリンク開くだけの方が簡単ですよね?)システム都合でこういった損失につなげるという設計は絶対にありえないことですので、現実社会として実装するのは難しいです。現実問題としてそういう基板上に今のシステムの多くは成り立っています。レンタルビデオショップしかり、携帯ショップ然りです。多くのシステムでは個人情報を閲覧できる権限を従業員であればほぼだれでも持っています。理想的な個人情報を扱う基板そもそもシステムで個人情報を持つべきではないつい先日ベネッセで2000万人の個人情報がありましたが、そもそも個人情報を各民間企業なりシステムでもつ必要があるか?と常々考えています。企業が情報流出を行うと、信頼は地に落ちヘタすれば倒産します。顧客も知らないところから変な連絡が来たりとかクレジットカード勝手に使われたとか迷惑千万極まりない状態に陥ってしまいます。システムで個人情報を持たなかったら、こういう悲惨なケースってなくなりますよね。システム屋さんだったら、今後自分が作ったシステムで万が一情報漏洩につながった時に、「あっこの問題進研ゼミでみた!」なんて後ろ指をさされることもなくなります。企業だって個人情報の扱いに対して金と気を配らなくなるのでメリットしかなくなります。個人情報を管理するのは実は思っている以上に莫大な金がかかってるのです。電話回線とかの契約している顧客情報を管理しているデータベースが関東の北の方にあるんですが耐震防災最新鋭のセキュリティ完備のビル1棟建てて厳重に管理しています。場所によっては映画とかで出てくる網膜認証とかしているところもあります。個人情報を管理するってのはそんなレベルなんです。やったらシステムで個人情報を持たないですむかシンプルです。個人情報は国が一元管理すればいいのです。システムが個人情報を使いたいときは、利用者から閲覧許可をもらって参照させるようにすればいいのです。Amazonで何か注文してから手元に荷物が届くまでのフローはこんな感じ。昔のエントリーで書いたOAuthの考え方ですね。要は個人情報を閲覧する権限の譲渡で成り立つということです。個人情報の利用を利用者の判断でできるっていうメリットもあります。Amazonだけでなく楽天とか色々なとこで買い物する人結構いると思いますが、各サイトで初回購入時なんかはいちいち住所入力とかめんどくさい手間も省けます。個人情報の一元管理という点では昔に国民総背番号制度なんて糞制度が未だに頓挫気味で進行中とかですが、せっかく進めるんであれば是非こういう使い方だけして欲しいです。この制度について「管理社会は最低だ!」とか、「人権がなんたらかんたらだ!」っていう意見も色々とあると思いますが、誰だって日本に住んでれば国籍が発行されて管理されていますし、上記に書いたようにビデオ借りようと思ったらそのビデオ屋さんに「名前・住所」、もっと言うと「何月何日にアダルとビデオ○本借りました」とかの情報まで管理されますよね。システムと連動できるような便利な社会に早くなればいいなと思いますが、民間に情報提供しなかったり、利用者の承認を得ず参照とかできるような脆弱すぎる作りには決してしないで欲しいものです。7月突入しましたね~!夏ですね~暑いですね~熱いですね~夏といえば、レゲエですね~天気がいい日に外でビール片手にレゲエなんて最高じゃないでしょうか。レゲエと言えばボブマーリーで、ボブマーリーといえばレゲエですが、レゲエで売れる以前ボブはSKAバンドをやってたのをご存知でしょうか?今日はスカとかそこらへんの話を書いてみます。SKA(スカ)ってなに?モヤモヤさまぁ~ずとかのBGMでよくかかってるようなアレです。第2,4ビートを強調したオフビートなかんじのアレです。Jazzなんて呼ばれていた時期もあったみたいです。実際にSKAにはJazz奏者が多くいました。レゲエが国際的になる前に国際的になったJamaica起源の音楽です。近所のアイスクリーム屋からデビューしました。リリースは1962年。当時のスカムーブメントに合わせた仕上がりになっています。ちなみに2曲ともまったく売れなかったそうで1円も報酬をもらえずにアイスクリーム屋さんの元を去って行ったそうです。Wailersとクレジットされてます。Wailerで結成されたWailersがオリジナルです。Teenagers)。Wailersになった感じです。後述するCoxsonからWailersはいろんな曲を出しています。