kangaatのブックマーク (81)

  • エンジニアとして事業に貢献するとは「Why-What-Howの一貫性を保ちながら、技術意思決定を積み重ねること」である - Speee DEVELOPER BLOG

    ※この記事は、2022 Speee Advent Calendar25日目の記事です。 どうもこんにちは。まさかのアドベントカレンダー2022最終日担当、デジタルトランスフォーメーション事業部 (以下、DX事業部)ソフトウェアエンジニアの石井です。 私はこれまでDX事業部の中でも特にHousii (ハウシー)という事業にメインで携わり、約2年間、「エンジニアとして事業に貢献する」というテーマと向き合い続けてきました。過去にも以下のようなテーマで登壇させていただきました。 tech.speee.jp そこで今回はHousiiを通じて得た自身の学びや実際の取り組みをご紹介しつつ、 エンジニアとして事業に貢献するとは「Why-What-Howの一貫性を保ちながら、技術意思決定を積み重ねること」である そのためには、Why-What-Howの接点に関わりながら、技術意思決定力を磨き続けること

    エンジニアとして事業に貢献するとは「Why-What-Howの一貫性を保ちながら、技術意思決定を積み重ねること」である - Speee DEVELOPER BLOG
    kangaat
    kangaat 2022/12/26
  • GitHub Codespacesの導入とその設計 - Speee DEVELOPER BLOG

    ネイティブアド配信プラットフォームUZOUの開発をしているエンジニアの @kanga333 です。UZOUでは今年の8月あたりからGitHub Codespaces(以後Codespaces)を全面的に導入しました。この記事ではUZOUにおけるCodespacesの利用事例について簡単に紹介します。 GitHub Codespacesとは? GitHub CodespacesとはGitHubの提供するクラウド開発環境のサービスです。Codespacesを利用するとクラウド上のVMの上にリポジトリのコードと諸々の環境がセットアップされたコンテナが立ち上がり、開発者はその環境に接続して開発をすることができます。 GitHub, Inc. 自体がGitHub Codespcesのユーザーであるため、かなりの大規模環境でも実績のあるサービスとなっています。GitHub自身の事例に興味が出た方は以下

    GitHub Codespacesの導入とその設計 - Speee DEVELOPER BLOG
    kangaat
    kangaat 2022/12/14
    書いた
  • RuboCopにPRを出したらOSS活動が怖くなくなった - Speee DEVELOPER BLOG

    ※この記事は、2022 Speee Advent Calendar13日目の記事です。 昨日の記事はこちら tech.speee.jp こんにちは、デジタルトランスフォーメーション(DX)事業部でエンジニアをしています。21 卒の染谷です。 皆さんは OSS 活動をしたことはありますか?OSS 活動を始める以前は「私が OSS に貢献できることなんてあるのか?」と OSS 活動をすることに抵抗がありました。 そんな私ですが、最終的に RuboCop(RubyLinter)にロジック修正の PR を出すことができるようになりました! github.com この記事では、OSS 活動怖くないぞ!人の作りしものなのでバグはあるし貢献できることたくさんあるぞ!を伝える記事です。 OSS 活動に興味はあるけれど、何からやれば良いのか悩んでいる人は是非読んでください。 OSS 活動を始める前の

    RuboCopにPRを出したらOSS活動が怖くなくなった - Speee DEVELOPER BLOG
    kangaat
    kangaat 2022/12/13
  • Goの静的解析を使用したzap用コードGenerator - Speee DEVELOPER BLOG

    ※この記事は、2022 Speee Advent Calendar5日目の記事です。 昨日の記事はこちら。 tech.speee.jp はじめに アドプラットフォーム事業部でバックエンドエンジニアをしている@muroon01です。UZOUという広告配信プラットフォームを開発・運用しています。業務でGoの静的解析を使用してzap用のコードGeneratorを作成したのでそれについて記載したいと思います。 zapとは uberがつくったGoのログライブラリ jsonなどプログラムで処理しやすい形式でのログ出力が可能。他にもフォーマッターのカスタマイズも可能 ゼロアロケーションである(ただし使用法による) 条件サンプリング機能を有している 独自のzapcore.Core機能を実装することにより独自Writerを定義して書き込みをカスタマイズできる 例えばこちらを使ってログの書き込みをトリガーにS

    Goの静的解析を使用したzap用コードGenerator - Speee DEVELOPER BLOG
    kangaat
    kangaat 2022/12/05
  • トンプソン抽出の例で見る共役事前分布 - Speee DEVELOPER BLOG

    ※この記事は、Speee Advent Calendar 4日目の記事です。 昨日の記事はこちら tech.speee.jp 初めまして。アドプラットフォーム事業部の田 @mov_vc です。SpeeeでUZOUの開発をしています。 以前に下記の記事で紹介されていますが、UZOUで利用されているバンディットアルゴリズムはトンプソン抽出 (Thompson Sampling) で実装されています。 tech.speee.jp 大まかに言うと、トンプソン抽出によるバンディットアルゴリズムでは それぞれのアームの期待値の確率分布に従って乱数を生成する 生成された乱数が最大のアームを1回引いて期待値の確率分布を修正する という手順を繰り返します。この記事では、これらがどのようにして実現可能なのかという理論面に焦点を当てて観察していきます。 この記事で話さないこと バンディットアルゴリズム自体の説

    トンプソン抽出の例で見る共役事前分布 - Speee DEVELOPER BLOG
    kangaat
    kangaat 2022/12/04
  • Python の高速化 - MicroAd Developers Blog

    はじめに 機械学習エンジニアの大庭です。普段はマイクロアドが提供する広告配信プラットフォーム UNIVERSE Ads に接続する機械学習 API の研究開発をしています。 マイクロアドでは、機械学習モデルの学習側との連携が容易なこととメンテナンス性を重視して Python機械学習 API を実装しています。Python は使いやすい反面、基文法は速いとは言えない言語です。そのため、実行時間制約の厳しい Real Time Bidding (RTB) のなかで使うには高速化を意識しておく必要があります。今回は様々ある Python の高速化手法の理解と整理のため記事にしました。 個人的にですが、Python の高速化は以下の手順で行っていくのがいいと思っています。この記事では、この手順毎に便利なツールやライブラリをまとめました。 ボトルネックの特定 計算量(オーダー)を減らす コード

    Python の高速化 - MicroAd Developers Blog
    kangaat
    kangaat 2022/08/08
  • Goのロギングライブラリから見たゼロアロケーション - Speee DEVELOPER BLOG

    はじめに UZOUという広告配信プラットフォームでバックエンドエンジニアをしている@muroon01です。 Goのロギングライブラリであるzerolog, zapは(使用法によりますが)ゼロアロケーションであると言われています。 そこでゼロアロケーションのロギングライブラリとは一体どのようなつくりなのか、またGoのソースをゼロアロケーションにする方法について記述していきたいと思います。 ゼロアロケーションとは? (メモリ)アロケーションとはプログラムが動作するのに必要なメモリの割り当てを意味しており、スタック領域へのもの(静的アロケーション)とヒープ領域へのもの(動的アロケーション)が存在します。 スタック領域へのメモリの割当は割当サイズおよび確保・解放されるタイミングがプログラムの記述時に静的に決まります。 一方、ヒープ領域は宣言時にメモリの最大割当サイズを指定せずに、プログラム実行時に

    Goのロギングライブラリから見たゼロアロケーション - Speee DEVELOPER BLOG
    kangaat
    kangaat 2022/07/12
  • MySQL Shellのユーティリティをコマンドラインで実行する - MicroAd Developers Blog

    はじめに インフラエンジニアの長田です。今回は、MySQL Shellで提供されている種々の便利な機能をコマンドラインで実行する方法について紹介したいと思います。 MySQL Shellとは MySQL Shellは、公式に提供されている新しいMySQLのコマンドラインクライアントで、従来の mysql クライアントと同様にSQLによるデータベースの操作に加え、JavaScriptまたはPythonによる操作を行うためのMySQL Shell APIを備えています。 その中の一つである util グローバルオブジェクトには、これまでのバージョンアップにより、並列スレッドで実行する高速なダンプ・リストア、テーブルデータのインポート・エクスポートなどといった便利な機能が追加されています。 MySQL ShellはWindowsLinuxmacOS向けに提供されています。 dev.mysql

    MySQL Shellのユーティリティをコマンドラインで実行する - MicroAd Developers Blog
    kangaat
    kangaat 2022/02/07
  • 「なんとなくアジャイル風」の開発をしないために気をつけるべき観点 - Speee DEVELOPER BLOG

    ※この記事は、Speee Advent Calendar24日目の記事です。 昨日の記事はこちら tech.speee.jp こんにちは、DX事業エンジニアのさとーる(@satotoru2000)です。 先日、学生たちにアジャイル開発によるプロダクト開発の立ち上げを体験してもらうインターンを開催しました。インターンというコンパクトな形で行うことでかえってエッセンスを抽出することが出来たと感じているので、当日にアドリブで色々喋ったことを改めて言語化して整理しようと思います。 Speeeのプロダクト開発ではインセプションデッキやユーザーストーリーなど、アジャイル開発でよく使われれるツールを駆使しながら進めていくのですが、こういったツールは漫然と利用しても意味がなく、事業の成功と紐付けて考える必要があります。形式としてアジャイルの方法論を取り入れても、目的を理解し、勘所をしっかり抑えていなけ

    「なんとなくアジャイル風」の開発をしないために気をつけるべき観点 - Speee DEVELOPER BLOG
    kangaat
    kangaat 2021/12/24
  • Speee OSS挑戦 for Red Data Tools - Speee DEVELOPER BLOG

    ※この記事は、Speee Advent Calendar19日目の記事です。 昨日の記事はこちらtech.speee.jp こんにちは! デジタルトランスフォーメーション(DX)事業エンジニアの岡田です。 Speeeでは、クリアコードの須藤さんにOSS活動をサポートしてもらっています。 今回、OSS活動はほぼ未経験の自分が、どのように挑戦したかを書いてみました。 最初はチャットでの相談から入り、現在もサポプロを使って勉強しています。 OSS 活動に挑戦した背景 自分は、プログラミングを社会人から始めて、特に体系だった知識をもたないまま、業務で必要なスキルを都度都度勉強してきました。 結果、WEB開発という文脈であれば、フロントエンドも、サーバーサイドも、クラウド周りもある程度は一人で実装できるようになりました。 一方で、まだまだ技術の話で分かってないことが多いなと感じており、特にライブ

    Speee OSS挑戦 for Red Data Tools - Speee DEVELOPER BLOG
    kangaat
    kangaat 2021/12/22
  • SpeeeのOSS開発実例 - サポプロによる楽しく高速な知識習得 - Speee DEVELOPER BLOG

    こんにちは。Speeeエンジニア香川です。SpeeeではUZOUという広告配信プラットフォームの開発をしています。Speeeはクリアコードの須藤さんにOSS活動をサポートして貰っています。 この記事ではサポプロ(サポートプログラミングの略)と私達が呼んでる形式でOSS活動を須藤さんにサポートしてもらった事例についてサポートして貰った側(私)とサポートした側(須藤さん)の視点で紹介します。 当時、私はred-arrowというApache ArrowのRuby実装に足したい機能がありPRを出したかったのですが、難しすぎて断念した事がありました。それを須藤さんに相談した所、じゃあ詳しい人(須藤さん)が適宜アドバイスしながらやってみるのはどうでしょうか??と提案して貰い、お言葉に甘えてサポプロという活動が始まりました。 サポプロってなに? サポプロはペアプロ(ペアプログラミングの略)のドライバー

    SpeeeのOSS開発実例 - サポプロによる楽しく高速な知識習得 - Speee DEVELOPER BLOG
    kangaat
    kangaat 2021/10/19
    書きました
  • redis threadedI/Oの検証 - MicroAd Developers Blog

    はじめに マイクロアドでインフラエンジニアをしている柏木です。 マイクロアドでは広告配信に高速なKVSであるRedisを使用しています。 Redisはシングルスレッドでの高速性、安定性を売りにしていました。しかし6.0でマルチスレッド機能であるThreded I/Oが追加されました。 広告配信で多用している、Redisを高速化できるのであれば積極的に導入したいので検証を行いました。 はじめに Threded I/Oとは シングルスレッドでのRedisの処理 マルチスレッドでのRedisの処理 io-threads io-threads-do-reads + io-threads 検証環境 OSの追加設定 今回の検証結果 前提条件 指標の取得方法について loopbackアドレスを利用した検証 実行CPUの指定 Redisの起動コマンド Redisのconfigについて 暖機運転 検証1:I

    redis threadedI/Oの検証 - MicroAd Developers Blog
    kangaat
    kangaat 2021/06/28
    しっかりした検証で凄い
  • 新入社員向けOSSイントロダクション - Speee DEVELOPER BLOG

    Speeeの新入社員向けOSSイントロダクション (この記事および記事中で使用している画像のライセンスはCC BY-SA 4.0です。原著作者名は須藤功平です。) SpeeeのOSS活動をサポートしているクリアコードの須藤です。2016年からいろいろな形でサポートしてきました。たとえば、OSSの開発に参加する方法を体験するワークショップを開催したり、RubyKaigiでのコード懇親会というコード(OSS)にフォーカスした新しい懇親会のスタイルを企画したり、特定のOSSの開発を支援したり、毎月何人かの社員の方と最近どう?という話をしたり、新入社員のみなさんにSpeeeとOSSについて紹介したりしています。今回は最後の「新入社員のみなさんにSpeeeとOSSについて紹介」を紹介します。Speeeに入社するとこんな感じなんだということの一部が伝わってSpeeeに入社したくなる人が増えることを期待

    新入社員向けOSSイントロダクション - Speee DEVELOPER BLOG
    kangaat
    kangaat 2021/03/01
  • GoのAthena用database/sqlドライバーをOSSでリリースした話 - Speee DEVELOPER BLOG

    この記事はGo3 Advent Calendar 2020の22日目です。 こんにちは、Speeeでサーバーサイドエンジニアをしている@muroon01です。SpeeeではUZOUという広告配信プラットフォームの開発をしています。 今回はGoでAthenaにアクセスするOSSを開発しましたのでそちらの話をさせていただきます。 github.com こちらは元々別の方々が作成されたものですが、 2年近くメンテナンスされてないようなので改修することにいたしました。 go-athena go-athenaはdatabase/sqlパッケージのAthenaのdriverです。下記のように(初期化)importをして使用します。 import ( "database/sql" _ "github.com/speee/go-athena" ) func main() { db, _ := sql.Op

    GoのAthena用database/sqlドライバーをOSSでリリースした話 - Speee DEVELOPER BLOG
    kangaat
    kangaat 2020/12/22
  • オフィスで活きる自作キーボードのメリットと自作せずにそれを実現する方法 - Speee DEVELOPER BLOG

    お疲れ様です!最近はどのIT企業にも1人はいる自作キーボードおじさんのSREエンジニア西田(@k_bigwheel)です。 先日自作キーボードに興味のある隣のチームのSくんと話していたところ、自作キーボードは思っていた以上に会社で使うメリットが多いことに気づきました!そこで今日はその自作キーボードのメリットについて書こうと思います。焦点は自作キーボードのソフトウェア(qmk_firmware)による柔軟性(論理配列)とそれが人と一緒に働く上でどのようなメリットがあるかです。 これはお気に入りの30%キーボード Kleine Gherkin メリット1. 好きなキー配列(論理配列)で入力できる パソコンを日頃よく使う人であればわかると思いますが、WindowsMacのデフォルトのキー配列は実は結構非効率的です。例えばControlキーやShfitキーを押しながらZやYなどのキーを同時押しす

    オフィスで活きる自作キーボードのメリットと自作せずにそれを実現する方法 - Speee DEVELOPER BLOG
    kangaat
    kangaat 2020/12/15
  • Athenaを使ったデータ処理基盤の設計 - Speee DEVELOPER BLOG

    こんにちは。UZOUのプロダクト開発をしているエンジニアの@kanga333です。 UZOUでは広告データの集計の一部にAmazon Athenaを採用しています。 この記事ではUZOUにおけるAthenaを使ったデータ処理基盤の設計について紹介したいと思います。 全体構成 データ処理基盤の全体構成は次のようになっています。 以後はそれぞれのコンポーネントについて順次紹介していきます。 FleuntdによるS3への集約 UZOUでは特にFluentdアグリゲータのような中継サーバは設けていません。広告配信サーバに常駐するFluentdがログを直接S3にプットしています。 以下はFluentdのS3 output部分の設定の一部抜粋です。 <buffer time> @type file timekey 60m </buffer> path example_table/dt=%Y%m%d/h

    Athenaを使ったデータ処理基盤の設計 - Speee DEVELOPER BLOG
    kangaat
    kangaat 2020/11/10
    書きました
  • MAASを導入した話 - MicroAd Developers Blog

    こんにちは。マイクロアドでインフラエンジニアをしているハダです。 2回目にして久々のブログ執筆です。 今回の記事では、マイクロアドで利用を始めたCanonical社のMAASについて記事を書いていきたいと思います。 インストール方法や使い方などの詳細については公式ドキュメントを読んだほうが確実ですのでこの記事の中で触れていません。 背景 マイクロアドではPXE bootとkickstartを利用したOSインストールを、長年利用しています。 現在もその仕組は現役なのですが、今回はデータセンターの移設に伴ってMAASの導入を進めていくことになりました。 マイクロアドでの課題 マイクロアドではPXE BootとkickstartによるOSの自動インストールを行ってきました。 過去から引き継ぎ、より使いやすいようにしてきましたが以下のような課題も出てきました。 PXE Bootを利用したインストー

    MAASを導入した話 - MicroAd Developers Blog
    kangaat
    kangaat 2020/09/29
  • Chrome84(beta)におけるUser-Agent Client Hintsの調査 - MicroAd Developers Blog

    Chrome84(beta)におけるUser-Agent Client Hintsの調査 はじめまして。Tech Labの郭です。 Tech Labは弊社の開発効率・運用効率・技術レベルの向上を目的として、業界最新かつ有効な技術を研究・導入するチームです。 今回はブラウザ界隈の最新仕様、User-Agent Client Hints(以下UA-CH)の調査結果を少し共有したいと思います。 UA-CHは Client Hintsの拡張で、仕様自体1はまだ提案中のため、確定していません。 この調査結果は、2020/6/16時点 Chrome84(beta)での検証結果となります。 調査経緯 今年の1/14に現在UA-CHの策定者の1人、GoogleのYoav Weiss氏から一通のGroupメール、「段階的にUser-Agent文字列を非推奨と凍結にする2」の中で、2020中に段階的にUser

    Chrome84(beta)におけるUser-Agent Client Hintsの調査 - MicroAd Developers Blog
    kangaat
    kangaat 2020/07/13
  • Moleculeのdelegatedドライバ + OpenStackでAnsibleのテストを行う - MicroAd Developers Blog

    インフラエンジニアの長田です。 今回は、Ansibleのテスト支援ツールであるMoleculeの実践例について記事にしたいと思います。MoleculeはDockerPodmanでコンテナを起動し、その中でAnsibleロールのテストを簡潔に行うことができる便利なツールですが、Ansibleで実行したいロールの中にはgrub2のようなブートローダのコンフィグやカーネルパラメータの変更、ネットワーク機器の操作など、コンテナ上でのテストが困難であるケースも存在します。そこで、Moleculeのdelegatedドライバを用いてOpenStack上にインスタンスを構築し、これらのテストを実現したいと思います。 以下、各ツールのバージョンについて、Ansibleは 2.9.9 を、Moleculeは 3.0.4 を前提としています。 OpenStackインスタンスの作成・削除 Moleculeのd

    Moleculeのdelegatedドライバ + OpenStackでAnsibleのテストを行う - MicroAd Developers Blog
    kangaat
    kangaat 2020/06/15
  • 社名変更して co.jp ドメインを複数保有する技術 - ANDPAD Tech Blog

    SREチーム 鈴木心之介 です。 職歴の空白 を経て参画しました。 先日、株式会社オクト (88oct.co.jp) だった弊社は、社名変更し、株式会社アンドパッド (andpad.co.jp) になりました。社名変更といえば、めちゃくちゃ、それはもう大変な量の仕事がありますが、ここでは社名変更して co.jp ドメインを複数保有する話を書きます。 短い結論 いま保有している co.jp ドメインを、JPDirerct に移管しましょう。JPDirect は、 jp ドメインのレジストリである株式会社日レジストリサービス(JPRS) が運営するレジストラで、1組織1ドメインの緩和申請に対応していることを表明しています。 JPDirectの管理画面で新ドメインを仮登録すると、直ちにDNS設定を組めるようになります。仮登録から6ヶ月以内に社名変更の法人登記を完了し、1組織1ドメイン制限緩和の

    社名変更して co.jp ドメインを複数保有する技術 - ANDPAD Tech Blog
    kangaat
    kangaat 2020/06/13
    知見だ