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

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

博士課程、実質無料に 東京理科大

2015-08-31 21:31:56 | Weblog
はじめ、ここでみた

【大学院の生存戦略】英断か?理科大博士課程学生への奨学金で実質無料。その時現場は
https://lne.st/2015/08/25/tus/


で、朝日新聞も、同じこと書いてあった

博士課程、実質無料に 東京理科大、3年で約320万円
http://www.asahi.com/articles/DA3S11921249.html


まじ!すげ~・・・

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

ガートナーのハイプ・サイクル 2015年に、”ビッグデータ”がないんだけど・・・!!

2015-08-30 12:18:33 | AI・BigData
ま、まじ!?

ここ

ガートナー、「先進テクノロジのハイプ・サイクル:2015年」を発表
企業が注視すべきコンピューティング・イノベーションが明確に
http://www.gartner.co.jp/press/html/pr20150827-01.html

まんなかあたりに、ハイプ・サイクルがあるけど・・・

・・・ビッグデータ、ないよねえ・・・・

去年はあったのに(ピークのちょっと下)・・・

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

スパースモデリングと、カンニングの関係が、語られるらしい。大阪市立大学で

2015-08-29 18:49:06 | AI・BigData
電子・物理工学特別講義
講師: 大関真之氏(京都大学)
日程: 9月2日(水) 3日(木) 4日(金)
  3日間とも、午前10時30分開始、午後5時終了予定
  4日午後3時からコロキウム

場所: 大阪市立大学工学部B棟 B-401


「今日からできるスパースモデリング」
http://statphys-ml.issp.u-tokyo.ac.jp/2015/08/statphys03928.html

だそうな。内容は(太字は上記サイトより引用)

とのこと

本集中講義では、受講後に自分の身近な現象やデータをスパースモデリングという視点で見直すことができるように、
数少ない計測データから高次元データの再構成を可能にさせる圧縮センシング、
高次元データからそのデータの背後にある構造を明らかにしてくれるボルツマン機械学習
このふたつの基礎、実践、共通する概念や攻めどころを中心に紹介する.

0.データ駆動型科学とスパースモデリング
1.圧縮センシングの基本
2.勾配法に基づく最適化手法
3.圧縮センシングに挑戦!
4.ボルツマン機械学習の基本
5.勾配法に基づく学習アルゴリズム
6.ボルツマン機械学習の過去・現在・未来
コロキウム:ボルツマン機械学習を用いたカンニング検出技術


スパースモデリングって、圧縮センシングと関係がある?

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

「Deep Learningの中身に迫る~全脳アーキテクチャ勉強会」に行ってきたけど、迫れなった・・・

2015-08-28 12:12:53 | AI・BigData
8月26日、

第11回 全脳アーキテクチャ勉強会~Deep Learningの中身に迫る~
オーガナイザー 栗原聡
https://wba-meetup.doorkeeper.jp/events/30016

に行ってきたんだけど、よくわかんなかった&最後は英語だし・・・
ということで、一応メモメモ



■ごあいさつ
・全脳アーキテクチャイニシアティブについて
 →賛助会員募集中

・今回の勉強会、キャンセル待ちが304人

・(株)ネクストリーマー(賛助会員の一社)の紹介
  AI-SAMURAI
  人”高知”脳ー高知AIラボ
  ピクレトリーAIキツツキ
  インターン、エンジニア募集

・懇親会はあとで

■紹介
・Deep Learning
  かふぇとかちぇいだとか
  何が起きているのかにスポット

■深層学習の学習過程における相転移
・自己紹介
  統計力学、量子コンピューター
  スパースモデリングに参加

 カンニング大関

・プレトレーニングとファインチューニングの解析
  →HPのアーカイブから読める

・今日は深層学習と統計力学の話

・統計力学の話
 原子と分子、そして物質
 データを原子と分子になぞれば?ビッグデータへ
 H2O→温度によって姿かたち違う→相転移
 いっぱい集まっている:温度というワンパラメータで制御

・磁石の構成要素 磁気モーメント
  温度を上げる→強さがなくなる

・たくさん粒粒集まっている→統計力学つかうと予言できる

・ミクロとマクロを結ぶ処方箋:統計力学
  調和振動し:ばね:ハミルトニアン→古典力学
  磁性:イジングモデル
 確率分布にしたがっている:ギブスーボルツマン
 分配関数を計算するために命張ってる
  →きかくかていすう
 ちらばっている、まとまっている→エントロピー:変数変換
 自由度たくさん 熱力学極限
 最大値を持っている所を扱う
 もっももっともらしい状態→最ゆう
 あんてん評価
 自由エネルギー
 *:最大になるようにする
 熱力学の変分原理

・m=0自由エネルギーの最小値で予言できる

・温度上げる:急に変化する
 温度下げる:急に下げる→でも違う場所で起こる
  →履歴現象(ヒステリシス)一次相転移
  →スパイン構造
  →微分で0:最小値の候補

・統計力学と機械学習
 ボルツマン機械学習→相関→カンニング(^^;)
   →さいゆうほう

 さいゆうほう:分配関数の計算
   平均場近似:独立と考える
   信念伝搬法
   マルコフ連鎖モンテカルロ法

  コントラスティブ・ダイバージェンス
   データをもとに
  擬似さいゆうほう

