PyCon JP 2021 でのミニゲームをGoogle Cloud RunとFirebase Hostingで作った話

JX通信社はPyCon JP 2021のゴールドスポンサーとしてスポンサーさせていただきました。 今回弊社平瀬さんがLocastの内容で登壇されました!内容はこちらからご覧ください。 speakerdeck.com その際、会社のブースではPythonを使ったミニゲームを実施していま…

GCPをフル活用して東京五輪の2週間で約5000万ツイートをさばいた話

はじめまして。JX通信社でデータアナリストをしている @nrtaking です。 弊社では、7/23〜8/8に行われた東京オリンピック、8/25〜9/5に行われた東京パラリンピックにあわせて関連した日本語ツイートを全量収集し、Twitter Japanなど各社に提供していました。…

BERTの推論速度を最大10倍にしてデプロイした話とそのTips

背景 はじめまして、JX通信社でインターンをしている原田です。 近年深層学習ではモデルが肥大化する傾向にあります。2020年にopen aiが示したScaling Laws([2001.08361] Scaling Laws for Neural Language Models) の衝撃は記憶に新しく、MLP-Mixerが示し…

Reactのパフォーマンス改善を勉強会で開催しました

はじめまして、新卒フロントエンドエンジニアのぺいです。 JX通信社でフロントエンドの開発はReactが主流になっており、React Hooksを使った開発が欠かせません。hooksは便利な反面、適材適所使い所を理解していないと逆にパフォーマンスが悪くなってしまう…

Python multiprocessing vs threading vs asyncio

エンジニアの鈴木(泰)です。 今回は、multiprocessingとthreadingとasyncioの違いとはなんだろう?という問に挑戦してみたいと思います。 この問の答えをグーグル先生に聞いてみると、非常にたくさんの情報がヒットします。しかしながら、どの情報も断片的…

JX Press Tech Talk #python で「StreamlitとFlaskではじめる爆速プロトタイピングとTV砲対策」というトークをしました

JX通信社シニア・エンジニアかつ, 最近は自社のテックイベント「JX Press Tech Talk」の司会者をやってる@shinyorke(しんよーく)です. 6/23(水)に, 「JX Tech Talk #python Pythonista 達が語る速報サービス開発の舞台裏」というイベントを開催しました.…

Slackアプリ開発の社内勉強会を開催しました

サーバサイド開発やインフラ周りをいじっているたっち(TatchNicolas)です。 JX通信社の日々の運用では、Slack workflowやbotが大活躍しています。 かなり作り込まれた高機能なBotもあり欠かせないものになっていますが、開発者メンバーのなかには普段そのリ…

サーバーサイドで動的にOGP画像をシュッと作る方法 - FastAPIとCairoSVGで作る画像生成API

JX通信社シニア・エンジニアの@shinyorke(しんよーく)です. 最近は色んなエンジニアリングをしつつ, イベントの司会業をしています(詳細は最後の方を見てね). 開発しているサービス・プロダクトの要件で, TwitterやLINE, FacebookでシェアするOGP*1コン…

GitLabとKubernetesで作る、自動で起動・停止できるブランチ別環境

先日のJX Press Tech Talk #backend で、GitLabのenvironmentとHelmのreleaseを対応させることで動的な環境の作成・削除を実現した話をした発表の詳細の記事です

APIとフロントのテスト環境を気軽に作れるようにして、動作検証の渋滞を解消したはなし

こんにちは、サーバーサイドエンジニアの @kimihiro_n です。 今回はみんなが利用するテスト環境の渋滞を解消したはなしを。 テスト環境の渋滞 最近開発チームのメンバーが増えてきたりして、「テスト環境の渋滞」というのがよく発生するようになりました。 …

Utility First な CSS in JS フレームワークの導入と3ライブラリの比較

JX 通信社のフロントエンドでは React TypeScript や Emotion のような CSS in JS を技術選定することが多いです。弊社 SaaS の FASTALERT、新型コロナ関連情報などでも同様の技術選定で、過去にもエンジニアブログで紹介してきました。 tech.jxpress.net te…

Google App Engineではじめる, らくらくTV砲対策 - AIワクチン接種予測の舞台裏

JX通信社シニア・エンジニアの@shinyorke(しんよーく)です. ちょっと前のお話になりますが, JX通信社のニュース速報アプリ「NewsDigest」で, 「AIワクチン接種予測」という新機能の提供を開始しました. prtimes.jp 「自分がいつコロナワクチンを接種できる…

リモートでも 1on1 の効率を最大化したいのでGROW モデルを導入してみました

JX通信社 Engineering Manager の @jazzsasori です。 皆さん自身の成長にコミットしてますか? マネージャーの皆さんメンバーの成長にコミットしてますか? 私はゼルダ無双の体験版をダウンロードしてしまったために成長にコミットできなさそうです。 あと…

データサイエンティストの飛び道具としてのStreamlit - プロトタイピングをいい感じにする技術

(ちょっと遅れましたが)新年あけましておめでとうございます JX通信社シニア・エンジニアで, データサイエンスからプロダクト開発までなんでもやるマンの@shinyorke(しんよーく)と申します. Stay Homeな最近は大河ドラマを観るのにハマってます&推しの作…

Pythonでいい感じにバッチを作ってみる - prefectをはじめよう

JX通信社シニア・エンジニアで, プロダクトチームのデータ活用とデータサイエンスのあれこれ頑張ってるマン, @shinyorke(しんよーく)です. 最近ハマってるかつ毎朝の日課は「リングフィットアドベンチャー*1で汗を流してからの朝食」です. 35日連続続いて…

