Android のGLSurfaceViewをxmlファイルで表示させる

こんにちは、Napaです。 今回はAndroidのOpenGLES2.0のxmlファイルでの表示方法について書きます。   MainActivity.javaで

まずはこれだけでもGLSurfaceViewを表示できます。 でもこれだけだと、全画面GLSurfaceViewしか表示されません。 他のウィジットも併せて表示させたかったらやはりxmlファイルで記述するのがbetterrですね。   MainActivity.java内でまずは これでactivity_main.xmlをレイアウトに指定。 続いてactivity_main.xmlで こう書くと。 これだけではエラーになってしまいました。 どうやら元々自分が使っていたGLSufaceviewのコンストラクタの引数は(Contex, context)の一つだけで、これが駄目だったみたいです。 コンストラクタをコピペして、もう一個作りました。このコンストラクタでは引数は(Context context, AttributeSet attrs)の2つです。 追加したコンストラクタでは super(context); も super(context, attrs); に変更。 これで晴れてxmlファイルでGLSurfaceViewが操作できました。 わーいパチパチ  

初めてチーム開発をして思ったこと①

はじめまして!

エンジニア1年目、大阪出身、マンドリン大好きな「かーる」です!

 

初めてのエンジニアブログです、、、

1年目なりにがんばります!

よろしくお願いします^^!!

 

私たち1年目のエンジニアは、同じく1年目のデザイナーとともに、

0からwebサービスを作る、という企画研修を行っているのですが、

研修も終盤にさしかかり、

「ここ大変だったけど少し考えれば気づくよね、、、、」

と思ったことを2つ書きたいと思います。

 

 

まず1つめ。

 

『テキスト化』

 

私のチームはエンジニア2人、デザイナー1人の3人チームなのですが、

研修が始まったばかりの時は「言った言ってない」の争いがよく起こりました、、、

 

小学生同士の喧嘩にもありそうなことですが、

議事録的なものをとるなど、「テキスト化」をしておけば、この言い争いに時間を取られることもなく、

みんなハッピーな状態で進められます!わーい!

 

 

2つめ。

 

『用語の定義の統一』

 

これも簡単なことですね!

「メロン」と聞いて、黄緑色のメロンを思い浮かべる人がいれば、

オレンジ色のメロンを思い浮かべる人もいる、みたいな感じです。

 

これに関してはどこまで細分化して統一すればいいのか、難しい部分もありますが、

たとえば「明日まで」と言われたときに、

明日の0時と認識する人と明日中と思う人がいたらめっちゃ困る、、、、

「明日まで」の定義を「明日の始業時間」と決めてしまう、とか

時間の場合だと、「明日の◯時」と決めてしまうとかしないといけないということですね。

 

そして、これを『テキスト化』しておけばカンペキ!!

 

ということで、以上、

とても当たり前そうだけど、やってみないとその重要性に気づかなかったりすることでした。

 

次回は、

エンジニアが複数いて「ここ大変だったけど少し考えれば気づくよね、、、、」

と思ったことを書こうと思います!

かーるでした!

Vim8.0をインストールしてみた

Vim8.0 インストール

今回は1週間前にメジャーアップデートされたVimについて 今までVimは使わずに何でもIDEを使っていましたが、 そろそろVimで効率よく進めていきたいなということで最新版にアップデートしちゃいたいと思います!! (どんなバグがでるか恐ろしい・・・)

7.4 アンインストール

まずは今まで入っていた7.4をMacのHomebrewでさくっとアンインストールしちゃいます!! ※Homebrewが入っていない方はこちらからインストールしてください

8.0 インストール

続いて8.0をインストールします!! でインストールしてもいいんですが、 とすることで、luaオプションがついてneocompleteが利用できるようになります。 入力補完機能が付くので効率を考えるなら入れた方がいいですね。 待つこと5分・・・ インストール完了しました。 ちゃんと入っているか確認してみましょう。 確かに8.0がインストールできました!!

vimrc 設定

実際に利用するバージョンはどうなっているのか。 とやってみると、 エラーが・・・ 色々調べるとvimrcの設定がおかしいようです。 neocomplcacheを入れたことでvimrcの設定をしないとダメみたいですね。 今回は細かく設定するのはやめて、 neocomplcacheのSetting examplesをそのまま利用しようと思います。 これで無事にエラーを解消できました!! 1時間くらいかかったな・・・

