Voicyテックブログのフィード
https://zenn.dev/p/voicy
Voicyの技術的な取り組みからVoicyエンジニアのつぶやきまで、Voicy×技術で様々な情報を発信していきます。
フィード

SoXでかんたん音声編集
Voicyテックブログのフィード
前置き オーディオデータをコマンドで手軽に扱いたい「コマンドで簡単にWAV音源のサンプリングレートや量子化ビット数が知りたい」、「MP3のビットレートを確認したい」、と思ったことはありませんか?また、「収録した音源をMP3に変換したい」、「ステレオ音源のL/Rを単純にミックスしてモノラルにしたい」など、ちょっとしたオーディオ処理をしたいときに、DAWなどGUIがリッチなアプリケーションを開くのではなく、コマンドから操作できたらいいのに、と思ったことはありませんか?私はあります。本記事では、SoXを使ってコマンドでオーディオデータの情報を見たり、なんらかの処理をする流れを紹...
1ヶ月前

公開鍵暗号について調べてみた
Voicyテックブログのフィード
Voicyでバックエンドエンジニアをしているmasaです。Voicyは音声配信プラットフォームなのですが、私自身もVoicyでvoi-chordというVoicyエンジニアが運営しているチャンネルでの発信をしており、そこでビットコインについての話から公開鍵暗号の技術について話したことをきっかけに、公開鍵暗号の仕組みについて興味を持ったので色々と調べてみました。(voi-chordぜひみなさん聴いてみてください!)https://voicy.jp/channel/1305/6425311 公開鍵暗号とは?まず、そもそも公開鍵暗号とは?というところですが、エンジニアであればこの暗号...
2ヶ月前

外部サービスとの整合性の付き合い方
Voicyテックブログのフィード
はじめにVoicyでバックエンドエンジニアをしているmasaです。先日、こちらの記事で大型機能だったコラボ収録のリリースを振り返りました。こちらの記事で触れていた、開発の上で難しかったポイントのうち、「Voicyサービスと外部サービス間の整合性の担保」について記事にできればと思います。 コラボ収録ってどんな機能?前回の記事でも書いたのでそちらと同じ表現になりますが、一言で表すと、「リアルタイムで離れた距離にいる参加者と顔を合わせながら収録ができる機能」です。ざっくりイメージとしては、ZoomやGoogle Meetのようなオンライン通話機能 + 収録機能 といったイメー...
4ヶ月前

エンジニアしか解けない謎解き
Voicyテックブログのフィード
この記事はVoicy Advent Calendar 2024の20日目の投稿になります。こんにちは。Voicyでエンジニアをしている窪田です。今回は思いつきで「エンジニアしか解けない謎解き」を作ってみました。謎解きは何度かやったことはありますが作るのは初めてなので単純なものしか作れませんが、よければ遊んでみてください。記事内の情報だけでは難しいものもあると思うので、適宜ネットなども活用してください。下の方に答えも書いてあります。折り畳んではありますが、間違えて見てしまわないようご注意ください。 問1 数値を求めよ688 >> 3 問2 数値を求めよ...
4ヶ月前

Angular v19のハイブリッドレンダリングを試す
Voicyテックブログのフィード
本記事はAngularアドベントカレンダー2024の18日目の記事です。昨日はnao_yさんでした。https://qiita.com/advent-calendar/2024/angular はじめにこの記事では、Angular v19から開発者プレビューとして入ったサーバールーティングによるハイブリッドレンダリングを試して紹介します。 ハイブリッドレンダリングとはハイブリッドレンダリングは、サーバーサイドレンダリング(SSR)、プリレンダリングまたは静的サイト生成(SSG)、クライアントサイドレンダリング(CSR)を組み合わせて、フロントエンドアプリケーションを最適化す...
4ヶ月前

大型機能リリースを振り返る
Voicyテックブログのフィード
はじめにVoicyでバックエンドエンジニアをしているmasaです。先日、パーソナリティ向けの新機能としてコラボ収録機能がリリースされました。自分が入社して初めて携わった大きな機能開発ということもあり、せっかくなのでつらつらと振り返りをしていこうと思います。 コラボ収録ってどんな機能?一言で表すと、「リアルタイムで離れた距離にいる参加者と顔を合わせながら収録ができる機能」です。ざっくりイメージとしては、ZoomやGoogle Meetのようなオンライン通話機能 + 収録機能 といったイメージになります。コラボ収録機能を利用するステップとしては、ホストが収録をするた...
5ヶ月前

