Toyokumo Tech Blog

トヨクモ株式会社の開発本部のブログです。

AWS CLI を Babashka スクリプトでラップして楽しよう

開発本部の飯塚です。 業務で Babashka を使う機会を無理矢理作ってみたので、その副産物を公開してみます。 動機 CloudWatch Logs からログを抽出して調査したい AWS CLI を使ってもいいが、クエリの発行、クエリの完了待ち、結果取得が面倒 良い感じにラッ…

Vim で始める Clojure 開発

Vim/Neovim 向けに Clojure の開発環境を提供するプラグイン vim-iced を使って Clojure 開発環境の構築をしてみましょう。 なお vim-iced は個人的に開発している拙作の Vim プラグインで、実際に私が業務で(勝手に)利用しているという実績があります。 前…

Clojureのフォーマッターcljstyleの使い方

こんにちは。開発本部の江口(@egs33)です。 弊社ではClojure製の製品を開発していますが、ClojureのフォーマッターとしてOSSのcljstyleを利用しています。 利用するにあたって機能の追加やバグの修正などのコントリビュートも行いました。 tech.toyokumo.co.…

Clojure Ring Middleware大全

これはClojure Advent Calendar 2019の21日目の記事です。 そして、こちらの記事の続きにもなっています。 tech.toyokumo.co.jp 本記事では、RingのMiddlewareについて解説していきます。 基本的に上記の記事を理解いただいた前提で話を進めていこうと思いま…

Zipperでコードフォーマッターを実装する (greglook/cljstyle に学ぶ)

北川です。 Clojure 始めました。 Clojure のお勉強をするにあたり何か良い題材はないかと探していたところ greglook/cljstyle というツールが目につきました。 以前からフォーマッターや linter の実装に興味があったということもあり、ちょうど良いのでこ…

会社の金で買った HHKB Professional HYBRID Type-S (2台) の打鍵感はいかほどか

こんにちは。このブログでまだ技術的なことを1つも書いていない開発本部の飯塚です。 自分の好きなキーボードを買ってくれる会社も最近では珍しくなくなってきたかと思います。 ご多分に漏れず弊社トヨクモでもPCとキーボードは自分で好きなものを選び買って…

nil punningが難しい(seq vs empty?)

これはClojure Advent Calendar 2019 - Qiitaの二日めの記事です。nil punningが難しいなあと個人的に感じているので、なぜリッチヒッキーさんはnil punningを選択したのだろうか、nil punningが優れている点は何か、ということを調べて書こうと思います。調…

kintone REST API の query の BNF を書いてみました

北川です。 弊社では安否確認サービス2の他 kintone連携サービス の開発もしているということもあり、kintone REST API を頻繁に利用します。 中でも query という独自SQLのような機能をよく使うのですが、記法や SQL との差異をよく忘れるので BNF として記…

Symfony アプリを Elastic Beanstalk Multi-Container Docker で運用する

北川です。 Symfony アプリを AWS Elastic Beanstalk Multi-Container Docker を用いて構築・運用する事例の紹介です。 弊社が提供するフォームブリッジというサービスは実際にこの記事の内容に基づき作られています。 なおベストプラクティスを模索中だった…

堅牢な VPC を CloudFormation でサクッと構築する方法

こんにちは。トヨクモ開発本部インフラエンジニアの井上です。 AWS には CloudFormation というリソースの構築を自動化できるサービスがあります。 今回は CloudFormation を使って、堅牢な RDS ネットワークを構築してみたいと思います。 背景 方法 コード …

Clojureエンジニアが育休を4ヶ月とりました

こんにちは。開発本部の飯塚です。 4月に第2子が生まれ、4ヶ月の育児休暇を取得しました。 育休の入るまでにしたこと 育休を取得して良かったこと 理想と現実 育休の長さについて 復帰に際しての不安 最後に 育休の入るまでにしたこと 開発本部では毎週目標…

インフラエンジニアが育休を取りました

こんにちは。トヨクモ開発部インフラエンジニアの井上です。 昨年第一子が生まれたので一ヶ月間の育休を取りました。 弊社での育休取得者第一号ということで、今回は育休について個人的な感想などを書いていきたいと思います。 育休に入る前の準備 育休中の…

Elastic Beanstalk Multicontainer DockerでChromeDriverを使うJavaアプリケーションをデプロイする

こんにちは。 @makinoshi です。 トヨクモでは製品の外形監視などに、Clojureで作成したWebアプリケーションを使っています。 E2E監視に使うためにサーバー上でChrome Driverなどを動かす必要がありましたが、その環境を構成管理ツールでも、ましてや手動で…

採用に関する情報公開をはじめました

こんにちは。 @makinoshi です。 トヨクモではこの度、scrapboxの公開プロジェクトを使い、エンジニア採用の関連情報を継続的に公開していくことにしました。 なぜ公開するのか 自分自身が就職先・転職先を探す側だった時のことを思い出しながら、求職者の立…

ClojureのWeb開発でもっとも重要なRing Handlerについて理解する

こんにちは。開発本部の @makinoshi です。 トヨクモではメインの開発言語としてClojureを採用しています。 Clojureの文法は簡潔でデータ型も少なく、比較的覚えやすい言語だと思います。 一方でWeb開発においては、Symfony/LaravelやRuby on Railsのような…

kintone REST API向けのPHPのクエリビルダを作りました

開発本部の齊藤です。kintone REST API向けのPHPのクエリビルダkintone-query-builderを作成しました。 レコードの取得 (GET) にある、「レコードの一括取得(クエリで条件を指定)」のパラメータqueryのためのクエリビルダーです。 ソースコードはMITライセ…