Scala Conference in Japan 2013 にて開催しましたコーディングチャレンジの結果を発表致します。
■ 優秀賞
グリシンさんからご応募いただきました設問3に対する回答が優秀賞に選ばれました。
https://github.com/KirillGrishin/Takashi/blob/master/src/main/scala/Takashi/RoutesFinder.scala
Scala に精通されているのが良く分かるコードで、抽象化もとても綺麗にされている点が高評価となりました。「Regexでのunapplyの使い方が勉強になりました」という感想も挙がっています。グリシンさん、おめでとうございます。
■ 最優秀賞
優秀賞は西岡さんからご応募いただきました設問1に対する回答が選ばれました。
https://github.com/nisshiee/takashi/wiki/Problem-1
詳細は回答を直接ご覧いただくとして、計算量が多いという問題の特性を考慮してAkkaベースの分散処理を検証し、Scalazを利用してコードを簡略化し、と見所満載な回答でした。評価に参加した弊社エンジニア全員一致での最優秀獲得となりました。西岡さん、おめでとうございます。
最優秀賞の西岡さんには賞品の iPad mini をお送りしました。
グリシンさん、西岡さん、そして、コーディングチャレンジにご参加いただきました全ての方に厚く御礼申し上げます。
Archive for 2013
コーディングチャレンジ結果発表
コーディングチャレンジに関するお詫び
Scala Conference in Japan 2013 にてコーディングチャレンジを配布しましたが、そこに記載しました応募用のメールアドレス codingchallenge@enrapt.jp に対して外部からの投稿が出来ない状況になっておりました。原因は Google Group の設定ミスです。ご応募いただいた方にはご迷惑をお掛けして大変申し訳ございません。
コーディングチャレンジに関して下記の通り変更を行います。既に応募いただいた方はその期間中に再度ご応募ください。
旧: 応募期間 2013/03/11(月)
新: 応募期間 2013/03/18(月)
Scala Conference in Japan 2013 に参加しました
2013/03/02 に開催された Scala Conference in Japan 2013 にスポンサーとして参加させていただきました。200 名弱の Scala 愛好家(?)が集まっただけのことはあり、会場は一日中熱気に溢れていました。
主立った技術としては Akka, Play Framework そして Scala 2.10 が紹介され、また各社の Scala による事例や知見が多数紹介されました。まだ Scala を導入して間もないところも多く皆さん苦労しながらプロジェクトを進めている様子でしたが、そういった状況でも Scala の威力を実感されているという紹介もあり Scala の今後の広がりを感じることができる内容でした。
リクルーティングセッションでは弊社も企業紹介をさせていただきました。実案件への Scala 導入という面ではまだまだではありますが、社内プロジェクトや社内ツールはほぼ Scala で実装しています。Scalaに限らず、テクノロジーでエンタープライズ開発を変えていきたいと思う方は是非 jobs@enrapt.jp までご連絡ください。

運営の皆様、スピーカーの皆様、弊社ブースにお立ち寄りくださった皆様、懇親会でご一緒させていただきました皆様、その他の多くの皆様のおかげで Scala の魅力を再確認できた一日となりました。ありがとうございました。
主立った技術としては Akka, Play Framework そして Scala 2.10 が紹介され、また各社の Scala による事例や知見が多数紹介されました。まだ Scala を導入して間もないところも多く皆さん苦労しながらプロジェクトを進めている様子でしたが、そういった状況でも Scala の威力を実感されているという紹介もあり Scala の今後の広がりを感じることができる内容でした。
リクルーティングセッションでは弊社も企業紹介をさせていただきました。実案件への Scala 導入という面ではまだまだではありますが、社内プロジェクトや社内ツールはほぼ Scala で実装しています。Scalaに限らず、テクノロジーでエンタープライズ開発を変えていきたいと思う方は是非 jobs@enrapt.jp までご連絡ください。