Angularをv15→v18にアップデートしました
Voicyテックブログのフィード
!本記事はVoicy Advent Calendar 2024の8日目の記事です。(8日目に出すとは言っていない) はじめにこの記事では、業務でAngularアプリケーションをv15→v18にアップデートする上でやったこと、考えたことなどを書いていきたいと思います。 アップデートの背景プロダクト開発においてアプリケーションのフレームワークやライブラリをアップデートすることは、セキュリティリスクの解消やバグの修正、新機能の活用、パフォーマンス向上などにおいて重要だと思います。voicyでは現在、基本的にAngularのLTSに追従する形でアップデートを行う方針となっていま...
5ヶ月前

ログのタイミングと情報量: 処理の流れを完全に再現するために
Voicyテックブログのフィード
何のためのログか常時稼働しているソフトウェアシステム(Webサービスなど)を運用している開発現場なら、問い合わせ対応や障害調査は日常茶飯事のように起こるのではないでしょうか。すでに終わった処理をあとから振り返るためには、当時の情報が残ってなければならない。その手がかりが十分にあると、想像や推測を交えずに、事実だけで「その時、システムが、何をしていたか」が説明できるようになります。筆者はログのことを、完了した処理をあとから再現するために、残っていなければならない事実と考えています。 処理を再現するための適正な情報量を求めて極端な話、処理中のあらゆるところで現状を記録し...
5ヶ月前

Alistair Cockburnさんの新しい書籍「Unifying User Stories, Use Cases, Story Map」
Voicyテックブログのフィード
Alistair Cockburnさんはアジャイルソフトウェア開発宣言を考えたエンジニアの一人です。読み方はカタカナだとアリスターコーバーンが近いでしょうか。Hexagonal Architectureでもまた有名です。 以前書いた記事Hexagonal Architectureについては以前読んで記事を書きました。コーバーンさん本人についても軽く書いています。https://zenn.dev/voicy/articles/722c810df3ba0bこの本と同時期に出た、Hexagonal Architecture Explainedについても一応記事を書いています...
5ヶ月前

Alistair Cockburnさんの新しい書籍「Hexagonal Architecture Explained」
Voicyテックブログのフィード
Alistair Cockburnさんはアジャイルソフトウェア開発宣言を考えたエンジニアの一人です。読み方はカタカナだとアリスターコーバーンが近いでしょうか。Hexagonal Architectureでもまた有名です。 以前書いた記事オリジナルのHexagonal Architectureについては以前読んで記事を書きました。コーバーンさん本人についても軽く書いています。https://zenn.dev/voicy/articles/722c810df3ba0b 待望の新刊同じアジャイルソフトウェア開発宣言を考えたエンジニアたちの中でも多作で現在も旺盛な出版活動...
5ヶ月前

Datadog dd-trace-goが何をしているのか追ってみよう
Voicyテックブログのフィード
Datadogって?https://www.datadoghq.com/ja/インフラ監視やログ、アプリケーションのパフォーマンス分析を行うためのクラウドサービスを提供している企業とそのサービス名です。また、このようなツールを使うことで効率的なパフォーマンス改善や不具合修正を行うことができます。競合的なサービスはNew RelicやDynatraceなどでしょうか。かつては私もAWS環境にSSH接続をしてファイルをgrepしたりlessしたりtailしたりでログを追っていましたが、Voicyのようにk8sを使っていて、アプリケーションがたくさんのpodにいるようなサービスで...
9ヶ月前

Alistair CockburnさんのHexagonal architectureを読んで
Voicyテックブログのフィード
この記事はAlistair CockburnさんのHexagonal architectureを読んだので、特に印象に残った点を引用しながら書いていきます。https://alistair.cockburn.us/hexagonal-architecture/ Alistair Cockburnさんはアジャイルソフトウェア開発宣言を考えたエンジニアの一人です。読み方はカタカナだとアリスターコーバーンが近いでしょうか。Crystalという開発手法を考えたり、振り返り手法の一つであるKPTの生みの親とも言われたりしています。CrystalはXPやScrumほど現在の日本で...
10ヶ月前

Go Conferenceに初めて参加しました
Voicyテックブログのフィード
Voicyでバックエンドエンジニアをしているmasaです。昨日(2024/6/8)、AbemaTowersで開催されたGo Conferenceに参加したのでその感想などを記事にしてみようと思います! 参加までの過程私はVoicyに入社するまでGoを実務としては使ったことがなく、Go Conferenceの存在自体は認知していたものの「興味はあるけどGo使ってないし参加まではしなくていいかなぁ」という気持ちで参加を見送っていたのですが、今年からは実務でもGoを使うようになり、関心度が今まで以上に増していたため参加してしてみようと思いました!connpassで事前に参加申し込みを...
1年前