ディープラーニング
・それいぜん
  誤差逆伝搬の失敗
・ディープラーニング
  1つ1つきりわけて、がぞうぶっこむ(教師なし)→ぷれとれーにんぐ
  そのあとファインチューニング

・データ利用して学習
  教師なしたくさん、そのあと教師ありちょこっと
  敷居を再現してほしい
  W(さかいめ)を推定
  XとYがあたえられて推定→ベイズ

・教師なし学習ふやす:ポテンシャル
 プレトレーニングとファインチューニング:

・マルコフ連鎖モンテカルロ法がはやくなる!
 コントラスティブ・ダイバージェンス法
 詳細つり合いを破る→さらにいい方法が

・Q&A:教師なしをやってFineチューニング
 逆でも・・別に大丈夫

■Deep Neural Networksの力学的解析
・自己紹介

・イントロダクション
 50層にすると、しべりあんはすきーと別の犬を区別できる

・研究の目的
 なぜDNNは、そんな能力を持っているのか
 →DNNのダイナミクス

・DNNのダイナミクス
 空間
 時間発展:層が進んでいく
  →ヤコビアンを定義できる

・ヤコビアンの固有値固有ベクトル
  →特異点

・多様体仮説
 カテゴリの情報は最初から低次元多様体上に表現されている
 固有値固有ベクトル→どういう情報が残るかわかる

・先行研究

・DBN:
 手法:学習モデル (手がき)
 結果:特異点分布(プレトレーニング)
    特異値(Fine-tune)

・Alexnet:imagenet detaset
 ハイパフォーマンスDNNしすてむ

・特異値分布→パラメータ

■リクルート チャレンジのご案内
・リクルート人工知能研究所
  →なにやってるの?AI,IoTデータパートナー,大学
 かぐる:データサイエンティストコミュニティプラットフォームKaggle

■DeepLearning4j(英語)
・DeepLearningという本(日本語11月?)
DL4Jが解決する問題とは
 すべてのニューラルネット
 分散型
 ハードウェア抽象レイヤNd4j
 ETL

統合するの容易
DMLで

Java/Scala

ハードウェアあく世良レーション
  Open CL
  Cuda
  MKL
  Normal java(for probability)

分散:トレーニングはパラレル?

データパイプライン

コマンドラインのUI
Deep Learning in bash!

ワンパッケージで
 最適なマシンラーニングを行うために統合されたエコシステム
 一度コーディングすると、最適化を続ける

https://deeplearning4j.org
https://github.com/deeplearning4j
@agibsonccc

■デモ(英語)
・・・ごめんよくわからん・・・??


■対談

汎用人工知能
  →人間の脳から学ぶ
   機械学習と組み合わせる CNN+RNN
   別々のドメインで学ばす
     言葉とイメージ
   LSTM

時間的な扱いによるRNN

ND4J

World AGI Developers Map

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

「IoTX総まとめ&IoT!夏のデバイスだらけのLT大会!」に行ってきた!

2015-08-26 13:41:17 | ネットワーク
8/25にIoTX総まとめ&IoT!夏のデバイスだらけのLT大会!に行ってきた!
その内容をメモメモ




dots.コミュニティマネージャー おざわさんから会場説明

■IoTX総まとめ
・AITCとは
・IOTシリーズ振り返り
 第一回 IoT勉強会
 第二回 IoT勉強会 Connected Car,iBeaconなど
 第三回 IoT勉強会 ハンズオン
 第四回 IoT勉強会 PepperとIoT→デモ失敗
 第五回 IoT勉強会 人工知能 松尾先生 Rapiro,DeepLearning
 第六回 IoT勉強会 本日

■2020年 IoTで未来はこうなる!ロボット・AIのある暮らし
・科学技術イノベーション総合戦略2015
・独断と偏見で
・個人的な感想
  IoTデバイスとウェブの連携のプロトタイプ
・IoTXで見えてきた可能性
  Pepperに声をかけるのは自然、スマートホームのハブに
・IoTXAI
  ディープラーニングはAI技術のブレイクスルー。画像認識(就寝時、顔認識)
  賢いロボットが人とモノをつないでくれる
・Wiiをプレイするロボット(NAO)
・こんな風に暮らしのサポートをしてくれたらいいな
・さらに
・YouTubeに動画を投稿するくらいに気軽にIoT
・IoT、AI、ロボットの組み合わせで素敵な暮らし

■IoTXロボット・AI開発をはじめよう
・やったもの
  ・ビールジョッキに
  ・アルコールセンサー
・センサーを使った情報がやりやすくなった

・DeepLearningが熱いらしい
・最近ロボット
  RAPIRO:らずぱい
・ロボットを仲介
  自宅警備員
・頭で思い浮かべたことが実現できる技術基盤

■LT大会
・MilkcocoaでIoTな体験を作る
 Milkcocoa
  バックエンドサービス
  Javascript,Node.jsでバックエンド
  MQTTクライアント対応
  Pub/Sub通信

 自分の家の場合
  新しいコミュニケーション
 あると便利を作りたい
 Milkcocoa
  ぶろぐやってます
  イベントやってます