AWS・GCPとKubernetesの権限まわりの用語を具体例から理解する

同じ単語が違う意味に使われていて混乱しがちなAWS・GCPのIAM周りの概念を整理しつつ、それぞれのマネージドKubernetes環境での使い方も含めて解説します。

PynamoDBで良い感じにTestableなモデルを定義して、DynamoDB Localを使ってテストする方法

アプリケーションコードをきれいに保ちつつ、PynamoDBのモデルをいい感じに定義してテスト用のコードを書く方法を紹介します。

データ分析者たちのコードレビュー #とは - 散らかったJupyter notebookを片付けるかどうするか問題を考える

JX通信社シニアエンジニアの@shinyorkeです. 最近はチームの朝会でよく着ているTシャツにツッコミを受けてます.*1 JX通信社では, いい感じにデータを整備・運用しているデータ基盤を駆使して, BI(Business Intelligence)文脈でのデータ分析・可視化. ダッ…

Jamstack とサーバーレスで提供する「大阪都構想」特設サイトの舞台裏

開発担当役員(CDO)の小笠原(@yamitzky)です。 11月1日に予定されている「大阪都構想」の住民投票*1についての特設サイトを、先日、ABCテレビと共同リリースしました。JX独自開発のオートコール電話情勢調査システムを活用し、週一ペースでの情勢調査を発表す…

GitHub Actionsで実現する、APIキー不要でGitOps-likeなインフラCI/CD

CIの仕組みとしてはSaaS(今回はGitHub Actions)を利用しつつも、実行場所はクラウド内にとどめることでGitOpsの考え方を一部取り入れたterraform運用のしくみを作ってみました

リモート下でチームのコミュニケーションを円滑にするための試み

こんにちは、サーバーサイドエンジニアの @kimihiro_n です。 新型コロナの影響で、オフィスに出社して働くというスタイルに大きな変化が生じてきています。 弊社でも原則リモートでの勤務が推奨となっており、従来通りのコミュニケーションを続けることが困…

IstioとAuth0でJWT認証付きAPIを5分でデプロイする

SREのたっち(@TatchNicolas)です。 JX通信社では、月に一度「WinSession」というリリースした機能や検証したリリースについて開発チーム全体へ発表する機会を設けています。今回は自分が前回社内に紹介した「パパッと便利APIを作って5分でお手軽&セキュアに…

PyCon JP 2020のTwitter実況システムをGKE上に作った話

k8s

SREのたっち(@TatchNicolas)です。 今年のPyCon JPはオンライン開催でした。JX通信社はSilverスポンサーとして協賛したほか、イベントをより盛り上げるために、参加者の反応をリアルタイムに配信に反映するシステムを開発・提供しました。 jxpress.net アプ…

アプリを利用しながらアプリの更新ができるin-app updates

Androidエンジニアの@sakebookです。 今まではストアに飛ばしたり、自前で用意したロジックやAPIで更新があるかを確認していました。しかしそんな時代はもう終わりました。Play Core Libraryを使えばアプリ内でアップデートが可能になります。 in-app update…

Firebase をフロントエンドから適切に隠蔽するための「Hooks Injection パターン」

取締役の小笠原(@yamitzky)です。 JX通信社では、React 製のフロントエンドでも Clean Architecture で設計するなど、なるべく特定のバックエンドに依存しない設計を心がけたりもするのですが、一方で Firebase をラップした react-firebase-hooks などの「…

データ基盤を支える技術 - ETLフレームワークの実践的な選び方・組み合わせ方

JX通信社シニア・エンジニア兼データ基盤担当大臣の@shinyorke(しんよーく)です. 最近やった「ちょっとした贅沢」は「休日, 自宅で片手に野球を見ながらUberEatsで注文したランチを楽しむ」です. ⚾と飲食を提供してくださる皆さまに心から感謝しております…

ReactのコードをHooksにリファクタリングしていく話

フロントエンジニアの渡辺(@pentla)です。 AI 緊急情報サービスの「FASTALERT」は、Reactをフロントエンドのスタックとして採用しており、3年ほどコードベースは大きく変えずに運用しています。その過程で、Flow → TypeScriptへのスタックの変更など、継続的…

FastAPI で独自に定義した API エラーも仕様書に自動反映したかった話

こんにちは、サーバーサイドエンジニアの @kimihiro_n です。 最近は FastAPI という Python の Web フレームワークが社内で密かなブームとなっています。 今回はその FastAPI を使ったエラー定義まわりの話をしたいと思います。 FastAPI とは FastAPI の概…

Flow/PostCSS の大規模プロジェクトを TypeScript/emotion に移行して数万行のプルリクを投げた話

JX通信社CDOの小笠原(@yamitzky)です。 AI 緊急情報サービスの「FASTALERT」は、報道機関や公共機関に導入いただいている(お堅めな) BtoB SaaS でありながら、 事業開始当初から React を使った Single Page Application(SPA) として作っています。 2017年に…

新型コロナダッシュボード爆速リリースの舞台裏 〜小さく始めて大胆に変えるフロントエンドプロジェクト〜

JX通信社CDOの小笠原(@yamitzky)です。 JX通信社は「今起きていることを明らかにする報道機関」というミッションの元に、新型コロナリアルタイムダッシュボードを 2月16日 から提供し続けています。今回は、「新型コロナプロジェクト」の発足から現在に至る…