♥OSS

学生向けに勉強会や開発イベントを開催していたら、♥OSSになった人がやったことや思ったことなどを書くことにしました

プログラミングが好きな学生のためのリーダブルコード勉強会を開催しました!

前年と同じく,すでにクリアコードさんより開催レポートを書いて頂いている中で(主催した立場として恥ずかしい..),運営側からのレポートを書きます.

SEゼミ2015 - リーダブルコード勉強会を開催 - ククログ(2015-06-08)

その前に,参加された学生の皆さま,メンターの皆さま,採用ご担当の皆さま,本当にありがとうございました!!
お陰様で,前年に続き,盛況に(メンター含め総勢82名),好評に(参加満足度8.5点/10点),終了することが出来ました!!!! (天気も曇り雨の予報が当日は晴れた!!)


誰が参加したのか

f:id:sezemi:20150609193244j:plain

2015は1回だけの開催ということもあり,49名の学生の方々(出席率は83%)にご参加いただき,手を動かす形式の勉強会としては比較的大きなサイズとなりました.

また,前年と同様に開発言語毎にグループを作って,同じ課題の実装に取り組んで頂いたのですが,今年は前年より4言語増えてさらに多様になりました.
Python / C / C++ / PHP / Java / PHP / Ruby / Node.js / Swift / JavaScript (Scalaは残念ながらペアリング出来ず他言語へ)

人数が増え,言語グループの種類が増えると,個々のサポートは行き届かず破綻するのですが,今年はOSS開発をテーマにしたことで,本当に多くのOSS開発積極推進企業様にスポンサード頂き,それに伴い,"総勢25名もの超絶優秀なメンター" にご参加いただけ,逆に個々のサポートが手厚くなりました!!
(OSSコミュニティは本当に温かい!!!!!!!!)

なお,トレーナーは前年と同じく,学生の方から "ゆるいプレゼン" という評価(イイ感じの評価だと思います!)の須藤さんに登壇いただけました! (クリアコードさんは全員温かい!!!!)

また,学生とメンターと採用ご担当を含めると78名もの方々を支えた学生運営サポーター2名+弊社スタッフ1名に大感謝です!!


勉強会で何をしたのか

1日のプログラムならびに課題はクリアコードさんの開催レポートに詳細に書いて頂いているので,ここではランチなど補足的なものを.

無料ランチ

フリークアウトさんにお弁当を振る舞っていただきました!!

f:id:sezemi:20150609193318j:plain

スポンサー企業のLT

主にやっていることのご紹介とサマーインターンについて紹介頂きました!
(ちなみに今回のイベントでの成果により,幾つかの企業様で選考をショートカット出来そう! 各社様のご期待とご厚意がうれしい!)

 mumoshu さん from CrowdWorks "自分で創る最高のUX"

 repeatedly さん from Treasure Data "サマーインターンプログラム" 

 kohei さん from FreakOut "FreakOut Engineer Summer Job" 

 bash0C7 さん from pixiv(pは小文字!) "pixiv 2015 SUMMER BOOT CAMP" 
 
 mika さん from cookpad "夏の技術職インターンシップ" 

 sunaot さん from SMS "医療がテーマのハッカソン"(スイマセン,写真を撮ってなかったのでタイトルが分かりません..)

 kawahara さん from Rakuten "楽天インターンシップ" 

f:id:sezemi:20150609193346j:plain

参加無料の懇親会

ピザ屋で呼ばれることが多くなってきた運営がピザ Lサイズ 30枚を提供した結果,スグに無くなりました!! 本当に申し訳ありません!!(一口にLサイズと言ってもピザ屋さんによって違うよ、これ豆な。)あと,各言語で記念撮影しました!

f:id:sezemi:20150609193403j:plain


 

どこでやったのか

フリークアウトさんの "ヒルズガレージ" をお借りすることができました!
天井が高く、また抜け感がハンパなく,またライブハウスさながらに,ステージやアンプ,音響のやつ(ブース?),DJブースに,ドラムなどがある他に,ビリヤードや,バスケットゴールもあったりと,本当に気持ちのよい空間でした!!

f:id:sezemi:20150609193424j:plain


開催した結果

そして,最後にアンケートにお答えいただき,プログラムは終了したのですが,前年と同じく,高い評価をいただけました!!
 平均満足度 8.5点 / 10点満点

詳細なアンケート結果

 SEゼミ|リーダブルコード勉強会2015 参加アンケート 

