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

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

スマホで自分の位置を取得するか、住所を入れて、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でシェアする