PATH 設定

と改めてやってみると、バージョンは7.4のままです。 まだ今回インストールしたvimにpathを通していないので、 pathを通し直す必要があります。 pathが確認出来ました。 では、ここにpathを通しましょう!! そして、バージョンを改めて確認すると、 8.0になってました!! 今回はこの辺にして、 次回は、Vim8.0の新機能に触れていきたいと思います!!

参考

http://qiita.com/one-a/items/5039dd266b90e18a4242 http://d.hatena.ne.jp/pospome/20150603/1433303040 http://rcmdnk.github.io/blog/2016/09/12/computer-vim/ https://github.com/Shougo/neocomplcache.vim

Firebaseを使ってみての感想

こんばんは、1年目エンジニアの「そる」です! 新卒で入社してから半年が経ち、微力ではあるんですけど、力がついてきたので ブログで知識を出力しようかと!(大した事は、言えないんですけどね、、、) 1年目エンジニアらしい内容になりますが、ご容赦ください orz   今日は「Firebase」に関してです! FirebaseはmBaasと言われる、モバイル特化のバックエンドサービスなんですが、これがとっても便利!! アプリを作成するにあたっての機能をほぼすべて提供しているので、自前のサーバーなどを構築する必要が まったくない!アプリ自体に開発に全身全霊を注ぐことが可能になりました!!!! いやー、ありがたい!初心者にとって優しいね(笑) 自分が、アプリを作ることになったと同時に「Parse」がサービス終了をアナウンス。 うわー、使おうとしていたのにタイミング良すぎ!と嘆いていた最中だったので、逆にタイミング良かったです!   現在他にもmBaasと呼ばれるサービスはいくつか存在します。その中でも、自分がFirebaseを選んだ訳ですが、 実際に使ってみて、Firebaseを選んでよかったと思いますね!Googleもこれから力を入れていくと考えられるので、 そこにも期待が持てますね! 正直、Firebaseの新しいロゴ、結構好きです。前のは完全にDBですよね。   次回、ブログを書くときはFirebaseの導入、使い方を投稿できたらと思います!(言語はSwiftです。) つれづれなるままに書いていたので、まとまりませんが、今日はこれで! もうちょっと、文章力つけます、そるでした!!    
グロースハックする~ダフえもん~

slackとhubotでソラジローを作ってみた。。。①

ごきげんようdafです。 仕事がもう少しで一区切りつきそうなのでここらで一投!!!!!!!!! ホントに久しぶりの投稿ですね。。。(今年の目標を見るのが怖い。。。) いやー最近は熱い日が続きますね。。。 毎朝事務の女の子が熱いなか必死に頑張る営業さんを思ってラインにはその日の天気と気温をコメント付きでフィードしてくれます。(天使か!おい〜) 実は毎晩、ソラジローに直接聞きに行っているらしいです〜笑 そんな苦労を考えるとなんとかして自動化してやりたいという思いに狩られるのでやってみました! 運良く社内ツールとしてslackが近々導入されるということなので今流行のなんちゃってお天気チャットボットを作りたいと思います。 今回はhubotとslackを連携させてお天気APIを叩いて天気予報を取得したいと思います!

準備

Node.jsとnpmのインストール

ココらへんはググッて。。。 というか当然入れてるよね。。。

Hubotのインストール

早速Hubotのインストールから ではではbotの雛形を作ってみたいと思います!! 中身はというと。。。 treeしてやれば。。。こんな感じ 実際に動かしてみる デフォルトで色々なスクリプトが用意されているのでまずはPing Pongしてみる笑 。。。ただただbot名 pingと打てはPONGが帰ってくるだけのやーつ とまあ書くのがめんどくさいので続きは明日実際にはこんな風になりますよっと じゃあこの続きはまた明日。。。
グロースハックする~ダフえもん~

【新卒応援企画】はじめてのJava~新卒エンジニアのために~

