著者 四柳剛

Kubernetes GUIクライアントの紹介

Kubernetes の GUI クライアントの紹介の記事です。GUIクライアントを活用することで、内部の理解がしやすくなり、習得が早まります。Rancher, OpenLens, k9s, Devtron

Kubernetes GUIクライアントの紹介

TORICO が漫画アプリ開発に Flutter を採用した事例の紹介

当社 TORICO は、モバイルアプリの開発に Flutter を採用しています。 この記事では、2023年1月現在の、TORICO での Flutter 開発事例を紹介します。

TORICO が漫画アプリ開発に Flutter を採用した事例の紹介

当社プロダクトにおける、nuxt2→nuxt3 への移行時の記録

2022年11月16日、Nuxt3 が正式リリースされました。 当社でサービスしているプロダクトの1つを、Nuxt2 から Nuxt3 に書き換えましたので、変更した実施内容を書きます。

当社プロダクトにおける、nuxt2→nuxt3 への移行時の記録

Raspberry Pi Pico W で Httpサーバ(microdot)とセンサーによるHTTPリクエスト機能を同時に稼働させる

Raspberry Pi Pico W が発表されました。日本ではまだ未発売ですが、技適は取得されたようですので近いうちに国内販売がされそうです。 試しに、Webサーバ ( Microdot )とWebクライアント(urequest) を uasyncio で並列実行するコードを書きましたので、紹介します。

Raspberry Pi Pico W で Httpサーバ(microdot)とセンサーによるHTTPリクエスト機能を同時に稼働させる

Svelte で作ったWebコンポーネントを接続国によって出し分ける

11月28日、当社 TORICO の初の海外店舗、マンガ展 台湾 がオープンしました。 オープンする直前で、「漫画全巻ドットコム、スキマ、マンガ展、ホーリンラブブックスのサイトに、台湾からアクセスされた方に告知を出したい。という開発要件が出たので、作ってみました。

Web ページの動作検証のためのボットスクリプトを Windows 上で作る

この文書は、開発経験の無いチームがウェブアプリケーションの動作検証の責任を持つケースで、検証を簡単なプログラムで行うアプローチについての手法を解説しています。 Webアプリケーションの動作検証の際、手動で実行する以外にプログラムで検証すると便利です。開発者であればは検証コードを書くのは簡単ですが、開発経験の無い方はどこから始めたらいいかわからないと思いますので、簡単に始められる所を紹介します。OS は Windows を対象としています。

Web ページの動作検証のためのボットスクリプトを Windows 上で作る

コピペですぐ動く! Gmail をスプレッドシートに書き出す Google Apps スクリプト

普段 Gmail を使われている場合、Google Apps Script (GAS) を使うことでメールの処理をスクリプトで簡単に自動化することができます。 今回は、Gmail で受信したメールを検索し、検索結果を Google スプレッドシートに書き出す方法を紹介します。 ウェブ上のツールでスクリプトを少し書くだけで実現できます。メールを使う業務の自動化に応用できると思います。

コピペですぐ動く! Gmail をスプレッドシートに書き出す Google Apps スクリプト

Ubuntu22 に MicroK8s で Kubernetes 環境を構築し、その中で Rancher を起動する

今回は、 Kubernetes 環境は Ubuntu の MicroK8s で起動し、その K8s の中で、 Deployment として Rancher を起動するようにしました。

Ubuntu22 に MicroK8s で Kubernetes 環境を構築し、その中で Rancher を起動する

AWS RDSで大量のデータを削除する時等に、性能劣化を避けるために確認すべき項目(クレジット残高)

RDS で、大量のIO を伴う処理を行うと、処理途中で性能が大きく劣化することがあります。 不要になった大量の過去データをバッチで削除する時によく発生します。 これは、ストレージへの IO を規定量より高い頻度で行った時に減少するクレジットがあり、それが 0 になった時、パフォーマンスに制限がかかってしまうためです。

AWS RDSで大量のデータを削除する時等に、性能劣化を避けるために確認すべき項目(クレジット残高)

Flutter riverpod + hooks_riverpod の基本的な状態管理の使い方を Vuex (typed-vuex/vuex-module-decorators)と比較して紹介

当社 TORICO ではモバイルアプリ開発のフレームワークに Flutter を採用し、ウェブのフロントエンドのフレームワークとしては Nuxt を採用しています。 普段 Nuxt で開発している方が Flutter での開発を始める際、Flutter での状態管理フレームワークとして、riverpod + hooks_riverpod を使う場合、基本的な使い方を Vuex と比較すると早く理解できますので、説明します。

Flutter riverpod + hooks_riverpod の基本的な状態管理の使い方を Vuex (typed-vuex/vuex-module-decorators)と比較して紹介

これからアプリケーションエンジニア(プログラマ) になるための準備

この記事は、株式会社TORICO Advent Calendar 2021 12/21 の記事です。 他社の方と話をした際、お子さんがアプリケーションエンジニアに興味があるという話を聞いたので、これからアプリケーションエンジニアになる人に向けての記事を書こうと思いました。

