サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
レイングッズ
techblog.cartaholdings.co.jp
こんにちは、CTO歴も丸9年以上になりました @makoga です。 Podcastや勉強会で話をしたときに好評だったので、今回は私が面接時に見ているポイントを書きます。 ※この文章の元ネタは2016年1月に社内に公開したものです。 面接時に見ているポイント 3行まとめ 事実と意見を分けて説明できるか 実際の課題を解決しようとしているか 技術をどう理解しているか この文章の目的 30分から1時間の面接で一緒に働きたいかを判断するのは難しいことです。私も経験を積んで学んできました。 まだ経験が浅い面接官に私が実践していることを伝えることでVOYAGE GROUP全体の判断の精度を上げていくのが目的です。 事実と意見を分けて説明できるか 圧倒的にこれは重要。これができない人はかなり厳しい。 関わったプロジェクトのなかで、自身が一番活躍できたと思うプロジェクトについて聞く 学生の場合は1人で個人
コンテンツメディア事業本部の新卒エンジニア坂本がお送りいたします。 突然ですが、皆さんの好きなソートアルゴリズムはなんですか? 私は基数ソートのスマートでストイックな雰囲気に惹かれます。 とはいえ、普段の開発では「どのソートアルゴリズムを使うか」を意識することは少ないのではないでしょうか。 むしろ現実世界で「トランプが全部揃ってるか」を手作業で確認するときとかのほうが、実はソートアルゴリズムが必要なのかもしれません。 ということで(?)、そのような現実的な場面で、本当に実用的なソートアルゴリズムを決める戦いが始まりました。 選手紹介 今回試したソートアルゴリズムは、独断と偏見で選んだ以下の5種類。 1 挿入ソート シンプル・イズ・ベスト!正直言ってベンチマークの噛ませ犬! 2 クイックソート 「クイック」の名前はダテじゃない!王者の貫禄を見せてやれ! 3 マージソート 安定感のある隠れた実
みなさん、おはようございます! CARTA fluct エンジニア の なっかー@konsent_nakka です。 CARTA TECH BLOG アドベントカレンダー 12/14ということで、普段DBのロックについてあまり意識したことがない人に向けた実は覚えておきたいロックについての知識をざっとまとめてみました。 とりあえずこれだけ読んでおけば最低限は困らない、もし何か困った時にはあそこで出てきた内容をもう少し深く調べて見るか、というきっかけになれば良いなと思います。 厳密な定義よりも普段DBを扱う中でロックについてあまり意識したことがないような人にもすっと入ってくるように簡単な表現を優先して書いていますがご了承ください。 目次 留意事項 排他ロックと共有ロック トランザクション分離レベル SELECTのロックレベルを変更する 共有ロック: LOCK IN SHARE MODE 排他ロ
こんにちは、VOYAGE GROUP システム本部の @s-tajima です。 PHPカンファレンス2016 の「老舗メディアが改善に取り組んでいる話」でもお話した通り、長年オンプレミス環境で稼働してきたECナビを、AWSに移転しようというプロジェクトが進行しています。 そしてなんと先日、約24時間のメンテナンスを経てECナビの本体(Webサーバ, 管理画面サーバの一部, データベースサーバ)がAWSに移転しました! AWS移転において得た知見, 構築したシステム等は数多くありますが、今回はCloudFormationとTravis CIを用いて 生産的 で 安全 で 手軽 なAWSのCI環境を構築したお話です。 背景 ECナビは、500万人を超える会員を抱えたVOYAGE GROUPが運営している中でも特に大きなメディアの1つです。 今回、そんなECナビのインフラ調達期間の削減、検証環
TL;DR 自身の成果をアピールするために、1)Before/After、2)自分の寄与度、3)数字的インパクトを過不足なく伝えることが重要 説明の冒頭では、課題と解法の全体感と成果を述べ、詳細は後に肉付けすると伝わりやすい 課題を伝える際は"誰から見た課題か"を明確にする。課題は解法の前提であるためブレないように はじめに 技術広報のしゅーぞーです。この記事では、過去100人分程度の成果報告書を読み、気付いた "自分の成果をわかりやすく伝える書き方"をまとめています。 仕事をしていると自身の成果を的確に伝える機会は数多くありますよね。 評価期、転職面接、昇格面談など 評価者に自分の成果をどう分かりやすく伝えるか は自分のキャリアを伸ばす上でとても大事なスキルです。 しかし、自分の頑張りや成果を上手く言語化し、相手に正しく理解してもらうのは簡単ではありません。 特に、経験の浅い若手にとって
こんにちは、fluct SSP開発本部の@saxsirです。 今年の4月に入社した新人ですが、職場ではgolangとかAWSとかを使って社内向けのプロダクトをゴリゴリと開発しています。 さて、VOYAGE GROUPでは人事評価制度の一つとして技術力評価会という相互評価の仕組みがあります。 これは年に2回ほど開催されており、直近半年くらいの仕事から何かテーマをピックアップし、別チームのエンジニア2名(評価者)に「私はこんなすごいことをやったんだよ、どやっ」とお話しながら自分の技術力を評価してもらうという場になります。 もちろん、新卒も例外なく技術力評価会を行います。 今回は初めての技術力評価会を終えて私が学んだこと、を社外の方向けに書こうと思います。(言うまでもなく、私は被評価者です) ※以下、「技術力評価会」を「評価会」と略して表記する場合があります TL;DR 「なぜやったのか」を説明
おはようございます、こんにちは。Zucks Affiliate事業本部でエンジニアをやっている新卒二年目のだっちと申します。 この事業部には最近部署異動で配属され3ヶ月ほど経ちました。 さて、今回は@t_wadaさんと事業部内エンジニアで毎週行っているJava言語で学ぶデザインパターン入門の読書会で得た知識によって設計の語彙がチームに浸透してきて円滑にリファクタリングの方向性が進んだ話をしたいと思います。 簡単な事業部紹介 Zucks Affiliateは名前の通りアフィリエイトを扱っている事業部で、エンジニアや営業間のコミュニケーションも盛んで日々雑談から事業・技術的な相談まで気軽にしています。 エンジニア間では朝・夕会でお互いにやっていること・詰まっている部分を共有しているのに加えて、コードは全員でレビューし、具体的に何をしているかがしっかりと把握できている状態になっています。 総じて
技術広報のしゅーぞー(shuzon__)です。 今日は「文章を書くことはプログラミングに似ている」という話をします。 参考書籍はこちら。論理が伝わる世界標準の「書く技術」 @soudai1025からのリクエストで社内ブログを一部編纂し公開しています。 文章を書くことはプログラミングに似ている。 文章を書くことはプログラミングに似ている。 なぜならば、抽象化すると、一連のトピックに対する意味のあつまりを区切り、扱う行為だからだ。 意味ごとに構造化する行為と思えば非常に似ている。 パラグラフ・ライティングは関数に似ている ここでパラグラフ・ライティング を紹介しよう。 パラグラフの構造 パラグラフ・ライティングは関数に似ている。 パラグラフ・ライティングは段落の先頭に「その段落が持つトピックの結論」を書く。 その後、前述の事実を用いた補足とロジックが続きトピックを補足する。 段落の最後に、議論
はじめに こんにちは、CARTA HOLDINGSでエンジニアをしているこんちゃん(@konchanSS)です。 この記事は筆者が新しく発足したプロジェクトのシステムを外部委託で作った経験をチームで振り返った際に得た学びを『システムを作らせる技術』によって補強したものです。 この記事を読んでくれた方は是非『システムを作らせる技術』を一読して欲しいです。 システムを知らないあなたにこそ読んでほしい この記事はビジネスサイドや、PdMだったりマネージャーといったいわゆるシステムの開発を依頼する側の人たちに向けて書いています。 意図した通りのシステムを作ってもらうための術を知ることはあなたにとって以下のメリットがあります。 意図した通りにシステムが動くことで業務の効率的になる 貴方がやろうとしているビジネスを促進させる システムを作ってもらうための術を知ることがなぜそのようなメリットを享受できる
CTO室 相談室でCARTAの各部署の技術メンター・コーチをしている前田@brtriver です。 自分の仕事内容を説明するのが難しいですが、スタッフエンジニアでいう右腕です! いろんな部署のサポートをしていると開発要望タスクのリストを確認する場面がよくあります。 そして、その中の「優先度」という項目で正しく優先度をつけることができていない現場が多いと感じます。 そこで、今回はどのように「優先度」を考えればよいかについて私自身が意識していることをまとめてみるので、ぜひ一緒に考えてみましょう。 優先度が「高」だらけになってしまう チケット管理において優先度が「高」だらけになってしまう現象を目にしたことはありませんか? チケットは困ってる本人が書くため、基本とその優先度は「高」が多くなります。 チケットに残すために書いたとしても、優先度低いタスクはそもそもやらないという判断されることが多く、そ
こんにちは。fluctでiOS/Android向けSDKの開発をしているarimuraです。この記事ではPhilip Fisher-Ogden、Greg Burrell、Dianne MarshによるFull Cycle Developers at Netflix — Operate What You Buildを私が翻訳したものを著者の許可のもとに掲載しています。元の記事は弊社の技術力評価会のインプットの一つとして共有されており、そこで興味を持ったのが翻訳するきっかけとなりました。 以下、2018年5月時点における情報を記載したものであり Netflix TechBlog「Full Cycle Developers at Netflix」より引用したものである。 Netflixにおけるフルサイクル開発者―開発したものが運用する 2012年―Netflixでの重要なサービスの運用は骨の折れ
皆さんこんにちは。fluctにてfluct SSPという広告配信システムの管理画面を中心にクライアントサイドの開発を行っております、大関です。 依存パッケージの更新、どうしてますか? 今や数多くの言語でパッケージマネージャが提供されており、みなさんも日常的にコミュニティによるパッケージエコシステムを活用していることと思います。 ですが、この依存パッケージの更新については、どのようにしていますか? セキュリティfixなどを除き、以下のようなことになっていることが多いのではないでしょうか? チームの「いい人」が頑張って更新し続ける その人の謎の情熱が消えると更新されなくなってしまう たまに気がついたら頑張る 「いい人」が頑張るタイプの亜種 気が付かなかったら更新されない 更新はリスクなので塩漬けにする プロダクトは定期的に作り直す前提 CIでテストを回し続けているのに更新しないなんて……とモヤ
はじめまして。Zucks Affiliateでエンジニアをしている宗岡です。 今回は、リアルタイム性は求めないけど、簡単に大量のデータをどこか別の場所に転送したい。 という要望に答えてくれるEmbulkを紹介したいと思います。 実際に導入に至ったきっかけや、運用上よくある課題なども触れていきたいと思います。 同じ境遇の人が「簡単そうだしEmbulk使ってみようかな」となっていただければ幸いです。 目次 目次 背景 Embulk以外にも出てきた案 実際のEmbulkの導入と使い方 1. Embulkのインストールとセットアップ 2. 必要なプラグインのインストール 3. 設定ファイルを書く 実務でcodecommitを使った例 設定ファイルの書き方 4. まずはpreviewで問題なさそうか確認 5. 問題なさそうなのでrunして実行 Embulkの運用上、よくぶつかる課題 1. 重複に気付
こんにちは!株式会社VOYAGE MARKETINGで働くエンジニアの yopidax です。 約20年ほど続くサービス、ECナビの技術的負債の返済に取り組んでいます。 ecnavi.jp 今回は直近で、レガシーコードを大量に削除したので、そのアプローチをご紹介したいと思います。 目次 目次 解析の対象と抱える課題 アプローチ 実行されるファイルを洗い出す ログを出力するモジュール 実行 ログのサンプル いざ、大量削除 Perlファイルをgrepする リリース単位を細かくする 結果 工数 実績 まとめ 合わせて読みたい 解析の対象と抱える課題 ECナビを長年支える、Perlで書かれたバッチが対象です。コードはGitLabのリポジトリで管理されていて、規模をまとめるとこんな感じです。 ファイルの数 バッチ関連全体 : 3,315 うち、Perlファイル(.pm, .pl) : 1,111 P
株式会社fluctのエンジニア長谷川です。 弊社はフルスクラッチで開発,提供をしているfluct SSPというプロダクト以外にも、Googleの認定パートナーとしてGoogleのプロダクトを利用したメディアのマネタイズのお手伝いも行っています。主なプロダクトはGoogle AdSenseやDoubleClick AdExchange, DoubleClick for Publishersです。 これらのプロダクトは非常に高機能な反面、効果的に活用するにはネット広告一般やプロダクト自体に関する高度な知識が不可欠です。そこでfluctがプロダクト運用のお手伝いをしています(詳しくはこちら)。 私のfluctでのミッションとして、Googleの商材の技術的なサポートというものがあります。具体的には… コンサルティングサポート お客様あるいは弊社コンサルのアイディアのフィジビリティ調査 アドが出な
こんにちは、fluctの@nekoyaです。 今日は現在開発に携わっている、俗に言う「管理画面」のWebアプリケーションのアーキテクチャをご紹介します。 このアプリケーションはReactとRxJSを軸として作られており、コードはTypeScriptを使って書いています。 アプリケーションを流れるデータと状態の管理について、Write StackとRead Stackという考え方を取り入れたところ、いろいろなメリットが得られたので、そのあたりを軸に掘り下げてみます。 全体の大まかな構成 各Stackの前に、まずはアプリケーション全体の構成をざっくりと見ておきます。 流れとしては、DispatcherからWrite Stack, Read Stackを通ってStateが生成され、それをViewが受け取るという構成になっています。 全体の流れとしてはFluxっぽい何かのひとつのあり方なのですが、
こんにちは、株式会社fluctで fluctSSPの広告配信に関わっている坂本です。 私はfluctでは新しい広告(PMP, NativeAd)の追加をしたこともありましたが、ここ1年半くらいは自分で追加した広告機能や既存機能のサポートエンジニアとして働いています。 (インフラの保守・運用は専門部署があるのでおまかせしています) 経歴 SIer(金融・ECサイト開発等)のピラミッド構造で開発に従事していた6年 Web系の会社(VOYAGE GROUPとは別会社)にてSESとして仕事をしていた4年(ここ終わりでVOYAGE GROUPに転職) Web系の会社(VOYAGE GROUP/fluct)にて正社員として2年半~現在に至る 今の自分の行動指針はSIer時代に培われたものがほとんどですが、Web系の会社に入って考えを改めたものもあるので、自分のスキルの棚卸しを兼ねてそれを整理してみます
こんにちは、nekoyaです。 システムを日々運用していく中で、その処理結果の記録や異常検知の仕組みは地味ながらも大切な存在です。 各種監視ツールからの通知や、ブラウザから利用可能なWebインタフェースなど、その形態も様々です。 今回はその中から、バッチ処理の結果通知について、我々のチームが実践している方式をご紹介します。 loggerを通して記録する まず前提として、通知する内容はプログラマ自身が出力することが基本になります。 自分はここ数年はPythonをメインに使っていて、標準のloggingモジュールを通して import logging logger = logging.getLogger(__name__) logger.info('hello!') のようにログを吐いておくと、スクリプトの終了時にそれまで出力したログがいい感じに集約されて通知されるようにしています。 ログレベ
こんにちは、Zucks Ad Networkの開発をしている @hagino3000 です。8月の後半にMachine Learning Summer School 2015 Kyoto (以降MLSSと表記)に参加してきました。世界各国の研究者と交流しつつ刺激的な講義を受けるも、内容が難しくて毎晩悲壮な気持ちで復習に励む日々を送っていました。以下、MLSSの内容と講義の感想をいくつか。 mlss | Machine Learning Summer School Kyoto 2015 モチベーション 機械学習はネット広告業界で広く使われています。Zucks Ad Networkにおいても配信する広告の選択ロジックに機械学習を利用していますが、さらに他の処理についても適用できないか試行錯誤している所です。今回はデータ解析チームの底上げ、つまり勉強と新たなネタ探しのためにZucks Ad Ne
こんにちは。Zucksでエンジニアをやっています@karahiyo_nです。 先日社内向けに「Zucksで働き学んだ成果に繋がるプラクティス」という発表を行いました。今回はその一部を紹介したいと思います。 発表では6年間でシステム構成がどう変わってきたのかと実際にやってきたタスクを紹介しつつ より妥当な意思決定をするために より早く価値を提供できるように システムの複雑性と戦う方法 などいくつかプラクティスを紹介しました。 今回はその中のひとつ「システムの複雑性と戦う方法」について書きたいと思います。 対象のシステム像 元の発表ではZucksのシステムを取り上げて解説したのですが、ここでは次のようなシステムをイメージしてください。 非常に高いサービスレベルが求められるシステム(例えばAmazon Compute SLA相当) 低レイテンシ、高トラフィック(で、さらに増加傾向) 機能要望は尽
こんにちは。雨宮(@rail44)です。 普段はヨーヨーやポケモンに興じるかたわら、株式会社fluctで広告配信システムの開発を担当しています。 fluctは広告業界ではSSP(Supply-Side Platform)と呼ばれる立ち位置で、インターネットメディアの収益の最大化にフォーカスした事業を行っています。 私たちのシステムを使うと、広告によるマネタイズが面倒な運用無しに出来る。といったイメージです。 この記事では、自分が直近で担当をしている広告の配信スクリプトと、普段注目されづらいその裏側について書いていきたいと思います! 広告タグの構造 さて、webページに広告を表示したい場合、アプリケーションはHTMLで記述されているため、広告もHTMLタグの形でお渡しすることになります。 (※fluctではモバイルアプリや動画プレイヤーへの広告配信も行っており、それらの場合はHTMLではない
Zucks Ad Networkでデータ解析をしています、@yuu_itoです。 気づいたら3月も半ばですね。花粉で目がしょぼしょぼします。 メモを取ることについて書いていきます。 きっかけ 技術調査のために論文を集めGoogle Docsにまとめていた時、 とりあえずまとめた後に共有しますねと連絡したら、 メモはGitHub Issueへのコメントで書いておいたら?というのが始まり。 やってみて気づいたこと まとまっていない状態の文章を晒すことに抵抗があったのですが、やってみると嬉しいことがありました。 1. Issueに気づいた人がコメントをくれる。 弊社ではGitHubとSlackを連携してIssueの更新をSlackに通知しています。 取り組んでいること、考えていることを書いていると 「なんかデータの傾向がイメージと違った」→「それ~だからかも」 「計測しているデータ、不要なものも
皆さんこんにちは. 現在はfluctにてfluct DRという広告配信システムの開発を行っております, 大関です. GitHub上でのチーム開発では, レビューの依頼や, CIが通ったことを確認した上でのPull Requestのマージといった複数の作業が発生しますが, これらはGitHubのUIを複数回クリックする必要があり, 非常にストレスフルな作業です. 本稿では, こうした定形作業を自動化するbotとしてpopukoを開発・導入することで, 我々開発者のストレスを軽減するとともに, より堅牢かつフィードバックの多い開発が実施できるようになった事例を紹介します. GitHubでの開発はとてもクリック操作が多い 前段でも述べたように, GitHubを用いたチーム開発においては, 数多くの定形作業が存在します. コードレビューの可能な人を探してレビューを依頼する, 依頼の度に対象者をAs
こんにちは。社内でWebアプリケーションエンジニアをしつつ、社内の音響サポートしている @brtriver です。 VOYAGE GROUPのAJITOでZoomを使ったオンラインイベントを何度か開催しましたが、その中の1つの日本CTO協会( https://cto-a.org/ )が主催する会員限定のイベントで実際に配信で利用した機材、設定で工夫した内容についてせっかくなのでまとめてみたいと思います。*1 cto-a.org このオンラインイベントでは全員が個別にZoomに参加するのではなく、発表者はオフライン会場であるAJITOに集まりその様子をZoomを通して配信する形式で開催しました。 オフラインの会場の様子 4行でまとめると Zoomは他のプラットフォームに比べても音質が良い。ただし癖も有り できるだけソフトウェアではなくハードウェアに頼る。ATEM mini はコスパ最強 スラ
こんにちは!VOYAGE MARKETINGシステム本部の@gomachan46です。 普段はRuby on Railsを用いてPeXというポイント交換サイトの開発を主に行っています。 さて、PeXにはポイントを貯められるコンテンツがたくさんあります。その中のひとつ「YOUの気持ち聞かせてよ!みんなのNEWSウォッチ」は、ニュース記事を読んでリアクションするだけで、簡単にポイントが貯まるコンテンツです。 pex.jp 今回は、「みんなのNEWSウォッチ」のコンテンツストレージとしてはもちろん、APIとしても縁の下から支えてくれているS3の活用事例について書いていきたいと思います。 3行まとめ S3をAPIとして実際に利用してみた 負荷や管理周りなど考える事が減って良い ファーストリリースの価値検証等のフェーズでは特に一考の価値あり 「みんなのNEWSウォッチ」の仕組み はじめに「みんなのN
VOYAGE Lighthouse Studio の海老原 (@co3k) です。先日 30 歳になった記念としてタイトルはオヤジギャグです。 さて、普段は 神ゲー攻略 というゲーム攻略サイトを運営しているのですが、とある派生サービスを立ち上げるにあたり、 Web API スキーマ定義を gRPC に基づく形式の Protocol Buffers で書き、 protoc-gen-swagger プラグインを介して OpenAPI 定義ファイルとして生成する、というアプローチを採りました。 yugui さんの素晴らしい記事、「今さらProtocol Buffersと、手に馴染む道具の話」によってスキーマ定義言語としての Protocol Buffers がにわかに注目を浴びて以降、似たようなことをやりたいという方もいらっしゃるのではないでしょうか。 ところが、おそらく単体で protoc-g
ポイントメディア事業本部の福田です。 Developers Summit 2019にて、「レガシーとのいい感じの付き合い方」と題して、ECナビの4年に渡る改善事例を発表しました。 講演資料を公開します。 セッション詳細 event.shoeisha.jp 公開資料 当日の反響(togetter) togetter.com 発表を終えて ネタが地味目なので、当日どれくらい来ていただけるのか少し不安でしたが、満員+立ち見の盛況でした。 当日ご参加いただいた方、ありがとうございました。 アイスブレイクとして、会場のみなさんには「何年もののレガシーシステムに取り組んでいるか?」について質問させていただいたところ、「10年以上」という方が半数超え(※壇上からの主観です)で、レガシーシステムの問題は顕在化していることを実感しました。 目立たずに水面下でじわじわと苦しめられてる問題だと思うので、私達のよ
CCI の小坂です。 担当プロダクトの中で、以前からの課題だった ビッグバンリリースを改善したことについて書きます。 開発システムの概要 やってることはCCI の社内システムの開発で、媒体社から提供された媒体資料をもとに、原稿規定を データベース化しています。 データベースをもとに、原稿素材の規定チェックから管理までを行うことができるツールです。 技術スタックとしては バックエンドがJava,Spring Bootフロントが Vue.js,Nuxt.js を使ってます。 これまでの開発フローと課題感 リリースは2-3ヶ月ごとのリードタイムがあった 開発周りのお話です。以前の開発フローは以下です。 - ユーザー要望を issue に起票 - 1-2 ヶ月で開発を行い、ステージング環境で動作確認 - その後にリリース判定 - ビジネスサイドにリリース時期を共有し調整 - リリース この流れを
コインを投げを観測し、コインの表になる確率を予測するとき、みなさんはどのように予測するでしょうか。 (コイン投げに限らず、表か裏のように二値になるような予測であれば、例えば、広告のクリック率や、単語の出現率、ナンパの成功率でもなんでもいいです。) コインが表になる確率が0から1まで一様だ(まんべんなく出る)とすれば、n回投げてs回表を観測したら、平均であるs/nをその確率として予測するのではないでしょうか。 この方法をもっと複雑な言い方をすれば最尤推定(maximum likelihood; ML推定)とよびます。コインが表になる確率が一様という事前確率まで分かっている前提ならば、これは最大事後確率推定(maximum a posteriori estimation; MAP推定)ともいえます。なんか最強っぽいですよね。 他に方法があるのでしょうか。スムージングという方法もあります。スムー
次のページ
このページを最初にブックマークしてみませんか?
『CARTA TECH BLOG』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く