はじめに
こんにちは、id:FM_Harmonyです。
今回は先週開催された東京オフィスのビアバッシュに関する紹介記事を書きました。なお、東京オフィスでのビアバッシュについては、下記の記事にて詳しく紹介されています。
tech-blog.rakus.co.jp
こんにちは、id:FM_Harmonyです。
今回は先週開催された東京オフィスのビアバッシュに関する紹介記事を書きました。なお、東京オフィスでのビアバッシュについては、下記の記事にて詳しく紹介されています。
tech-blog.rakus.co.jp
こんにちは。若手エンジニアのchoreiiです。
最近、業務でswiftに触れる機会がありました。Xcodeでのアプリ開発が楽しく、swift勉強したい欲が高まり勉強会にも参加しています。初心者ながら、ある程度アプリの作り方も理解してきたので一度アウトプットをしようと思います。
swift勉強中の方の刺激・参考となれば幸いです。
取り上げるのは、MapKitになります。
簡単に言うと、アプリの画面に地図を埋め込んだりできるフレームワークです。
今回はMapKitを使って、近場の駅を表示するアプリを作ってみました。
最初に完成形をお見せします。
ゴールイメージが掴めたところで実際の手順を説明します。
xibまたはstoryboardでMKMapView
を貼り付けるだけです。
xcodeで部品をペタペタ貼り付けるのは直感的にできるのですごく楽しいです。(しっかりとしたレイアウトを考えだすと面倒ですが)
今回はテキストボックスに住所を入力して検索するのでtextField
も貼り付けています。
検索はMKLocalSearchを使用しています。精度はあまりよくないようですが、ローカルでAPIのように簡単に検索機能が使えるので使用しています。
検索用の関数を作成している先人の方がいらっしゃったので、検索自体はそちらをお借りしています。
Map.search(query: "駅", region: region) { (result) in switch result { case .success(let mapItems): for map in mapItems { let annotation = MKPointAnnotation() annotation.coordinate = map.placemark.coordinate annotation.title = map.name ?? "名前がありません" mapView?.addAnnotation(annotation) } case .failure(let error): print("error \(error.localizedDescription)") } }
query: 検索したい建物 region: 検索範囲のイメージです。
帰ってきた検索結果それぞれにMKPointAnnotation()
をaddAnnotation
することでピンを立てています。今回は駅固定にしていますが、ここも入力フォームやユーザデフォルトに保存しておいた値などを使うと、いろんな建物が検索できて使い勝手はよくなると思います。
xibファイル上でのオブジェクトの配置と、コード上でのオブジェクトの操作の両方を体験できるので、iPhoneアプリの開発練習にはぴったりだと思います。私自身イベントの制御などまだまだ把握できていないところばかりなのでこれからも勉強は続けていきます。今回のアプリのソースはGitHubに置いておきます。練習用のコードで汚く読みづらいコードとなっていますが、基本的な操作は一通り試しているのでご自由にお使いください。
エンジニア中途採用サイト
ラクスでは、エンジニア・デザイナーの中途採用を積極的に行っております!
ご興味ありましたら是非ご確認をお願いします。
https://career-recruit.rakus.co.jp/career_engineer/
カジュアル面談お申込みフォーム
どの職種に応募すれば良いかわからないという方は、カジュアル面談も随時行っております。
以下フォームよりお申込みください。
forms.gle
イベント情報
会社の雰囲気を知りたい方は、毎週開催しているイベントにご参加ください!
rakus.connpass.com
はじめまして、新卒のtaku_76です。
上記URLからチャットbotを作成したいと思ったのですが、これにNode.jsの知識が必要だと書いてあったので学習してみました。 その結果フレームワークであるExpressを使用すると簡単に Webサーバーが構築できることが分かったので試しに使ってみました。
JavaScriptを使ってサーバーサイドのコードを書くことが出来るプラットフォームです。
V8エンジン
ノンブロッキングI/Oモデル
https://github.com/nullivex/nodist/releases
こちらのURLからnodistをインストールします。
Windows環境で動作する Node.js のバージョン管理ツールです。これを使うことで、複数の Node.js のバージョンを切り替えて使い分けることができるようになります。また、同時にnpmもインストールされます。
Node.jsのパッケージを管理するツールです。Node.jsのパッケージとは、予め用意された便利な機能をまとめたものです。
Node.jsで利用できるWebアプリケーションフレームワークです。 イベントループで非同期のため同時リクエストに強く、多くのユーザーの同時アクセス・大量リクエストを捌くことができます。 テンプレートエンジン(サーバーサイドで動的にオブジェクトを渡して、それをHTMLとして返す)を選べます。 今回はhtmlに近い形でかけるテンプレートエンジンのejsを使います。
以下のコマンドでインストールを行うことが出来ます。
C:\Users\takumi\Desktop\test\Nodist>npm install -g express-generator
C:\Users\takumi\Desktop\test\Nodist>express -e newproject
オプション-e でejsが設定された状態でプロジェクトが作成されます。
C:\Users\takumi\Desktop\test\Nodist>cd newproject && npm install
作成されたnewprojectのnode_moduleディレクトリの中に必要なモジュールがインストールされます。
packege.jsonに何をインストールするのか設定してあり、これを参照してインストールを行います。
C:\Users\takumi\Desktop\test\Nodist\newproject>npm start
サーバーを起動し、ローカルにWebページを公開します。 http://localhost:3000と入力するとexpressにデフォルトで入っているhtmlが以下のように表示されます。
今回は、Node.jsのExpressを使ってローカルにWebサーバーの構築をしてみました。 次は、自分でWebアプリを開発してherokuを用いて公開するところまでやってみたいと思います。
こちらにも詳しい記事があります。 Node.jsの勉強会でお手軽にWebアプリを作った話
id:radiocat です。2/22〜23に開催されたScrum Fest Osaka 2019 へ私たちのチームから3人が参加してきましたのでレポートします。
公式サイトには以下のように書かれています。
Scrum Fest Osakaはスクラムの初心者からエキスパート、ユーザー企業から開発企業、立場の異なる様々な人々が集まる学びの場です。
アジャイル開発のプロセスのひとつであるスクラムのイベントで、関西では初の大型イベントです。約200人が集まって2日間開催されました。
ちなみに、弊社も大阪に拠点がありスクラムに取り組むIT企業のひとつとしてスポンサーをさせて頂きました。
なお、会場となった「関西大学梅田キャンパスKANDAI Me RISE」は大阪オフィスの隣のビルでした。その点でも何か不思議なご縁を感じて参加してきました。
今回は登壇の機会も頂くことができました。せっかく頂いた機会ですので、私たちのチームが取り組んできたスクラムについてたくさん詰め込んで紹介しました。
スクラムはシンプルなルールの開発プロセスですが、その実践にはチームに応じた様々な工夫が必要です。私たちのチームもこれまでたくさんの試行錯誤を繰り返してきました。その中で支えとなったのは、既にスクラムに取り組んでいる先人やコーチなどの有識者の方々の取り組み事例でした。これまでも同様のイベントが開催されたり、同じ課題を持つ人が集まるコミュニティなどからたくさんの事例が世の中に発信されており、それらの情報を参考にして自分たちのチームに取り入れてスクラムを続けてきました。つまり、私たちのスクラムはこれまで取り組んできた人たちの試行錯誤に支えられているのです。
ですので、今度は私たちの取り組みを、同様に試行錯誤している人やこれからスクラムに取り組む人たちの支えにして頂けるように、たくさん詰め込んでお伝えしたつもりです。幸いなことに発表後の懇親会などで、たくさんの方々から共感のコメントや自分たちも同じ課題を持っていて勇気が湧いたという温かいお言葉を頂き、私たち自身もまたこれからスクラムを続けていくモチベーションを得ることができました。
一緒に参加したメンバーが印象に残ったセッションをまとめてくれているのでご紹介します。
楽楽精算開発チームの岡本です。印象に残ったセッションをまとめました。
クラスメソッドの 藤村さんのセッションです。 スライドは、こちらで公開されています。
www.slideshare.net
スクラムの本に書いているようなプラクティスについて、まずは、そのまま実行してみて、形骸化してきたと感じたら立ち止まり、スクラムガイド等の原典と現状の差分を確認してみればいい、といった内容のセッションでした。
スライド中には「プラクティス厨が許されるのは、形骸化するまで」という言葉が出てきていましたが、うちのチームにも形骸化していそうなプラクティスがちらほら出てきているので、原典との差分の確認時期なのかもしれないです。
楽天の 椎葉さんのセッションです。 スライドは公開されていませんが、ブログで内容が公開されています
楽天の大阪開発チームで実践しているスクラムの方法についてのセッションでした。
色々と参考になるセッションで、特に、仕様の決め方や開発の進め方については、うちのチームでも取り入れてみたいと思いました。
オーディエンスとして参加して来ました、庄禮です。
私自身、現在のスクラムチームに参加してまだ半年ほどで、こういったスクラムのイベントにも参加したことはありませんでしたが、運良く参加枠をいただくことができましたので参加してきました。
以下、拝聴したセッションの中から一部ご紹介します。
3年前からチームにスクラムを導入した三菱電機株式会社さんのお話。
アナログなカンバンの導入に始まり、少しづつ自分たちの課題点を解消していく軌跡をお話しされていて、チーム体制の変更したり、デジタルなツールを導入して効率化をはかるなど、工夫しながら自分たちのスクラムを形作っており感銘を受けました。
「Ball Point Game」というワークショップをおこないました。ワークの詳細は軽く調べるとでてきますので、気になる方は調べてみてください。 限られた時間、初対面の人と協力して目標にむかって行動するのはやりごたえがありました。やってみてダメな点は全員で振り返って、次にプランニングに活かす、といったスクラムの基本を体験学習できる良いワークでした。(ワークということもあり、実際の現場ではおこなわないようなチャレンジも行いました)
交流会やコーヒーブレイクの時間に様々なスクラム関係者と交流できたことも、参加してよかったと感じているポイントです。まだまだ自分自身の知識も浅く、お話を聞いて参考にさせていただく機会ばかりですが、いつか自分の経験をみなさんにアウトプットできるように精進していきます。
2日間スクラムのテーマにどっぷりと浸かり、参加者それぞれが交流と学びを深めて持ち帰ることができる場所でした。Scrum Festは、その名前のとおりカンファレンスや勉強会とは違った独特のフェス感のある素晴らしいイベントです。次回もぜひ参加したいと思います。
今回のイベントにも関連しますが、関西のアジャイルコミュニティの関係者の皆様には普段から大変お世話になってきました。今後もイベントへの参加だけではなく会場のご提供などでも関係を深めてコミュニティに貢献していきたいと思います。
スクラム道関西さんには既に一度、弊社にお招きしてオープン・ジャムを開催して頂きました。また、3/18にはDevLove関西のイベントを弊社にお招きして開催予定です。
また、弊社でも毎月1回エンジニアもくもく勉強会を開催してエンジニアの交流の場をつくっていこうとしています。よろしければぜひご参加ください。
こんにちは。堀内(id:yhoriuchi)です。 弊社が日頃からお世話になっている株式会社アトラクタ様が開催された認定スクラムマスター研修を受講してきました。講師はGabrielle Benefieldさんで、ジェフ・サザーランド博士が率いるScrum Foundationの共同設立者でもある方です。
研修内容が非常に素晴らしかったため、少しでもご紹介できればとの思いで研修の簡単な紹介、学んだこと、現場でやってみたことをお伝えしたいと思います。
スクラムマスター研修は2日間のコースです。Gabrielleさんがメイン講師で、株式会社アトラクタの原田さんが研修をサポートする体制で行われました。 基本的に研修は英語ですが、プロの通訳の方が同時通訳を行いながら進行します。要所要所で原田さんがご自身の経験や考え方を交えた補足を行なって(日本語)くれましたので、スクラムを学ぶ上でこれ以上ない講師陣だったと思います。
研修が始まるとGabrielleさんから「全員と握手」するように言われます。40人ほどの参加者が部屋を歩き回って全員と握手するというワークショップ(?)です。初めて顔を合わせる人たちばかりでしたが、最初に握手をするだけで後の研修が非常にやりやすくなったと感じています。スクラムマスター研修は多くのワークショップが取り入れられた内容になっているので、こうした心理的な障壁を最初に取り除く行動は研修そのものの効果を上げることにつながりました。
研修生が20人ずつくらいの2チームに分かれ、ピンポン玉を特定の時間内に落とさず手渡しで何個回せるか、という簡単なゲームをしました。2チーム同時に始めて優劣を競うのですが、チームごとにやり方が違うため、当然のように差が出ます。その後、一方がもう一方のチームのやり方を観察して自チームのやり方を見直し、改善するということを行いました。この時一番驚いたのが、相手チームを観察して良かったやり方をそのまま真似るのではなく、私が想像していた以上の改善が行われ、無駄がそぎ落とされた方法に一瞬で進化したことでした。観察して振り返り改善することの重要性に気付かされたその時の衝撃は今でも忘れることができません。
やり方は違えど、以前 吉羽さんに社内で実施して頂いたスクラムトレーニングで伝えようとしていたことが改めて理解できた気がします。
その後はスクラムの全体の流れを説明頂いたり、チームに分かれてワークショップを行ったりしてスクラムの理解を深めました。
疑問があれば随時質問を行うこともでき、貴重な意見やアドバイスを受けることができます。知識としてのスクラムだけでなく、多くの現場を見て改善されてきた知見を持つ講師からのアドバイスは心に突き刺さるものがあります。私が質問をした回答の最後に、Gabrielleさんが "Good luck"と言ってくれたのは今でも心の支えとなっています。
研修に参加すると、不思議と勇気と自信が湧いてきます。そのまま自社に学びを持ち帰り、一番試してみたかったことを早速試してみました。それが「他チームを観察する」です。タイミング的に他チームを観察することが難しかったため少し工夫して、他チームのスクラムマスターをやっている id:radiocat に自チームの振り返りのファシリテーターをお願いしました。
「人は鏡」といった言葉があるように、人は人との対話を通じて自身の内面に気付かされることが多くあります。スクラムの振り返りでの開発チームとファシリテーターという関係性から考えて、チーム外の人がファシリテーターを行うことにより、自分たちのチームが外からどのように見えているのか気付かされ、新たな改善や行動につながることに期待していました。
結果は思っていた以上のものでした。
開発チームメンバー個別に振り返りの感想を聞いてみたのですが、全員が口を揃えて同じことを言っていたのです。それが
「1週間で課題(problem)が多いのは正常なのか?」
という質問があったということでした。振り返りにKPTを利用しているのですが、“P”に上がる項目が多いように外からは見えるというチームへの見事な問いかけだったんだなと思いました。
感じ方は人それぞれあるようですが、この質問がチームにとって大きな意味があり、各自が深く考えるきっかけを与えてくれました。
更には、他チームの振り返りをファシリテートすることでファシリテーター自身も多くの気づきがあったようです。
下記がその一部。
これらを聞いて私自身も学べることが多く、この一連の行動から学びで学びを繰り返すのだと気づかされました。今後はチームとしての学びを最大化するためにもスクラムマスターとしての学びは尽きることがないと気を引き締めた次第です。
認定スクラムマスター研修を受けると、認定スクラムマスター(CSM)になるための受験資格がもらえます。オンラインで受験できるのですが、私も無事合格することができました。CSMは資格取得して終わりではなく、むしろ果てしなく続ける旅路の始まりだと思っています。このような研修の機会を作ってくれた株式会社アトラクタ様や自社にも感謝しつつ、これからもスクラムチームを支援していきたいと思います。
ジャーニーは始まったばかりです。
こんにちは、fuj_takです。
エレベーターがなかなか来なくてもやもやすることありませんか?
かく言う私もエレベーター待ちになると、いつ来るんだろうと悩まされます。
自分にエレベーターの制御をやらせれば、もっといい感じにできる
皆さんも一度は考えた事があるのではないでしょうか!
そんなあなたにこちらをご紹介します。
Elevator Saga Elevator Saga - the elevator programming game
GitHubにも公開されています。 GitHub - magwo/elevatorsaga: The elevator programming game!
※私の環境だとIEでうまく画面表示できなかったので、Chromeなどのブラウザでお試しください
ブラウザ上でJavaScriptのコードを記述し、エレベーターの操作を行います。
エレベーターに乗った乗客の行先ボタンに応じた制御、
各階での上下ボタンが押された場合のエレベータの制御、
などを行い、時間内に多数の乗客を輸送できるかどうかにチャレンジするという内容。
ブラウザさえあれば誰でもお手軽に試せるので、チーム内ワークショップとかでも使えると思います。
2015年頃に公開されているようなので、一度は触ってみたことがある方もいそうですね。
APIも公開されています。
Elevator Saga - help and API documentation
エレベーターの数や各階の数が異なる設定で全18ステージあります。
https://play.elevatorsaga.com/#challenge=1
https://play.elevatorsaga.com/#challenge=2
~
https://play.elevatorsaga.com/#challenge=18
頑張ってみたのですが、5ステージを超える事ができませんでした。。。。
色々と無駄な動きが多いですね。
エレベーターの制御プログラムを作っている方々、えらそうなことを言ってすみませんでした m(_ _)m
我こそはという方は是非チャレンジしてみてください!!
APIを頼りに作ったコードです。
いけてない点があるのは承知していますが、笑って許してください。
{ init: function(elevators, floors) { var waitFloor = []; var queuePush = function(floorNum){ if (waitFloor.indexOf(floorNum) < 0) { waitFloor.push(floorNum); waitFloor.sort(function(a,b){ if( a < b ) return -1; if( a > b ) return 1; return 0; }); } } // 動作対象のエレベーター取得 var getTargetElevetor = function(updown, floorNum){ var target = null; elevators.forEach(function(e) { // エレベータ内の混在率を考慮 if(e.loadFactor() < 1) { if (updown == "up") { if (e.destinationDirection == "up") { if (e.currentFloor < floorNum) { target = e; } } else { target = e; } } else if (updown == "down") { if (e.destinationDirection == "down") { if (e.currentFloor > floorNum) { target = e; } } else { target = e; } } } }); return target; }; // エレベーターの上昇/下降に合わせて停止階を決める var setStopFloor = function(e, floorNum){ // 上昇中は上階のみ止まる if (e.destinationDirection == "up") { if (e.currentFloor < floorNum) { e.goToFloor(floorNum); } // 下降中は上階のみ止まる } else if (e.destinationDirection == "down") { if (e.currentFloor > floorNum) { e.goToFloor(floorNum); } // 停止中は指定階に向かう } else { e.goToFloor(floorNum); } }; elevators.forEach(function(e) { // 待機中 e.on("idle", function() { // 1階で待機 e.goToFloor(0); }); // 行先ボタンプッシュ e.on("floor_button_pressed", function(floorNum) { // 上昇中 if(e.goingUpIndicator()) { if(e.currentFloor() < floorNum) { e.goToFloor(floorNum); } // 下降中 } else if(e.goingDownIndicator()) { if(e.currentFloor() > floorNum) { e.goToFloor(floorNum); } } else { e.goToFloor(floorNum); } // 行先を制御 setStopFloor(e, floorNum); }) // 移動中 e.on("passing_floor", function(floorNum) { }); // 到着 e.on("stopped_at_floor", function(floorNum) { // エレベーター待ちをクリアする waitFloor = waitFloor.slice(waitFloor.indexOf(floorNum), 1); }); }); // 各階で上下ボタンがプッシュされた floors.forEach(function(f) { f.on("up_button_pressed", function() { queuePush(f.floorNum()); var e = getTargetElevetor("up", f.floorNum()); if(e != null) { // 行先を制御 e.goToFloor(f.floorNum()); } }); f.on("down_button_pressed", function() { queuePush(f.floorNum()); var e = getTargetElevetor("down", f.floorNum()); if(e != null) { // 行先を制御 e.goToFloor(f.floorNum()); } }); }); }, update: function(dt, elevators, floors) { // We normally don't need to do anything here } }
エンジニア中途採用サイト
ラクスでは、エンジニア・デザイナーの中途採用を積極的に行っております!
ご興味ありましたら是非ご確認をお願いします。
https://career-recruit.rakus.co.jp/career_engineer/
カジュアル面談お申込みフォーム
どの職種に応募すれば良いかわからないという方は、カジュアル面談も随時行っております。
以下フォームよりお申込みください。
rakus.hubspotpagebuilder.com
ラクスDevelopers登録フォーム
https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/
イベント情報
会社の雰囲気を知りたい方は、毎週開催しているイベントにご参加ください!
◆TECH PLAY
techplay.jp
◆connpass
rakus.connpass.com
こんにちは。実はラクス大阪ビアバッシュ実行委員の、Y-Kanohです。
先日、毎月恒例のビアバッシュ@大阪を行いました。
今回のテーマは、「他部署のお仕事紹介」。 いつもは技術系の発表ばかりのビアバッシュに、他部署の方をお招きし、それぞれのお仕事内容を発表していただく、毎年恒例の人気企画です。
今回も内容をダイジェストでご紹介いたします。
まず、配配メールの営業担当に発表頂きました! ネット申し込みなどが普及し、システムを売るために、人手が必ずしも必要でない中における、営業の存在意義を教えていただきました。 お客様の困っていることを解決するためにも、 人それぞれに違うシステムに対する価値観を、いかに高めて紹介するかが腕の見せ所だそうです。 また、営業担当としてプレゼン時に心がけているテクニックも教えていただきました。
つぎに、365日インフラを守っているインフラ部隊、「ネットワークチーム」からの発表です。 ログ調査から障害対応まで、幅広い業務内容についての話から、 日々取り組んでいる、サービス品質向上のために行っているプロジェクト活動についての話などを伺いました。
(表紙のデザインがシブいですね。)
多数の業務内容を抱えている情報システム部からも発表頂きました。 業務内容は多岐にわたり、比較的馴染みのあるPC管理や、問い合わせ対応から、 あまり表に見えない、社内システムの基盤整理、セキュリティ対策、新しいITサービスの導入などについてお話しいただきました。 また、実際に最近社内へ導入された、業務効率化のためのBotシステムの紹介もしていただきました。 これからも、ラクスグループで働く人(:ラクト)のために、より良いIT環境をサポートして下さるそうです。
楽楽精算の顧客サポートを行っている、大阪サポート課からの発表です。 顧客サポートの中でも、導入支援を専門に行っているチームです。 せっかく導入したシステムを最大限利用してもらうため、2か月間の専属サポートを行い、 できるだけ長く使っていただけるよう工夫しているそうです。
いつも通りの技術系発表も行いました。
OSSの開発にJOINした話
OSSの開発にJOINした経験から、仕事や開発における積極的な行動の意義を教えていただきました。
フェリーハッカソン参加報告
先日、こちらの記事で紹介された、フェリーハッカソンのレポートです。 記事には載らなかった内容まで、写真を交えて発表していただきました。
また、最後にはLTでの発表も行いました。
いつもはエンジニアばかりのビアバッシュですが、今回はエンジニア以外の方も巻き込んで、いつもとは違うビアバッシュを行うことができました。 毎年行っている企画ですが、毎回新しい発見や知らなかった情報が出てくるため、ぜひ今後も続けたいです。
以上、大阪開発ビアバッシュレポートでした。