・オープンイノベーションを活用したスマートハウス実験室
 スマートハウスって
  乱立する定義
   いるかいらないかは市場が判断
 オープンイノベーション
  みんなで成果を共有して開発しよう

 スマートハウス実験室
   Connectly Lab
   リノベる。
   9月オープン予定

 Connectly Lab
  予約不要、てんじできるここから10分
  connectly lab

・js.bit
 デザインでプログラミング必要
 基本的な知識教える
 プログラミングブロック
  ディスプレイの上にブロックを置く

 js.bit evolution results

・IoTLTを6回主催してみて改め
 自転車業界に仕掛けるCoGoo革命
  CoGoo、TOLABL
  LIGの人→IoTLT

 自転車をネットにつなげてみました
  サイクルシェアリング どこにでも返せる(Cf,レンタサイクル)

 ステーションが固定化、スペース占有
  →配置転換できる、コンパクト
   自転車とこぐマシーン
   基地局
   スマホアプリ

  かりるとき:アプリより
  かえすとき:ZigBeeでつながっている
 9月15日 ヒカラボでやります。

・人とモノのネットワークでIoT社会を実現する
 IoTNews
 日本VSシリコンバレー
  資金面:桁違い、ピッチイベントが開かれVC複数参加
  活動面:エンジニア天国、コワーキングスペース+工房

 思うこと:4つのレイヤ
  アプリケーション技術
  情報技術
  通信技術
  センシング技術
 1人でやっていない

 いけてるパートナーを探す

 道のりが長い商品

・家庭(と社会)をよりよくするIoT
 IoTを活用して娘の不機嫌を解消する
  Cocorobo
  置いたらなくところ
  IoTで学ぶことある
 スマートな手法を模索中
  どこに人がいるか

 仲間募集:趣味レベルでスマートハウス
 課題をスクラップ&ビルド中
  センサー集めるのでも課題多い

・Pepperの開発環境はChoregrapheだけじゃない!
 みなさん、Pepperの開発は?
  Choregraphe→Git管理大変

 Java
   NAOはJavaで開発していた
   JavaDayTokyo
 QIMessageinAPI→Naoqi Java SDK
 常駐させることができる→root権限できなくさせるので、今後X?
 .Netかいはつできる?ばいどーから

・テクノ手芸部
 手芸と電子技術を融合させた作品ジャンル
  光るイクラのしゃけ
  テクノ手芸という本
 IoTも
  ほぼ日手帳カバー
  IoT三兄弟
  テクノブローチ

・ロボットとIoTでつくるエンターテインメントショー
 MFT2015に出展
 システム MQTT
 ろぼっととエンタ―テーメント

・空気を読む家
  居心地の良さを考えて、実現する家
   社会知。空間OS、まんが開発
  カスタマージャーニーマップを作って
  活動成果発表会 9月16日

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

MonacaでGoogleMapを使って、エラーになる場合

2015-08-25 15:14:42 | ケータイ
昨日書いた

スマホで自分の位置を取得するか、住所を入れて、GoogleMapで表示(Monacaを使って)
http://blog.goo.ne.jp/xmldtp/e/c66dfccbd8f9e123deb1a69ea9bcb664

をやっていて、ハマッタのでメモメモ!




■GOOGLEのAPIキーをいれているのにUnauthorizedエラー

【現象】
上記記事のプログラムの「GOOGLEのAPIキー」のところに、APIキーを
いれているのに、

UnauthorizedURLForClientIdMapError

だったかなんかの、エラーメッセージで動かない

【原因】
(概要)APIの有効化を「結果的に」していなかった
(詳細)

 GoogleのAPIキーは、キーをとるだけではだめで、APIを有効化します。
 詳しくは

 APIキーの取得
 http://www.ajaxtower.jp/googlemaps/charset/index1.html

にあるのですが、画面が変わっていて、間違えてしまった・・・
(Javascriptでなく、Androidを有効化していた)

【対策というか手順】
1.まず、

https://code.google.com/apis/console

に行きます

2.プロジェクトを作成していなければします。
  していれば、プロジェクトにいきます。
  くわしくは上記のサイトにあります。

3.つぎ「プロジェクトでGoogle Maps API V3を有効にする」
  ですが、ここで間違えました。
  プロジェクトの左側、
 「APIと認証」→「API」を選択。ここで

★!!Google Maps JavaScript APIをクリックしてください!!★

Google Maps Android APIでは「ありません」(aandroidをつかうとしても)

 そうしたら、でてきた画面で「APIを有効にする」をクリック

4.「APIキーの取得」は、
「APIと認証」→「認証情報」をクリック、「認証情報を追加」をクリック、
「APIキー」をクリック

でてきたダイアログ、

ブラウザキーでも、サーバーキーでもOK。ブラウザキーの場合

空欄だとセキュリティ的に問題ありそうだけど・・・(^^;)

ってなかんじで、作成できる。できたAPIキーを貼り付ける

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

【衝撃】「孫正義に詰められていたPepper開発リーダー林要さんがソフトバンクを退職」だって!

