サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
どうなる?Twitter
tech.innovator.jp.net
こんにちは、CTOの山岡(@hiro_y)です。 ソフトウェア開発(特にWebアプリケーション開発)に携わっていると「レガシー」という表現をよく聞きます。でもよくよく考えてみると、ソフトウェアは放っておいても腐りませんし、錆びてしまうこともありません。しかし現実問題として、ソフトウェアは放っておくと否応なく「レガシー化」します。どうしてそうなってしまうのでしょうか。 (「レガシー」それ自体は悪い意味の言葉ではないはずですが、不思議とソフトウェア開発の文脈だとよくない意味合いの方が強くなってしまいますね…。) レガシー化する理由とその対策 動いているソフトウェア自体が変化しなくても、周りの環境が変化します。OSのバージョンが上がったり、その上で動いているミドルウェアが変わります。また、最近だとクラウド環境を利用することが多いので意識することが減りましたが、ハードウェアも新しいものがどんどん出
こんにちは、CTOの山岡(@hiro_y)です。 コロナ禍でリモートワーク(テレワーク)が促進され、オフィスに出向かず自宅等でお仕事する方も増えたのではないでしょうか。特にIT業界では顕著だと思います。 そういった状況の中で、あっという間にポピュラーな存在になったのがビデオ会議(オンライン会議、Web会議)ではないでしょうか。ZoomやGoogle Meet、Microsoft Teams等を用いた打ち合わせ・会議はもはや当たり前の光景になっています。 当社ではコロナ禍以前より複数拠点間(東京・福岡・&donutsの各オフィス)で連携しての業務を行っていましたが、当時はPolycomの会議システムを利用して、拠点同士をつないでやり取りをする程度でした。しかし今や、それぞれのPC同士で接続できるようになったのです。本当に便利な世の中になりました。 ビデオ会議で必要になるのは、高速な回線とカメ
こんにちは、CTOの山岡(@hiro_y)です。 先日、ISUCON12のオンライン予選に三人のチームで参加しました。本戦には進出できませんでしたが、目標の「スコアをゼロでなく、きちんと出せる形で終わること」「楽しむこと」の二つは達成することができました。 久しぶりに一日アプリケーション開発のことだけ考える時間を持てた気がします。自分の場合、普段はどうしても会議やいろいろやらなければならないことが多く、なかなかまとまった時間を取ることができていませんでした。定期的にそうした時間を取れるようにしてみようかな、と思ったりしています。 さて、ISUCON12オンライン予選への参加を通じて、エンジニアの資質としてあらためて「ねばり強さ」というものがあるなと感じました。何か問題が起こったとき、あるいはわからないことに遭遇したときに、一歩一歩解決に向けて考えたり、調べたりしながら手を動かし続けられる能
こんにちは、CTOの山岡(@hiro_y)です。 採用活動において、「採用面談」(あるいは「カジュアル面談」)を行うのが当たり前になってきました。いわゆる「採用面接」とは別の、選考過程ではない、その前段階という立て付けです。今回は、自分が採用面談をやる側として考えていること、心がけていることについて書いてみようと思います。 ちなみに、当社では私がエンジニアとデザイナーの採用面談を担当しています。自分一人で行うことも、誰かエンジニアやデザイナーと一緒に行うこともあります。 採用面談の目的としては、イノベーター・ジャパンという会社のことを知ってもらうことと、もし何か知りたいこと、聞きたいことがある場合にそれに対して答えることです。基本的には会社紹介を行っていくのですが、話を始める前に、知りたいこと、聞きたいことがないか伺って、あるようならその話題を中心に紹介をしていきます。 昨今の情勢によって
こんにちは、エンジニアのうじたです。 弊社ではスクラム開発を取り入れており、スプリント内の最後には毎回スプリントレトロスペクティブという振り返りを行っています。 2021年の8月から開始して、現在までの間に約15個の振り返り手法を試してみました。 現在はFDL+Tというオリジナルの手法によって行っています。 この記事では試してみたいくつかの振り返り手法の感想と現在のFDL+Tという手法を採用した経緯をまとめました。 どの振り返り手法を採用しようか悩んでいる方の参考や弊社の振り返りの雰囲気が伝わると嬉しいです。 弊社でのスプリント振り返りの歴史 試した振り返り手法の感想 FDL SSC 象、死んだ魚、嘔吐 YWT KPT 現在の手法を採用した経緯 まとめ 試した振り返り手法の感想 FDL Fun(楽しかったこと) Done(価値を届けられたこと) Learn(学んだこと) 振り返りが暗いもの
こんにちは、CTOの山岡(@hiro_y)です。 新型コロナウイルスの感染拡大に伴って、ここ数年、Webエンジニアリング系の勉強会やカンファレンスがオンラインで開催されることが増えました。 例えば毎年開催されているPHPカンファレンスの場合、2020年12月に開催されたPHPカンファレンス2020は、開催21年目にして初めてのオンライン開催となりました。翌2021年10月に開催されたPHPカンファレンス2021も、同様にオンライン開催となり、YouTube Liveを活用した配信となりました。 オンラインならではのメリットはいくつかあります。まず、移動が必要ない(自宅からでも参加できる)ので時間が有効に使えること。そして日本全国、あるいは世界のどこからでも時間を合わせれば気軽に参加できること、です。 しかし当然、デメリットもあります。いわゆる「カンファレンスの廊下」問題です。勉強会やカンフ
こんにちは、CTOの山岡(@hiro_y)です。 (この記事は、来る2022年4月9日から開催されるPHPerKaigi 2022に登壇応募したものの選出されなかった題材をブログに書くことで供養しようという試みです。) Webシステムでパスワードを保存するとき、そのままの値(平文)で保存してはいけません。データベースの中身が何かしらのインシデントで漏洩してしまった場合、パスワードの内容が明らかになってしまうからです(漏洩の時点でもっと酷い事態になっていそうではありますが…)。では、どのような対策を行えばよいのでしょうか。 パスワードはハッシュ化しよう 一つ目の対策は、パスワードを秘密鍵を使って暗号化、保存する方法です。 その場合、それぞれの暗号化に共通の秘密鍵を使わないことが大切です。また、初期化ベクトル(IV)としてそれぞれ異なるものを用意、ブロック暗号化モードを利用して暗号化した結果が
こんにちは、CTOの山岡(@hiro_y)です。 エンジニアをやっている皆さんなら、プログラミングはバグが付きものであることがおわかりかと思います。バグがゼロであることはあり得ないし、もしゼロという結果が出たなら、その結果の方を疑ってかかった方がよいとされているぐらいです(全くないとは言いませんが、極めてまれです…)。 これは言ってみれば、失敗を最初から想定し、許容する態度だとも言えます。必ず失敗するので、失敗に気が付ける仕組みを最初から用意しておく。そのために各種テストプロセスがあります。単体テスト、結合テスト、システムテスト。その他にもプロセスが用意されていることも少なくありません。 Webエンジニアの皆さんであれば、ユニットテストや継続的インテグレーション(CI)が一番身近な失敗検知の仕組みになるでしょう。実装するプログラムのテストを自分で用意しておく。場合によっては(テスト駆動開発
こんにちは、CTOの山岡(@hiro_y)です。 以前「Webエンジニアとして駆け出そうとしているあなたに」という記事を書きました。その中で「学習の高速道路」について触れましたが、その「高速道路」は最初からあったものなのでしょうか。また、「高速道路」の部分は通り過ぎたまま、先に向かってしまってよいものなのでしょうか。 tech.innovator.jp.net お察しの通り、「学習の高速道路」は最初からあったわけではありません。元々砂利道しかないようなところから、自分たちが少しでも楽できるように、皆で少しずつ作って整備してきたものだったりします。 例えば、Webアプリケーションフレームワークの場合。今どきのフルスタックなものであれば、一通り必要そうな機能が最初から用意されていて、必要に応じてコマンドを実行すれば簡単にページや機能が追加できます。 PHPだと、LaravelやSymfonyな
こんにちは、CTOの山岡(@hiro_y)です。このエントリーは「イノベーター・ジャパンAdvent Calendar 2021」の24日目の記事です。 あなたの会社に「頼りにできるエンジニア」はいるでしょうか。業務に必要なドメイン知識を持っていて、技術的にも複数領域携われる力があるような、そういう存在。 非常にありがたい存在なのですが、彼らに対して私たちはどうしても依存しがちです。この人に聞けば答えてくれる、安心感。それはいつしか依存に変わります。いつの間にか、その人なしではプロジェクトがまわらないようになっていたりしないでしょうか。その人がいるから他にエンジニアを入れなくていい、と判断してしまうこともあるかもしれません。 プロジェクトが小さいうちは、それでもシステム開発が成り立ちます。しかしプロジェクトが大きくなったり、継続性を考えなければならなくなったときに個人の力に頼りすぎてしまう
こんにちは、CTOの山岡(@hiro_y)です。 私はいくつかの会社でWebエンジニアの採用に携わっています。そうすると、否が応でも「駆け出しエンジニア」の方々を目にすることになるのです。採用媒体によって違いはありますが、多いと半分ぐらい「駆け出し」の方々なのでは…という媒体もあったりします。 人によってWebエンジニアになりたいと思う動機は様々です。純粋にエンジニアリングが楽しい人もいるし、もっと作るもの、プロダクトに関心がある人もいるし。その中に、どうやら稼げるらしいから、という理由があったとしてもよいと思います。会社に縛られないフリーランスになりたいからとか、リモートワークしたいからとか。動機は何であれ、Webエンジニアになりたい人が増えたのは単純にうれしいことです。 私がWebエンジニアになって20年近く経ちますが、今はすっかり便利になりました。主要なWebアプリケーションフレーム
このブログはJP_Stripes Advent Calendar 2019 の10日目のブログです。 adventar.org Stripe CLIについて書こうと考えていましたが、以下齋藤さん投稿で先を越されてしまいました。 developer.leap-arrows.jp そこで、過去1回だけ経験したことがある「チャージバック申請(Disputes)」について書こうと思います。 チャージバック申請(Disputes)とは クレジットカード利用者が不正使用などの理由により、利用代金の支払に同意しない場合に、クレジットカード会社がその代金の売上を取消しすることをチャージバックと呼びます。クレジットカードの明細を見て身に覚えのない支払いを拒否して、払い戻してもらう事ができます。*1 不正利用であったり、購入した商品が届いていないなどの理由でもチャージバック申請は利用されています。 チャージバ
こんにちは、CTOの@hiro_yです。 この記事はイノベーター・ジャパン Advent Calendar 2019、6日目の記事です。 ちなみに昨日、一昨日は&donuts(アンドーナツ、と読みます)のメンバーが書いてくれました。&donutsは「人がいるところに仕事を移す」職住近接をコンセプトにした当社発のプロジェクトです。とても面白いので、ご興味を持たれたらぜひ&donutsのサイトもご覧ください。 協賛のご報告と、そもそも協賛とはという話 さて、当社ではこのところ立て続けに技術系のイベント2つに協賛しました。11月に福岡で開催された「フロントエンドカンファレンス福岡2019」と、12月に東京で開催された「PHPカンファレンス2019」です。 以前、そうした技術系イベントに参加する意味について書いたことがあるのですが、今回は会社として協賛する意図だったり、意味について書いていきます。
こんにちは、エンジニアの @hanhan1978です。 弊社では、ソフトウェアの開発プロセスにおいて、ほぼ全てのプログラム修正・追加に対してソースコードレビューを実施します。本番環境にはレビューを通った変更のみが反映されます。 仕組み的な話をすると、恐らく多数の会社や団体にて行われているのと同様にGitHubのPullRequestに対してソースコードレビューを行って、Approve されないとPullRequestがマージ出来ないという形を取っています。 しかし、ソースコードレビューが常態化してくると、簡単に指摘できるような内容は少なくなってきて、「これ、あんまり良くないと思うんだけど、相手にどうやって伝えていいか分からない。」とか、「自分なら違う書き方をするし、そのほうが良いと思うけど、説得できるほど自分の頭の中で言語化できてない。」という状況によく出会うようになります。 このような状
こんにちは、エンジニアの @akase244 です。 弊社ではいくつかのドメイン事業者を利用しているのですが、つい先日、そのうちの1社であるお名前.com社より「【必ずご返信ください】」というタイトルのメールが届きました。 タイトルをよく見ると「Whois」との文字があったので、定期的に送られてくる「Whoisの内容は正しいですか?最新状態に更新してくださいね」といったニュアンスのメールかと思ったらどうやら様子が違います。 定期的に送られてくるメールのタイトルはこちら。 「【重要】Whois情報 正確性確認 ドメイン名」 今回送られてきてメールのタイトルはこちら。 「【必ずご返信ください】[お名前.com] Whois情報修正のお願い ドメイン名」 今回はこのメールが一体何なのか、いつまでにどういった対応を行うべきなのか、といった点について紹介したいと思います。 このメールは何? メール本
こんにちは、エンジニアの @akase244 です。 この記事を読んでいる方の中にも、もしかすると参加していただいた方がいらっしゃるかもしれませんが、先月の6/29(土)に「PHPカンファレンス福岡2019」を開催しました。 私と @cakephper さんの二人で始めた Fukuoka.php という勉強会をきっかけに、大規模なカンファレンスを開催することになるとはまったく想像もしてなかったわけですが、今年で5年目を迎えました。 そんなPHPカンファレンス福岡ですが、開催にいたるまでにスタッフがいったいどんな準備をしているのか興味ないですか? 今回はカンファレンス当日までにスタッフがどういった作業をやっているのかを、Backlogのチケットタイトルを眺めながら紹介してみようと思います。 12月 今年の経費明細を元に来年のスポンサー数と金額を決定する スポンサー特典の内容決定 スポンサー資
こんにちは、エンジニアの @hanhan1978です。 2019/05/29(水)GMO Yoursにて開催された第138回 PHP勉強会@東京 - PHP勉強会@東京 | Doorkeeperにおきまして、「PCREとPCRE-JITとPHPの話」というタイトルで発表してきました。 PHP勉強会 第138回 PCREとは? Perl互換の正規表現ライブラリのネイティブ実装です。PHPでは4系の頃からpreg_系の関数においてPCREを利用していました。 今回、個人的にPCRE-JITという正規表現のパフォーマンスを向上させるJust In Time コンパイラ周りを調べていた時に、7系以降のPHPとPCREの関係がなかなか面白いなと思ったので、まとめた次第です。 登壇スライド まとめ 正規表現は、文字列の高度で柔軟な操作をするときによく利用しますが、PHPが使っている正規表現ライブラリや
こんにちは、CTOの山岡(@hiro_y)です。 イノベーター・ジャパンでは「&donuts(アンドーナツ)」というプロジェクトをやっています。簡単に言うと、職住近接のコンセプトを基に子育て中のお母様方などに郊外のオフィスに集まっていただき、そこでお仕事をしてもらうという取り組みです。現在、千葉県・柏の葉と神奈川県・湘南(辻堂)に拠点を設けています。 今回、東京オフィスと&donuts柏の葉オフィスで「見積もり」をめぐるお話会(自由参加の勉強会みたいなもの)を開催しました。クライアントワークでは見積もりを出す機会はいくらでもありますし、社内のやり取りでもどれぐらいかかりそうか、話し合う機会は多いと思います。そのコミュニケーションを改善するきっかけになればよいなと思ってのことでした。 東京オフィスでは割とかために、見積もりとは〜のような感じで話を進めたのですが、&donuts柏の葉オフィスで
こんにちは、エンジニアの@hanhan1978です。 2019/2/16(土)グランパークカンファレンスにて開催された。Laravel JP Conferenceにて、「Laravelで学ぶ、Webアプリケーションチューニングの基本」というタイトルで発表してきました。 conference2019.laravel.jp 登壇内容 10年以上前の話ですが、サービスイン後に負荷が上がったアプリケーションを目の前にした時に、どうして良いか分からずに途方にくれたことがありました。 個別の細かいチューニング方法は少し触れる程度に抑えて、大局から絞り込んでいくやり方にフォーカスしています。私と同じように苦境に立たされた人にとって、闇を照らす光になれたらなと思っています。 speakerdeck.com 聴講したセッションと感想 ServiceProvider, ServiceContainer入門 :
どうもこんにちは、@yamacho1111 です。 最近注意力が散漫です。戦闘力はたったの5です。うそです。 周りにポモドーロ・テクニックを駆使しているメンバーがいるので、私もやってみようと思いました。 ポモドーロ・テクニックとは 「ポモドーロ・テクニックとは」でググると、強調スニペットで次のように表示されていました。 ポモドーロテクニックは、「25分(集中)・5分(休憩)・25分(集中)・5分(休憩)…」のリズムで仕事をするという、取り入れやすく、かつ、効果も絶大な仕事術・時間術です。 なるほどですね。効果絶大。 他にも色々ありそうですが、ひとまずこの言葉を信じます。 作りました ということで、ポモドーロ・テクニックを実践するために、ポモドーロ・タイマーを自作しました。 まずはデモをご覧ください。 25分の集中と5分の休憩を交互にカウントダウンし、表示するだけのデバイスです。 Slack
複数人で開発していると、コードの書き方(インデントやブレスでの改行など)について意見が分かれることがあるかと思います。 また、PHP7.0以降で使えるタイプヒントは、宣言した型が不一致だとエラーになってくれますが、実行するまでエラーになるかわかりません。 安心安定の開発にはこれらが障害になりますので、静的解析によって排除しましょう。 今回はそのためのツールと簡単な使い方を書きます。 PHP_CodeSniffer PHPMD PHPStan Larastan 余談 おわりに PHP_CodeSniffer github.com 決められたコーディング標準を守っているかをチェックするツールです。 ここではPSR-12への準拠をチェックする例を示します。 導入 ルールファイル(phpcs.xml)作成 実行 # Composerで導入 $ composer require --dev squi
こんにちは、エンジニアの @akase244 です。 「AWS Lambdaを触ってみたい」と急に思いたち、AWSのドキュメントを読んでいたのですが、Lambdaを触るための前準備として以下の3つが説明されており、その中の「SAM CLI のインストール」がうまくいかずハマってしまったので、その際のメモを残しておこうと思います。 AWS アカウントのセットアップ AWS CLI のセットアップ SAM CLI のインストール Lambdaを触るための前準備 冒頭で大まかな流れを書きましたが、もう少し詳しく書くとこんな感じになります。 AWS アカウントのセットアップ AWSアカウントを作成する。 IAMユーザーを作成する。 AWS CLI のセットアップ AWS CLIをインストールする。 作成済みのIAMユーザーの情報を元にAWS CLIの設定を行う。 SAM CLI のインストール S
こんにちは、エンジニアの @akase244 です。この記事はイノベーター・ジャパンAdvent Calendar 2018の19日目の記事です。 当社ではGitHubのPull Request(以下PR)をエンジニア同士でコードレビューしているのですが、その際に実際に動かして確認したいという場合があります。 自分が携わっている案件であればローカルに開発環境が揃っているので、PRの対象ブランチに切り替えればすぐに確認可能なのですが、さすがに全てのプロジェクトに関わっているわけではありません。 動作確認のために各案件のGitHubリポジトリに収録されているVagrantfileやDockerfileでプロビジョニングしてもよいのですが、これはこれで時間が掛かったりしてなかなか。。。 前回の記事で触れたとおり、現在私が関わっている案件ではHerokuを利用しています。 Herokuには「Rev
Stripeのライフサイクルを実際に調べていたときのメモ こんにちは。@gorou です。この記事はStripe Advent Calendar 2018の18日目の記事です。 Stripeの定期課金とても便利で活用させてもらっていますが、webhook(Stripe側で発生したイベントを、指定したURLにPOSTリクエストで詳細を通知してくれる仕組み)の流れ(ライフサイクル)が少しわかりにくいのと、しっかり動きを把握していないと意図した動作にならないため、定期課金のライフサイクルについてまとめてみます。 StripeのSubscriptionsはいろいろな料金プランを作成できますが、今回は料金体系が「定期利用」でかつ「段階別の料金設定なし」の定額を一定周期で課金する場合について説明します。 定期課金のライフサイクル 以前Stripe公式ドキュメントにフローチャートがあったのですが、無くな
どうもこんにちは、@yamacho1111 です。 この記事はイノベーター・ジャパン Advent Calendar 2018と、IoTLT Advent Calendar 2018の18日目の記事です。 お尻の治安を守りたい まずは社会問題となっている、「ウォシュレットを強で立ち去る問題」について取り上げます。 トイレに入って・・・ ふとモニターの表示を見ると・・・ 水の勢いが強! これは明らかにテロでございます。 Twitterでアンケートをとりました。 ご覧のように、世の中には38%の弱者が存在しています。彼らは潜在的に被害者となりうる人たちです。彼らにとって、強・最強にしている人たちは、テロリスト以外の何者でもありません! 自衛が必要です。 そこで作りました。俺専用トイレボタンです。 M5Stackという液晶付きマイコンボードに、赤外線LEDを付けただけの簡単構成となっています。
Photo by rawpixel on Unsplash こんにちは。 @gorou です。この記事はイノベーター・ジャパンAdvent Calendar 2018の14日目の記事です。 昨日はヨガと健康についての記事でした。私はランニングをしているのですが、「ご飯が美味しい」と感じるのとても良くわかります。最高です。痩せません。 さて、私は主にtenpuの開発に携わっています。そこでプロダクト開発していく中で利用している便利なツール(サービス)を紹介したいと思います。 KPT/アイデア出し KPTやアイデア出しで利用しているのがRealtimeBoardです。 realtimeboard.com ホワイトボードをweb上で共有して、複数人で同時編集ができます。現在プロダクト開発はリモートで行われていて、直接話したり図を書いて話したりができない環境です。 リアルタイムに意思疎通ができなけ
こんにちは、社外CTOの山岡(@hiro_y)です。 この記事はイノベーター・ジャパン Advent Calendar 2018、1日目の記事です。一昨年、昨年に続いて一日目の大役を任されました。 今回は、エンジニアはどのような立ち位置でビジネスに関わっていくのか、あるいは関わっていってほしいのかについて書いておこうと思います(この辺のお話は、採用面談・面接の際によくさせていただくので、自分なりの整理の意味も込めて)。 ミッションと「ビジネスデザイン」実現のために イノベーター・ジャパンのミッションは「人の力を最大限に引き出すことで豊かな社会を実現する」です。人(企業なども含む)の力には、既に発揮されている部分と、まだ発揮されていない、潜在的な部分とが存在します。それらをどう実際の経済的・社会的な活動につなげていくか。そのための手段を「ビジネスデザイン」という言葉を用いて説明しています。
こんにちは、エンジニアの @hanhan1978です。 2018/11/28(水)GMO Yoursにて開催された第132回 PHP勉強会@東京 - PHP勉強会@東京 | Doorkeeperにおきまして、「受託で頑張る!僕たちのカンバン」というタイトルで発表してきました。 第132回 PHP勉強会 カンバンとは? リーンやアジャイル開発などで使われる開発方法の一つです。具体的には、特定のルールに則った上でホワイトボードに作業カードを貼り付けてタスクを進めていく方法です。 弊社でも2018年2月以降に導入したので、導入された経緯や現在の状況を発表してきました。 登壇内容 Speaker Deckにアップしてあります。 speakerdeck.com フィードバック1 タスクが速くこなせるようになった結果として、タスクのやり過ぎが発生しつつあるという話をしたところ スクラムのスプリントみた
こんにちは、エンジニアの @hanhan1978です。 2018/10/31(水)GMO Yoursにて開催された第131回 PHP勉強会@東京 - PHP勉強会@東京 | Doorkeeperにおきまして、「PHPで学ぶキャッシュの距離の話」というタイトルでLTしてきました。 Cacheって? 皆さんもよく利用されていると思いますがRedisやMemcachedにデータベースのクエリ結果とか、設定情報を保存したりで使います。 ※ブラウザキャッシュとかは、今回はスコープ外 登壇内容 Speaker Deckにアップしてあります。表紙はハロウィン仕様です! speakerdeck.com 補足の参考資料 本スライドの対象範囲外ですが、Cacheについて学ぶには以下のスライドが素晴らしいです。何度も読み返しています。 Webサービスにおける キャッシュ戦略 - Speaker Deck Web
次のページ
このページを最初にブックマークしてみませんか?
『Innovator Japan Engineers’ Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く