ごきげんよう!ダフです. 今日は新卒のMacを触ってびっくりしたことなんですが、MacのデフォルトってJava6なんですね。。。 7でないことは明らかだけど、もう9のベータ版出てるんだから、8にしてやれよ。。。 という感じでした。 というわけで今回の“新卒応援企画”

“Java8をいれよう!”

では早速導入から。。。

Java8の導入

導入は前回同様Homebrewを使ってインストールしていきます! まずはsearchしてみます。 うん。あるある。 それではインストールしよう! はいこれで導入完了!簡単簡単!

Javaを動かしてみよう!

せっかく導入したので実際にコードを書いて動かしてみよう 1. お好みのエディタを開く 2. 以下のコードを打ち込む

Test.java

  1. ターミナルを開く
  2. 以下のコマンドを打ち込む
エラーがあればここで何か表示される。。。 そして実行してみよう! 5. java Testを実行 と表示されればおk!
グロースハックする~ダフえもん~

【新卒応援企画】はじめてのMySQL導入~新卒エンジニアのために~

ごきげんよう! ダフです! 新年度が始まりかわいいかわいい後輩が増えました! 特にGHチームはやる気に満ち溢れた子たちが多くてとても頼もしいです! 思えば僕も一年前右も左もわからずMySQLの導入には苦労したものです。。。 ということで今回は 【新卒応援企画】はじめてのMySQL導入~新卒エンジニアのために~ を親切丁寧にやっていきたいと思います。 (MySQLの導入ログを取っておいて良かった…)

MySQL導入の手順

環境

  • Mac OSX(10.10.5) (早くcapitanにしなくては。。。Swift。。。)

手順

  1. Homebrewのインストール
  2. MySQLのインストール
  3. MySQLの起動
  4. MySQLセキュリティ設定
  5. MyCliのインストール
  6. MyCli起動(MySQL起動)

1 Homebrewのインストール

定番のパッケージ管理(๑•̀ㅂ•́)و✧ 今後色々使うから必須だよ!!!!! 難しいことは抜きにしてまずは導入してみようーーー!

2 MySQLのインストール

homebrewの更新を確認 (Xcodeヴァージョン上げろと。。。) インストールが始まればおk

3 MySQLの起動

MySQLサーバー立ち上げ mysql 起動

4 MySQLセキュリティ設定

root ユーザのパスワード設定

5 MyCliインストール

MyCli * MySQLコマンド補完機能付きのMySQLクライアント * MySQLへの接続の仕方はほぼ一緒 mysqlがmycliになるだけ * SELECTとか打つと、そのあとのコマンド候補とかテーブル名とか補完が可能
参考)mycliでMySQLコマンドの補完機能を簡単に使う – Qiita

6 MyCli起動(MySQL起動)

これでMySQLの導入は完璧!! あとはお好みでMySQLWorkBenchとか使えばいいじゃない!( ˘•ω•˘ ).。oஇ MySQLWorkBench ちなみにConfluenceにも貼っといたから見て。。。 Slack常時立ち上げておいて。。。 参考 Homebrew公式 Mycle公式
グロースハックする~ダフえもん~

新しい仲間と家族が増えました

春ですね。ダフです。 先日は入社式で新しい仲間がたくさん増えました。 そしてこのタイミングで新しい家族も増えました笑 ということで今日は技術ブログではなく、そんな家族をご紹介します!

ご紹介しましょう!!

エリザベス & スージー

どちらもメスです。 (オスだったらエンジニアらしくアップルの創業者にちなんでウォズニアックとジョブズと名付ける予定だったんですけどね) 正直見分けがつきません。 ちょっと気性が荒いのが$エリザベス$ (背中の模様がちょっと濃い) 人懐っこいのが$スージー$ (背中の模様が薄い) 名前の由来は分かる人にはわかる!笑 ただエンジニアらしく汎用性と命名規則はしっかり考えました笑 だから今後仲間が増えていくことを前提につけております。 果たして利己心・私心の塊のような男にこの子たちを育てられるのでしょうか。。。 でも水槽を眺めていても全然飽きませんね。

大切に育てていきます。。。

ただ普通に育てるだけじゃ、物足りないのでちょっとしたものを作ろうと画策中! $題して$

ダフえもんの鼠育成計画