2015-08-25 10:00:57 | Weblog
この記事

【衝撃】孫正義に詰められていたPepper開発リーダー林要さんがソフトバンクを退職
http://netgeek.biz/archives/46476


最後のほう、引用(以下太字は上記サイトより引用)


どうして辞めることになったのか、詳しい事情は定かではない。ネット上では現在、「孫さんのプレッシャーに耐え切れなかったのかな?」「クビが飛んだ?」「技術だけ吸い取ってあとはサヨナラなんだよ」などと様々な憶測が飛び交っている。

まるでスティーブ・ジョブズのように理想を追求したビジョンを掲げ、世に新しいものを生み出そうとしている孫正義。
しかし、その方向性は本当に正しいのだろうか。胸にタブレット端末がついた喋る人型ロボットにニーズがあるのかどうかというところから問い直したい。


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

スマホで自分の位置を取得するか、住所を入れて、GoogleMapで表示(Monacaを使って)

2015-08-24 17:06:00 | ケータイ
Monacaによるハイブリッドアプリ(HTML5+Javascript&cordova)で、

・自分の位置を取り出す
・その位置をGoogleMapで表示する
・住所を入力し、GoogleのジオコーディングのAPIを使って緯度経度を出して、
・その位置をGoogleMapで表示する

っていうの、結構大変だったので、まとめてソースを書いておく
スマホでなくても役立つかも・・・(自分の位置以外は同じだから)
<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, user-scalable=no">
    <link rel="stylesheet" href="components/loader.css">
    <script src="components/loader.js"></script>
    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=GOOGLEのAPIキー&sensor=false"></script>
    <script>
    $(function(){
        $("#mapBtn").on("click",onMapBtn);

        //  現在位置をとりだす
        var option = {
            frequency: 5000,
            timeout: 6000
        };
        navigator.geolocation.getCurrentPosition(onPosSuccess, onPosError, option);
    });

    function onPosSuccess(position) {
        dispmap(position.coords.latitude,position.coords.longitude);
    }

    function dispmap(lat,lng){
        $("#mypos").html("緯度:" + lat + "<BR/>" +"経度:" + lng);
        
        //地図に設定
        var latlng = new google.maps.LatLng(lat,lng);
        var opts = {
                zoom: 15,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map(document.getElementById("map_canvas"), opts);
    } 
    
    function onPosError(msg) {
        alert(msg);
    } 

    function onMapBtn()
    {
        var baseurl = "http://maps.google.com/maps/api/geocode/json";

    	var mydata = {};
	    mydata['address']=$("#chkpos").val();
	    mydata['sensor']='false';

	    $.ajax({
   		    type: "GET",
   		    url: baseurl,
		    dataType:"json",
		    data:mydata,
   		    success: function(msg){
			    dispmap(msg.results[0].geometry.location.lat,msg.results[0].geometry.location.lng);
   		    },
   		    error: function(XMLHttpRequest, textStatus, errorThrown){
			    msg="";
			    msg=msg+" status:"+XMLHttpRequest.status;
			    msg=msg+" statusText:"+XMLHttpRequest.statusText;
			    msg=msg+" textStatus:"+textStatus;
			    msg=msg+" errorThrown:"+errorThrown;
			    alert(msg);
   		    }
	    });	
    }
    
    </script>
</head>
<body>
    <div>場所<INPUT TYPE=TEXT id=chkpos name=chkpos/><button id="mapBtn">検索</button></div>
    <div id="mypos">
    </div>
    <div id="map_canvas"  align="center" style="width:330px;height:330px;background-color:#99cc00;">地図</div>
    <button id="retBtn" onclick="window.open('index.html','_self');">戻る</button>
</body>
</html>


はじめの、navigator.geolocation.getCurrentPositionで位置を取得している
位置が取れると、onPosSuccessにいき、ここのdispmapで、GoogleMapに表示している

住所を入力されてmapBtnがクリックされると、onMapBtnへいき、ここでAJAXを使って
GoogleのジオコーディングAPIを呼び出し、JSONで緯度経度を受け取り、成功時、
dispmapで、GoogleMapに表示している
「GOOGLEのAPIキー」のところには、取得したGoogleのAPIキーが入るけど、
そこにはまりどころがある・・・が、今回は省略。別の機会に書きます。

【参考サイト】
・ http://docs.monaca.mobi/2.9/ja/sampleapp/tips/gps/
・ http://www.ajaxtower.jp/googlemaps/charset/index6.html
・ http://mashupawards.tumblr.com/post/96679326096/matechblogmonaca%E6%89%8B%E8%BB%BD%E3%81%ABmashup%E3%82%92%E3%81%AF%E3%81%98%E3%82%81%E3%82%88%E3%81%86monaca%E3%81%A8google

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

「スタートアップにおける技術チームの作り方」に行ってきた

2015-08-24 12:01:34 | Weblog
8月21日、スタートアップにおける技術チームの作り方
行ってきた。そのときのメモメモ

ただ、どれも結構スライド早くながれたので、全部はメモしきれていない。

インテリジェンスの人に関しては資料が

http://www.slideshare.net/yujiotani16/ss-51949717

にあるようなので、そっちのほうを見ていただいたほうが、いいかも(^^;)・・・





■スタートアップにおける技術チームの作り方
インテリジェンス
MIIDAS
2014年11月 事業化決定
技術チーム作りについて
  組織成果
 楽しく働く挑戦できる(自術者の自己実現)
 →たかいれべるでばらんす

コンセプト策定
技術選定
人材採用
まねじめんと

コンセプト策定
・エンジニアが開発を楽しめるチーム
・何のためにそれをやるのか
→チームのスローガン「技術のインテリジェンスをつくる」

作りたいエンジニア文化
 モダンなWebエンジニア
  ・スーツでなくし副
  ・音楽
  ・ノウハウの共有

開発チームのルール
  ・リリースまではスピード優先
  ・リリース後はクオリティ
  ・10時以降の残業禁止
  ・スケジュールは自分で決める
  ・きちんと意味を理解して開発を行う

浸透させるポイント
・経営にもきちんと同意をとる
・自分が率先してルールに従う
・全体に、個別に、同じことを何度も
・コンセプトにたちもどる

→コンセプト策定はとても重要


技術選定
・チームの方向性をきめるもの

・どんなチームにしたいのか
・どんな人を採用したいのか
・決定に責任を持てるのか



・8割の普通に仕事ができるエンジニアよりも
 2割の技術に熱狂できるエンジニアを採用

CentOS7
nginx
さくらくらうど
zabbix
Jenkins
GlusterFS
Docker

Hackが採用時の差別化ポイント
Go経験者が1名→5名

・技術選定は意思持って
・人材採用でも大きなポイント
・選定理由を明確に


人材採用
2か月で7名

・露出を増やす
・チームの説明資料
・人材会社の接点
・経営と認識を合わせる

露出を増やす―メッセージの一貫性
・テクノロジーで買っていく
・ゼロから技術
・新技術

チームの説明資料を作る

経営と認識を合わせる
・面接1回で内定をだす→採用までのステップが短くなった
・やりたいことを聞いて、その仕事を任せる

突然ですが、7つの質問
・ぎょうむようけんたすならなさいようすべき1
・しごとゆうせん 1
・せいちょういよく はんぶん
・開発完了目標  1
・すピーと優先 半分

なぜインテリジェンスなのかを明文化
・毎年新規事業
・ワークライフバランス
・グローバル展開
・技術的自由

マネジメント
・組織の向かい方向性を正しく伝える
・メンバーの組織成果を最大化
・自立して「何をすべきか:

新規事業のマネジメントにおいて3つのこと
1.技術的にチャレンジできるネタ
  LINE認証
  Swift
  Hack
  Docker
  本番インフラ
  デプロイ環境

2.緊張感:目標→マイルストーン
  マイルストーン

3.重要な決定を任せて
  各種マイルストーン
  技術
  リリースの遅延
  主要機能の詳細仕様
  機能の実装方法

 なぜそれをやるのか

つよいチームを作るために
・経営の立場から何を優先すべきか
・最新の技術、面白いネタ
・メンバーがやりたいことを実現

技術力を磨く

組織成果の最大化
メンバーとの込み乳け―初ん
あんてなはり


■スタートアップにおける技術チームの作り方
らんさーず

・会社紹介
  登録者 フリーランス50%以上
  発注の54%が東京 受注は75%が東京以外

・スタートアップにおける技術選定
 表側PHP
 裏側Rails
 ちゃっと Node
AWS上
バージョン管理 Github
Jenkins

技術選定の軸
・利用者人工
・更新頻度
・社内知見
・ランニングコスト
・採用難易度
・将来性
・情報量
・パフォーマンス
・柔軟性
・イメージ
・エンジニアのモチベーション
 基本、メンバーに決めてもらう
 技術コミュニティ

スタートアップにおける開発体制
・事業推進
・プロジェクト
→マトリックス型
  うまくワークすると
  結構難しい

考慮すべき事項
・エンジニア数
・個々の技術スキル
・権限と責任
・市場環境
・事業フェーズ

開発プロセスとフロー
・初期段階:基本機能のみ実装
・イテレーション型

業務フロー
・Github

よりプロジェクトが成功に近づきための開発プロセス/フローをせんたくすべき

スタートアップにおける成長課題
・技術的負債
・組織的負債

・技術的負債の返済方法
  マイクロサービス化
  負債の管理
  返済の評価
・あるべき未来のシステムを定期的に
・観点としては負債の返済方法と負債をためない仕組みづくり
・負債の蓄積は避けられない
組織的負債の蓄積への対応
・情報共有の工夫
  フローの情報
  体系的情報
・だれが、なにを、どれくらいやっているかがわかる状況に
・勉強会
 
組織文化必要不可欠

技術選定
会社事業へのマッチング

開発プロセス
組織やプロジェクトへのマッチング

■Ligにおけるフロントエンドチーム構築
・LIGについて
 3本の柱
  クリエイティブ、メディアプロモーション、いいオフィスやゲストハウス

・自己紹介

・フロントエンドチーム
  2人→8人
  若手4人、中堅4人、取締役

・技術力向上とルール整備
  HTMLはきれい
  CSSはふつう
  JSはばらばら
 きちんと基礎から→ソースコードレビュー
  当番制で週2回
  チーム内である程度の統一ができた
  パフォーマンスや読みやすいコード
  実装で悩んでいるところを
  1年

 次のフェーズ
  ソースコードレビューやめた
  フリータイム制
  事前にいつ何をしたいかを全員に周知
  自分で考えてチームでやりたいことを実現する時間
  事前周知がない日は何も行わない
  コントロールする責任

  エンジニアが制度を利用して成長

 あたらしいものを取り入れる文化
  できない人がいるのは当たり前→フォローできる余裕と体制

 制作フローの見直し
  全員で仕様決め、ワイヤーフレーム
  デザインスプリント
   グーグルベンチャーずの開発

    1、プロジェクトの内容を理解する
    2.ターゲットユーザーを定義する
    3.アイデアを広げる
    4.決定していく
    5.試作する
    6.立証する

  時間を抑えるのがむずかしい

  制作業務以外の取り組み
   LIGブログで記事公開
   社外勉強会での登壇経験
   書籍雑誌の執筆経験
   退職者

 課題
  サーバーサイドチームも含めた
  個性が高まり
  ナレッジの共有と蓄積
  世界展開への準備  遠隔地との連携

 さいようについて
  LIGのファン
  作ることが好き
  能動的な人

 ラブレターだでけ採用がち手紙のみ

 wantedlyで

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

ビッグデータの特徴量を絞り込んだり、情報補間して特徴を推理するスパースモデリング?

2015-08-24 01:13:25 | Weblog
さ、さいえんすZERO,ま、まじ??

情報科学の名探偵! 魔法の数式 スパースモデリング
http://www.nhk.or.jp/zero/contents/dsp514.html

なんだけど、(以下上記サイトより引用)

少ない情報から全体像を的確にあぶり出すという、まるで名探偵のような数式

っていう、スパースモデリングっていうのをやっていた。
まじ?情報少ないのに、どうやって、特徴をさいげんできるの?

さらに、逆にビッグデータでデータが多いものに対して

複雑な事がらをスパース(すかすか)にすることで本質を浮かび上がらせる

んだって!?




そこで出てきた式がこれ。これでわかるらしい。


E(X)=(Y-AX)^2+λΣ|Ψ(X)|1


Eは期待値?はじめの(Y-AX)^2は最小2乗法っぽいけど、あとの項は??

よくわからん。。

いちおう、それっぽいことの書いてある論文のメモ

【参考文献】
1.スパースモデリングの深化と高次元データ駆動型科学の創成
‐地球科学と脳科学のデータの背後に潜む普遍性‐

http://www.mmij.or.jp/convention/doc_file.inc.cpx?est=7f2b40545cb4fd89500d2c215b7e6ac9

2.スパースモデリングとデータ駆動科学
https://kaigi.org/jsai/webprogram/2014/pdf/433.pdf\

3.人工知能Vol. 30 No. 2 ( 2015 年3月)
スパースモデリングによるデータ駆動科学
http://www.ai-gakkai.or.jp/vol30_no2/

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

Excel上のデータをグラフ化、SVG化するテンプレートE3D3話を聞いてきた

2015-08-21 14:26:46 | Officeソフト&VBA
6月20日に
E2D3ユーザーズ・ミートアップ
の第一部にでてきたので、メモメモ



来場者アンケート
・(データ)ジャーナリスト:2
・アナリスト、まーけたー、営業、企画:6
・デザイナー、広告代理店:1
・その他(エンジニア:3人、インストラクタ)

E2D3とは
・Excel to D3の略
・Javascriptが扱えないと利用できなかったD3.jsを
 Excel上で利用可能にする

D3.js
・任意のデータをDOMと結合させて
 SVGとか・・・
・でーたどりぶんどきゅめんと

本日の開催背景と目的
・イベントはたくさん行い、賞も受賞
・実際に現場でもっと使ってもらいたい
・使用経験・意見を開発にフィードバックし、
 よりよいプロダクトにしていきたい

http://e2d3.org
UseE2D3というところがあり、そこに書いてある通りにやるとできる
・OneDriveのストレージ→Excel onlineを開く
・E2D3は、Excelのアプリ
  →2013から、アプリというのができた
   Officeアプリ→Officeアドインの1つ
 挿入→Officeアドイン
   →ストア
   →検索でE2D3を入れる
    このツールを信頼する
   →メニューからいれられる

・E2D3を起動
  今使えるグラフのテンプレートがでてくる
   データの持ち方がでてくる
   Visualizeを押す
    →ダミーデータが入っている
     中身を作成、同じ形式にして、データ範囲しているすると出てくる

  Save Image→SVG,PNGでだうんろーどできる
  しぇあ チャート→URL、ブログ用に埋め込みもできる

・もどりかた:Homeボタンをおす
  →前のデータの内容は消しておいてね(新しいのとバッティングするから)
  →リトライでもう一回

留意事項
・加工する
・シートクリア
・リンクデータで反映される





通信がうまく入らなかったので、E2D3がうごかなそうだったので、
帰ってきた。このあと、第二部があったもよう。

こんど、いんすとーるしてみよっと

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

Docker話を英語できいてきた・・・

2015-08-21 09:09:32 | Weblog
8月19日にDocker Meetup Tokyo 5回目
きいてきたんだけど、はじめの3つは英語なんでよくわかんなかった。
とりあえず、めもめも




■Docker for developer experience
ねいさん

・あじぇんだ
 自己紹介
 どっか―紹介:どっからきたか、なに?とか
 どっか―ツール
 しょうらい

・Me

・About Docker
 Docker使ったことある人:かなりたくさん

 Linux コンテナ
  プロセスでスペシャルプロパティもってる
  ネームスペース

 短いデモ
  
 イメージ→ニューコンテナー

・開発者の体験

・オープンソース

・Dockerはすべての問題をFIXするわけではないが
 やさしくする
  →オートマティック

・Dockerマシン
  バーチャルマシンで動かす

・Docker Compose
  ぎっとらぶ

・Docker Toolbox for OSX and windows
  http:// docker.com/toolbox

・将来

■みてい くーばねーてぃす
まんじーさん

・開発者のしてん
 ばいなり
 コンふぃぐ
 すけじゅーらー
 ましん

・ふぇいりあーず

・えふぃっしゃんしー

・くーばねーてぃす
  人生変える
 すけじゅーらーのおーけすとれーたー

・開発者の視点(くーばねーてぃす)
  API

・くらすたーおぷしょん

・Pods

・Labels

・レプリケーションコントローラー

・こんてなLiveness

・サービス

・例:Canary

・デモ

・くーばねーてぃすのすてーたす

・おーぷん こんてなー いにしあてぃぶ

・くーばねーてぃすはおーぷんそーす

■Building Distributed System with CoreOS

・コンテナは1%の問題

・分散システム
  スケーラビリティ
  ハイアベイラビリティ
  フェイルトレラント
  コンシステント

  バーチャルマシン

・分散システム
  シングルポイントフェイリア

 Pros
  ふぁいぶないんず
 Cons
  ふくざつ

・CoreOS Linux
  どっかー
  ぱっけーじまねーじゃー

・etcd
 くーばねーてぃすくらすたー
 きーばりゅーすとあ

・くーばねーてぃす
 でも:マシンが死んだ時?

■Docker あんど fluentd
中川さん(日本語)

・TDはDockerをまだつかっていない
 いくつかのミドルウェアで使おうかなとおもってる

・コンテナ:ログがだいじ
  →ストレージを外に置く
   コンテナ間をネットワークで

・アプリごとにやっていくと・・・
 送るごとにプログラム書く?
  →ユニファイドロギングデータ
    →fluentd

・Googleさんでも採用

・MXN→M+N

・アーキテクチャ

・アグリゲーションパターン
 1レベルアグリゲーション
 2レベルアグリゲーション

・2レベルアグリゲーション
1)ネットワークトランスファリング
  アプリのログは取れるが、Dockerのログは?
  ネットが切れたら?

