VOYAGE GROUP エンジニアブログ

voyagegroup_techのブログ
VOYAGE GROUPエンジニアブログです。

2014年06月

GitHubにあげたコードをブログに貼り付ける方法

こんにちわわわ。ECナビの中の人 @tadasy です。

ブログにコードを貼り付けるとき、みなさんどうしてますか?
貼り付けたコードを見やすくするために、ブログが用意しているシンタックスハイライトの機能を使ったり、Gistで貼っつけたりしますよね。

ところで、僕、今回このブログを書くにあたって、まったく別のネタで書こうとしていたのです。
で、多分に漏れず、ちょっとしたものを作って、コードを貼っ付けようとしたのですが、このブログをホスティングしているライブドアブログにはシンタックスハイライトの機能が提供されていないんです。
なので当然Gistを使うって選択肢になるのですが、ちょっとしたものを作るにしても、Gistで書いたりせずにGitHubにpushするじゃないですか。でもGitHubに上がっているコードってGistみたいにブログに貼っつけることが出来ないんですよね。かと言って、GitHubに上げたものをワザワザGistにコピるのものなんだかなぁと思うじゃないですか。

うだうだ書きましたが、GitHubにあげているコードをブログに貼っつける方法を見つけたので、それをネタにブログを書くことにしました。見つけたのはコレ。


使い方は簡単で、

<script  src="http://gist-it.appspot.com/github/<user_name>/<repository_name>/blob/<branch_name>/</path/to/file_name>"></script>

みたいに書くだけ。
たとえば、
というファイルを貼り付ける場合は↓のように書きます。
 
<script src="http://gist-it.appspot.com/github/tadasy/sample_travis_memcached/blob/master/test/phpunit.xml"></script>

と書くだけ。

では実際に貼り付けたイメージを見てみましょう


こんな感じになります。
それっぽく表示されましたね!

Gistでも貼り付けてみましょう



なんかイケてる感じする...

見た目は、個人的にはGistを貼り付けたほうが好みなのですが、わざわざGistに書き直す面倒臭さを考えれば全然楽ちんです。

というわけでブログ業が捗りますね!

WWDC 2014フィードバック会を行いました

みなさん、こんにちは。
株式会社genesixでiOSエンジニアをやっています坂田(@huin)です。

6月の第1週目に行われたWWDC 2014ですが、みなさん情報のキャッチアップはできていますでしょうか?

例年通り新しいOS、OS X YosemiteおよびiOS 8が発表された今年のWWDCですが、今回の目玉はそれらよりも新しいフレームワーク/APIの追加にありました。Appleのティム・クックCEO自身も基調講演の中で「App Store始まって以来の最大のリリース」と表現していたように、多くのフレームワークが追加されています。

新言語「Swift」なんてその中の一つに過ぎません(笑)

というわけで弊社でもイチ早く新しい機能/APIをプロダクトに取り入れるため、社内向けに勉強会を行いました。

社内フィードバック会の様子


今回は、そのスライドを公開したいと思います。
基調講演およびWWDCのセッションの内容をまとめたもとになります。

社内のエンジニアで分担したところ、全体で170枚を超える長編になってしまいました。

目次を載せましたので興味のある部分を読んで頂いて、
iOSアプリ開発に役立てて頂ければ幸いです。

スライド目次

  • iOS 8 New Features (4P)
  • New APIs and Frameworks (27P)
    • App Extension (31P)
    • New Frameworks (38P)
    • CloudKit (58P)
    • Security and User Privacy (69P)
    • Safari and Web (88P)
  • iTunes Connect and App Store (117P)

Android Studio 0.6.1 でのライブラリプロジェクトのインポート

 みなさんこんにちは。
 android事業本部でshinbashiです。

 僕はAndroid Studioが発表された当初からAndroid Studioを使っていたのですが、もう0.6.1までバージョンが上がっているのですね。なんだか感慨深いです。
 リリース当初はADT(eclipse)でできたアレができない、コレができない、と色々と問題が有りましたが、大分その辺りは解消されたのではないでしょうか。
 今回はその色々解消された問題のなかでもライブラリプロジェクトのインポートの仕方について解説させていただこうと思います。
  ちょっと前まではbuild.gradleのないADTで作られたライブラリプロジェクトなんかは、ADTで一度gradle用のエクスポートするか、自分でbuild.gradleを書く必要があり、さらにsetting.gradleやら利用する側のモジュールのbuild.gradleのdependenciesに記述を追加したり、依存関係が被ってビルドできなかったり・・・などなど。
 難しいことはないんですが、ただインポートするだけなのに結構めんどくさかった気がします。
 いつからかは覚えていないのですが、現在のAndroid StudioではGUIでポチポチするだけでインポートできます!普通ですね!すごいですね!  続きを読む

MongoDBのGUIツールを比較してみた