運営の皆様、スピーカーの皆様、弊社ブースにお立ち寄りくださった皆様、懇親会でご一緒させていただきました皆様、その他の多くの皆様のおかげで Scala の魅力を再確認できた一日となりました。ありがとうございました。
本ブログではこの後 Scala Conference で紹介された Akka などの技術をご紹介していきます。また、Scala Conference で配布しましたコーディングチャレンジの結果も本ブログにて逐次ご報告していきます。ご期待ください。
SauceLabsの紹介
Webの自動テストでSeleniumは便利ですが、Seleniumを実施する時に困るのはサーバーを用意する所だったりします。
普段はローカルでSeleniumStandaloneを立てて、MacならFireFoxを入れて実施したり、chrome-driverを使ったり、IEの為にVMを立てたり…と環境周りの準備が面倒。かつ、ブラウザが立ち上がった時にフォーカスを奪われたりしてストレスに…。
CIサーバーをCloudBeesに置いている弊社ではローカルのSeleniumサーバーを使うのは少し面倒…そんな時に役に立つのが SauceLabs です。
Scalaのマクロを3分で知る
忙しい人のためにScala 2.1で取り入れられたマクロを3分で知るための手順を用意しました。
では時間もないので早速、新しい作業ディレクトリを作ってください。
新しく作った作業ディレクトリを以下の構成にしてください。
ファイルはgistのコードが下にあるのでそこからコピペで取ってきてください。
以下のコマンドでディレクトリ作成からファイル作成まで完了させてください。
(!)作業用ディレクトリの下で以下のコマンドを実行してください。
コードの解説を簡単にしてあるので参考にしてください。
では時間もないので早速、新しい作業ディレクトリを作ってください。
新しく作った作業ディレクトリを以下の構成にしてください。
ファイルはgistのコードが下にあるのでそこからコピペで取ってきてください。
.
├── project
│ └── Build.scala
└── src
└── logger
├── macro
│ ├── Logger.scala
│ └── LoggerMacros.scala
└── main
└── Main.scala
または、コピペも面倒だという人のためにバッチを用意しました。以下のコマンドでディレクトリ作成からファイル作成まで完了させてください。
(!)作業用ディレクトリの下で以下のコマンドを実行してください。
curl -L https://gist.github.com/sndyuk/ab871010a7e77ddd6420/raw/027d93b3463006dca3d58fe8b928c7666b894940/install.sh | sh
開発支援ツールの紹介 - GreenHopper
ENRAPTでPMをやっている関口と申します。
僕は普段は開発チームの側面支援として、開発以外のコトに時間を割いているのですが、このブログでは開発に密接に関係している開発支援環境についていくつか紹介していこうと思います。
初回となる今回はもっとも利用頻度の高いAtlassianのJIRAについて紹介します。
Atlassian JIRA
ENRAPTでは、開発のタスク管理にAtlassian OnDemandを使っています。これは、JIRAのホスティングサービスで、面倒なセットアップの手間無く、また良く使われるプラグインなどもあらかじめインストールしてあるものです。10人までなら10$/月 という価格も、1ヶ月の試用期間というのもすぐ始めて、合わなかったら使うのをやめられるのでお手頃です。
BTSというと、他にもRedmineやTrac、Backlogといったものもあります。何故JIRAを利用しているかというと、管理が楽(OnDemandの場合)というのと、カスタマイズの豊富さやGreenhopperやBonfireといった一緒に使えるツールの魅力があります。
GreenHopper
GreenHopperはJIRAにアジャイルプロジェクトの支援機能を付け加えるアドオンです。
おおざっぱに言えば、JIRAのチケットをストーリーやタスクと見なして、パーキングロットで管理できるようにしたものです。
Scrumではよく付箋でストーリーやタスクをオフィスの壁にはったりしていますが、それをそのままWebでできるようにしたもの、と考えるとわかりやすいです。
ENRAPTではプロジェクトの初期コンサルティングから開発までを一貫して行っていますが、そのためお客様先に訪問していることが多く、なかなかプロジェクトメンバーが一箇所に集まることができません。
Daily Scrumなどはhangoutで実施することも多いのですが、そのときにGreenHopperを見ながら話をしたり、コメント書いたりしています。
GreenHopperが紙に比べていいところもあります。パーキングロットに表示するチケットを検索条件で絞り混むことができ、「ビュー」のような使いかたができるのです。
特にエンタープライズのシステム開発では様々な局面があり、課題管理やお客様とのQA、業務分析・設計の工程管理、オフショア作業管理など開発以外のタスクも山のようにあります。これらを全部JIRAに投入しつつ、適切なビューを使い分けることで必要のない情報は表示しないようにできるのがGreenHopperの便利なところです。
いくつか便利な機能を紹介していきましょう
Epic
最近追加された機能で(新機能がすぐ使えるのもSaasならではです)、テーマ毎にストーリーを色分けすることができます。タスクに分割する際、すぐに画面に入りきらないほどのタスクの数になってしまい、関連しているタスクがわからなくなりがちなのですが、Epicを使うと視覚的に整理できます。
Quick Filter
Quick FilterはBacklogやパーキングロット中のチケットを任意の条件でフィルタ出来るようにします。これを使うと、自分のタスクだけをみたり、あるコンポーネントに関連するチケットのみを表示したりすることができます。壁に貼った付箋と違いGreenHopperの画面は狭いので、Filterを工夫することで画面を有効に使うことができます。
なお、JIRAの超便利な機能として、こういった検索条件を個人でいくつも持てるほか、他のメンバーに公開して使ってもらうことができます。これはGreenHopperや他のアドオンでも一貫して提供されているJIRAの基本コンセプトで、非常に強力で便利です。
Reporting
バーンダウンチャートや、ベロシティのグラフなど、標準的なレポートが備わっています。特にベロシティのグラフは、「遅れているからといって仕事を一杯積んでもはかどらない」ことが一目瞭然にわかってしまい便利でした(笑)
去年からGreenHopperを使い始めて、今ではほぼ全てのプロジェクトでGreenHopperを使っています。ちょっと取っつきにくいところもありますが(日本語マニュアルがないので)一度プロジェクトで使ってからは開発者自身で活用していて、管理者として作業するのはプロジェクトの作成くらいになりました。
Popular Posts
-
Scala Conference in Japan 2013 にて開催しましたコーディングチャレンジの結果を発表致します。 ■ 優秀賞 グリシンさんからご応募いただきました設問3に対する回答が優秀賞に選ばれました。 https://github.com/KirillGri...
-
Scala Conference in Japan 2013 にてコーディングチャレンジを配布しましたが、そこに記載しました応募用のメールアドレス codingchallenge@enrapt.jp に対して外部からの投稿が出来ない状況になっておりました。原因は Google ...
-
Javaでオブジェクトをバリデーションする仕様にBean validationがあります。 デフォルトのBean validationでは、 ”nullでないこと” 、 ”桁数が9桁以上であること” など、最小単位のバリデーションしか用意されていませんので、ある程度複雑なア...
-
先月終わったばっかりのエンタープライズ向けのプロジェクトで最近話題になっているシングルページアプリケーションを作ったので、感想をシェアしたいと思います。 シングルページアプリケーション(SPA)とは? シングルページアプリケーション(以下:SPA)という言葉、このペ...
-
今回はAltJsとして弊社がよく利用するTypeScriptにおけるthisについておさらいします。 基本的にはJavaScriptと変わらない、、、のですが。 TypeScriptとJavaScriptの違いとして、関数の定義方法によるところがあります。 アロー関数式...
-
イントロダクション ウェブアプリケーションは多くのケースで以下のようにサーバと同期します。 ボタンクリック時に画面で更新された値をサーバに送り、サーバから必要な情報を取得する スクロール時に表示に必要な情報を取得する ページ遷移時に次のページに必要な情報を取得する ...
-
イントロダクション まずは、私達がどのようにTypeScriptを使ってきたかを簡単に紹介します。 2012年の終わり頃から最近までの約1年半TypeScriptを使ってあるプロダクトの開発をしてきました。 作っていたものは、SPA(シングルページアプリケーション)で、...
-
BEMの採用でCSSとHTMLの開発プロセスの改善をする 私はCSS/HTMLの開発の際、構成管理をどのようにすれば良いか考える機会がありました。どんなコードベースでも以下の点の改善ができれば、開発のプロセスがもっと早く、もっと簡易に、もっと確かになるためです。 再利用...
-
忙しい人のためにScala 2.1で取り入れられたマクロを3分で知るための手順を用意しました。 では時間もないので早速、新しい作業ディレクトリを作ってください。 新しく作った作業ディレクトリを以下の構成にしてください。 ファイルはgistのコードが下にあるのでそこから...