2)Tail Container Logs
  アプリは標準出力にはく

3)ロギングドライバー
  fluentdドライバー1.8から

・デモ

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

スケールアウトによるテーブルロックの問題 排他性より順序性

2015-08-20 15:20:37 | ネットワーク
■テーブルにロックをかけるケースを考える

たとえば、貯金残高や、在庫数など、2箇所以上で同時に操作されたときに、
矛盾を引き起こさない為に、データベースには、一時に1箇所でしかDBを
利用できないようにロックをかけたりする

さらに、テーブルが複数あって、関連を持っている場合
(どちらかのテーブルの主キーが他方のテーブルの外部キーの場合)、
1つのテーブルは処理完了して、もう一つのテーブルは完了していない
となるとおかしなことになるので、トランザクション処理として、
すべて更新するか、全く更新していないかの2つの状態になるようにする。
この場合にも、テーブルに対して、ロックがかかる。




■2つ以上が同時に操作すると、一方はロックのために待ちになる

このように2つ以上のアプリが同時に同じテーブルを操作しようとして
テーブルにロックがかかる場合、デッドロックで「なければ」、
一方のアプリが処理を行い、その間、他方のアプリが待ちとなる。

待ちの場合、すぐにまたアクセスにいけるようにしてしまうと、
ロック解除されるまでに何回もアクセス可能かどうか聞いてしまい、
このループの処理ばかりするようになり、CPU処理量100%となってしまうので、
ふつうは、ロック待ちになると、Sleepを入れて寝かせる。