これからアプリケーションエンジニア(プログラマ) になるための準備

若手アプリケーションエンジニア(プログラマ)に読んでほしい本

主に私の会社 TORICO の若いアプリケーションエンジニア(プログラマ)や、部下・チームを持ったエンジニアに読んでほしい本をリストアップしました。リーダブルコード、プリンシプルオブプログラミング、UNIXという考え方、達人プログラマー

若手アプリケーションエンジニア(プログラマ)に読んでほしい本

PyCharm, WebStorm, PHPStorm など JetBrains エディタで必須で覚えるショートカット・機能

TORICOでは、開発者のエディタは JetBrains のもの (PyCharm, WebStorm, PHPStorm 等) を使うことにしています。今回、最初に必ず覚えたいショートカット・機能を紹介します。

PyCharm, WebStorm, PHPStorm など JetBrains エディタで必須で覚えるショートカット・機能

仕事をスケジュールに沿って進捗させるために「完了」の条件をチームで共有する

ディレクションチームと開発チームで「完了」状態のイメージを揃えておかないと、この課題だけではなく、その次の課題の進捗にも遅延が発生します。お互いに、「完了」とは何かをより具体的にイメージしておくことが、開発をスムーズに進めることに繋がります。

仕事をスケジュールに沿って進捗させるために「完了」の条件をチームで共有する

海外回線からのブラウザリクエストを日本のオフィスから SOCK5プロキシを使って行う

海外回線からリクエストされた時に応答を変えるようなサービスで、実際の海外からアクセスした時のレスポンスを日本国内のPCから試したい場合は、SOCKS プロキシを使うと便利です。 実際に起動した、自分のコントロールしているサーバを使います。怪しげな VPN サービスを使わないため安全です。

海外回線からのブラウザリクエストを日本のオフィスから SOCK5プロキシを使って行う

Amazon Pay Checkout v2 API の署名 (RSA-SHA256 (RS256) + RSA PSS Padding) を Python で行う

Amazon Pay のAPIクライアントを書く際、Amazon のAPIサーバに送信するリクエストに、RSA-SHA256, RSA PSS パディングを使って署名を作り、リクエストに含めて送信する必要があります。 Java や node はクライアントライブラリがあったので、それを使って簡単に署名できたのですが、弊社 TORICO ではサーバサイドは主に Python を使っているため、署名コードを書きました。

Amazon Pay Checkout v2 API の署名 (RSA-SHA256 (RS256) + RSA PSS Padding) を Python で行う

ファンのうるさい MacBookPro を静かにする

メインの開発機として MacBookPro 2019 16インチ Intel CPU を使っています。 ちょっとでも負荷のかかる処理をさせると、すぐファンが最高速で回ってしまいます。会社での使用時は問題ありませんが、在宅で静かな部屋の中で使っている場合、なかなか不快です。 今回、そのファンの音をなんとか静かにしようと試行錯誤したのでその記録を書きます。

ファンのうるさい MacBookPro を静かにする

Webクライアントはリッチに、モバイルアプリクライアントはシンに運用開発する

Django, Nest, Laravel, Rails などの サーバサイドアプリ(APIサーバ) Vue, React などの Webクライアント iOS, Android 用の モバイルアプリクライアント これらを組み合わせてサービスを作ることはよくあり、弊社でもそうしています。 Webクライアントとモバイルアプリクライアントは役割として同じものになるので、同じような感覚で開発を始めることはよくあります。 しかし、アプリのファーストリリースが終了し、運用開発のフェイズとなった時、同じような感覚で機能追加を進めていこうとするとうまくいきません。モバイルアプリは、非常にリリース速度が遅いのです。

Webクライアントはリッチに、モバイルアプリクライアントはシンに運用開発する

Webの技術でレジ(POS) を開発・運用する

当社TORICOは、主にインターネット上での書籍の販売サービス、つまりECサイトを自社開発して展開しています。 実店舗を営業するにあたり、レジ(POSシステム) が必要となります。TORICOでは、POSシステムもWeb技術で自社開発し運用しています。当社と同様に Web技術で POSを開発される方に向けて、私が対応したいくつかの経験を書き残します。

Webの技術でレジ(POS) を開発・運用する

Django の ORマッパーで生成されたSQLを実行前に置換し、JOIN時のインデックスを強制する

Django には、便利な ORマッパーが搭載されており、SQLを一切書かずともRDBの操作が行えます。 今回、SQL実行時に思ったようにインデックスが使用されず、パフォーマンスが出ない問題がありました。 これは、生SQLを実行した場合も同様にインデックスが使われなかったため、Django の問題ではなく、実行計画が最適に作成されなかったというSQL上の問題(というか仕様?)です。 SQL内にインデックスヒントを強引に書き込むことでインデックスを強制した所、正常なパフォーマンスとすることができたので、その方法を書きます。

Django の ORマッパーで生成されたSQLを実行前に置換し、JOIN時のインデックスを強制する

TORICOの他のブログ投稿

Recent Posts

Feeds

RSS / Atom