みなさんこんにちは。
(株)adingoでprivate DMPと呼ばれるcosmi Relationship Suiteの開発をしています。
@tana_raことあらたです。

世の中にはアルファベット3文字が溢れていて混乱しますよね。AWSと広告業界が混ざるとカオスです。
AWSとかEMRとかSSPとか。DMPもその一つですね。
ちなみにDMPはData Management Platformの略です。

ところでcosmiでは、データの管理にMySQLとMongoDBを利用しています。
私は開発時にはMySQLのGUIツールをよく利用するのですが、
MongoDBのGUIツールってあまり聞かないなと思ったので探してみました。
今日は触ってみたMongoDBのGUIツールを紹介してみたいと思います。
基本的にWEBベースの物を利用しています。

触ってみたGUIツールたち
  • phpMoAdmin 1.1.2
  • RockMongo 1.1.7
  • mongo-express 0.18.0 (※) 
  • Genghis 2.3.11
※mongo-expressは最新版では、依存ライブラリのバージョンによって動かなかったため、
現在masterブランチに上がっているものを利用しています。

phpMoAdmin

まずはじめにphpMoAdminです。
名前から分かる通りPHP製です。
phpMyAdminとかphpMyFaqとか似た名前のものがたくさんありますね。
1ファイルで出来ているので、apacheのDocument Rootに配置するか、
PHPのビルトインサーバで利用することが出来ますね。

インストール
$ wget http://www.phpmoadmin.com/file/phpmoadmin.zip
$ unzip phpmoadmin.zip
$ mv moadmin.php /var/www/html/moadmin.php
でインストール完了です。
以下がその画面です。

phpMoAdmin1


何にもせず接続できました。
デフォルト設定で接続ができますが、Configファイルなどはないので
portを変えたり、認証をつけたりすると使えなくなってしまいます。

(無理やりコードを変更することで色々できますが・・・w)
基本的なデータの確認は可能ですが、ユーザ認証とかは無いみたいですね。

RockMongo

次にRockMongoです。これもPHP製。
したがって、phpMoAdminと同様の方法で利用することが出来ます。


インストール
$ wget "http://rockmongo.com/downloads/go?id=14” -O rockmongo.zip
$ unzip rockmongo.zip
$ mv rockmongo-1.1.7 /var/www/html/rockmongo
これで完了です。
アクセスすると以下のような画面が現れます。
RockMongo
ログイン認証もできますが、以下のように
/var/www/html/rockmongo/config.php
の31行目を編集すれば認証を無くすことも可能です。
31 //$MONGO["servers"][$i]["control_auth"] = true;//enable control users, works only if mongo_auth=false
32 $MONGO["servers"][$i]["control_auth"] = false;
するとこんな画面が現れます。

RockMongo2

RockMongoは結構機能が多そうですね。
データの確認も見やすくていいです。

mongo-express
mongo-expressはJavaScript(node.js)製のGUIツールです。
CSSはTwitter Bootstrapを利用しているようで綺麗です。

インストール
$ npm install https://github.com/andzdroid/mongo-express/tarball/master
・・・
$ cd node_modules/mongo-express
$ cp config.default.js config.js
$ vim config.js
デフォルトだとconfig.jsが無いため怒られます。
なのでconfig.default.jsをコピーして使いましょう。
今MongoDBで認証は行っていないのでconfig.jsで認証が必要ないように変更します。
変更しないとConnectionErrorとコンソールに出てきます。

 35 //    adminUsername: 'admin',
 36 //    adminPassword: 'pass',
 37     adminUsername: '',
 38     adminPassword: '',