ただし、このsleepは、シードなしはもちろん、時間でシードを持たせると、
別の場所で、同時刻のシードとなることがある。

sleepするアプリが2つ以上あって、シードなしの場合、または
同じシードの場合は、乱数を振ると、
同じ結果が返ってくる=同じ時間寝る=同じ時間に起きる=またロックになる。




■スケールアウトすると、どこかで誰かがロックのために待ちになる・・・

DBを更新するアプリが少ない場合は問題ない。

ただ、更新するアプリサーバーが増えてきて、同じDBをアクセスするように
なると、ロック待ちが起こり出す。

このとき、複数サーバーでロック待ちをしている際に、
何らかの弾みで、上記のように待ち時間がたまたま合ってしまうと、
・・・永遠と振られる乱数結果が一緒で、ずっとロックしていることになってしまう
(ライブロック)

つまり、スケールアウトするときにテーブルロックの問題が起こることがある

この事態を避けるには、どうしたらよいか?
(それいぜんの、CPU100%でループという事態も含めて)




■この解決法

そもそも、やりたいことは、ロックによる排他制御なのか?
順番に処理させたいという目的があって、その手段として、
トランザクション&ロックをつかっているのではないのか?


・・・だとしたら、守るのは順番である
順番を守るだけなら、ロックをかけなくてもいい。
メッセージキューを1つだけ用意し、そのキューに入っている
DB更新処理を順番に行えばよい。
1つしかないので、事実上、排他的に処理される

