やわらかテック

興味のあること。業務を通して得られた発見。個人的に試してみたことをアウトプットしています🍵

2023-09-01から1ヶ月間の記事一覧

【OBSで使用可能】スプラトゥーン3の武器をランダムで表示するサービスを公開しました

最近、Twitchでスプラトゥーン3のプレイを配信しています。 その中でただプレイするだけだと面白くないので、武器をランダムで選択してバンカラマッチ(対戦)できたら面白いかも...と思ったのですが、配信でいい感じに使える武器をランダムに選択してくれるサ…

【はじめてのシステムコール】ソケットでTCPサーバーを実装する

みなさんはシステムコールについてご存知でしょうか。 システムコールを一言で説明すると、OSのサービスを利用する際に呼び出しされる機構のことです。 普段、WEBアプリケーションの開発をしている自分にとってシステムコールは、あまり馴染みのあるものでは…

Pythonでデータ処理・グラフ描画できると業務の幅が広がる

僕がプログラミングを始めたばかりの頃はPythonを使って、データ処理・分析、機械学習といった内容に取り組んでいました。 当時、業務(アルバイト)ではCSVファイルをpandasで読み込んで、前処理をしてmatplotlibを使ってグラフを描画して...というサイクルを…

Elixirでシンプルなロードバランサーを実装してみた

先日、Twitterを見ていると面白そうな記事が紹介されていました。 少し古い記事ですが、シンプルなロードバランサーをRustで実装してみたとのこと。凄いですね...。 qiita.com ロードバランサーと聞くと何やら難しそうなイメージがありますが、記事内で実装…

Rubyでパフォーマンス(メモリ使用量・実行速度)を計測する

先日、Rails製のアプリケーションのパフォーマンス検証をする機会がありました。 計測したいのはメモリ使用量と実行時間の2つです。後者の実行時間に関してはRubyが標準ライブラリとして提供しているbenchmarkを使えば事足りますが、前者のメモリ使用量とな…

ロジクールのイェティXはとんでもない高性能マイクだった

一週間前にロジクールのBlue Yeti Xというマイクを購入しました。 今まで通話にはiPhoneに付属してくるイヤホンマイクをずっと愛用しており、音質には全くこだわりがありませんでした。むしろ、iPhone付属のイヤホンマイクで十分だと思っています。 ただリモ…

RubyでJSONパーサーを作ってみた

最近、パーサーを実装したい欲が高まっています。 というのもRui Ueyamaさんの「低レイヤを知りたい人のためのCコンパイラ作成入門」を読み進めて、再帰下降構文解析をはじめとしてパワフルな実装に非常に魅力を感じているからです。 資料に合わせてCコンパ…

弊社の技術ブログに「OSSコードリーディング入門」を投稿しました

先日、弊社の技術ブログに久しぶりに記事を投稿しました。 内容としてはOSSのコードを初めて読む人に向けて、どのような流れでコードを読んでいくのかを実際のOSS(gimei)を用いて紹介していくという記事です。 techlog.n2i.jp 本当は自分のブログに投稿した…

JOIN高速化のためにインデックスを作成しても効果はないのか

業務中に以前、自分が書いた記事を読み返す機会がありました。 www.okb-shelf.work JOINを使っているSQLを高速化できないかと思って新規インデックスの作成を検討をしていました。 ただし、過去の記事にも書いた通り「結合述語にインデックスを作成しても、…

sidekiq.ymlファイルの文字列に環境変数を埋め込む

sidekiq.ymlではERBがサポートされており、環境変数を指定することが可能です。 よく環境変数が使われるのは、並行度(concurrency)の値やタイムアウトの秒数などでしょうか。 :concurrency: <%= ENV.fetch('SIDEKIQ_CONCURRENCY', 10) %> こんな感じでsideki…