サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Appleイベント
tech.prog-8.com
こんにちは、Progate の岩崎です。新卒で Google に入社して約9年間ソフトウェアエンジニアとして働いた後に Niantic へ転職、今年の1月から Progate のコンテンツチームで働いています。 Google で「ProGuardチョットデキル」エンジニアとして頑張っていた時期があるのですが、Progate でもその経験を活かそうということで社内の Android エンジニアと ProGuard について話をする機会を設けました。 ただミーティング中に「Progate と Proguard って名前似てるな」と実にしょうも無いことを考えていたので、その罪を償うために ProGuard についての話をTechBlogに寄稿させていただきます。 そのデバッグメッセージ本当に消えてる? 多くの Android エンジニアにとって ProGuard はデバッグログをリリースビルドか
株式会社Progateでソフトウェアエンジニアをしているsy-tenchoです。本記事は Progate AdventCalendar 2020 19日目 です。 12月と言えばプロ野球選手の契約更改の季節ですね。ということで今日は僕の贔屓球団である読売ジャイアンツの野手の年俸はどのような要因によって決まるのかということをお題に、Pythonを使った統計分析の方法を簡単に紹介したいと思います。 はじめに 僕はProgateでエンジニアをしている傍、大学で経済学などを勉強しています。その中で統計分析をすることがあるのですが、StataやEviewsといった定番ソフトは学校に行かないと使えないし、R言語を一から勉強するモチベーションもあまりないので最近はPythonを使った分析に取り組んでいます。今回は statsmodels というPythonのライブラリを Google Colaborat
はじめまして、Progateの小笠原です。本記事は Progate AdventCalendar 4日目の記事です。 普段はSREチームでProgateの開発効率化を始め基盤運用、トラブル対応などサービスの安定化にも幅広く取り組んでいます。 本稿ではProgateのCI/CDを改善する中で得たasset_syncにwebpackを乗せる際の注意点とその効果について知見を共有します。 事の発端 「Progateのデプロイが遅いよね」という話が以前から開発者の間で上がっておりその原因を調べるところから今回の話は始まります。 Web版Progateサービス(以下Progate)はCIサービス(主にCircleCI)を使って検証環境と本番環境の2環境へのデプロイを行っているのですが、9月時点でCircleCIのデプロイワークフローの実行時間がそれぞれ約18分程度と非常に時間がかかっていました。 P
Progateでデータエンジニアをしている穴澤 (id:aaaanwz)です。 本記事は Progate Advent Calendar 2日目の記事になります。 Google Play Musicがサービス終了してしまい「所有している音楽データをアップロードし、インターネット経由で聴く」というサービスでしっくりくるものが無くなってしまいました。 ちょうど昨日の記事でおうちKubernetes環境を構築しているため、これを期におうちKubernetes環境に音楽ストリーミングサーバーを構築してみます。 概要 家庭内LANからファイルサーバーとして使える ファイルサーバーにアップロードした音楽データをインターネット経由で聴ける ファイルサイズが大きい楽曲はサーバーサイドでリアルタイムに圧縮して配信する という要件から、以下のような構成にしてみます。 音楽配信サーバーには Airsonicを使
こんにちは、Progateでサーバーサイドエンジニアをしている708uです。 本記事は Progate Advent Calendar 19日目の記事になります。今回はAnsibleを用いたMacの環境構築自動化をご紹介したいと思います。 発端 そもそものお話になりますが、私がProgateにジョインしたのは2021年12月1日、つまりこの記事が投稿される約2週間前になります。となると当然、新しく業務で利用するマシンも支給されるため、1から開発環境構築をする必要がありました。 私自身、私物や業務含めてMacを1からセットアップする作業は何回か行っていて今回もそれが必要になるのですが、その度に以下のような作業が必要になっていました。 普段使っているGUI/CLIツールを調べて片っ端から入れ直す 移行元Macの設定を眺めながら、移行先Macの設定を同じ値に変える (細かい設定方法を忘れて沢山グ
はじめに Progateの舘野です。さまざまなプラットフォーム向けにプロダクトを提供していたり、プロダクトのUIの一貫性を担保するのに何かしらの仕組みの必要性を感じる規模のものを開発していたりすると、デザイントークンのような取り組みが必要になると思いますが、なるべく人を介在せずに運用するにはどうすると良いのでしょうか。 試しにプロトタイプのようなものを作ってみながら考えてみようと思います。 考慮したい項目 まず、運用フローを考える上で考慮しておきたい点を確認しておきます。 細かい点をあげていくとさまざまなものがありそうですが、最低限以下の点をクリアした状態にしたいと思います。 デザインツールに完全に依存する形はNG JSONでSingle Source of Truthとして一元管理されている 可視化されたデザイントークンをブラウザから確認できる デザインツールに完全に依存する形はNG デ
何を書いた記事か 過去にDynamoDB Streams + Kinesis Data Firehose + Lambdaを用いたリアルタイムETLを検証した際のメモをこちらに転載します。 特にKinesis Data Firehoseの裏で動かすLambdaの実装に癖があったので、誰かの参考になれば幸いです。 前提 Webサービスなど展開していて、Database層にDynamoDBを採択している場合、そのデータを分析するための分析基盤構築手法として、Glueを用いたETLが一般的な選択肢になりうるのかなと思います。 最近DynamoDBのTableをS3にExportできる機能もGAになったので、フルダンプ+日時バッチのデータ分析としてはそのような手法も使えるかもしれません。 しかし、DynamoDB上にあるデータをなるべくリアルタイムに分析基盤に連携したい、最低限のETL処理も挟みた
Progateの前田です。 エンジニアマネージャーとしていろいろやってる傍、個人ではAWS Community Builder / AWS Startup Community Code Member として活動しています。 本記事はProgate Advent Calendarの1日目です! 今年の9月にEKS Anywhereのリリースがあって、ついに自宅にKubernetes環境を作る機運かと思い、おうちKubernetesに着手しました。 しかし残念なことに、EKS Anywhereはx86/amd64にしか対応していないので、ただのKubernetesクラスタを構築することになりました。 という余談は置いといて、いざおうちKubernetesをやろうとRaspberry Piを調べていたところ、Raspberry Pi 4が異常なまでの品薄状態になっており、出鼻を挫かれる事態に・・
自己紹介 株式会社Progateサーバーサイドエンジニアのもりたんざにあです。 好きなものは卓球と筋トレです。 業務でignored_columnsの必要性や、内部で何をしているかについて調べたので、その過程でわかったことを紹介しようと思います。 前提条件 この記事の内容は https://github.com/rails/rails/tree/5-2-stable のソースコードを前提としています。 ignored_columnsとは 公式ドキュメンテーション : https://api.rubyonrails.org/classes/ActiveRecord/ModelSchema/ClassMethods.html#method-i-ignored_columns 「このカラムがデータベースのテーブルにあっても、無視してね!」とRailsのモデルに伝えるために、ActiveRecor
Progateの小笠原です。普段はSREチームで開発効率化やサービスの安定化に取り組んでいます。 本稿では弊社SREチームで取り組んだ事例の一つである「モノリシックなサービスから高負荷なエンドポイントを切り出して段階的に運用改善した話」について紹介させていただきます。 はじめに ProgateのフロントエンドはReactを利用してリッチなUI/UXを実現しています。特にサービスの中心である演習画面ではユーザの書いたコードに対してエラーを出したり、サーバとWebSocketで接続してRubyやNodeなど様々な言語のコードを実行したりと複雑な構成となっています。 演習画面 開発ではリリース前にQAを行い機能的な不備やデグレーションがないかを確認しますが、クライアント環境によっては意図したとおりにJavaScript(以下JS)が動かないケースが多々あります。例えばネットワーク環境の違いにより
Progateの小笠原です。普段はSREチームで開発効率化とサービスの安定化に取り組んでいます。 本稿では普段活用しているserverless frameworkに関する運用知見を共有します。 はじめに 弊社ではIaCの取り組みとして永続的なインフラリソースは基本的にすべてコード化しています。リソースの多くはterraformを使って管理しているのですがAWS Lambdaについてはデバッグ環境が整っており取り回しの良いserverless frameworkを用いて管理しています。 今回はserverless frameworkに関してProgateで運用していて踏んだ問題とその対応方法を紹介します。 Progateにおけるserverless frameworkの活用状況 serverless framework Progateでは現状、バッチやデプロイに関するスクリプトやChatOp
はじめまして、Progateの村山です。エンジニアとして働いてから10年以上経ちました。 本記事はProgateAdventCalendarの22日目の記事です。 普段はSREチームでProgateの開発や運用を支える仕事をしています。 当初はコードレビューのガイドラインを整備した話を書こうと思ったのですが、内容がめちゃくちゃ長くなってしまう上、めちゃくちゃつまらない内容になったので、改めて書き直して別の機会で紹介できればと思います。 今回の記事では、微妙に流行ってないけどエンジニアリングに関わる人におすすめしたい本を紹介しようと思います。 これらは私個人がおすすめする本で会社として推薦しているものではないです。また、おじさんなので全体的に本の内容が古いです。 ゼロからトースターを作ってみた結果 表題の通りと表示の出落ち感が半端ないですが、トースターの部品を素材の収集から作り失敗するまでの
Good day everyone! No, you are not on the wrong page, it's just that today's post is written in English. This is Kai from the Product Internationalization team of Progate, and you are looking at the post for the 17th day of the Progate Advent Calendar. Today, I will be doing a short write-up on what you can do with small form factor computers with the computer vision library, OpenCV, and what bett
Progateの前田(@kzk_maeda)です。 本記事はProgateAdventCalendarの16日目の記事です。 初日にふざけ倒してハードル下げに下げた記事を公開したのですが、その後のメンバーがみんなしっかりした記事をあげてくれていたので、今日リベンジしたいと思います。 何を書こうかと考えたこと 出来上がったもの どうやって実装したか やってみた感想 ではどうすればいいか さいごに 何を書こうかと考えたこと 弊社は初学者向けのプログラミング学習サービスを展開しているのですが、その折もあって、初学者の方が学習過程でどういったところで躓き易いのか、また、自分がまだ初学者だった頃は何を難しいと思っていたか、など考えることがよくあります。 その中で一つ思いつくのが、「ターミナル操作が怖い」という点かなと思います。 あの黒い、文字しか表示されない謎のウィンドウでカタカタ操作することが、何
こんにちは、ProgateのChandyです。 本記事はProgate Advent Calendar 2020の11日目の記事です。 現在はソフトウェアエンジニアですが、元々はデザインの経験もあり、UIの実装が好きなので、CSSが特に興味があります。 一年前くらい前にCSSのグリッドを初めて使用して、どんどん書いていくうちにいろいろな部分で実装が良くなっていったと思います。 グリッドを使って特に良かった所について書きたいと思います。 2次元レイアウトの実装がシンプルになる グリッドは2次元レイアウトなのでちょっと当たり前のことかもしれませんが、そういうレイアウトの実装方法が結構改善できて感動したので共有したいです。 例はいくつありますが、一番最近に実装したのは以下のようなレイアウトがあるフォームです。 通常はラベルと入力欄を<div>で行にまとめて、以下のようにスタイルできると思います。
はじめまして、Progateの村山です。 本記事はProgateAdventCalendarの15日目の記事です。 普段はSREチームでProgateの開発や運用を支える仕事をしており、Progateには今年の7月に入社しました。前職はElixirやk8sなどを使ったWebアプリケーションの開発や運用をしていました。 エンジニアであれば日常的に使うGitHubですが、仕事で個人用のアカウントを併用できない場合は仕事用のアカウントに切り替える必要があります。 本稿では作業ディレクトリ毎にGitHubのアカウントを切り替える方法を紹介します。 GitとGitHubのアカウントについて まずはじめにGitとGitHubは別物の概念で、GitHubはGitのリモートリポジトリをホスティングしているWebサービスです。GitはLinuxカーネルの開発者であるリーナスが開発した分散型バージョン管理シス
こんにちは、Progateで開発業務をしているkota_223と申します。 この記事はProgate AdventCalendar 2020 14日目の記事となります。 私はSoftwareEngineerチームに所属しておりバックエンドを書いたり週末にアメフトしたりする生活を送っていますが、 最近はとあるプロジェクトをリードしており、今回はそこから感じたProgateにおける仕事の進め方(2020年version)について書こうと思います。 技術的な記事が続いている中で箸休め的な記事ですが、エンジニアの方の面接などで質問いただくことも多いので、ご参考になれば幸いです。 プロジェクト Progateでは定常業務と違い、数ヶ月かかるなどの大きいタスクがあるとプロジェクトとして固定メンバーでチームをつくり仕事をします。 プロジェクトとして動くときは、例えば以下のようなメンバー構成になります。
どうも、 株式会社Progate で SoftwareEngineer チームのマネージャーをしています @satetsu888 です。本記事は Progate AdventCalendar 2020 10日目です。 普段仕事ではエンジニア組織のことやプロダクトの技術戦略的なことを考えたり、ミーティングしたり採用活動したりタスクをお願いして回ったりなどを担当していますが、今日はそういうのとはなんの関係もないただの日常の話を書こうと思います。 ことの始まり 我が家では子どもの朝ごはんとして週に2,3回くらいの頻度でポケモンパンを買っています。 先日(2020/09/18 ~ 11/24) ポケモンパンについてるポイントを5点集めるとポケモンシールホルダーの抽選に1回応募できるキャンペーンがありました。(キャンペーン自体はすでに終了しています) いつも通りのペースでパンを買ってると何回か挑戦で
こんにちは、Progate の平川です。 本記事は Progate AdventCalendar 3日目の記事になります。 日頃業務ではフロントエンドの実装を担当させていただいています。 今回は先日行った flow.js のバージョンアップについて書いていきたいと思います。 はじめに 最初に弊社のフロントエンドについて簡単にお話させていただきます。 今年で6年目を迎えた弊社はその過程で多種多様な変化や改善が行われながら、現在は react + flux + flow.js でこれらを Rails のテンプレートに読み込む形で構成されています。 長年理想のプロダクトを求めて走り続けてきたのですが、それ故にどうしても開発者体験を向上させる動きは後回しになってしまいがちな状態がずっと続いていました。それがついに今年度、より早く、安定してユーザーさんにプロダクトを届けるために技術的負債を解消して
はじめまして、Progateの村山です。 本記事はProgateAdventCalendarの2日目の記事です。 普段はSREチームでProgateの開発や運用を支える仕事をしております。Progateには今年の7月に入社しました。前職はElixirやk8sなどを使ったWebアプリケーションの開発や運用をしていました。ProgateにElixirのコースを作るのがちょっとした野望です。 本稿ではサービスや開発のモニタリングについて紹介しようと思います。 モニタリングとは モニタリングは日本語で監視と言い、主にサービスの障害検知や可用性向上のために利用されています。ここで紹介するモニタリングは大きく2種類に分類したいと思います。 1つ目は死活監視するためのモニタリングで、サービスやアプリケーションの可用性監視し、必要に応じてフェイルオーバーさせたりアラートを飛ばして開発者へと共有します。 2
このページを最初にブックマークしてみませんか?
『tech.prog-8.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く