こいつを使って色々やってみよ〜 s
  • ホイールの回転数をセンサーで計測して1日の移動距離を算出したり
  • ある時刻に餌場に餌をあげたり
  • 寂しくないように一定間隔でご主人の声が流れるような音源モジュールを使ったり
  • カメラモジュールを使っていい感じの写真をとったり
  • 活動時間が計測できるようなものを作ったり
けっこう色々できるぞ〜 ということで明日はお家を買ってこよ!
グロースハックする~ダフえもん~

Play2.4でMySQLを使う③

だいぶ間が空いてしまいました。 今朝自転車のチェーンホイールが壊れて遅刻したダフです。 (引っ越すまで自転車を全く使ってない上に雨曝し状態だったので、とことどころ錆びてる。。。 週末は自転車の整備に追われそう。。。 でも久々に自転車に乗れて楽しいね。 弱虫ペダルのおかげなのかまちなかでもロードレーサーをよく見かけるし、エセ自転車ファンにとってはとても嬉しいことですね。 弱ペダも好きだけど、昔マガジンで連載されていた”Over Drive”とか”茄子”とかも好きなんですよ。OverDriveの影響で高校時代に”自転車部作りたいです。”って校長室に押しかけて、ドラマとかアニメとかでは定番の”5人部員を集めて顧問の先生を立てられたら部活として認めよう”とか言われんのかなとか思ってたら、”お前、バスケ部だし、部長なんだからそんな中途半端なことやるなよ。そもそもそんな高い自転車買えねぇよ”的なことを言われて、全然予想外の展開過ぎてただただ怒られて終わったっていういい思い出。。。) 前回に引き続きplayを使って簡単なデータのやり取りをしていきたいと思います。

playを起動

ターミナルでactivatorと入力 runで実行 ここまで来たらブラウザでlocalhost:9000を叩けばおk! image1 なんかエラーっぽい画面が出てきたけど、安心してください。 modelで定義したエンティティを元にテーブルを作成しますよ〜 っていうとっても親切なことをplayさんはしてくれているのです。 ‘Apply this script now’ でテーブルが作成され、以下のような画面に移ると思います。 これで無事playを起動できた訳ですが、せっかく書いたコードを動かしてみましょう。 その前に前回ルーティングを忘れていました。。。

ルート設定

conf/routesファイルを開きます GETはメソッドですね。 /(ルート)にアクセスするとApplicationクラスのindex()メソッドを叩くという意味になります。 ここに前回書いたコードが反映されるよう以下を追加します。 /userにアクセスするとApplicationクラスのuserメッソドを叩くという意味になります。そこでuserメソッドをApplicationクラスに追加します。 Userクラスをplay.data.Form オブジェクトを定義しインスタンス化しています。 そのインスタンスを返してあげているだけなのですが、返り値がResultになっていて、インスタンス自体okメッソドの引数として返しています。 これはクライアントへのHTTPレスポンスを表し、ステータスコード200ならokのレスポンスを生成するという意味になります。 (余裕があるとき中身も覗いてみよう。。。) 気になるのがrender()ですね。。。 このメソッドがplayのテンプレートエンジンを利用してwebページへのレンダリングを行うことになります。 とりあえずここでlocalhost:9000/userとブラウザに入力すれば image3 こんな感じになるはず、、、 viewの@titleで定義してたh1タグのにはrenderメッソドの第一引数”user infomation”が出力され、フォームも表示された。 とりあえず今日はここまで。。。 全然本題に進まない。。。

Play2.4でMySQLを使う②

一昨日引っ越しを済ませたダフです。 (個人的にはすごく気に入ってる部屋なんだけど、新居に慣れないだけなのか、ベッドがまだ届かないからなのか寝付きがよくないよね。しかもこの部屋は嬉しいことに一人暮らしを感じさせない仕様らしい笑) 前回の続き。。。 前回はactivatorを起動させるまでやったので、実際にMySQLに何かしらを入れてい見たいと思います。

Model

まずはapp/配下にmodelsパッケージを作成しクラスを作っていきます。

User.java

view

実際に値を入力するviewを作る app/viewsにuser.scala.htmlを作成

user.scala.html

controller

controllerを作成 今日はここまでおやすみ〜