@hironomiuです。このエントリーでは2015年に日中にAJITOで行われている勉強会の風景を自分の持っている画像でお伝えしたいと思います。GROUPは勉強会がすごく盛んな会社だと思います。テーマも様々で単発のものもあれば長期に渡るものと色々あります。"本日は定期的に開催される社内勉強会(通称ほげほげ勉強会)が開催されました。今回はfluentd,Elasticsearch,kibana,BigQueryなどを用いたログマネジメントをテーマに若手のたじーが登壇しました。"本日は定期的に開催される社内勉強会(通称ほげほげ勉強会)が開催されました。"本日は定期的に開催される社内勉強会(通称ほげほげ勉強会)が開催されました。https://t.co/SKlZYexsgw"11/22大規模インターンSunrise中にCTO直々に行われたアドテク勉強会の風景です!11/25golang勉強会の第2回目です!(この勉強会は現在も継続中です!)自分の持ってる画像はこのぐらいですが多分5~6倍は行われてるんじゃないでしょうか。2016年も様々な勉強会がAJITOで開催されると思います。Calendarの12/23分です。三浦(@hironomiu)です。Calendarも今年で3年目ですね。Group)と言うグループを立ち上げ担当職責もDBAから技術者育成責任者となり、より育成やエンジニアインターンにコミットする年となりました。GROUPの雰囲気や学びに対する取組みについて少しでも伝えられたと思います。書きたいことが沢山あり長くなってしまったので短的に言うと「充実した1年でした!」「来年は更に頑張る!」です。エントリー中の引用はTechBlog、Twitter、Facebookにて発信している内容から引用しました。SQLアンチパターン勉強会スライド資料1月中旬から4月一杯に渡って週に1回のペースで全章を読み解いていく勉強会を2期開催しました。BlogにSQLアンチパターンのススメとして記載しています。興味を持たれた方はこちらも合わせてご覧ください。第3期の開催2015年も1月から第3期を14エンジニア新卒を中心に11週を目処に開催する予定です。資料などをブラッシュアップしながら更に有意義な勉強会にしていきたいと思っています。Challenge2月から8月まで15エンジニア内定者が任意でJOINしドメイン、SSL証明書なども取得しWebサービス開発について学んでいくプロジェクトです。フォローでゆうくん(@yuu_ito)にも手伝ってもらい進めていきました。この開発については2つの軸を念頭に進めていきました。1つ目は純粋にリーンスタートアップに倣ったWebサービス開発です。2つ目は夏のエンジニアインターンTreasureに向けた準備です。エンジニア内定者はTreasureのTAを任意で参加出来ます。その際に必要なスキルセットをこの開発では身につけていきます。GROUPでは「価値」と言う言葉を大事にしています。そこからリーンスタートアップの考え方は共感出来る部分が多くTreasureでは随所にエッセンスを取り入れています。そのため事前にリーンスタートアップに倣った仮説検証のフィードバックループを行いMVPの作成、更なるプロダクトへの昇華と言う手法をここでは進めていきます。リモート開発リーンキャンバスで言う「ターゲット」「課題」について仮説、検証を行いMVPに差し掛かろうとしたところで続々とエンジニア内定者がJOINしてきました。エンジニア内定者は住んでる地域も様々でかつ活動出来る時間帯も学業やプライベートな活動などとの兼ね合いもありリモート開発をベースとしたチーム開発の最適化を進めていきました。GitHubリモート開発を行う上でGitHub、Slackをフル活用しました。requestからdevにmerge、最終的にmasterに取り込むと言う流れで行います。request、issue、コメントなどを通知)としてSlackを利用しました。ストックしたい情報は全てGitHubリポジトリのWikiに集約していきます。リモート開発コミュニケーションの救世主Slackちょっと大袈裟ですが当初は流れる情報の共有手段としてSkypeを利用していました。Slackの優位性について深くはここでは触れませんがロケーションの違う内定者達から一番大きな課題として出ていたのが「周りが何をしているのかが分からない」でした。request、issue、コメントなどをチャット上に通知出来きることで開発の状況が可視化できメンションを使ってやりとりするなどで情報が埋もれず情報を発信する程好循環となる仕組みの土台が出来てきました。ハブとなる大変さ今年の開発は最終的に内定者8人が参加しました。requestベースの開発サイクル、Wikiによるストック情報の集約、Slackによる開発状況の可視化だけでは賄えない部分が見えてきました。顕著に現れたのが三浦がハブになり各内定者間の細かい認識の擦り合わせの重要度が高まってきたことです。空いている時間も8人が程よくバラバラなため同じタイミングで現状を共有する事が出来ないことで内定者間の状況の認識のズレからコミュニケーションロスによる開発の停滞が顕著になることもありました。リモート開発を主体にすることの大変さは覚悟はしていましたが、各内定者毎の共有タイミングで認識の擦り合わせはどんなに二度手間になろうとも全員に同じ内容を都度都度丁寧に共有し、その繰り返しのサイクルを短くしないと開発が停滞すると確信する反面、繰り返しのサイクルを短くすることはハブの役割の負担が飛躍的に膨らむジレンマで苦心したことは今でも強く覚えています。merge)にフォーカスを当ててGitHub入門編として京都で1Dayインターンを開催しました。GitHubの開発サイクルを説明しただけではHowを伝えるだけとなります。GitHubの開発サイクルを使うのかWhyの部分について実際にGitHubの開発サイクル上でJavaScriptの簡単なアプリをテーマに開発を実践し体験しながらWhyの部分まで学んでいきます。関西初インターンTreasure、Sunriseと関東だけではなく地方の学生さんとも接する機会が多数あるのですが実際に京都でインターンを開催してみて予想以上に関西にはWeb好きなエンジニア志望の学生さんが多いことに驚かされました。GROUP夏の風物詩となりましたエンジニアインターンTreasure2014が開催されました。実は2012から肩書きの上ではメイン講師と言う立場で携わっています。毎年早いタイミングからCTO小賀さん(@makoga)、人事のHさん(@339)とTreasureのコンセプト、想いなど様々な観点を詰めいくのですが、その中で今年はメイン講師としてTreasureはどうあるべきか?をより強く意識することが多かったインターンでした。夏のインターンは同業他社さんに限らず理系学生向けのインターンが沢山あります。その中でTreasureは3週間と言う比較的長いインターンです。学生さんが夏の貴重な時間を使ってTreasureに期待して参加した期待値以上の価値をどう造り上げて行くか難易度の高いテーマですがやりがいのあるテーマでした。Treasureで掲げている圧倒的成長を体現出来るインターンであるために講師、サポータ、Treasure生の全員が絡み合って造り上げる血が通った生き物になるように自分なりにどう働き掛ける事が出来るか特に意識しました。Blogに圧倒的な成長を目指す「Treasure2014」(前編)、圧倒的な成長を目指す「Treasure2014」(後編)として記載しています。セキュリティに関するインターンで伝えようとしたことも是非ご覧ください。GROUPの成長し続ける勉強会カルチャーと言うお題で登壇させて頂く機会がありました。1クルーが社内の勉強会やカルチャーなどを胸を張って社外に発信出来る状況は健康的だなと思いました。余談このエントリーでは三浦が関わった勉強会などをあげていますが社内ではSICP勉強会を2年継続したり良書や気になる論文について気軽に勉強会が開かれたりと三浦以上に勉強会カルチャーを牽引するクルーが多数おり学びの多い職場だと思います。Facebookより)セキュリティ編のインターンは進行サポートとして京都へ赴きました。セキュリティに関するインターンで伝えようとしたことにある通りスペシャリストならではの講義で三浦も勉強になるほどでした!事前に講義内容を詰めてる際に見えてきた課題としてこの素晴らしい内容を1Dayと言う限られた時間で手を動かす時間を取りながらどれだけ盛り込めるかが浮かんできました。GROUP冬のエンジニアインターンSunrise2014が開催されました。初年度の2011から1から作ってきたこともありTreasureとはまた違った思い入れのあるインターンです。TreasureがWebサービスアプリ開発に比重を置いているのとは対照的にSunriseでは大規模Webサービスインフラにフォーカスを当てており、期間に関しても3週間から土日2回開催の4日間と限られています。限られた期間で出来る限り大規模WebサービスのDBを中心としたインフラ設計についての気付きを伝えられるよう全体のストーリーを練っていきます。チューニングバトル期間は土日2回開催と触れましたが間の平日5日間で何か出来ないかと考えた末にチューニングバトルと言う案が去年浮かびました。こちらの用意したクラウド上に構築したLAMP環境、PHP+Silexのサンプルアプリに対し負荷ツール(siege)で時間あたりの実行回数で競います。今年も同様の案を採用しブラッシュアップしたチューニング課題を提示してみたところ及第点としてRDBの領域で適切なインデックスを作成すること。リバースプロキシの領域で静的コンテンツとして判断して良いと思われるエンドポイントについてはキャッシュすること。HHVMPHPフレームワークSilexからSlim(サンプルソースも適切な書き換え)MySQLからMongDB(データも完全に移行)ulimit、I/OスケジューラなどカーネルパラメータのチューニングvarnishのDSLにてキャッシュ対象、間隔の細かいチューニングチューニングに特化した不要デーモンの停止と想定以上の回答が多数現れエンジニア志望学生のスキルレベルの向上は年を追うごとに凄いものがあると痛感させられたと同時に三浦もウカウカしてられないととても良い刺激を受けました。Blogに100万人が使うWebサービスを創造せよ!!大規模サービス構築プログラム「Sunrise2014」として記載しています。興味を持たれた方はこちらも是非ご覧ください。TDD勉強会の風景(tech_voyageのtweetより)図書スペースOASISで1DayTDD勉強会の風景(tech_voyageのtweetより)11月からは15エンジニア内定者向けの育成支援プロジェクトが開始しました。三浦に加え4人のクルー(西郡さん(@_nishigori)、駒崎さん、さやちゃん(@sayadroid)、じゅえる(@jewel_x12))をメンターに迎え2015年3月までバックアップしていきます。requestベースによるレビューで行います。requestの内容をSkypeによる音声チャット、出社出来る内定者は顔をつき合わせてより理解度を高めていきます。11月、12月のテーマはTDDで行いました。GROUPに集まり1Dayでワークショップの開催なども行います。入社が近づき卒論などの学業も忙しい中で新卒からグイグイ活躍したい、伸びたいと思っている姿勢に少しでも後押しが出来ればと考えています。GROUPの目指している方向性にフィットしながら各内定者自身が納得の行く活躍をするための助走期間として学び伸びていく環境作りの第一歩をサポータと共に作っていければと思っています。終わりに他にも14エンジニア新卒研修や社外向け#ajiting、勤続5年休暇などなどまだまだ書ききれなかったことが沢山ありますが今回はここまでにしたいと思います。関わったクルーの皆さんには改めて色々刺激を受けながら、助けられたなと思っています。冒頭に述べましたが来年もより一層頑張っていきたいと思います!最終日の明日は15エンジニア内定者育成支援でサポータをして頂いている、じゅえる(@jewel_x12)からのエントリーです。2013の23日目の記事です。今年もこの季節になりましたね。hironomiuの日記」から丸1年振りのエントリーです。(あっという間で早いですね!)今年も去年と同様に前半は@hironomiuの視点で2013エンジニアインターンの取組みについての振り返りを行い、後半は簡単なtipsですがSQL初学者向けのtipsをエントリーしたいと思います。ともにメイン講師として初日から最終日までフル参戦となりました。両インターンともに成長意欲の高い学生が多くこちらの方が沢山刺激され成長させて貰えたのではと思っています。Jenkinsでのデプロイ連携で本番にアップするようなフローも経験して欲しいよねと環境や運用についても限られた時間の中モダンと言うキーワードを意識した意欲的な取り組みも行えたインターンでした。インターン中の雰囲気については以下のブログを見て頂けると幸いです。圧倒的な成長を目指す「Treasure2013」(後編)Sunrise2013今年は技術的なコンセプトデザイン、そこから講師としての講義資料の作成、課題(事前、中間、最終)、実技用の環境構築、モックアプリの準備と全てを行った事もあり一大プロジェクトとなりました。Sunrise2013は大規模サービスを運営していく上での抽象度が若干高いサービス設計技術にフォーカスを当てています。そのため座学、実技を含めた講義の内容やアプリのモックなどについてもできるだけ個別な技術にフォーカスが当たらないように気をつけながら詳細を詰めていきました。*1インターン中の雰囲気については以下のブログを見て頂けると幸いです。tips初学者向けなtipsですが社内ではたまに触れるtipsでしたので今回はそれを記載したいと思います。初学者の方で範囲検索の際にbetweenを使うべきなのかどのような等号の組み合わせを用いるべきなのかコーディングのお作法に近い質問を受けたりSQL作成時に苦慮が感じたりすることがあります。SQLを実行する際に実行計画について全く無視した解説は乱暴かもしれませんがあえて今回は実行計画には触れずtipsを記載したいと思います。とある1日分のデータを取得する例えば以下のようなレコードがあり12月23日分のレコード全てを取得したいとします。|」まで取得してしまいます。これでは仕様を満たせていませんね。sec)なんとか仕様を満たせました。23:59:59'」のようにデータ型を踏まえた境界値となる値を指定しないといけなそうですね。23:59:59'」のようにデータ型を踏まえた境界値となる値を指定しないといけなそうですね。sec)上記はいかがでしょう?慣れの問題もありますがSQLの可読性も高くなった気がします。日付型の特徴である時刻を指定しない場合「00:00:00」に丸めることを利用し境界値についての敷居が低くなりました。今回はMySQL(innodb)で例を作成しましたが大体のRDBMSでは日付型について日付を指定した際に時刻を省略した場合、時刻については「00:00:00」に丸める特徴は共通しているためRDBMSごとに日付型で持つ時刻の精度(時分秒〜ミリ秒...etc)について考慮することが不要となり他のRDBMSへの移植性も高くなります。*2今回は範囲検索の中でも引っ掛かりやすい日付型でtipsを記載しましたが、日付型に限らず条件句での範囲指定の際にbetweenを必ず使用する必要はありませんし等号に関しても可読性を考慮して柔軟に組み合わせる事が大事ではないかと自分は考えています。逆に言うとSQLは柔軟な記述が出来るので日付型に限らず型による特性を理解し柔軟な記述をすることで可読性、移植性が高く意図した結果セットが取得できるSQLになるのでは?と考えています。自分のエントリーはここまでにしたいと思います。最終日の明日は圧倒的に事業を牽引している@suzu_vです。puppetを主軸にミドルウェアパッケージのセットアップ、DBデータのセットアップ、モックアプリのデプロイ、動作検証までを、まだまだ改善の余地がありますが、ある程度自動化でき構築作業の工数を大きく下げ、他の作業に時間を割けた事は個人的には手応え感が大きかったインターンとなりました。*2:当然ですがRDBMSごとに文字列を日付型として暗黙的にキャストすると等で認識するフォーマット等の考慮は必要ですね。Calendarの12/23分です。GROUPでDBAをしている@hironomiuです。(RDBMS)の講師など育成の仕事もさせて頂いています。GROUPの取り組みを少しでも伝えられたと思います。・Treasure去年より前半の座学の日数を2週間から1週間短くし取り組むべきカリキュラムをワンランク上げた大きな挑戦をしたインターンでした。最終日の成果発表は期待値を超える成果物が出てきて素晴らしい挑戦が出来たと思っています。Treasure後も学生さん達は継続して成果物のブラッシュアップを行いMashupAwardに応募したりと成長し続ける姿が印象的でした。(応募作品はこちら)短い開発期間でしたが見事株式会社ハートレイルズ賞を頂けて講師としても嬉しかったです。・Sunrise土日を2回出社し間の平日はSkypeやfacebookなどで連絡を取り合いながら大規模サービスのノウハウを学ぶSunriseも今年で2回目でした。去年のSunrese後に学生さんにFBを貰ったことを踏まえCTOの小賀さんの提案で実際のサーバの性能観測、調査からのボトルネックの特定、解消などを交えたより実践的なカリキュラムにシフトしました。今年の学生さんにFBを貰ったところ期待以上に実践的なカリキュラムは好評でした。Treasure、Sunriseを通して改めて思ったのは学生さんの成長スピードの速さです。成長に対して素直に貪欲であり続けようと気付きを沢山頂きました。今年はMySQL5.6の検証をメインにやらせて頂きました。(検証資料はこちら)中々仮説通りの動きにならなかったり度重なるバグの発見で検証が足踏みすることやまだまだ自分の実力や試行するための準備が不足している部分もあり今後更に頑張り有意義な情報を発信していきたいと考えています。通常業務も含め様々な人とお仕事をさせて頂いた1年でした。GROUPを支えていきたいと思っています。明日は@ajiyoshiさんです。障害のときAWSで障害が起きているのかも?と思ったときに確認した備忘録サポートページhttps://aws.amazon.com/support/ステータス使っているリージョンを確認。#jawsug)https://twitter.com/#!/search/%23jawsugちなみに今日は障害発生してました。Meid:hironomiuこそっと書いていきます。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。