スケールアウトする場合には、キューを利用したほうがよいこともある。




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

ディープラーニングのやりかたについて詳しく書いてあるサイトのメモ

2015-08-20 10:58:44 | AI・BigData
自分へのメモで、まだよんでない。


■R言語 で Deep Learning と 従来型 機械学習 7 手法 分類問題 エラー率比較 ~ H2O パッケージ編
http://qiita.com/HirofumiYashima/items/68d56cfbab2834c1febb

DeepLearningのパッケージには

• Pylearn2(http://deeplearning.net/software/pylearn2/)
• Caffe(http://caffe.berkeleyvision.org/)
• Theano(http://deeplearning.net/software/theano/)
• H2O(https://cran.r-project.org/web/packages/h2o/index.html)
• Deeplearning4j(http://deeplearning4j.org/)
• Torch(http://torch.ch/)
• noleam(https://pythonhosted.org/nolearn/)
• Chainer(http://chainer.org/)

といろいろあるけど、これはH2O編みたい


■Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
http://www.slideshare.net/yasuyukisugai/deep-learningcaffe

(本エントリ内の太字(例えば上のパッケージ例)は、上記スライドから引用)
こちらは、Caffeだけど、他のパッケージを使う場合でも、画像のデータ例は
参考になりそう。下のとおり(30すらいど目から)

LeNet MNIST 手書き数字の認識精度テスト • 28x28ピクセル、70,000枚の画像
http://caffe.berkeleyvision.org/gathered/examples/mnist.html

ilsvrc12(ImageNet Large Scale Visual Recognition Challenge 2012 )
物体認識の精度を競う国際コンテスト。申請してから利用できるまで1日かかる
http://caffe.berkeleyvision.org/gathered/examples/imagenet.html

CIFAR-10 32 • 犬や猫、飛行機など10クラスの分類精度テスト
http://caffe.berkeleyvision.org/gathered/examples/cifar10.html



■IoTとDeep Learningで自宅警備員を育ててみる
http://www.slideshare.net/yasuyukisugai/io-t-deeplearning

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

Monacaで、端末の画像ファイルをファイル名を指定してアクセスする

2015-08-19 18:00:24 | ケータイ
Monacaというか、Cordovaで、INPUTタグでTypeをfileにして、
そこから画像ファイルをスマホ端末に表示する例はいっぱい
あるけど、

スマホ端末にあるファイルのファイル名から、画像ファイルを
どうやって表示するかについては書いてなかったのでメモメモ

以下のようなかんじ。
<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, user-scalable=no">
    <link rel="stylesheet" href="components/loader.css">
    <script src="components/loader.js"></script>
    <script>
    
    
    function myfunc() {
        var fname = "file:///storage/sdcard0/DCIM/Camera/1439791690213.jpg";

        var errorHandler = function(e){
            alert("error");
            console.debug(e);    
        };            
        
        window.resolveLocalFileSystemURL(fname, function(fileEntry){
            fileEntry.file(function(file){

                var fileReader = new FileReader();
                fileReader.onload = function(event) {
                    $("#myimg").attr('src', event.target.result);
                };
                fileReader.onerror = function(event) {
                    alert(event.toString());
                };

                fileReader.readAsDataURL(file);
            }, errorHandler);
        });

    }
    
    </script>
</head>
<body>
    <img id="myimg" src="" width="150" height="250"/>
    画像
    <button id="retBtn" onclick="myfunc();">表示</button>
</body>
</html>


fnameを他のファイル名に変えれば、そのファイルがでる。
INPUTタグでTypeをfileにした場合、その0番目をとってくれば、
Fileオブジェクトが取れるので簡単なんだけど、
名前から、そのFileオブジェクトを、どうやってFileAPIで作るか
が問題(window.resolveLocalFileSystemURLで、FileEntryを取得し、
そこからFileオブジェクトを取り出す)

【参考サイト】
http://ja.stackoverflow.com/questions/10645/%E7%AB%AF%E6%9C%AB%E3%81%AE%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%97%E3%81%9F%E7%94%BB%E5%83%8F%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

http://stackoverflow.com/questions/21980112/cordova-resolvelocalfilesystemurl-success-call-back-failing-on-ios

http://blog.asial.co.jp/1079

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