Xcodeプロジェクトで環境変数を設定し、読み込む方法
Voicyテックブログのフィード
Xcodeプロジェクトで環境変数を設定し、読み込む方法この記事では、Xcodeプロジェクトで環境変数を設定し、それらをAppDelegateで読み込む方法について説明します。xcconfigファイルやXcode Cloudでの環境変数設定を利用して、プロジェクトのビルドや実行時に適切な環境変数を使用する方法を紹介します。 環境変数の設定まず、環境変数をxcconfigファイルおよびXcode Cloudで設定する方法を見ていきます。 1. xcconfig ファイルの設定xcconfigファイルはビルド設定を定義するためのファイルです。以下に例を示します。Debug....
1年前

ケント・ベックさんのImplementation Patternsを読んだ読書感想文
Voicyテックブログのフィード
ケント・ベックさんとはケント・ベックさんはアジャイルソフトウェア開発宣言を考えたエンジニアのなかのひとりで、テスト駆動開発(TDD)やエクストリームプログラミング(XP)で有名な方です。ほかには、超著名なテストフレームワークであるJUnitの開発者としても知られています。私はJUnitを利用した経験がありませんが、その影響を受けて開発されたPHPUnitを使った経験はあります。現代のソフトウェア開発に多大な貢献をしているお方ですね。 Implementation Patternsとはケント・ベックさんがソフトウェア開発をおこなうときに、こうしたらやりやすいんじゃないかなと...
1年前

原著のすすめ
Voicyテックブログのフィード
はじめにVoicyでバックエンドエンジニアをしているmasaです。GWに何か記事を1つでも書けたらな〜と思っていたので、Voicyに入社して以降取り組み始めた「原著を読む」ということについて記事にしてみることにしました。ぜひ読んでいただけますと幸いです。 なぜ原著を読み始めたのか?私が原著を読み始めたきっかけは、主に以下のようなものです。(エンジニアなのに)英語に対する苦手意識があって、克服したいと思っていたVoicyに入社していろんなことにチャレンジしてみたいと思っていた(2024/1にVoicyにジョインしました)社内でタイミングよく輪読会が始まったまず、...
1年前

ホワイトボードOAuth: 本人、代理人、委任状から成り立つ操作の代行
Voicyテックブログのフィード
OAuth 2.0の世界観を5分で伝えるためにOAuth 2.0を知らない同僚に、5分で紹介するとしたら何を話せばいいか。「RFC 6749ではこういった用語やこういった流れが定義されてますよ」という風に説明しても興味を持ってもらえないだろうと筆者は思います。この記事ではRFC 6749をはじめとする公式の文献にあえて触れずに、口頭でも説明しやすい形でOAuth 2.0のあらすじを紹介していきます。 最初の一言OAuth 2.0がサポートされているサービスでは、ユーザー本人から委任状をもらった代理人は、サービス内でユーザーに代わって操作を代行することができる。とい...
1年前

Angularの新機能を触ってみようハンズオン
Voicyテックブログのフィード
この記事は、「Startup Angular #7 LT会&新しいAngularで始めよう!」のイベントのハンズオンで使用するものです。 ハンズオンの目的このハンズオンの目的は、最近のAngularリリース(v17まで)に含まれる新機能を触ってみることで、よりAngularというフレームワークに興味を持ってもらうことです。 ハンズオンの全体像このハンズオンは、次の構成で進めていきます。時間内容10分はじめに&環境構築5分コンポーネントを知ろう10分Control FlowでTodoリストを作ってみよう5分Signa...
1年前

フロントエンドアプリを画面駆動で考えて本当によかったのか: フロントエンドとバックエンドはそんなに違わない
Voicyテックブログのフィード
アプリエンジニアの同僚からよく、「アプリって画面が中心なんだよね」との声を聞く。筆者にはそれだと、画面と画面を繋ぐ一貫性を持った何かしらのテーマを見逃しているように思えるので、この記事で考えを説明していきたいと思います。 アプリの存在意義を考えるアプリの存在意義を考えてみると、エンジニアは目的もなくただ漠然とUIを作っているわけではないということが分かります。エンジニアがアプリを作るのには目的があって、その目的とはユーザーがやりたかったことを実現してあげることになります。ユーザーがやりたかったことの実現(ユースケース)は画面に言及しなくても語れるのに対し、画面はその流れをグラフィ...
1年前

OpenAPI Generatorのtypescript-fetchで型定義を自動生成してAngularで使う
Voicyテックブログのフィード
!本記事はVoicy Advent Calendar 2023の10日目の記事です。 はじめにこの記事では、OpenAPI Generatorのtypescript-fetchで型定義を自動生成してAngularで使う方法を試したので紹介します。この方法は、Voicyのプロダクトにも一部導入されているので、改めて自分で試してみてまとめました。 OpenAPI Generatorのtypescript-fetchOpenAPIからTypeScriptの型定義を自動生成するには、複数のライブラリが選択肢として挙げられますが、今回はOpenAPI Generatorのtypes...
1年前