kubell Creator's Note

株式会社kubellのエンジニアのブログです。

ビジネスチャット「Chatwork」のエンジニアのブログです。

読者になる

JavaScript

JavaScriptで文字列の長さを取得するときの差を言語仕様から深掘りしてみる

この記事はkubell Advent Calendar 2025の9日目の記事です。 こんにちは、kubellのフロントエンド開発グループの末竹(magcho)です。 最近はJavaScriptの言語仕様を読むことを趣味としています。この趣味ですがなかなか体感したことのない方には伝えづらく今…

JavaScriptの便利な構文に潜む罠

この記事は kubell Advent Calendar 2024 12/23の記事です。 こんにちは、2024年4月に新卒でkubellに入社した石田です。 6月にフロントエンド開発部に配属されてから約半年が経ちました。 今回は半年間の業務の中で一番印象に残っている、フロントエンドのパ…

インターンシップ課題として CTF を作った

どうも、こんにちは。 この場では2回目になります。 田尻(@lmdexpr)です。 今回は Chatwork Advent Calendar 2022 5日目(土日を入れると7日目)の記事です。*1 最近は CTF やらプログラミングコンテスト熱が再燃しています。 あと、OCaml 5.0 がリリース…

WebRTCでもE2Eテストをあきらめない

初めましてこんにちは、今年の4月から新卒でフロントエンド開発部に入社した cw-suetake です。 いきなりですが、WebRTCを利用したビデオチャットなどを開発しているとE2Eテストがほしくなってきませんか? 開発者一人で開発していると動作確認のために複数…

TypeScriptのString Literal Typesを使った状態の管理

この記事はbuilderscon tokyo 2018のスピーカーディナーに参加した勢いで書きました。 @kyo_agoです。

ScalaJS for TypeScripter

こんにちは。@kyo_agoです。 だいぶScalaJSでの開発知見が溜まってきたので共有したいと思います。

WebRTC開発ツールの紹介

こんにちは。@kyo_agoです。 今日はWebRTC開発に便利なツールを紹介したいと思います。

Google Apps ScriptでChatWorkのWebhook署名を検証する方法

こんにちは。@kyo_agoです。 最近ChatWorkのWebhookがGoogle Apps Script (以下GAS)でリクエストの検証できるようになったので紹介したいと思います。

ChatWorkのOAuthをGoogle Apps Scriptで使う

こんにちは。@kyo_agoです。 ChatWorkのOAuthが公開されました。 ここではChatWorkのOAuthをGoogle Apps Script(以降、GAS)から使う方法を紹介したいと思います。

ScalaJS in 2017

こんにちは。@kyo_agoです。 2015年ごろに盛り上がっていたScalaJSですが、最近あまり話を聞かないのでまとめてみようと思います。

チャットワークのWebhookの署名検証を各言語で実装してみた

@hayasshi_です。Scalaのプロダクトを開発しています。 ついにチャットワークのWebhookがリリースされました! OAuthとあわせて、様々なサービスがチャットワークと連携しやすくなります。 今日はチャットワークのWebhookの署名検証について少しお話します。…

React.Componentで外部要素のevent bind,unbindを正しく行う

正しくevent unbindできてますか?@kyo_agoです。 React.Componentの紹介を行っている記事でComponentの外にある要素のevent bind,unbindを正しく行えていない例がいくつかあったので記事にしてみました。

UnitTestと対象コードを同じディレクトリに置いたらよかった話

@kyo_agoです。 最近UnitTestと対象コードを同じディレクトリに置いたらよかったので共有したいと思います。 (ちなみにJestでは標準的に採用されている形式ではあります)

Flowを使ってGoogle Apps Scriptのコードをチェックしよう

Flowを使ってGoogle Apps Scriptのコードを静的型チェックすることができます。ChatWork APIのクライアントライブラリをつかったGASのコードを静的型チェックしている例を紹介しています。