$ node app
Mongo Express server listening on port 8081
Database connected!
Admin Database connected
以下がアクセスした時の画面です。
mongo-express-find
右のバツボタンを押したらこのレコード消してくれそうだなーと思って押したら
確認なしで消してくれましたw
とてもカジュアルですね・・・(´・ω・`)w

Genghis

最後にGenghisです。
Genghisの読みがわからなくてぐぐったらチンギスハンのチンギスらしいです。
gem installでもできるらしいのですが、
PHPerな私はPHPのビルトインサーバを利用しました。
(色々躓いたわけでは決してないです。)
こちらもTwitter Bootstrapを利用しているのでどことなくモダンな感じです。

インストール

$ wget https://github.com/bobthecow/genghis/archive/v2.3.11.zip -O genghis.zip
$ unzip genghis.zip
$ mv genghis-2.3.11 genghis
$ cd genghis
$ php -S localhost:8080 genghis.php
として、アクセスしたら下のような画面にたどり着きました。

genghis-top


localhostを選択すればlocalhostのサーバにつながります。
その他にもAdd serverとやれば、他サーバのMongoDBにもつなげることが出来そうです。
localhostにつなげてみた画面が以下のようになります。

genghis

Twitter Bootstrapのおかげかとても見やすいですが、
findとinsertくらいの機能しかありませんでした。

まあ見やすければ・・・いいですかねw

全体的な比較
phpMoAdmin RockMongo mongo-express Genghis
Version 1.1.2 1.1.7 0.18.0 2.3.11
言語 PHP PHP JavaScript(node.js) PHP or Ruby
License GNU GPL BSD MIT MIT
Github phpMoAdmin RockMongo mongo-express Genghis
出来ること
データ
コレクション
データベース管理
認証 × △(configファイル利用) ×
他サーバアクセス × × △(configファイル利用)


という感じでしょうか。
データの確認レベルであればphpMoAdmin以外はどれも良さそうだなーと思いました。
MongoDBにはAggregationMap-Reduce機能もありますが、
それら用のなにか特別な機能はなさそうでした。
考えてみたら、結局難しい処理はシェルで打ち込んでしまうと思ってしまい、
個人的にはGUIツールに要求する機能はデータの確認くらいという結論に至りました。

そうすると、データの確認がカジュアルにできる、
mongo-expressはかなりいいなと思います。
(開発環境とはいえ誤って複雑なレコードを消したら泣きそうですがw)

GUIツールは個人に依る部分があると思うので皆さんも試してみるといいかもしれません。
以下に検証に利用したレポジトリを用意したので、
是非みなさん、MongoDBのGUIツールと戯れてみてください。
VagrantとVirtualboxを利用してMongoDBのGUIツールを検証出来るレポジトリです。

https://github.com/tarata/mongo-gui-try


「RubyKoans」で たのしいRubyテスト駆動学習

こんにちは!
VOYAGE MARKETINGシステム本部の @saya_223n です。

私はこれまで、ほぼPHP一本でやってきた新米(ギリギリ)エンジニアなのですが、
この春から扱う言語が変わってアワアワしておりました。

PHPerだった私がRubyistになるにあたって、
とても助けられた学習ツールがあったので、今回はそれをご紹介します。

「RubyKoans」

http://rubykoans.com/

RubyKoansとは、
ユニットテストを利用してRubyの言語仕様を会得することが出来る学習用のコードセットです。


上記サイトからコードをzipでDLしてみると、
中に入っているのは40ほどのユニットテストのファイルその他諸々。

56(2)


ですが、そのテストを実行してみると、全てのファイルがエラーになります。


コードを見てみると…

39(2)


ユニットテストのAssert部分が穴埋め問題のような形式になっているのです!

例えば、上記コードの穴埋め部分には、trueが入りそうですよね。
入れてみて実行すると、テストが通ります!

この要領で、データ型やクラスごとにまとまっているユニットテストをどんどん埋めていくことにより、
Rubyの細かな言語仕様を理解することが出来る、という仕組みです。

==============================

※個人的には、
1つのユニットテストを書いてはテストを回す、というやり方ではなく、

1つのテストファイル(元のテストコードが40-150行くらい)を一気に埋めていき、
1ファイル仕上がった時点で、テストを実行するほうが良いと思います。

なぜなら、頻繁にテストを回しすぎると、コアを理解する前になんとなく穴埋めの解が読めてしまうからです。
(※assert に true 入れてテストがコケたなら、多分 false 入れれば通るよね…というメタ的な解き方が出来るということです)

==============================


ファイル群のうち、「about_xxxx.rb」というファイルはこのような「穴埋めUnitTest」となっており、
それ以外には「xxxx_project.rb」に関連するファイルが存在します。

これは、穴埋めではなく出来上がったUnitTestのファイル群となっており、
このテストが通るようにコードを自由に書きます。

58

例えば、上記、 about_triangle_project.rb というテストに関するものならば、
予め用意されている triangle.rb というファイルの中に、
三角形の判定プログラムを自由に実装し、
その後 about_triangle_project.rb のテストを実行して正しいプログラムになっているかを見るという塩梅です。

これに関しては、よくいうTDD(テスト駆動開発)そのものと言って良いと思います。


==============================


RubyKoansを利用して勉強をするメリットは、大きく3つあります。

1つは、本を読み写経しながらの勉強では、ついつい読み飛ばしがちな、

細かな言語仕様についてもユニットテストが存在するということ。

(例えばsymbolとstringの違いなど)


2つめは、テストによってこれまで自身が扱ってきた言語や経験によって偏りがちな

「苦手部分」を炙り出せること。


3.つめは、テストが通って行くことに寄る快感&達成感です\(^o^)/

(そのページの学習ドリルが終わったら達成シールを貼れる、みたいな小学生レベルの気持ちよさですw)


58(2)

テストファイルの数は結構沢山ありますが、
全てに取り組まなくても身になりますし、ぜひ挑戦してみて頂ければと思います。

ありがとうございました!
記事検索
QRコード
QRコード