WESEEK, Inc. の技術ブログ
全75件
ActiveModel::SerializersでSTIのtypeに応じてSerializerを切り替える
2022/11/29
ブックマーク
こんにちは 田村 です。 STI を使用して複数の type のモデルデータがあり、これを 1 つの API エンドポイントで混ぜて返したいとします。 このとき、 STI の type に応じて serializer を切り替えたくなります。 今回は、その方法を紹介します。 STI については こちら を参照してください。 困ったこと 以下のようなクラス階層を STI で実現しているとします。 SimplePosts は title と
【簡単】オンライン決済サービスStripeでのクーポン適用方法
2022/11/08
ブックマーク
はじめまして。エンジニアの Ryo です。本記事では、最近、勢いに乗ってきているオンライン決済サービス Stripe を用いてオンラインサービス提供者向けに、特定の顧客に対して割引を行う方法をご紹介します。 ※こちらの記事は、すでに Stripe をサービスに導入しているという前提で作成されております。もし、Stripe を検討中でまだ導入されてない場合は、以下の記事で
pure selectors must contain at least one local class or id
2022/10/28
ブックマーク
経緯 css modules ファイル内に、html セレクタを直接記述したらエラーに遭遇したので、原因と解説、解決方法を簡単にまとめました。 やったこと css modules ファイル内で、 <h1> タグ内の文字色を 黄色 にするクラス指定を追記。 import styles from '../styles/xxx.module.scss' export default function Home() { return ( <div className={styles.container}> <h1>Welcome to My app!</h1> // ここの
Next.js 13 の Turbopack をカスタムサーバーで試そうとした話
2022/10/27
ブックマーク
経緯 Next.js Conf 2022 でNext.js 13に関する発表、その中には Turbopack なる大変アツい代物がありました。 Next.js 13 Blog から 700倍だと?? これは試してみたいですね。 TL;DR 2022/10/27 現在、v13.0.0 ではカスタムサーバー(Custom Server)向けに Turbopack を使う方法はありません。 バージョンアップを待ちましょう。 試してみる ブログでは優位性について記述があるものの、実際の手順は
Rails における hash のキーの扱いについての tips
2022/10/20
ブックマーク
みなさん、こんにちは kota です。 日頃、業務では Rails を使っているのですが、先日 hash のキーの扱いについて、再認識したことがあったので、簡単に共有したいと思います。 困ったこと model からデータを所得し、変数に入れ、その変数に対し attributes メソッドを使って hash 化した。 hash 化した変数から name の値を取得しようと user[:name] でアクセスするも、nil が返って
複数のdevcontainerを連結して開発できるようにした話
2022/10/19
ブックマーク
こんにちは、GROWI.cloud の開発・運用を担当している WESEEK のエンジニアの伊勢です。 今回は、 GROWI.cloud の開発で困った問題が起きて、その問題を解消した時の話をご紹介します。 背景 GROWI.cloud は node.js を主な言語として開発しており、そのプロジェクトを役割に応じて「プロジェクトA」「プロジェクトB」... と分割しています この「プロジェクトA」「プロジェクトB」..
より良いTypeScript開発のために、strictBindCallApplyはtrueにしよう
2022/10/03
ブックマーク
strictBindCallApply ってなに? tsconfig のオプションのひとつ デフォルトでは false (厳密なチェックはしない) 設定になっています strictBindCallApply: false のままだとどうなるの? false のままだと、 bind , call , apply を使う時に type safe でないコードになってしまいます 「type safe ではない」ってどういうこと? TypeScript入門『サバイバルTypeScript』 の strictBindCallApply のページ がわかり
Nextのstandalone機能のビルドサイズを通常ビルドと比較する
2022/09/30
ブックマーク
どうも、インターンの手塚です。今回は、Next.jsのstandaloneという機能に焦点を当てた記事を書こうと思います。standalone機能がビルドサイズをどれだけ小さくするのかを確認してみましょう。 目次 standalone機能とは standalone公式ドキュメント // next.config.js module.exports = { output: 'standalone', } 公式ドキュメントにもあるように、 next.config.js に上のように書くことで standalone
Sphinxでi18nなドキュメントを作成するときのナレッジ:解決編
2022/09/30
ブックマーク
こんにちは、 ryosuke です。 今回は、 以前に取り上げた、ドキュメント作成ツールである Sphinx を使って、多言語の文章を作成する際に、困った点とその解決手段についての続編です。 この記事では、「解決方法」の話をします。 前回の記事は「 Sphinxでi18nなドキュメントを作成するときのナレッジ:課題編 」です おさらい: 翻訳作業時の課題 前回の記事では翻訳作業にお
WordPressのdocker imageをアップデートした時に遭遇したLDAPのトラブルと対処方法
2022/09/09
ブックマーク
こんにちは、システムエンジニアの kouki です。 この記事では WordPress のアップデートをした時に遭遇した LDAP のトラブルとその対処法について紹介します。今回は端的にまとめていますので、調査経緯に興味がある方は気づくまでに至った「調査ログ」も見ていただけると幸いです。 トラブルに遭遇した環境 WordPress 内で miniOrange が提供している「 LDAP Login for Intranet Sites
【音声認識】Python x CMU Sphinx で音声認識入門
2022/09/09
ブックマーク
皆さんこんにちは! WESEEK ソフトウェアエンジニアの 増山 です。 今回のブログでは、Python と 音声認識ライブラリ CMU Sphinx を使って簡単な音声認識をやってみます。 目次 ソースコード 動くコードは https://github.com/hakumizuki/python_sphinx_sample にあります。 こちらのレポジトリをベースに説明していくので、実際に手元で動かして見たい方は git clone https://github.com/hakumizuki/python
【VictoriaMetrics】時系列データを上書きしたように見せる
2022/09/09
ブックマーク
皆さんこんにちは! WESEEK ソフトウェアエンジニアの 増山 です。 今回のブログでは、時系列データベース VictoriaMetrics でデータを上書きしたように見せる方法を解説します。 VictoriaMetrics をまだご存知ない方には こちらの記事 で入門していただくことをおすすめします。 目次 VictoriaMetrics ができないこと そもそも VictoriaMetrics は v1.80 の時点では時系列データの上書きを
【HTML】input タグでエンターを押したときに変換かどうかを分岐する
2022/09/09
ブックマーク
要求 React の以下のようなコンポーネントがあり、 onKeyDownHandler で"文字の変換を確定したときのエンターキー押下"と"それ以外のエンターキー押下"を区別したい。 const Component = () => { const onKeyDownHandler = (e) => { if (e.key === 'Enter') { // これだと全てのエンターキー押下でこのブロックに到達する } }; return <input onKeyDown={onKeyDownHandler} />; }; 解決法 onCo
React DnD でネストされたコンポーネントをドラッグできないようにする
2022/09/09
ブックマーク
要求 React DnD でネストされたコンポーネントがあるとき、子要素の範囲をドラッグしようとしてもドラッグされないようにすること。 const Child = () => <div style={{width: 25, height: 25}}></div>; // この要素が存在する部分ではドラッグできないようにしたい const Parent = () => <div style={{width: 50, height: 50}}><Child /></div>; 解決法 Child コンポーネントを以下のように
GitHubから直接開くVisualStudioCodeが便利
2022/09/01
ブックマーク
はじめに こんにちは WESEEK でわりと何でもやっている haruhikonyan です。 皆さんは日々 GitHub 使ってますでしょうか?仕事では GitHub やその他を使っている方でもエンジニアであれば GitHub でコードを見たりすることはあると思います。 しかしなかなかコードの全文検索がうまくいかなかったり、見たいだけなので clone するまでもなくちょっとした作業とかをしたいこともあ