勉強会の感想など(上記より一部抜粋 //良いものと改善につながるもの)

"今までわからなかった気付きを得ることが出来ました。夏休みにOSSのコードをガンガン読む生活をしていきたいと思います。"

"実際に他人のコードを読む機会は少ないので、このような場で読めて、リーダブルな知識を得られたことは貴重な経験になりました。また、様々なメンターの方のお話は自分が知らなかった開発文化やテクニックを知れて面白かったです。" 

"ひとりでコードを書いていて、読む人にとって読みやすいコードを書こうと意識していても、限界があるように感じました。 実際に自分が他の人のコードを読む立場になって、リーダブルなコードは、見つけようと思えばたくさん見つけられると感じました。 仲間同士でコードを見合うこと、メビューの大切さを感じたので、コードを見せ合う習慣ができればいいなと思いました。"

"コードを交換して書き続けるというのは、かなり面白いアイデアだと思いました。 ある部分では実務をシミュレートできていて、またある部分では今回の目的であるリーディング力の向上のきっかけが掴めるタスクでした。"

"もっとごちゃごちゃしたソースコードの時こそどうしたらいいかわからなくなるのでそこを勉強したかった。 Swiftに向かない課題だった(しかたないですが)。"

"スキルレベルに大きなばらつきがあったためレビューをするにしても、非常にしづらいものがあった"

"GitHub勉強会を先にやったほうがいい" 

参加された方のレポート(参加学生&メンター)

リーダブルコード勉強会に参加してきました. - 未来永劫 (参加学生)

SEゼミ、リーダブルコード勉強会のフォロワー参戦 - jfluteの日記 (jfruteさん|Mentor from BizReach) 

# 書いたよ,という方はぜひTwitter(メンションや#sezemi)/Slack等でご連絡下さいませ!


まとめと予告

今年の夏のテーマにちなんだ標語,OSS開発で最高の夏にしような」の第1弾のリーダブルコード勉強会を,多くの学生の皆さま,多くのスポンサー/超絶優秀なメンターの皆さま,クリアコードの皆さん,学生運営サポーターなど総勢82名が参加し,無事に終了しました!

次回は GitHub勉強会 @cookpad ということで6/15で申込を締め切りし,6/20(土)に開催します!!! (まだ間に合いますよー)

また,勉強会で身につけたもので,須藤さんのライブコーディングならぬライブコントリビュートを真似て,実際にやってみるOSS Hack 4 Beginners (6/27) ,超絶優秀なメンターのサポートのもと,OSSコントリビュートで成果を出す OSS Hack Weekend  (7/11-12) と開催して参ります!!

 

リーダブルコード勉強会で参加して良かったなと思われた皆さま,ぜひぜひ周りのプログラミング好きな仲間とお誘い合わせの上,次回以降もお申込お待ちしております!!!

 

f:id:sezemi:20150609193443j:plain

学生向け勉強会/開発イベントならではのこと|学生の皆さまへ

先日、OSS Hack Weekend ならびにリーダブルコード / GitHub / OSS Hack 4 Beginnersという3つの勉強会へのスポンサー企業ならびに学生の開発をサポート頂くメンターの方々を更新しました!

スポンサー企業さま (5/20現在) *まだ更新します!

f:id:sezemi:20150520165202p:plain

メンターの皆さま (5/18現在) *まだご調整が続いているので随時更新します!

f:id:sezemi:20150520165221p:plain

このスポンサーというのは、デブサミYAPC、RubyKaigiなどのような全エンジニア対象のカンファレンスでは、ブランディング/リクルーティングなどの目的で一般的になりましたが、学生向けの技術的な勉強会やイベントにスポンサー頂くというのは、世界的なプログラミングコンテストを除くと、まだまだ珍しいことです。(実際、昨年のスポンサーは楽天、クックパッド、DeNAの3社様のみでした)

そういった中で、これだけの企業様にご参画頂き、また、これだけのメンターの方にサポート頂けるというのは、リーダブルコードやGit/GitHubなどOSS開発で必要なスキル(=現場の開発でも必要なもの)を身につけようとする学生の方々、OSS開発に携わろうとする学生の皆さまへの、各企業の期待の現れだと思っています。

参加することの醍醐味

それと同時に、学生の皆さまは、プログラミングが好きだ! ワイワイしたい! OSSコントリビューターにおれはなる! 本がもらえる! など色々なモチベーションで参加されることと思います。

上記のように、学生を対象としたTechな勉強会や開発イベントがまだ少ない状況だからこそ、昨年も多種多様なバックグラウンドをもった学生同士の繋がりが出来ていました。これは運営側としても開催して本当によかったなぁとつくづく思うところです。
(特に手を動かすので、終わったあともハマったりしたときのことで盛り上がっていて羨ましい限りなんですが)

今年は、さらにバラエティに富んでいて、
例えば、得意な開発言語ではC, Java, C++, Swift, Ruby, Python, PHP, Scala, Haskell, Node.jsなどなどに加え、注目のOSSRails, Django, Ansible, MySQL, fluentd, Docker, Serverspec, itamae, coco2dx, Anemone, PyPy, Emacs, Atomなどなど本当に沢山挙げられていて、どんな方がお集まりになるだろうと運営する側も楽しみにしています!
(昨年1名のみだった女性のご参加も、今年はうれしいことに比率が上がり、全体の20%近くいらっしゃいます!女性同士の繋がりも、もっと広がるといいなぁ!)

OSS開発 -> プロダクト開発という導線

今回のテーマは、OSSプロジェクトへのコントリビュートを通じて実力を試そう!としているので、あくまでユーザーはエンジニア寄りであり、だからこそ挑戦しがいがあるというのも一部ありますが、その先には、そのOSSを使った一般ユーザー向けのプロダクト開発があります。

学生の皆さんには、このOSS Hack Weekendが終わったあとは、実際にOSSの美味しいところをどう取捨選択して、どのようにユーザーに価値が届けられているのか、OSS開発を推奨する各社のインターンを通じて体験いただければ、もっと違った視点でOSSを眺められて、さらにコントリビュートの機会が増えると思っています。
ここでは、そんな各スポンサー企業様のインターンをご紹介します。

 

クラウドワークス "自分で創る最高のUX"

engineer.crowdworks.jp

OSSのように開発するモダンなスタイルはもちろん、CTOの大場光一郎さんをはじめ、OSSコントリビューターが多いので、テッキーなテーマと思いきや、テーマは「ユーザー体験(UX)」です。
UXというと漠然としますが、その一方でUXを突き詰めると、最初に表示する項目一つとっても、技術無しでは上手くいかないものです。
そんなクールでない部分を自身で見つけてきて、技術的に解決する内容になるのではと思っています。
実際、自分で考えたユーザーの問題とその解決がプロダクションにマージされると、OSS開発とはまた違った楽しさが感じられるかも知れませんね。
(エントリーにはAPIへのリクエストを要求されていて、遊び心のあるテッキーな文化がうかがえます)

 

フリークアウト "FreakOut Engineer Summer Job"

www.fout.co.jp

Hadoop、HBaseにHive、Sparkなどなど、旬のビッグデータ処理環境を活用し、その処理スピードがそのままビジネスに貢献するエンジニアリング重視の企業らしく、インターンでも同じことが体験できます。(ex. Course1: Bigdata Algorithm Development)
レベルは高いけど、「速さこそ正義」な開発文化の面白さが感じられるのではと思います。
-> とは言え、前年のインターンの場合、はじめてHadoopに触れるという方も参加され、実際、成果を出し、さらにそのままOSSにコントリビュートしようとした方もいたそうです
-> そんなOSSを存分に活用している企業なので、オープンソースコミッター手当というユニークな制度もあります(OSSコミッタも沢山いらっしゃいます!)
-> OSS Hack Weekendシリーズではどんな方がメンターとして参加されるのか、運営側も楽しみにしています!!(naoya_sushiの裏話も聞けるかも)

今後、スポンサー企業のご紹介やメンターのご紹介の更新はもちろん、インターン情報も紹介して参りますので、ぜひお楽しみに!

 

では、日本一、リーダブルコードとGitHub実践入門を買う企業(一応、翔泳社のグループですが)になるべく、引き続き、勉強会のお申込みお待ちしております!!

f:id:sezemi:20150520171708p:plain

GitHubでライブラリを公開したら★300以上がついて海外からも注目された学生にインタビューしてみた!

前年開催したリーダブルコード勉強会やアプリコンテストに参加いただいた大学院生 kentya6 (Kengo Yokoyama) · GitHub さんが、Swiftで作った以下のライブラリをGitHubで公開したところ、★300以上ついた! というお話を聞きつけ、その経緯やどんなことが起こったのか、インタビューしてきました!

github.com

-まずは自己紹介ということで、普段行っている研究や開発で、どんなことをされているか、教えてもらえますか?
私の在籍している 筑波大学高度ITコース では、研究ではなくPBL形式のチーム開発を行っていて、顧客の要望をヒアリングして実装に落とし込み、最後に納品するというシステム開発を行っています。
修士2年になってからは別のプロジェクトが始まりましたが、修士1年では施設内ナビゲーションアプリCampusAR を作成していました。
(補足: CampusAR は幾つかのアプリコンテストで表彰されていますe-ZUKAスマートフォンアプリコンテスト2014でグランプリを受賞 | enPiT BizApp × 筑波大学

-開発では普段どのような言語やツールOSSを使ってらっしゃいますか?
言語としては、iOS開発でSwiftObjective-CAndroid開発でJava、 Web開発でHTML5、CSS3、JavascriptPHPScalaを主に使っています。
ツールとしては、Yeoman, Gulp, npm, Bower, CocoaPodsなどで色々自動化しています。また、画像はImageAlphaやImageOptimなどを使って容量を削減してから開発に使ってます。(WebPやBPG形式にもチャレンジしたいです。)

OSSは、AngularJS, Angular-Material, TwitterBootstrap, AFNetworking, SwiftyJSON, Volley, GSONなど、あとはインフラ周りでVagrantやDocker、Ansibleなども使ってます。

 

自作アプリと同様のものがOSSで公開され、バザール形式の開発でどんどん高機能化していくところを見て、OSSの魅力を感じた

-そもそも、このライブラリを作られたモチベーションはどういうものだったのでしょう?
2011年にGPUを使った自作のリアルタイム画像処理アプリ RECamera をAppStoreにリリースしたのですが、2012年に BradLarson/GPUImage · GitHub というOSSGitHubに登場しました。

当時は「競合が出てきたけどまだ大丈夫だなー」と余裕があったのですが、1・2ヶ月経つと多くの開発者がGPUImageにコミットするようになり、あっという間にRECameraで書いてきたコードよりも高機能なライブラリができあがっていきました。

このときにOSSの強さと魅力を実感したことで、前々から私もOSSとして何かライブラリを公開したいとは思っていたところ、去年の夏頃、とあるインターンシップで自身のプロダクトをブラッシュアップするという機会があり、このライブラリを作成しました。

-まさに「伽藍とバザール」を、身をもって体験されたのですね。
このライブラリの開発にはどの程度の期間かけられたのでしょうか?

インターンの応募用に開発して、その期間は、構想2日・実装1日ってとこです。電車で移動時などの隙間時間でやってました。

-では、そのライブラリをGitHubで公開しようと思ったモチベはどういうものだったのでしょうか?
ここ数年のGitHubの利用者数や、私自身が今までGitHubを使っていた(といっても当時は気になるリポジトリに★をつけたりクローンして実行するだけでしたが)こともあり、OSSとしてライブラリを公開するなら、まずGitHubだなーと思っていたので、公開する場所はGitHubしか考えていませんでした。
また、そろそろ私が★をつけるのではなく、★をつけられる側になりたいという思いがありました。

ライブラリ公開後、AppleGoogleSkypeCookpadなどのエンジニアが★をつけてくれて、海外からもオファーがきた!

-★をつけられる側になりたいとはいいですね。
実際にライブラリを公開後、時系列で、どのようになりましたか?

リポジトリを作成して公開した当初は、特に誰からも注目された様子はなく、友達の★が1個つく程度でした。
ですが、今回作成したライブラリはiOSということもあり、最初から CocoaControls
Custom Controls for iOS - Cocoa Controls での掲載を考えていました。
そして1~2週間後に審査が通り、掲載されたところ、そこからユーザがきて★が増えていきました。

授業の休み時間毎に★がどんどん増えていき、テンションがあがったのを覚えています。

CocoaControlsに掲載されて1週間くらいは毎日★20ぐらい増えていて、多い時は一日で★60ぐらい増えたりもしました。
2~3週間もすると★は200個程になり、GitHubSwift部門でトレンド一位をとったり、海外のブログQiitaの記事 でも紹介されるようになりました。
1ヶ月もすると★は300個程になり、iOSBytesというPodcastで紹介されたり、StackOverflowでも 投稿 されていたりするので、世界のどこかのiOS開発者が私のライブラリを使ってくれています。

公開から半年たった今では★370を超え、GitHub AwardsのSwift部門で日本6位、世界52位になってます。

また、海外の会社から一緒に開発をやらないかと誘われたり、フリーランスの招待などが届いたりしました。あとGitHubで公開しているアドレスへのスパムメールも増えました(笑)

-海外からオファーがくるとか、GitHubに世界920万人の開発者がいることを感じますね。ちなみに、★が300以上つくと、どんな気持ちになりましたか?
まずは素直に嬉しいです。また、300以上の★の数や、Issueが飛んでくることで、作成したライブラリを使ってくれている人がいることを実感します。
ですので、もっといいライブラリを作ろう!という気持ちになります。

また★を付けてくれた人の中にはAppleGoogleSkypeCookpadと所属が書かれていたりして、そういう人達からも★をいただけたことがとても嬉しかったです。

公開するにあたって、READMEを充実させ、読みやすいコードを意識した

-公開してからライブラリが使われるように工夫した点はありましたか?
★が多くつくことで、多くの人に見られているという実感がわき、読みやすいコードを書こうという気持ちがより強くなりました。なので、Web上にいくつかあるSwiftのコーディング規約に則ってコードを書くことを意識するようになりました。

また、GitHubで公開するにあたり、READMEを充実させることを第一に考えました。
内容が分からないライブラリを毎回クローンして手元のPCで実行して初めて結果が分かるよりは、ライブラリのページにきた段階で全容を把握できたほうが第三者から見て分かりやすいと思いました。

なので、まずREADMEにデモ用のGIFアニメーションを置き、さらにライブラリでできることの機能一覧、ライブラリの使い方、インストールの仕方を書きました。また、今後開発していく内容も書いたりしました。
(補足 この記事 わかりやすいREADME.mdを書く | SOTA を参考にしていました。)

また、ライブラリのデザイン面も意識しました。様々なアプリのデザイン案投稿サイトなどを見ていると、グラデーションがかかった半円などのプログレスバーを多く見かけました。今回開発したライブラリはグラデーションやプログレスバーの形状指定を1行で簡単に指定できることをアピールポイントとしました。

ちなみに、一度OSSとしてライブラリを公開すると、次は何を公開しようかという気持ちが自然と芽生えてくるようになります。
今では、普段の開発からライブラリ化できるところは切り離し、GitHubに公開するということを考えています。既にいくつかライブラリのストックはあるので、準備ができ次第新たなライブラリを公開する予定です。

現在、注目しているOSSプロジェクトとコントリビュート方法は?

OSS活動に浸かりつつあるkencha6さんが今、注目しているOSSプロジェクトはありますか?
OSSプロジェクトでは、
ResearchKit/ResearchKit · GitHub
angular/material · GitHub
atom/atom · GitHub
facebook/react · GitHub
GoogleCloudPlatform/kubernetes · GitHub
などです。

特にFacebookが公開しているプロジェクトでは
facebook/react-native · GitHub
facebook/hhvm · GitHub
などが興味深いです。

あわせて、mixiのトレーニング系OSS や、デンキヤギ株式会社の就業規則をGitHubに公開する といった動きもいいなと思います。

-挙げていただいたOSSプロジェクトに対して、どんなコントリビュートをお考えですか?
大体以下の順序でやっていけたらと思っています。

  1. コメントの誤字脱字などの修正
  2. マジックナンバーを無くすなどの簡単な修正
  3. 冗長な部分をリファクタリング
  4. この3つをやっていくなかでプログラムを把握して、新機能をコミット

-お手本のようなコントリビュート方針、ありがとうございます!!
最後に、今後どんな開発や技術領域に携わっていきたいとお考えですか?

世の中で広く普及する「前の」分野の開発をしていきたいです。
最近だとIoTが注目されてますが、その分野にもとても興味があり、実際に iOSからLED電球をいじったりBLE - スマートLED電球をiOSから制御してクリスマスな雰囲気を演出する - Qiitaもしています。
また、昨年のSEゼミさんの ウェアラブルガジェットパーティー でGoogleGlassアプリを開発できたことは、まさしく私がやってみたかったものの一つでとてもいい経験でした。

携わっていく技術領域としては狭い範囲では特に決めておらず、まずはネイティブ領域を一番の得意分野とした上で、Web系やインフラ周りもやっていきたいです。

-G.W.中だったにも関わらず、ご協力ありがとうございましたー!!
(インタビュー終わり)


SwiftiOSそのもののオープンソース化は予定がない現状ですが、先日の Rebuild: 88: Five Years Of Terrible Coding (Brian Gesiak) でもSwiftのテスティングフレームワーク、Quickの作者が登場され、周辺のOSSプロジェクトの状況をお話されていたので、本体はOSS/フリーソフトでなくてもOSS活動できる時代になりました。


というわけで、学生のOSS活動に関するインタビューはいかがでしたでしょうか?

私どもは今回のインタビューを聞いていて、先日、YARV等の開発者・笹田耕一さんからOSS Hack Weekendシリーズに参加される学生の方々に向けていただいたメッセージと、ピタリ符合していたことに感動していました!

OSSの世界には、興味深い課題がたくさんあります。
そして、OSSへの貢献は、世界中の利用者へ、すぐに届きます。
それはつまり、皆さんのコードが、
世界を(ちょっとかもしれないけど)変えるということです。
これまで学んできたことを活かしてみませんか?
世界はあなたの挑戦を待っています。”

Ruby 処理系開発者
株式会社セールスフォース・ドットコム、Heroku SMTS
笹田耕一 さま より-


OSS開発に興味のある学生の皆さま、OSS開発のお作法を知る3つの勉強会、リーダブルコード / GitHub / OSS Hack 4 Beginners と、実際にOSSプロジェクトに対してコントリビュートする2日間の開発イベント、OSS Hack Weekend の公式サイトを先週4/27よりオープン&受付開始していますので、ご参加ぜひぜひお待ちしております!

[勉強会]
プログラミングが好きな学生のためのリーダブルコード勉強会 2015 | SEゼミ
プログラミングが好きな学生のためのGitHub勉強会 2015 | SEゼミ
プログラミングが好きな学生のための勉強会 OSS Hack 4 Beginners | SEゼミ

[開発イベント]
プログラミングが好きな学生のための成果発表 OSS Hack Weekend | SEゼミ


また、もしOSS活動をされている学生の方が周りにいらっしゃれば、インタビューしたいと思っていますので、自薦他薦問わず、ぜひお声掛けくださいませー!

伽藍とバザールを読んで,まつもとゆきひろ:ネットを支えるオープンソース〜ソフトウェアの進化 という講演に行ってきた

f:id:sezemi:20150420174604j:plain

前回のエントリーの通り,OSSに関する開発イベントや勉強会を行うにあたり,伽藍とバザールを読んで,その背景となる文化を感じようと思い,その集大成として,

まつもとゆきひろ:ネットを支えるオープンソース〜ソフトウェアの進化 | Peatix

という講演に参加してきました.
# ハッカーと画家 も読んだのですが,同様に刺激的で,Lispサイコーという話が半分でした.Y combinatorの話とはまた違って,趣がありました(ここでは触れません)

 

伽藍とバザール

伽藍とバザール*は,一部のエリートプログラマ達がクローズドに作る,いわゆる伽藍方式の方が,品質が良いソフトが出来るとされていたところに,すべてオープンにして世界中のプログラマがよってたかって開発するバザール方式で開発したLinuxが大成功し,それが何故できたのか,探求していくというお話で,後半はそのOSS開発コミュニティをどう作るのか,というお話でした.

*ネットでも公開されていますが,私が読んだのは書籍となったもので,伽藍とバザール / ノウアスフィアの開墾 / 魔法のおなべ という3本の論文の和訳と第4章 エリック・レイモンド大いに語る / 第5章 ノウアスフィアはぼくたちの開墾を待っている / 第6章 訳者あとがき が収録されています 

伽藍とバザール

伽藍とバザール

 

 

その伽藍 v.s. バザールの大きな違いとして,バザール方式の以下のような点を挙げていました。

"はやめのリリース,しょっちゅうリリース"
早めのリリース、ひんぱんなリリース。そして顧客の話を聞くこと。

 

まさか,1997年の論文にこんなことが書かれているとは驚いたのですが,まさしくモダンとされる開発方法と同じなんですね.


以前にクリアコードの須藤さんから「今のアジャイルなどはすべてオープンソースの開発文化から来てるんだよ」と言われていたのを実感できてなかったのですが(スイマセンスイマセン),だいぶ時間がたって腹落ちした次第です.

 

なぜ,無償の活動にエンジニアは参加するのか

そして,次に重要になるのが,なぜボランタリーにも関わらず,世界中のプログラマが参加したのか,というところなのですが,伽藍とバザールでは,

そのしょっちゅうリリースの貢献者に,しっかりとしたエンジニア界での評価というご褒美があるから

とありました.

 

また,なぜ、そんな評価という無形のご褒美が効いたのか,訳者の山形浩生さんの 第6章 訳者あとがき には原著者のエリック・レイモンドさんがこう答えたとあります 

Raymondの答・・・・・・みんな暇だから。暇で、物質的にはある程度充足しているから。
 これは大事なポイントだ。そして、そういう物質的に充足した社会では、従来の市場による稀少資源の配分システムが機能しない。
 そのとき、別の原理が動き出す。贈与によって名声を得るという原理だ。これがハッカーたちにフリーソフトを書かせる動機なのだ! 

 

そして,この文化により,バグを作ってしまった人をDisるのではなく,バグを直した人が賞賛される文化になり,品質(機能も含め)が高まったとありました.

 

そして,この評価システム (例えば★やフォロー,コントリビューターを記載する) をうまく取り入れ,見える化したのがGitHubであり,全世界で920万人が使われる原動力が,ここにあったのかと目からウロコでした.

*何かのエントリーでGitHubはエンジニアのSNSだぜ,というのを見た気がしたのですが,ようやくそれが符号しました
*どこで見たんだろう?


ネットを支えるオープンソース ソフトウェアの進化 という講演に参加して質問した

こういった見地をもとに,この講演に参加してきました.

kci-salon05.peatix.com

プログラムとしては,第一部にまつもと ゆきひろさんの講演と,第二部にパネルディスカッション(まつもとさん,Mozilla Japan代表の瀧田さんがパネラー,TechCrunchJapan編集長の西村さんがモデレーターとなって進行) という,2つの構成でした.

まつもとさんの講演では,エンジニアから見たOSSの世界と,ビジネスの見地から見たOSSの世界と,この二極から講演され,エンジニアから見たOSSの世界では,ソフトウェアの歴史を紐解き,コードが自由に見れて改良できた牧歌的な時代から,幾つかの事件から商用ソフトへの流れ,それに対するオープンソース・ソフトウェアのムーブメントと歴史について講演されました.

この講演では,色々なお話が聞けて,リチャード・ストールマンさんという天才プログラマがいなければ,今のOSSはまた違ったものになっていたので,未来の教科書に載せるのはこの方だとおっしゃっていたり,ソースコードを読むことが優秀なエンジニアへの道だとか,ビジネスの観点からは,今後OSSを活用していかなければ,自社の差別化要素となるコアコンピタンスとなるソフトウェアの開発スピードが遅くなる,などなど30分の講演があっという間でした.

 

そして,この中で締めくくりとしてお話されたのがこちらでした.

技術者の楽園を守る = フリーソフトウェア/OSS がある意味

 

# まつもとさんの講演の締めくくりの言葉そのものはリチャード・ストールマンさんがよく使う,Happy Hacking! でした.(どこかで使いたいなぁ)

# Happy Hacking Tシャツがある! 

GNU Press | Free Software Foundation Online Shop | Buy GNU t-shirts, books, stickers and stuffed gnu toys


どういうコントリビュートが良いのか?

そのあとのパネルディスカッションでは,どちらかライセンスやOSSコミュニティの意思決定についての話が多かったのですが,途中,OSSの世界に足を踏み入れたときのことを,Mozilla Japan 代表の瀧田さんがお話されていて,最初はコントリビュートするとか非常に面倒くさくて,敬遠してきたのですが,その壁を超えたとき、世界中のエンジニアが反応してコメントをもらったりしたのが感動だった,とお話されていました.

これをもっと聞きたいなぁと思い,講演終了後にまつもとさん,瀧田さんに突撃質問して,下記2点を伺ってきました.

はじめてのコントリビュートで必要なこと

コードだけじゃないというのが御両所のご意見で,自身ができることでコントリビュートすれば良いということでした
もちろん,タイポの修正でも良いし,エラー発生を挙げてもよいし,ドキュメントのローカライズでも良い(瀧田さん曰く,学生にはオススメですということで,実際にMozillaのあるプロジェクトで入試英語の試験勉強のためにローカライズで活躍していた高校生コントリビューターがいたとのこと),ただし気をつけて欲しいのが,Pull Requestの粒度やコーディンスグタイルやコントリビュート方法をしっかり読むことを挙げて頂きました.

まつもとさん,瀧田さんのはじめてのコントリビュートが何だったのか

まつもとさんは使っていた Chain Mail* というフリーソフトに対してパッチを送ったら,「もう開発をしていないので,あなたが引き継いで下さい」と言われたのが,はじめてのコントリビュートだったそうです.(*その後,メンテナーになられたまつもとさんがcmailと変えています)
# るびま にその時の模様が出ていました 
 Rubyist Magazine - Rubyist Hotlinks 【第 1 回】 まつもとゆきひろさん

続いて,瀧田さんに伺うと,Mozilla Firefoxローカライズがはじめてのコントリビュートだったそうです.

# ちなみに瀧田さんに関するWeb記事の連載の締めくくりのタイトルは "学生の内にオープンソースの世界を踏み台にしろ!" でした
 挑戦者たちの履歴書(144):学生の内にオープンソースの世界を踏み台にしろ! - ITmedia エンタープライズ
 

コントリビュート方法については,伽藍とバザールでも書かれており,上記のまつもとさん,瀧田さんのお答えとは,ばっちり合う内容でした.

4.利用は最大の賛辞ーーそしてカテゴリーキラーは追随ソフトよりもよい。
5.むずかしくて退屈な作業(たとえばデバッグドキュメンテーション書き)に継続的に貢献するのは、面白くて簡単なハックをいいとこ取りするよりも賞賛すべきことである。
6.機能の大幅な(non-trivialな)拡張は、低レベルのパッチやデバッグよりもいい。

 第2章 ノウアスフィアの開墾 13 どれほどすばらしい贈り物? より(番号は文中より)

 

上記の5.6.は一見すると,矛盾しているように見えますが,文中ではOSSプロジェクトでは相互作用していると補足されています.

ハッカーに、独自の新しいツールを開発するのと,誰か別の人のツールの拡張と、どっちで有名になる見込みが高いかときいたら、答えはまちがいなく「新しいツール」になるだろう。でも、次の二つならどうだろう。

  1. 一日ほんの数回、だれにもわからない形でOSから呼び出されるだけの真新しいツールだけど,急速にカテゴリーキラーになるもの
  2. ことさら新しくもないしカテゴリーキラーでもない既存ツールに対する拡張をいくつか。ただしそのツールは毎日使われて、毎日多くの人の目に直接触れる

この場合,ハッカーは最終的に前者に落ち着くにしても、かなりためらうはずだ。この両者は、だいたい同じくらいの地位を持っている。

 第2章 ノウアスフィアの開墾 13 どれほどすばらしい贈り物? より

 

まとめ ーOSS開発文化とは?

ということで,フリーソフトウェア/OSSの開発をほとんど知らなかった人間が,その開発文化に触れて感じたことをつらつらと書いてきましたが,まとめると,

OSSの開発スタイルはモダンな開発スタイルと同じだよ!(というよりOSSの方が断然早いんだよ!)
・エンジニア同士が互いに賞賛する文化があるよ!
OSSの世界で活躍することで,ハッカーハッカーと認めてもらえる,得難いチャンスがあるよ!
・貢献するには知っていたほうがよいお作法があるけど,自分に合ったコントリビュート方法があるよ!

ということでした.


さらに,今まで企業の採用ページでOSS活動を推奨します,とあっても「ふーん」ぐらいだったのですが,企業はちゃんと戦略的に,OSSコミュニティでの活躍を期待していて,そこで賞賛を獲得することが企業のブランディングに繋がっていることに,いまさら気付きました! 

sezemi.hatenablog.com

 


そして,最後は繰り返しになりますが,OSS Hack Weekend という開発イベントとリーダブルコード / GitHub / OSS Hack 4 Beginners という3つの勉強会を開催します.

 

sezemi.hatenablog.com

 

まもなく公式ページをオープンしますので,ぜひご期待ください!(まだ作っています)

学生向けに "OSS Hack Weekend" という開発イベントと,関連する "リーダブルコード/GitHub/OSS Hack 4 Beginners" という3つの勉強会を開催します

f:id:sezemi:20150406194819p:plain

前回のイベントより,企画しては頓挫し,あーでもないこーでもないと試行錯誤する日々が続きましたが,ようやく2015 夏までに開催する勉強会や開発イベントが固まりましたので,公式ページより先にブログにてご案内します.
# 公式ページオープン&申込開始はG.W.前後の予定です


前年2014は「チームでいいプロダクトを開発しよう」というテーマ(≒目標)でしたが,この2015 夏のテーマは,

OSSの世界で自身の実力を試そう」

として,開発イベントや関連する勉強会を開催します.

■背景

このテーマを選んだ背景として,

このような動きが加速する中で,このOSS開発文化に触れ,コントリビューターになろうとすることは,OSSの世界での活躍だけでなく現場での基本動作が習慣化されたり,イイ感じの評価が得られる絶好の機会になると考えています.

"私たちも,オープンソース・ソフトウエアが積み上げてくれたソースコードという知識を利用することで「巨人の肩に乗る」ことが可能になるのです。"

フリー言語で真のプログラミングを学ぶ - Part1 オープンソース/C言語に学ぶ「ソースコードの読み方」:ITpro written by まつもと ゆきひろさん


また,学生時代のアウトプットを採用基準にする企業が増える中,学生/企業双方がOSSへの貢献内容やどのプロジェクトを選んでいるのかを知ることで,お互いのエンジニアリングレベルや技術のベクトルを知る一つの基準になると考えています.

"人はハッカーを名乗ればハッカーになれるわけじゃないーー
他のハッカーハッカーと呼ばれた時点で、人はハッカーになるんだ。"

「伽藍とバザール」第2章 ノウアスフィアの開墾 より

OSSの世界だけでなく現場の開発で活躍できる術を学ぶ3つの勉強会

とは言え,無闇にPull Requestしろというのではなく,あくまでコントリビュートされる側の意図に添えるよう,3つの勉強会を開催します!!

1. 実際やってみて読みやすいコードとは何かを知る
=> リーダブルコード勉強会 | 6/6(sat) 開催

 by リーダブルコード(オライリー・ジャパン刊) 解説執筆者 須藤 功平さん github.com

2. Git/GitHubの基本操作に慣れPull Requestを送れるようになることと,良いPull Requestとは何かを知る
=> GitHub勉強会 | 6/20(sat) 開催

 by GitHub実践入門(技術評論社刊)著者の大塚 弘記さん github.com

3. 実際のOSSプロジェクトを題材に準備(コードの読み方やコーディングスタイル知るとか)して具体的な問題発見&解決方法をやってみる
=> OSS Hack for Beginners (勉強会) | 6/27(sat) 開催

 by 須藤 功平さん


どの勉強会でも,OSS開発への造詣が深い方々を勉強会のトレーナーやメンターとしてお招きし,OSS開発の作法や現在の状況を学んでいただきます.
# 各勉強会は自由参加です(もちろん個別の勉強会のみ参加するのもOK)
# 前年に続き,申込特典として勉強会で使用する書籍は先読み用として参加前にプレゼント&送付します

■成果発表となる開発イベント

そして,それらの勉強会で学んだことを実際にアウトプット(=成果発表)する開発イベントも開催します!

OSS Hack Weekend | 7/11(sat)-12(sun) 2日間開催

勉強会のトレーナー,メンターが引き続きサポートする環境で,好きなOSSを選んで,
拡張するもよし,高速化するもよし,バグ修正をするもよし,ドキュメントを整備するもよし,コントリビュート方法は様々に,2日間で実際にPull Requestを送っていただきます.
# プルリク特典としてオリジナル "OSS チョットデキル (デキル トハ イッテナイ) " Tシャツプレゼント (マージ特典も!!)
# 企業が主導開発するOSSプロジェクトの中の人がいらっしゃるかも!?
# この開発イベントのみの参加でもOK


ちなみに,OSSプロジェクトの選択は,学生/企業の枠を超えて,ワイワイみんなで決められるよう,リーダブルコード勉強会からチャットを開設し,以下3つから1つを選び,1人 or ペアを組んでコントリビュートしていただきます.

  • 企業が主導で開発するOSSプロジェクト
  • 事務局がピックアップしたOSSプロジェクト
  • 自分がコントリビュートしたいと思っているOSSプロジェクト


最後に,
各勉強会ならびにイベント内容の詳細を現在ブラッシュアップしている最中なので,もしこんなことやって欲しい,このOSSプロジェクトを取り上げて欲しい,などのご要望やご質問などあれば,TwitterFacebook等を通じて,ぜひお気軽にお問合せ下さいませ!

SEゼミ運営事務局 (@sezemi_seplus) | Twitter
https://www.facebook.com/seplus.sezemi


では,OSSチョットデキル を着たい,もしくは OSS コントリビュート チョットデキル (マージ特典!?)を着たい学生の皆さま,お会いできることを楽しみにしてます!!

GitHubでリポジトリを公開している国内企業をまとめてみた

関連エントリーがあるのだけど,仕事で国内を網羅する必要があったので,ついでにやってみた.anond.hatelabo.jp

気になる企業があれば,コードを読んでみたり,所属エンジニア情報を見てみても良いかも知んないなぁと思ってます.
(間違いや追記情報があれば,ぜひ教えていただけると助かります.)

abc順 *リポジトリがほとんど無い & 無いところは外しています

企業名 URL
Aiming https://github.com/aiming
Akatsuki https://github.com/aktsk
cookpad https://github.com/cookpad
CrowdWorks https://github.com/crowdworks
CyberAgent https://github.com/cyberagent
Cybozu https://github.com/cybozu
DeNA https://github.com/dena
Drecom https://github.com/drecom
dwango https://github.com/dwango
Geisha Tokyo Entertainment https://github.com/geishatokyo
GMO pepabo https://github.com/pepabo
GREE http://gree.github.io/
Hatena https://github.com/hatena
Kaizen Platform https://github.com/kaizenplatform
KAYAC https://github.com/kayac
KLab https://github.com/KLab
mixi https://github.com/mixi-inc
nekojarashi https://github.com/nekojarashi
NEXT https://github.com/next-group
Pixiv https://github.com/pixiv
Rakuten https://github.com/rakutentech
SmartNews https://github.com/smartnews
Tokyo Otaku Mode https://github.com/tokyootakumode
Treasure Data https://github.com/treasure-data
VASILY https://github.com/vasilyjp
Wantedly https://github.com/wantedly
Yahoo! JAPAN https://github.com/yahoojapan

4/21 Treasure Data を追記しました

ウェアラブルガジェットパーティというGoogle Glassなどウェアラブル端末を使ったアプリコンテストを開催しました!

レポートが遅くなりましたが,10/11より2週間の期間で,Google GlassやG Watchを使ったアプリを開発する学生向けコンテストを開催しました!

このアプリコンテストは,Google GlassやG Watchを開発会場に常設し,土日や平日夜間を使って,個人エントリーの方やチームを組んだ皆さんが思い思いの進捗で開発され,最終日10/26 のDemo Dayでデモを中心に披露し,それを審査するという流れで進めました.

・賞品写真: Google Glass / Moto360 / G Watch / Moff / Leap Motion / ChromeCast 

f:id:sezemi:20141118115105j:plain

・開発風景

f:id:sezemi:20141118115002j:plain

  

コンテスト結果

その結果がこちらです!


SEゼミ | GoogleGLASSなど新しい領域にチャレンジしたい学生エンジニアのためのハッカソン,ウェアラブルガジェットパーティ

 

DEMOの様子

Demo Dayでは開発知見が殆ど無く,Glass Developerのサイト通りコードを書いてもエラー吐く,インスコもできない,音声コマンドが通らない,などなどの闇があったにも関わらず,いずれもレベルの高い仕上がりのデモが披露されました!!

f:id:sezemi:20141118114812j:plain

f:id:sezemi:20141118114821j:plain

GlassのViewFinderで表示される画像から指で指定した範囲の写真の撮影ができる「In My Hand」のデモ

f:id:sezemi:20141118114912j:plain

Glassで認識した家電を音声とタップで操作「Glassで家電を操作してみた」

f:id:sezemi:20141118120515j:plain

アプリをインストールしている方が近づくと振動し,画面色で気持ちがわかる「QI Watch」

f:id:sezemi:20141118114803j:plain

手をかざした対象の色を認識し,照明がその対象色に近い色に変わる「Color Picker G」

f:id:sezemi:20141118114629j:plain

教師が予め設定した質問を音声コマンドで出題でき,そのコメントデータがニコ動風にGlassのディスプレイに表示されるTA Glass (画像はCromeCastでミラー画面を転送したもの)

 

期間中に初めてOpenCVにチャレンジし実装する方もいれば,リーン・スタートアップよろしくValidationするチームもいれば,ECHONET Liteというプロトコルを使って家電を操作にチャレンジする人もいるなど,間に合うかどうか心配する一方で,本当に野心的に開発されておられ,そのレベルの高さに脱帽してました‥

#スポンサーからは全員採用したいとのお声が上がるほど

個人的には教室の「?」を可視化するTA Glassや,パーティやクラブで異性の気持ちがわかるQI Watchが欲しいなぁ.

 

今後GlassやWatchのアプリ開発に挑戦するエンジニアの方向け知見

参加した学生の方から寄せられたGoogle GlassAndroid Wearのアプリ開発に取り組むエンジニア向けの知見は下記の通りです.(2014年10月現在)

・基本的にはスマートフォンと同じであるが、ボイスコントロールなど特有なことが大変かもしれません。マニフェスト記述漏れとか細かなミスともあるので、気をつけてください
・Glassの処理能力、プロセスの切り方
・意外とwatchは制限が辛いっす
・はじめにそのウェアラブル端末で使える機能などを調べつつアイデア形成を進めていった方が良い。
・実機は必要
・GlassはEmulatorないけど端末でデバッグできるよ
・まだウェアラブルデバイスの開発環境は初期段階で未来的で高度なアプリはリソース的に厳しい.簡単に開発できて計算コストが少ないアプリならいいかも.そしてみんなウェアラブルデバイスを使う日がくるのか!?
・はじめてAndroid開発される方いたらこの本オススメです!ほんとわかりやすいです! 

はじめてのAndroidアプリ開発―Android4対応版 (TECHNICAL MASTER)

はじめてのAndroidアプリ開発―Android4対応版 (TECHNICAL MASTER)

 

 

スクラム勉強会も開催

また期間中は,チーム開発に取り組む方向けに,SCRUM BOOT CAMP THE BOOK 著者の西村直人(@nawoto)さんをお招きし,短期開発に効くスクラム勉強会を開催しました!

ポスター制作を通じて,何を作るのか,何がユーザーに響くのかをチームで共有する演習や,小さくとも動くものを作り開発を進めるやり方をマシュマロチャレンジで実際にやって頂きました.

#西村さん,ありがとうございました!!

f:id:sezemi:20141118122132j:plain

 

まとめ

Google Glass / G Watchを使ったWGPというアプリコンテストを10/11~10/26で開催しました

OpenCVを使ったアプリが3組も発表されるなどレベルの高いデモが披露されました

・未知の領域の開発はそれなりに闇もあるけど,楽しいよ

アジャイルな開発はコンテストやハッカソンでも使えるよ


開催話側としては,ウェアラブルという未知の領域で,知見をみんなで共有し,ワイワイガヤガヤ開発していたのが心に残る風景でした!

f:id:sezemi:20141118115547j:plain

ご参加頂いた皆さま,あわせて本コンテストと6月から続いた全勉強会にスポンサーいただいた楽天様,本当にありがとうございました!!

 

また来年2015年3月にSEゼミ 2014 Winter として,勉強会やコンテストなど開催しますので,引き続き,ご愛顧のほど,よろしくお願いします!!