# NuxtMeetUp#6 にブログ枠で参加してきました Source: https://howdy39.dev/ja/blog/2018-12-08-note-nuxt-meetup-6 2018年12月6日の NuxtMeetUp#6 に、ブログ枠で参加してきたので、その様子を書きました。一般参加枠は抽選で、参加できるかわからなかったため、ブログ枠で申し込んでいます。会場でもらったものと、トップバッターから6番手までの発表を、順に紹介しています。 # Nuxt, netlify, Firebase を使ったWebサービス開発と個人開発における技術選定のポイント Source: https://howdy39.dev/ja/blog/2018-12-09-qiita-nuxt-netlify-firebase-tech-choices Nuxt、Netlify、Firebase を使って作った、Google カレンダーの表示・非表示を一括で切り替える Web サービスを例に、個人開発の技術選定のポイントを解説しました。画面の構築、デプロイ、ドメインと SSL、Google カレンダーの操作、データの保存先、アクセス解析とエラーログの収集を、順に説明しています。作るのにかかった時間も書いています。 # マウスホバーで離れた位置になにか表示したいときの便利ワザ Source: https://howdy39.dev/ja/blog/2018-12-15-qiita-mouse-hover-display-tricks マウスホバーで、離れた位置に別の要素を表示するときの、便利なテクニックを紹介しました。カテゴリメニューの子カテゴリなどで、要素の外にカーソルが出た瞬間に消えてしまうのを防ぐ方法です。:hover を使う方法、@mouseenter と @mouseleave を使う方法、それに debounce を組み合わせる方法の3パターンを、サンプルとあわせて比較しています。サンプルは Vue.js です。 # Nuxtで直接アクセスを禁止にするmiddlewareを作る Source: https://howdy39.dev/ja/blog/2018-12-24-qiita-nuxt-block-direct-access-middleware SPA で、初期処理を別のページで行う場合に、深いページへの直接アクセスを禁止にする、Nuxt の middleware の作り方を紹介しました。直接アクセスしたときは、初期処理をするページにリダイレクトします。仕組みはシンプルで、from.name と route.name が一致した場合に、直接アクセスと判断しています。デモページと、全コードも公開しています。 # vue.jsでクリックのデフォルトイベントを止めるディレクティブを作る Source: https://howdy39.dev/ja/blog/2018-12-24-qiita-vue-prevent-click-directive クリック時に event.preventDefault() を実行する、Vue.js のディレクティブ(v-prevent-click)の作り方を解説しました。ストアの Web 画面を作るエディタ画面では、本番ではリンクになる部分を、押しても反応しないリンクとして見せる必要があり、全タグの @click に定義するのは大変なので作りました。基本的には使わない、かなりレアなケースです。 # Nuxt.jsでユーザーエージェントを判別するプラグインの紹介 Source: https://howdy39.dev/ja/blog/2018-12-25-qiita-nuxt-user-agent-plugins Nuxt.js で、ユーザーエージェントによって処理を切り替えたいときに便利な、プラグインを2つ紹介しました。ググって探した、nuxt-device-detect と nuxt-user-agent です。nuxt-device-detect は、モバイルか PC かをシンプルに判定したいときに向いていて、判定の処理が70行未満と短いので、自分で簡易判定を書くときの参考にもなります。デモページも用意しています。 # 2018年の振り返り Source: https://howdy39.dev/ja/blog/2018-12-30-note-2018-review 2018年を振り返りました。仕事、技術書典、Qiita、OSS、個人サービス、英語、買い物に分けて、総括も書いています。仕事は、トップゲートを退職して、10月から STORES.jp(hey)に入社し、ストアデザイン画面のリニューアルとして、AngularJS(1系)を Nuxt.js に置き換えながら、機能を強化したことなどに触れています。 # NuxtでYouTubeプレイヤーを埋め込む Source: https://howdy39.dev/ja/blog/2018-12-30-qiita-nuxt-youtube-player Nuxt で YouTube のプレイヤーを埋め込むには、vue-youtube というライブラリを読み込んで使えばよい、という内容の記事です。YouTube の iframe 向けの YouTube Player API を実装した youtube-player を、vue-youtube が組み込んでいる形です。再生や一時停止などの制御は、iframe API のものをそのまま使え、イベントは emit で発火します。動作を確認できるデモページもあります。 # #技術書典 6 にサークル参加してきたので被チェック数の傾向とか感想とかつらつら書きます Source: https://howdy39.dev/ja/blog/2019-04-14-note-tech-book-fest-6 技術書典6にもサークル参加したので、被チェック数の傾向と、感想を書きました。被チェック数は、前回の411を超えて479になり、新刊の Network 編を415部、既刊の Console 編を195部ほど頒布しました。Console 編の紙版は、今回が最後の頒布なので、500円に値下げして売り切りを狙いました。通販と決済手段のことも書いています。 # Google スライドで登壇用スライドを作る際のテクニック Source: https://howdy39.dev/ja/blog/2019-07-23-qiita-google-slides-presentation-techniques Google スライドで登壇用のスライドを作るときに、私が意識しているテクニックを紹介しました。勉強会の登壇資料として使う前提で、実際に作ったスライドを例にしています。文字サイズ、色、位置の調整は、スライドごとではなく、マスターで行うのが基本で、CSS で class を使うのに近いイメージです。マスター、レイアウト、スライドの関係と、それぞれで設定する内容を説明しています。 # STORES.jp (hey) に入社してちょうど1年経ったので、STORESのフロントエンド開発について書きます Source: https://howdy39.dev/ja/blog/2019-10-01-note-stores-frontend-development STORES.jp(hey)に入社してちょうど1年経ったので、2019年10月時点の、STORES のフロントエンド開発について書きました。入社した当時は3名だったチームが9名になり、1年で作ったもの、開発の進め方、言語・ライブラリ、テスト、UI の実装、エラー監視、ドキュメントの作成、社内勉強会を紹介しています。 # GitHub, GAS, Google Data Studioを活用した週替わり運用・カイゼン担当の仕組み Source: https://howdy39.dev/ja/blog/2019-11-17-qiita-weekly-kaizen-rotation STORES のフロントエンドチームで、週替わりで運用・カイゼンの担当者を割り当てている仕組みを紹介しました。担当になった人は、日々の不具合の調査や対応と、手が回りにくい技術的負債の返済などを行います。チケットの管理には GitHub のプロジェクトを使い、カンバンの列は8つに分類し、進捗は GAS、スプレッドシート、Data Studio で自動でグラフにしています。 # Nuxt.js、Google Apps Script、スプレッドシート(DB)を組み合わせて検索アプリケーションを作ってみた Source: https://howdy39.dev/ja/blog/2019-12-23-qiita-nuxt-gas-search Nuxt.js(SPA モード)で作った検索アプリを、GAS のウェブアプリとして公開する方法を書きました。データはスプレッドシートに置いて、画面は Google Sites に埋め込んでいます。GAS は HTML と JS をそのままホストできないので、ビルド結果の JS を html ファイルに変換して include で読み込む仕組みを、スクリプトで自動化しました。clasp でのデプロイや、SPA のルーティングを index.vue にまとめる設定も載せています。 # 2019年の振り返り Source: https://howdy39.dev/ja/blog/2019-12-31-note-2019-review 2019年を振り返りました。仕事、副業、技術書の執筆、LT、Qiita、OSS、英語、買い物、投資に分けて、総括も書いています。仕事は昨年に引き続き STORES で、フロントエンドの記事をきっかけに、社内で記事を書く動きが生まれ、STORES のアドベントカレンダーにつながったことなどに触れています。 # フロントエンドエンジニアからコーポレートエンジニアにジョブチェンジします Source: https://howdy39.dev/ja/blog/2020-03-31-note-job-change-to-corporate-engineer 2020年4月1日から、フロントエンドエンジニアから、コーポレートエンジニア(開発寄り)にジョブチェンジすることになり、その思いを記録として書きました。所属は STORES.jp のままで、持株会社の hey に異動します。フロントエンドチームの中で自分の役割が減ったことと、もともと社内システムをずっと作っていたことが理由で、いま社内システムを作ったら、以前とは違うのではないか、とも考えています。 # heyの社内ITを支えるコーポレートエンジニアを探しています! Source: https://howdy39.dev/ja/blog/2020-07-03-note-hey-corporate-engineer-hiring-2020 hey の社内 IT を支えるコーポレートエンジニアを1名増員することにしたので、4月の異動からやってきたことと、どんな人に来てほしいかを書きました。2Q(4〜6月)は立て直しのフェーズで、タスク管理、ワークフローの整備、セキュリティの改善、ドキュメンテーションに取り組み、3Q(7月)からは攻めのフェーズです。内定承諾をもらえたため、募集は閉じています。 # heyの社内ITを支えるITサポートを探しています! Source: https://howdy39.dev/ja/blog/2020-07-17-note-hey-it-support-hiring hey の社内 IT を支える IT サポートを募集するにあたって、その背景と、どんな人に来てほしいかを書きました。人が辞めて補充しているわけではなく、従業員数の増加に対して、IT の人員が足りていなかったのを改善しています。守るフェーズから攻めるフェーズに移るので、ヘルプデスクというより、EX(Employee Experience)の改善をお願いしたいポジションです。 # 情シスのマネージャーにジョブチェンジしてソフトウェアエンジニアのもつ良い文化をチームに取り入れている話 Source: https://howdy39.dev/ja/blog/2020-12-23-note-it-manager-software-engineering-culture hey のアドベントカレンダー2020の記事として、4月に社内異動で情シスになり、7月にマネージャーになってからの半年で、ソフトウェアエンジニアの良い文化を、チームに取り入れた話を書きました。心理的安全性を上げること(1on1 とチームビルディング)、評価のフィードバックをアジャイルに行うこと、ペア作業・モブ作業の導入、マネージャーにしかできないことを優先することなどを紹介しています。 # 2020年振り返り Source: https://howdy39.dev/ja/blog/2020-12-31-note-2020-review 2020年の振り返りですが、中身は、13年間続けたソフトウェアエンジニアの仕事の振り返りになっています。SIer 時代、G Suite 時代(フリーランス)、GCP 時代(トップゲート)、フロントエンド時代(STORES.jp)の4つに分けて振り返り、2020年にコーポレートエンジニアにジョブチェンジしたことと、総括も書いています。 # heyのレビュー会のオンライン配信を改善していったらTV撮影みたいになった話 Source: https://howdy39.dev/ja/blog/2021-02-08-note-hey-review-meeting-online-streaming hey の全社会(レビュー会)のオンライン配信を、少しずつ改善していったら、TV 撮影のようになった経緯を書きました。Google Meet と配信への移行、Slack のスレッドを一緒に見られるようにしたこと、社内に簡易スタジオを作ったこと、機材の購入、前日からの準備と当日の様子、見ていた人の反響を、順に説明しています。 # heyでコーポレートエンジニアの追加募集をはじめました! Source: https://howdy39.dev/ja/blog/2021-02-15-note-hey-corporate-engineer-hiring-2021 hey で、コーポレートエンジニアを1名増員することにしたので、IT チームのことと、どんな人に来てほしいかを書きました。従業員数と IT チームのメンバーの推移、IT チームの特徴、求める技術力とオープンな活動、やってほしいこと、共通で欲しいスキル、どういう人が向いているかを説明しています。新しい人が決まり、募集は閉じています。 # なぜ情シスがすべてのSaaSの管理をするとうまくいかないのか? Source: https://howdy39.dev/ja/blog/2021-05-31-note-why-corporate-it-should-not-manage-all-saas 情シスがすべての SaaS の管理をすると、なぜうまくいかないのか、について、私なりの考えを書きました。理由は4つで、業務のスピードが落ちること、セキュリティリスクが上がること、評価が難しくなること、管理コストが大きくなることです。そのうえで、強い組織と弱い組織の違いと、では SaaS をどう管理すればいいのかも書いています。 # GASからSlackIDではなくメールアドレスを使ってメンションを送る方法 Source: https://howdy39.dev/ja/blog/2021-07-14-zenn-gas-slack-mention-by-email GAS から Slack でメンション付きのメッセージを送るとき、Slack のユーザー ID と Incoming Webhooks を使うやり方をよく見かけますが、最近は、Slack のワークフロービルダー(Webhook)を使っています。Google フォームの回答者に、メールアドレスから Slack でメッセージを送る例で、Webhook の作り方、変数のデータタイプを Slack ユーザーのメールアドレスにするポイント、GAS のコードを解説しました。 # リマインドする者される者 Source: https://howdy39.dev/ja/blog/2021-08-02-note-reminders リマインドされる側だった人が、他の人にリマインドする側になっているのを見かけて、思ったことを書きました。リマインドは、完了を100%信用できていない、という気持ちから生まれ、される側は、する側の頭の中のリソースを使っていることを、忘れてはいけないと考えています。される者がする者になったときは、仕事のレベルが上がっているタイミングだと思います。 # ソフトウェアエンジニアがコーポレートエンジニアになると異世界転生が始まるのか Source: https://howdy39.dev/ja/blog/2021-08-16-note-software-engineer-to-corporate-engineer ソフトウェアエンジニアがコーポレートエンジニアになると、異世界転生が始まる、というツイートについて、実際に社内異動で情シスになった立場から、なぜそう思うのかを書きました。「コードが書ける」には段階があり、基礎的なロジック、API、Git と GitHub、プロダクト開発の言語、インフラの構築までを、全部できると、作りたいシステムやツールを100%実現できます。 # 野良ネコ用レンズ探しの旅 FE 85mm F1.8 SEL85F18 Source: https://howdy39.dev/ja/blog/2021-08-22-note-stray-cat-lens-sel85f18 α7C のキットレンズで野良猫を撮っていましたが、ぴったりのレンズを探して、GooPass で借りた単焦点の FE 85mm F1.8(SEL85F18)で撮った感想を書きました。総評は「めちゃくちゃよかった!」で、明るさとボケ感が好みでした。85mm は、逃げられない距離で撮れるちょうどいい画角ですが、もっと遠くの子を撮るなら、ズームレンズが必要そうです。後半は、撮った写真を載せています。 # Googleスライドを使ったビンゴカードの作り方 Source: https://howdy39.dev/ja/blog/2021-12-06-zenn-google-slides-bingo-card 会社のリモートビンゴで、数字の代わりに Slack の絵文字を使うことになり、ビンゴカードを自動で生成する GAS のコードを書いたので、その作り方を解説しました。ただ解説するだけでなく、こういうツールを GAS で作るときに何を考えているのかを、脳内を可視化する形で書いています。API を使うか GAS を使うかの選び方から、設計、スライドの生成までを説明しています。 # 2021年振り返り Source: https://howdy39.dev/ja/blog/2021-12-31-note-2021-review 2021年を振り返りました。今年やったこととして、チームを2つに分けたことと、社内の IT 環境をいろいろ改善したことを書き、来年やりたいことにも触れています。2020年の振り返りに書いた、ソフトウェアエンジニアに戻ることはない、という気持ちは今も同じで、最近は、情シスの領域に限らず、コーポレート IT のマネージャー兼なんでも屋のような仕事をしています。 # 情シスがDeveloper eXperienceを考えた結果、エンジニア貸与PCをいつでも交換できるようにしました Source: https://howdy39.dev/ja/blog/2022-03-07-note-engineer-pc-anytime-replacement hey のエンジニアに貸与している PC を、いつでも交換できる制度を作ったので、その意思決定をした理由を書きました。もともとは3年で交換でしたが、3年に大きな意味はなく、開発 PC の交換を深く考えていなかっただけでした。いまは、エンジニアだけでなく、デザイナーやプロダクトマネージャーなど、開発に関わる職種が、同じスペックの PC を、いつでも交換できます。 # GoogleフォームとGASを使って利便性高くセキュアな共有ドライブ運用を作る Source: https://howdy39.dev/ja/blog/2023-01-01-zenn-secure-shared-drive-operation Google フォームと GAS を使って、利便性が高く、セキュアな共有ドライブの運用を作る方法を解説しました。マイドライブで外部共有ができると、やりたい放題になり、ファイルのオーナーが退職したときの扱いにも困るため、組織のファイルは共有ドライブに置きたいのですが、共有ドライブにも癖があります。その解決として、作りたいものの全体図、OU の設定、コードを説明しています。 # DocsBot AI を使ってみた Source: https://howdy39.dev/ja/blog/2023-03-14-zenn-docsbot-ai-trial 任意のドキュメントを読み込んで検索できる SaaS の、DocsBot AI(裏側は ChatGPT)を、無料プランで試した個人用メモです。アカウント登録、Bot の作成、Zenn の記事を .txt にして Source に追加、チャットして試すまでの流れと、日本語での挙動が少し怪しいことなどの所感を書いています。 # STORES PX Advent Calendar 2023 Spring を開催します! #STORESアドカレ Source: https://howdy39.dev/ja/blog/2023-04-03-note-stores-px-advent-calendar-spring STORES の PX 部門(People eXperience)で、4月の平日を使って、「PX Advent Calendar 2023 Spring」を開催するお知らせと、記事の一覧を書きました。PX には、採用、労務、カルチャー、IT、広報の5つのチームがあり、そこで働く人たちの仕事を知ってもらうことが、開催のきっかけです。記事へのリンクは随時更新しています。 # 社名変更に伴うGoogle Workspaceアカウントの引越し手順を解説します Source: https://howdy39.dev/ja/blog/2023-04-03-stores-product-blog-google-workspace-account-migration-rename 社名変更(ヘイ株式会社から STORES 株式会社)に伴う、Google Workspace のアカウントの引越し手順を解説しました。ドメインエイリアスの追加で済ませず、アカウントを引越しにした理由と、全体像、タイムラインを説明したうえで、アカウントの発行、Google グループとカレンダーの引越しの手順を、スクリプトの Tips とあわせて紹介しています。STORES PX Advent Calendar 2023 Spring の1日目の記事です。 # Google Apps Scriptの社内研修をやりました! 〜研修の進め方 & GAS初心者に何を教えたのか〜 Source: https://howdy39.dev/ja/blog/2023-04-14-note-gas-internal-training 2022年の11月〜12月に、社内向けに GAS 研修を行ったので、研修の進め方と、GAS の初心者に何を教えたのかを書きました。GAS でやりたいことの多くは、フォーム送信をきっかけに動かす、スプレッドシートを読み書きする、Gmail の検索・送信をする、の3パターンに定型化できると考え、これをベースにしています。資料作りと当日の進行は Miro を使い、参加希望は Slack の絵文字で集めました。 # ChatGPTを使った社内ドキュメントを読み込んで回答できるアシスタントBotを作りました! Source: https://howdy39.dev/ja/blog/2023-04-24-note-chatgpt-internal-assistant-bot 社内向けに、ChatGPT を使ったアシスタント Bot(Slack Bot)を開発してリリースしたので、その紹介を書きました。社内ドキュメントツールの esa の、help 階層の記事の内容に回答する Bot で、フィードバックを行える機能もあります。細かい調整の話と、作るまでの長い道のりも書いています。ChatGPT は API で利用していて、入れているのは、社内の誰でも見てよい情報だけです。 # GASを使ってドメイン内のすべてのGoogleグループ設定を出力する Source: https://howdy39.dev/ja/blog/2023-04-30-zenn-gas-export-google-groups-settings GAS で、ドメイン内のすべての Google グループの設定を、スプレッドシートに出力するコードを解説しました。AdminDirectory と AdminGroupsSettings のサービスを使います。実行ユーザーからドメインを取る方法など、実装時のポイントも書いているので、グループの設定を出力しない人も、GAS の書き方の参考になるはずです。 # 新しいSlackワークフローを使った簡易チケット管理システムの作り方 Source: https://howdy39.dev/ja/blog/2023-08-17-zenn-slack-workflow-simple-ticketing 新しい Slack ワークフローを使った、簡易チケット管理システムの作り方を解説しました。依頼のフォームを Slack ワークフローで作り、依頼とチケットをスプレッドシートに書き込みます。必須なのはこの2つで、通知を GAS と Slack ワークフローで、可視化を Looker Studio で行う、というオプションも紹介しています。 # 事業スピードを落とさない攻めの情シス。400人のアカウント引越しを叶え今、目指すこと Source: https://howdy39.dev/ja/blog/2023-08-30-stores-note-interview-400-account-migration STORES note に、インタビューを掲載していただきました。社名変更に伴う、およそ400人のアカウントの引越しと、全社会(レビュー会)の配信対応を中心に、これまでのキャリアと、情シスとして目指していることを話しています。SIer からフロントエンドエンジニア、そして情シスへの経緯、「マイナスをゼロにする」仕事、事業に寄り添い、加速させる情シスについて紹介されています。 # API ロールと API クライアントを使った Jamf Pro API の使い方入門 Source: https://howdy39.dev/ja/blog/2023-09-03-zenn-jamf-pro-api-roles-clients 2023年8月に Jamf Pro 10.49.0 で実装された、API ロールと API クライアントを使って、Jamf Pro の API を使う方法を、入門として解説しました。これまでは、ユーザーを作って Basic 認証で Bearer トークンを取得していたため、生のパスワードを送る形でしたが、権限を絞ったアクセストークンを簡単に作れるようになりました。GAS のコード例で、旧方式との違いを示しています。 # Google Apps Script でスプレッドシードの超シンプルなアドオンを作る Source: https://howdy39.dev/ja/blog/2023-10-29-zenn-gas-simple-spreadsheet-addon GAS でスプレッドシートのアドオンを使っている人をあまり見かけないので、作り方の第一弾として、超シンプルなアドオンを作る手順を解説しました。サイドバーにアドオンの画面を表示して、入力した文字列を、選択しているセルに入力します。アドオンのインストールの仕組みや、サイドバーの HTML と GAS の連携も説明しています。 # Google Apps Script で作成したアドオンをドメイン内ユーザーに配布する Source: https://howdy39.dev/ja/blog/2023-11-05-zenn-gas-addon-domain-distribution GAS で作ったアドオンを、ドメイン内のユーザーに配布する手順を解説しました。一般公開のアドオンとほぼ同じで、Google Workspace Marketplace SDK を使います。GAS と Google Cloud プロジェクトの紐づけ、OAuth 同意画面、SDK の設定とインストールまでを説明しています。特権ユーザーで作業しないと強制配布はできず、手動でのインストールになる点も書いています。 # 新しい Slack ワークフローをつかって Google Meet の URL を発行する Source: https://howdy39.dev/ja/blog/2023-11-08-zenn-slack-workflow-google-meet-url 新しい Slack ワークフローの Google Meet のステップを使って、Slack から Meet の URL を発行して、チャンネルに投稿する方法を解説しました。以前は Meet の API がなく、Google カレンダーに予定を作る回避策とコードが必要でしたが、ノーコードで「/meet」のようなコマンドを作れます。有料プランが前提で、Private チャンネルには投稿できない、といった制約も書いています。 # esa 記事をスマートチップで補完する Google Docs アドオンの作り方 Source: https://howdy39.dev/ja/blog/2023-11-24-zenn-esa-smart-chip-docs-addon Google ドキュメントのスマートチップを、Google Workspace 以外のものにも使えるようにする、GAS のアドオンの作り方を解説しました。例として、ドキュメントサービスの esa の記事を、スマートチップに変換するアドオンを作っています。リンクを貼って TAB キーで変換する方法と、既存のリンクをチップにする方法があり、キャッシュを使った処理の流れも説明しています。 # STORES でコーポレートエンジニアを絶賛募集中です! Source: https://howdy39.dev/ja/blog/2023-12-04-note-stores-corporate-engineer-hiring STORES でコーポレートエンジニアを募集するにあたって、どのような人に来てほしいか、言い換えると、私が働くうえで大事にしていることを書きました。自分のチームと「合う」人、世の中を良くしたい人、私を暇にしてくれる人、STORES というサービスが好きな人、の4つを挙げています。募集は終了し、無事に採用できました。 # 新しいSlackワークフローを使って絵文字リアクションした人を自動でGoogleカレンダーの予定に招待 Source: https://howdy39.dev/ja/blog/2023-12-10-zenn-slack-workflow-emoji-calendar-invite 新しい Slack ワークフローを使って、絵文字でリアクションした人を、Google カレンダーの予定に自動で招待する方法を解説しました。イベントに対応した Slack の絵文字を作り、リアクションをきっかけに、ワークフローで予定の参加者に登録します。コードを書かなくても作れるので、社内イベントなどで使えます。 # 情シスはSaaSのアカウント管理をどうおこなうのがいいのか。一例としてAdminaのロール機能を使ったアカウント管理運用フローを共有します Source: https://howdy39.dev/ja/blog/2023-12-28-note-admina-role-account-management Admina にロール機能がリリースされたのを機に、SaaS のアカウント管理の理想と、STORES で実際に回している、Admina のロール機能を使った運用フローを書きました。ロール機能が必要だった理由、Admina を使う前提、SaaS の接続方法、インテグレーション方式と CSV アップロード方式での棚卸しの手順、アカウントの即時削除までを共有しています。 # 2023年振り返り Source: https://howdy39.dev/ja/blog/2023-12-31-note-2023-review 2023年を、仕事面を中心に振り返りました。共有ドライブと Google グループの作成の自動化、Google ドキュメントのスマートチップのアドオン、ChatGPT を使った RAG の開発、Admina の導入、新しい Slack ワークフローを使った開発、gas-clasp-starter の更新、GAS での登壇、PX アドベントカレンダーのプロジェクトオーナーなどを書いています。 # 行動変容をともなう劇的な成長がある、という話 Source: https://howdy39.dev/ja/blog/2024-01-08-note-behavior-change-growth 行動変容をともなう、劇的な成長がある、という話を書きました。成長には、知識や経験による緩やかなものと、行動変容をともなう、段階的で劇的なものがあります。2016年2月に、20代の終わりで成長を実感できなくなっていることに気づき、転職を決めました。そのあとの11か月で、Qiita に20本の記事を書きました。7年間の普通の学びより、この1年の成長のほうが大きかったです。行動変容ステージモデルも使って、小さな行動変容の積み重ねについて書いています。 # 1Passwordのチームレポートの日付をGASのカスタム関数でなおす Source: https://howdy39.dev/ja/blog/2024-01-11-zenn-1password-report-date-gas 1Password のチームレポートに出る、前回のログイン日時は、「31 Dec 2023 06:12」のような形式で、スプレッドシートの標準の機能では、日付に変換できません。そこで、GAS のカスタム関数を使いました。コンテナバインドスクリプトに、日付の文字列を new Date に渡すだけの関数を作ります。最初から、日付で出力してほしい、とも書いています。 # 解釈力をあげると見えている世界が変わってくるよ、という話 Source: https://howdy39.dev/ja/blog/2024-01-14-note-interpretation-skill 解釈力を上げると、見えている世界が変わってくる、という話を書きました。2023年に Slack で使った「すみません」は42回、「ありがとう」は385回で、謝罪と感謝の比率は、約1対18でした。ドキュメントの不備を指摘されたら、「すみません」ではなく、「気づきをありがとうございます」と返して、直した内容を添えます。そうすると、指摘した人も、次も言いやすくなります。起きた事実は変わりませんが、解釈を変えると、世界が少しずつ変わってきます。 # GAS からAdmina API を使って SaaS 利用状況を可視化する Looker Studio を作ってみた Source: https://howdy39.dev/ja/blog/2024-02-04-zenn-admina-api-looker-studio GAS から Admina の API を呼んで、SaaS の利用状況を、Looker Studio で見られるようにしました。GAS で Admina の2つのエンドポイントを順に呼び、スプレッドシートに書き出して、Looker Studio で可視化します。メールアドレスで検索して、その人の利用サービスを見る、退職ステータスで絞って、アカウントの削除漏れを見つける、といった使い方ができます。GAS は、TypeScript と clasp で書いていて、実行には、30秒から3分ほどかかります。 # 安否確認サービスをコーポレートエンジニアが導入するとどのような運用設計をするのか Source: https://howdy39.dev/ja/blog/2024-02-21-stores-product-blog-safety-confirmation-service-operation-design STORES で導入した、トヨクモの安否確認サービス2について、コーポレートエンジニアが、セキュリティや API を考慮しながら導入すると、どのような運用設計をするのかを書きました。通知の運用設計、アカウントの登録・削除の運用設計(API での自動化と、アカウント発行に使っている GAS のコード)、ロールの運用設計、データセンターの場所と SLA の確認までを説明しています。 # Dify API と GASのカスタム関数を組み合わせてスプレッドシートからLLMを利用する Source: https://howdy39.dev/ja/blog/2024-07-14-zenn-dify-gas-custom-function Dify の API と GAS のカスタム関数を組み合わせて、スプレッドシートから LLM を使う方法を書きました。例として、画像の URL が犬かどうかを判定します。Dify で、GPT-4o に画像を解析させて、TRUE か FALSE を返すワークフローを作り、その API を、GAS のカスタム関数から呼び出します。OpenAI の API キーを、先に発行して、Dify に設定しておく必要があります。プロンプトは、英語のほうが、ログが読みやすくなります。 # Slackのレガシーワークフローの一覧をスクリプトで抽出して引越しをスムーズに進める Source: https://howdy39.dev/ja/blog/2024-07-22-zenn-slack-legacy-workflows Slack のレガシーワークフローは、2024年9月26日に動作しなくなる予定でした。管理画面には、全ワークフローの一覧が出ますが、エクスポートの機能がないので、引っ越しの準備が大変です。そこで、Chrome のデベロッパーツールのコンソールで、一覧をタブ区切りでコピーするスクリプトを書きました。貼り付け先は、スプレッドシートです。1ページ10件のページ送りがあるので、ページごとに繰り返します。Slack の管理者権限が必要です。 # 最先端のITプロダクトが、多様なお商売を叶えるサービスづくりを支える。STORES のコーポレートエンジニアの仕事 Source: https://howdy39.dev/ja/blog/2024-12-10-stores-note-interview-corporate-engineer-work STORES note に、コーポレートエンジニアの仕事についてのインタビューを掲載していただきました。全社員が使う SaaS の管理と改善、デバイスやネットワークの整備、そして社内 IT での AI 活用の推進といった、IT 本部の仕事を話しています。IT 本部が自らテストケースになって、社内に業務改善の方法を広げていくことも紹介されています。 # レジリエンスの高い情シス組織を作ろうとしている話 Source: https://howdy39.dev/ja/blog/2024-12-24-note-resilient-it-team 「corp-engr 情シス Slack」のアドベントカレンダー24日目の記事です。情シス組織のレジリエンスとは、変化に直面したときに、素早く適応して、本来の機能を取り戻し、さらに強い組織へ進化する力だと考えています。オフィスのファシリティ、AI の進化への対応、システム障害への備え、人のリソースとドキュメント化、守りの IT から攻めの IT への変化、という5つの観点で書きました。難しいテーマですが、だからこそ、4年半、飽きずに取り組めています。 # 2024年振り返り Source: https://howdy39.dev/ja/blog/2024-12-30-note-2024-review 2024年を振り返りました。能登半島地震をきっかけに、安否確認サービスを高機能なものに切り替えました。登壇は、Admina の導入についての対談、ITmedia デジタル戦略EXPO での SaaS 管理の基調講演、うちの情シス Connect + i、Findy の LT、CorpEn Night #1 などです。7月からは、シニアマネージャーになりました。2021年のブログから続けてきた発信が、メディアへの登壇につながったと思っています。 # Google WorkspaceのAIアドオンが廃止されて基本プランに組み込まれたので変更点を解説します Source: https://howdy39.dev/ja/blog/2025-01-16-zenn-google-workspace-ai-addon Google Workspace の AI 機能の課金が変わったので、IT 管理者向けに、変更点を解説しました。有料アドオンの「Gemini for Google Workspace」が廃止されて、AI の機能が、Standard プランと Enterprise プランの基本プランに組み込まれます。それにあわせて、各プランの料金が改定されて、Business Starter は 680円から 800円になります。2025年3月17日から適用されます。ユーザー数10以下の組織は、2026年1月まで据え置きです。 # Notion は単なるドキュメンテーションツールやプロジェクト/タスク管理ツールではなく業務の中心となるツールになっていきそう Source: https://howdy39.dev/ja/blog/2025-02-17-note-notion-center-of-work Notion を業務で1か月使ってみて、考えたことを書きました。Notion は、ドキュメントツールやプロジェクト・タスク管理ツールにとどまらず、業務の中心になるツールで、業務プロセスを作るツールでもあると思います。導入前は、Slack、Slack ワークフロー、esa、Asana の4つで業務を回していて、ツール間の移動が多い状態でした。フォームやオートメーションでヘルプデスクの業務を移せそうなことや、コメントで直接やり取りできることが、想定外でした。 # My Notion Way を考えてみた Source: https://howdy39.dev/ja/blog/2025-03-11-note-my-notion-way Notion は、レゴのように自由に作れる分、使い方が難しいツールです。そこで、私の Notion の使い方を書きました。肝は、データベースです。ページは、原則、データベースに入れます。データベースの設計は、1つから始めて、必要になったら分けます。フォルダの考え方は捨てて、サイドバーは非表示にし、検索(cmd / ctrl + K)を使います。ページ名は、日付と定例の名前を組み合わせるなど、ユニークにします。デフォルトの設定は、できるだけ変えません。 # Notion の オートーメーション を使ってSlack 通知のメッセージをカスタマイズする方法 Source: https://howdy39.dev/ja/blog/2025-03-18-note-notion-automation-slack Notion のページを作ったときに Slack へ通知するとき、ボタンのオートメーションから直接通知すると、「ボタンが押された」という情報しか送れません。Zapier などの外部ツールを使わずに、ページ名などを含めて通知する方法を書きました。ボタンのオートメーションで、「通知メッセージ」というプロパティを now() 関数などで編集し、そのプロパティの編集をきっかけにする、データベースのオートメーションで Slack に通知します。 # ビジネス環境における Notion の「エクスポート無効」設計ガイドライン Source: https://howdy39.dev/ja/blog/2025-03-31-note-notion-export-disable-guideline Notion のエクスポート機能は便利ですが、データを持ち出されるリスクがあります。エクスポートを無効にできるのはエンタープライズプランだけで、セキュリティとバックアップの両立が課題になります。ワークスペースとチームスペースの設定を4つのパターンに分けて比べました。私のおすすめは、ワークスペースは無効、チームスペースは有効にして上書きし、チームスペースの作成をワークスペースオーナーに限る、パターン C です。管理者用のバックアップのチームスペースも用意します。 # Tech The Toaster のすべての書籍を無料にしました & 同人誌活動の振り返り Source: https://howdy39.dev/ja/blog/2025-05-11-note-tech-the-toaster 同人誌活動の「Tech The Toaster」の、すべての書籍を無料にしました。あわせて、活動を振り返っています。物理本が1,650冊、PDF が730冊で、売上は約200万円でした。本の製本や出版、店舗運営の実務、人脈など、得たものは多かったです。ソフトウェアエンジニアから情シスに転身して、執筆の意欲が下がったので、同人誌の活動は終わりにします。これからは、登壇に軸足を移します。 # SaaS の引っ越しに伴うリダイレクト Chrome 拡張機能の実装方法 Source: https://howdy39.dev/ja/blog/2025-05-21-stores-product-blog-saas-migration-redirect-chrome-extension SaaS を引っ越したときに、旧 SaaS の URL から、移行先の Notion のページに、自動でリダイレクトする Chrome 拡張機能を実装したので、その解説を書きました。基本的にリダイレクトは不要と考えていますが、ナレッジとして使っていた SaaS は、業務への影響が大きいため、簡易的なリダイレクトとして、拡張機能を提供しました。仕組み、ソースコード、社内向けの配布、実装時のポイントを説明しています。 # Notion のページ内で人を表す際に「絵文字」「ページ」「メンション」のどれを用いるのがよいのかを考える Source: https://howdy39.dev/ja/blog/2025-05-30-note-notion-represent-people Notion のページの中で人を表すとき、「絵文字」「ページ」「メンション」のどれを使うのがよいか、考えました。絵文字は、1ワークスペースで500個までという制限があり、Notion AI にも読み取れません。メンションは、アイコンが出ませんし、使うと通知が飛びます。おすすめは、自己紹介のデータベースを用意して、一人ひとりのページを作る方法です。人にも AI にも分かりやすく、アイコンの数にも制限がありません。通知が必要なときだけ、メンションを使います。 # Google Workspace 版 NotebookLM を安全に外部ユーザーと共有する方法 Source: https://howdy39.dev/ja/blog/2025-06-19-note-notebooklm-external-sharing Google Workspace 版の NotebookLM を、組織の外のパートナーと安全に共有する方法を書きました。Workspace 版では、セキュリティの理由で「一般公開」が無効になっているので、組織外のアカウントには共有できません。そこで、Google グループを経由します。外部パートナー用のグループを作って、NotebookLM の共有先にそのグループを指定し、グループの設定で組織外メンバーを許可します。なお、2025年10月14日に、Google 側の仕様変更で、この手順は使えなくなりました。 # Gemini と Google Vids を組み合わせて手順解説用の動画ファイルを作成する Source: https://howdy39.dev/ja/blog/2025-06-24-note-gemini-google-vids-howto-video 手順を説明する動画に、字幕を付けるのは手間がかかって、現実的ではありませんでした。Gemini アプリに動画のアップロード機能が付いたことで、状況が変わるかもしれないと思い、試しました。画面を録画し、Gemini で字幕ファイル(SRT)を作り、Google Vids でクローズドキャプションを付けます。Vids は字幕付きで書き出せないので、字幕付きの再生を録画するか、ffmpeg で動画に字幕を埋め込みます。 # スプレッドシートのAI関数が英語にしか対応してない?そんな時でもAI関数を使うテクニック Source: https://howdy39.dev/ja/blog/2025-06-30-note-sheets-ai-function-japanese Google スプレッドシートの AI 関数は、いまは英語にしか対応していません。日本語を入れると「The language entered is not supported at this time」というエラーになります。そこで、GOOGLETRANSLATE 関数と組み合わせて使う方法を書きました。日本語の問い合わせ内容を英語に翻訳し、英語のプロンプトで AI 関数を実行し、返ってきた High / Medium / Low を IF 関数で高 / 中 / 低に直します。できないと諦めずに、工夫して使う、という話です。 # GoogleフォームのAI作成が英語にしか対応してない?そんな時でも日本語フォームをAIで作るテクニック Source: https://howdy39.dev/ja/blog/2025-07-28-note-google-forms-ai-japanese Google フォームの AI 作成機能は、いまは英語にしか対応していなくて、日本語で指示すると「この言語は対応していません」というエラーになります。そんなときでも、日本語のフォームを AI で作るテクニックを書きました。「〇〇のフォームを日本語で作ってください」という指示を、英語に機械翻訳して入力します。複雑なフォームは、先に Gemini などで要件をはっきりさせておくのがおすすめです。 # Gemini Canvas でも大体の GAS はかけるよーという話 Source: https://howdy39.dev/ja/blog/2025-08-08-zenn-gemini-canvas-gas Gemini Canvas を使えば、だいたいの GAS は書けるよ、という話です。Apple Business Manager の API からデバイス情報を取って、スプレッドシートに書き込み、Notion のデータベースにも同期する GAS を、Gemini Canvas で作りました。コンテナバインドスクリプトに直す、トークンをスクリプトプロパティで管理する、アクセストークンの取得や Notion への登録を足す、と何度も直して完成させました。AI が書いたコードは、そのままでは動かないので、手で直す前提です。 # 検索時の条件がURLに残るプロダクトが好きなんだよという話 Source: https://howdy39.dev/ja/blog/2025-09-30-note-search-conditions-in-url 検索の条件が URL に残るプロダクトが好き、という話を書きました。「?q=hoge」や「?q=hoge&sort=name.desc」のように条件が URL に残れば、ブックマークや手順書に条件付きの検索を保存できますし、Chrome の検索ショートカットや Raycast のようなランチャーからも使えます。Admina のデバイスのプランを試していて気づきました。機能比較表には載らない、手触りの良さを作る細かいこだわりだと思っています。 # AIにより高機能化・高価格化するSaaSが増えている中、社内ITにもカスタマーサクセスが必要になってきているのではないだろうか? Source: https://howdy39.dev/ja/blog/2025-10-08-note-it-customer-success AI で SaaS が高機能化・高価格化していく中で、社内 IT にもカスタマーサクセスが必要になってきているのではないか、という話を書きました。機能が増えても、既存の機能さえ使いこなせていないのに、コストだけが積み上がってしまいます。社内ブログで自社の業務に合った使い方を発信する、新機能の勉強会を開く、Slack チャンネルで社内コミュニティを運営する、といった、導入後の活用を支援する活動を提案しています。 # 新しいことで迷ったら「やりましょう」ベースで Source: https://howdy39.dev/ja/blog/2025-10-10-note-lets-do-it 新しいことで迷ったときは、「やりましょう」を基本にしています。2010年頃に孫正義さんがこの言葉を使っていたことや、2012年頃にソフトバンクグループのシステム開発を支援して、その文化に触れたことがきっかけです。マネージャーになってからは、チームでも使っています。ゴールに届くなら手段は任せ、チームの振り返りを必ず行います。既にやっていることで迷ったら、「やめましょう」です。 # 社用メールアドレスから見る合理性と多様性 Source: https://howdy39.dev/ja/blog/2025-11-25-note-company-email-address 社用メールアドレスの @ より前の部分(ローカルパート)は、入社時のヒアリングで、自由に選べるようにしています。ソフトウェアエンジニアには、名前より ID を大事にしている人がいますし、メールアドレスは変えにくいサービスが多いので、結婚で姓が変わる場合などを考えると、ID のほうが変わりにくいこともあります。一番大事なのは、その選択に、あなたの意思が込められているか、だと思っています。 # SaaSの不要アカウント棚卸しを効果的に行う4つのポイント Source: https://howdy39.dev/ja/blog/2025-12-17-note-saas-unused-account-review SaaS の不要アカウントの棚卸しを、効果的に進める4つのポイントを書きました。退職者のアカウント削除は SCIM で自動化できることが多い一方、在籍者の使っていないアカウントは、自動化が難しいです。棚卸ししやすい SaaS から先にやる、利用日時が取れてデータに依存しないなら、無回答のアカウントを削除するオプトアウト方式を使う、API とスプレッドシートで手動と自動の間を作る、SaaS 管理ツールを使う、の4つです。 # 2025年振り返り Source: https://howdy39.dev/ja/blog/2025-12-31-note-2025-review 2025年を振り返りました。この年は、Notion を中心に動いた1年でした。2024年末に STORES で Notion の全社導入が決まり、1〜3月は導入プロジェクトのオーナーとして、設計や勉強会を担当しました。パネルディスカッションやカンファレンスでの登壇、Notion Japan とのウェビナーなど、人前で話す機会を意図的に増やして、文章に比べて音声での発信が課題だと気づきました。2026年は、「伝える」ことにコミットします。 # 「とりあえず守る」は、悪じゃないと思うよ。 Source: https://howdy39.dev/ja/blog/2026-01-11-note-protect-for-now 完璧なセキュリティはないので、中途半端な対策でも、何もしないよりは良いと思っています。ただし、事業が成長したら、安い製品から高い製品へ乗り換えることを、先に考えておくことが大事です。乗り換えにかかるコストは、MDM や IdP などツールによって違い、特に IdP は統合が進むほど動かしにくくなります。乗り換えを想定した対策なら、中途半端ではなく、戦略的なステップです。 # 本当の優しさ Source: https://howdy39.dev/ja/blog/2026-01-29-note-true-kindness なーねこさんの note に、相手が喜ぶことを見誤る、という話があり、そこに触発されて書きました。情シスのヘルプデスクでは、頼られて、解決して、感謝されます。でも、問題があったときにすぐ答えを教えるのは、瞬間的な優しさで、一時の感謝にすぎないと思っています。わかりやすいドキュメントや自動化、勉強会で、相手が自分で解決できるようにすることが、本当の優しさです。 # Notion カスタムエージェントの何がすごいのかを解説するよ Source: https://howdy39.dev/ja/blog/2026-02-25-note-notion-custom-agents Notion カスタムエージェントが、2026年2月24日に正式リリースされました。コードも黒い画面もフローチャートも要らず、ブラウザと Notion だけで作れる、誰でも簡単に作ってすぐ使える最初の AI エージェントだと思っています。トリガー、手順、ツールとアクセス、モデル、高度な設定の5つの要素と、社内ヘルプデスクや日報の自動生成などの使い道を紹介しました。一方で、コストが見えにくい点は課題だと書いています。 # 誰のために仕事をしているのか Source: https://howdy39.dev/ja/blog/2026-02-26-note-who-do-you-work-for Notion の CEO の Ivan Zhao さんが、公式アカウントではなく個人のアカウントで、お客さんの SNS 投稿に返信しているのを見かけました。私自身も、Notion の方々から、不具合の投稿へのダイレクトメッセージや、機能要望への詳しい返信、ブログへの感謝のメッセージをもらっています。顧客のために仕事をしている人は、自然とこういう行動になるのだと思います。凡事徹底、自分から行く、行動に移す、という話を書きました。 # Notion カスタムエージェントを社内AIヘルプデスクとして導入して気づいた社外AIヘルプデスクサービスとの違い Source: https://howdy39.dev/ja/blog/2026-03-12-note-notion-agent-helpdesk Notion カスタムエージェントを、社内の AI ヘルプデスクとして導入しました。Intercom や Zendesk のような社外向けのヘルプデスクをイメージして作ったのですが、使ってみると、AI だけで解決できる問題が想定より多くありました。社外向けでは AI は一次フィルターですが、社内では担当者が AI に指示を出しながら一緒に解決できます。AI だけで対応しきれなくても、その後の作業はぐっと楽になります。 # YOUTRUSTさんのスカウトAI機能のリリースを見てふと思ったこと Source: https://howdy39.dev/ja/blog/2026-03-26-note-youtrust-scout-ai YOUTRUST のスカウト AI エージェントのリリースを見て、ふと思ったことを書きました。YOUTRUST は「つながり」がキャリアの可能性を広げるサービスだと思っていて、AI が代筆するスカウトでは、その価値が薄れないか気になっています。経験だけでマッチングすると、未経験でも挑戦したい人の機会も減ります。プロフィールに「チャレンジしたいこと」の欄を作り、AI を過去と未来をつなぐ翻訳者として使う案を出しました。 # SCIM?SaaS管理ツール?API叩く?アカウント削除自動化の考え方 Source: https://howdy39.dev/ja/blog/2026-04-03-note-scim-account-deletion 不要になったアカウントを、どうやって削除するかを書きました。削除方法は、SCIM で自動削除、SaaS 管理ツールで自動削除、API を自作して叩く、管理画面で操作する、の順で優先しています。ただ、Google Workspace の Drive オーナー転送のように、委譲処理が必要なケースでは、SCIM や SaaS 管理ツールだけでは足りません。私はスプレッドシートと GAS で、これらをまとめて動かしています。 # 1Password の Hosted Provisioning(SCIM) を Okta で設定してみた Source: https://howdy39.dev/ja/blog/2026-04-20-note-1password-hosted-provisioning 1Password の Hosted Provisioning(1Password がホストする SCIM)を、Okta で設定してみました。2026年4月時点で対応しているのは Okta と Entra ID で、Enterprise 限定ではなく Business プランから使えます。今回はユーザーの作成・更新・無効化の同期だけに絞り、Push Groups は見送りました。専用の SCIM グループを1つ作る設計や、displayName のマッピングが必須な点など、つまずきやすいところを書いています。 # GAS から Vertex AI Service を使った Web アプリケーション を社内限定公開で作成する Source: https://howdy39.dev/ja/blog/2026-04-29-zenn-gas-vertex-ai GAS から Vertex AI Service が使えるようになったので、社内限定公開の AI チャット画面を作ってみました。Google Cloud プロジェクトの作成から、GAS 側の設定、実装、Web アプリとしてのデプロイまでの手順を書いています。API キーの管理が要らないので、キー漏洩の心配もありません。ただ、実行ユーザーを自分にすると退職時に止まるので、本格的に運用するならサービスアカウントを使う、という注意点も書きました。 # STORES を退職します。 情シスも卒業します。 Source: https://howdy39.dev/ja/blog/2026-05-27-note-leaving-stores 2026年5月末で、7年半勤めた STORES を退職し、情シスも卒業します。フロントエンドエンジニアから情シスへ異動し、マネージャーを経て、情シス組織を立ち上げました。退職の理由は、「初めてのこと」が減って、ワクワク感がなくなってきたからです。心残りは、道半ばの案件と、自分が始めた情シス組織です。次は、情シスを支援する製品を提供する会社に移ります。 # 「人が足りません」と言われて、すぐに「増やそう」と言わなくなった話 Source: https://howdy39.dev/ja/blog/2026-06-18-note-more-headcount-ai 「人が足りません」と相談されたとき、数年前の私は、「人を増やそう」と「自動化や棚卸しで今の人数で回そう」が、感覚的に半々でした。AI が使えるようになった今は、「人を増やそう」と言う割合が減りました。安易な増員は短期的には楽でも、長期的にはメンバーのためにならないかもしれません。AI を活用するスキルは、これから20〜30年働く人に必須だと思う、という話を書きました。 # バックオフィスには「選ばれる競争」がない。だから、意識しないと体験は良くならない Source: https://howdy39.dev/ja/blog/2026-07-06-note-backoffice-experience バックオフィスには、市場での「選ばれる競争」がありません。出社方針や経費精算、PC のスペックなどを決めるのはバックオフィスで、従業員には選択肢がないので、意識しないと体験は良くなりません。体験の悪さは、シャドー IT やシャドー AI を招いて、セキュリティリスクにもなります。ツールを選ぶときに実際のユーザーを巻き込む、満足度を定期的に測る、といった改善を提案しています。 # 業務利用におけるClaudeの5時間制限を効率よく回避するテクニック Source: https://howdy39.dev/ja/blog/2026-07-09-note-claude-5h-limit 業務で Claude を使っていると、5時間制限が午後の忙しい時間帯にかかることがあります。制限をなくす話ではなく、制限にかかるタイミングを業務時間から遠ざける方法を書きました。朝7時と12時に一言だけプロンプトを送って、セッションの起点を固定します。これを Claude Code のルーチンで自動化する方法も載せています。週次の制限には先に届きやすくなる点も、注意として書きました。 # 整った環境で働き続けるのは本当に良いのかという話 Source: https://howdy39.dev/ja/blog/2026-08-05-note-comfortable-environment 予算があり、経営陣の理解があり、優秀なメンバーがそろった整った環境で働き続けるのは、本当に良いことなのでしょうか。キャリアの前半では、理想を知るために価値があると思っています。ただ、予算の獲得や経営陣の説得、限られたリソースでの優先順位づけは、整った環境だけでは身につきにくいスキルです。理想を知る経験と、整っていない環境を動かす経験の両方が必要だという話を書きました。 # Claude Code のデフォルトが自動モードになる前に、情シスが決めておきたいこと Source: https://howdy39.dev/ja/blog/2026-08-10-note-claude-code-auto-mode Claude Code の自動モードが、8月14日から Pro・Max・Team プランでデフォルトになります。これを受けて、情シスが決めておきたいことを書きました。自動モードを使うかどうかを、組織が自分で決めないといけなくなる点が、一番大きな影響だと考えています。スタンスは、デフォルトで採用する、手動で検証してから自動にする、禁止する、の3パターンに整理しました。私のおすすめは、デフォルトで採用する形です。 # 感謝をモチベーションにして働くのは悪いことなのか? Source: https://howdy39.dev/ja/blog/2026-08-13-note-gratitude-motivation 感謝をモチベーションにして働くのは、悪いことなのでしょうか。私は悪くないと思っています。ただ、感謝そのものを目的にすると、相手の反応に左右されて、反応の少ない日に仕事の意味を見失いかねません。情シスのヘルプデスクを例に、自動化やドキュメント整備で問い合わせが減るのも良い仕事の結果で、そこにも見えない感謝がある、という話を書きました。 # 大腸内視鏡検査は正直しんどかったけど、みんな受けた方がいいよという話 Source: https://howdy39.dev/ja/blog/2026-09-07-note-colonoscopy 健康診断の便潜血検査で、はじめて陽性が出ました。これをきっかけに大腸内視鏡検査を受けたので、その体験を書きました。検査前の下剤(サルプレップ)は想像以上にハードで、飲み方の工夫も載せています。検査そのものは鎮静剤のおかげでほぼ一瞬、費用は3割負担で1万円以下でした。40歳以上で受けたことがない人や、健診で引っかかった人は、受けてみることをおすすめします。 # Claude と壁打ちして、Mintlify で AI ネイティブなポートフォリオサイトを作った話 Source: https://howdy39.dev/ja/blog/2026-10-04-note-mintlify-ai-native-portfolio Mintlify で作り直した個人サイト howdy39.dev を紹介しています。Mintlify のアカウント作成から、Claude と話しながら、実作業時間 3〜4 時間ほどで作りました。llms.txt や Markdown など、AI にそのまま読んでもらえる AI ネイティブな作りが気に入っています。サイト内検索で過去の記事や登壇を探せること、Lighthouse のスコアを AI と上げたこと、GTM を入れなかったことも書いています。 # Blog Source: https://howdy39.dev/ja/blog/index 書いた記事を新しい順に並べています。 note や Zenn に書いた記事は、各サイトに移動します。
Claude と壁打ちして、Mintlify で AI ネイティブなポートフォリオサイトを作った話
note
↗
大腸内視鏡検査は正直しんどかったけど、みんな受けた方がいいよという話
note
↗
感謝をモチベーションにして働くのは悪いことなのか?
note
↗
Claude Code のデフォルトが自動モードになる前に、情シスが決めておきたいこと
note
↗
整った環境で働き続けるのは本当に良いのかという話
note
↗
業務利用におけるClaudeの5時間制限を効率よく回避するテクニック
note
↗
バックオフィスには「選ばれる競争」がない。だから、意識しないと体験は良くならない
note
↗
「人が足りません」と言われて、すぐに「増やそう」と言わなくなった話
note
↗
STORES を退職します。 情シスも卒業します。
note
↗
GAS から Vertex AI Service を使った Web アプリケーション を社内限定公開で作成する
Zenn
↗
1Password の Hosted Provisioning(SCIM) を Okta で設定してみた
note
↗
SCIM?SaaS管理ツール?API叩く?アカウント削除自動化の考え方
note
↗
YOUTRUSTさんのスカウトAI機能のリリースを見てふと思ったこと
note
↗
Notion カスタムエージェントを社内AIヘルプデスクとして導入して気づいた社外AIヘルプデスクサービスとの違い
note
↗
誰のために仕事をしているのか
note
↗
Notion カスタムエージェントの何がすごいのかを解説するよ
note
↗
本当の優しさ
note
↗
「とりあえず守る」は、悪じゃないと思うよ。
note
↗
2025年振り返り
note
↗
SaaSの不要アカウント棚卸しを効果的に行う4つのポイント
note
↗
社用メールアドレスから見る合理性と多様性
note
↗
新しいことで迷ったら「やりましょう」ベースで
note
↗
AIにより高機能化・高価格化するSaaSが増えている中、社内ITにもカスタマーサクセスが必要になってきているのではないだろうか?
note
↗
検索時の条件がURLに残るプロダクトが好きなんだよという話
note
↗
Gemini Canvas でも大体の GAS はかけるよーという話
Zenn
↗
GoogleフォームのAI作成が英語にしか対応してない?そんな時でも日本語フォームをAIで作るテクニック
note
↗
スプレッドシートのAI関数が英語にしか対応してない?そんな時でもAI関数を使うテクニック
note
↗
Gemini と Google Vids を組み合わせて手順解説用の動画ファイルを作成する
note
↗
Google Workspace 版 NotebookLM を安全に外部ユーザーと共有する方法
note
↗
Notion のページ内で人を表す際に「絵文字」「ページ」「メンション」のどれを用いるのがよいのかを考える
note
↗
SaaS の引っ越しに伴うリダイレクト Chrome 拡張機能の実装方法
STORES Product Blog
↗
Tech The Toaster のすべての書籍を無料にしました & 同人誌活動の振り返り
note
↗
ビジネス環境における Notion の「エクスポート無効」設計ガイドライン
note
↗
Notion の オートーメーション を使ってSlack 通知のメッセージをカスタマイズする方法
note
↗
My Notion Way を考えてみた
note
↗
Notion は単なるドキュメンテーションツールやプロジェクト/タスク管理ツールではなく業務の中心となるツールになっていきそう
note
↗
Google WorkspaceのAIアドオンが廃止されて基本プランに組み込まれたので変更点を解説します
Zenn
↗
2024年振り返り
note
↗
レジリエンスの高い情シス組織を作ろうとしている話
note
↗
最先端のITプロダクトが、多様なお商売を叶えるサービスづくりを支える。STORES のコーポレートエンジニアの仕事
STORES note
↗
Slackのレガシーワークフローの一覧をスクリプトで抽出して引越しをスムーズに進める
Zenn
↗
Dify API と GASのカスタム関数を組み合わせてスプレッドシートからLLMを利用する
Zenn
↗
安否確認サービスをコーポレートエンジニアが導入するとどのような運用設計をするのか
STORES Product Blog
↗
GAS からAdmina API を使って SaaS 利用状況を可視化する Looker Studio を作ってみた
Zenn
↗
解釈力をあげると見えている世界が変わってくるよ、という話
note
↗
1Passwordのチームレポートの日付をGASのカスタム関数でなおす
Zenn
↗
行動変容をともなう劇的な成長がある、という話
note
↗
2023年振り返り
note
↗
情シスはSaaSのアカウント管理をどうおこなうのがいいのか。一例としてAdminaのロール機能を使ったアカウント管理運用フローを共有します
note
↗
新しいSlackワークフローを使って絵文字リアクションした人を自動でGoogleカレンダーの予定に招待
Zenn
↗
STORES でコーポレートエンジニアを絶賛募集中です!
note
↗
esa 記事をスマートチップで補完する Google Docs アドオンの作り方
Zenn
↗
新しい Slack ワークフローをつかって Google Meet の URL を発行する
Zenn
↗
Google Apps Script で作成したアドオンをドメイン内ユーザーに配布する
Zenn
↗
Google Apps Script でスプレッドシードの超シンプルなアドオンを作る
Zenn
↗
API ロールと API クライアントを使った Jamf Pro API の使い方入門
Zenn
↗
事業スピードを落とさない攻めの情シス。400人のアカウント引越しを叶え今、目指すこと
STORES note
↗
新しいSlackワークフローを使った簡易チケット管理システムの作り方
Zenn
↗
GASを使ってドメイン内のすべてのGoogleグループ設定を出力する
Zenn
↗
ChatGPTを使った社内ドキュメントを読み込んで回答できるアシスタントBotを作りました!
note
↗
Google Apps Scriptの社内研修をやりました! 〜研修の進め方 & GAS初心者に何を教えたのか〜
note
↗
社名変更に伴うGoogle Workspaceアカウントの引越し手順を解説します
STORES Product Blog
↗
STORES PX Advent Calendar 2023 Spring を開催します! #STORESアドカレ
note
↗
DocsBot AI を使ってみた
Zenn
↗
GoogleフォームとGASを使って利便性高くセキュアな共有ドライブ運用を作る
Zenn
↗
情シスがDeveloper eXperienceを考えた結果、エンジニア貸与PCをいつでも交換できるようにしました
note
↗
2021年振り返り
note
↗
Googleスライドを使ったビンゴカードの作り方
Zenn
↗
野良ネコ用レンズ探しの旅 FE 85mm F1.8 SEL85F18
note
↗
ソフトウェアエンジニアがコーポレートエンジニアになると異世界転生が始まるのか
note
↗
リマインドする者される者
note
↗
GASからSlackIDではなくメールアドレスを使ってメンションを送る方法
Zenn
↗
なぜ情シスがすべてのSaaSの管理をするとうまくいかないのか?
note
↗
heyでコーポレートエンジニアの追加募集をはじめました!
note
↗
heyのレビュー会のオンライン配信を改善していったらTV撮影みたいになった話
note
↗
2020年振り返り
note
↗
情シスのマネージャーにジョブチェンジしてソフトウェアエンジニアのもつ良い文化をチームに取り入れている話
note
↗
heyの社内ITを支えるITサポートを探しています!
note
↗
heyの社内ITを支えるコーポレートエンジニアを探しています!
note
↗
フロントエンドエンジニアからコーポレートエンジニアにジョブチェンジします
note
↗
2019年の振り返り
note
↗
Nuxt.js、Google Apps Script、スプレッドシート(DB)を組み合わせて検索アプリケーションを作ってみた
Qiita
↗
GitHub, GAS, Google Data Studioを活用した週替わり運用・カイゼン担当の仕組み
Qiita
↗
STORES.jp (hey) に入社してちょうど1年経ったので、STORESのフロントエンド開発について書きます
note
↗
Google スライドで登壇用スライドを作る際のテクニック
Qiita
↗
#技術書典 6 にサークル参加してきたので被チェック数の傾向とか感想とかつらつら書きます
note
↗
NuxtでYouTubeプレイヤーを埋め込む
Qiita
↗
2018年の振り返り
note
↗
Nuxt.jsでユーザーエージェントを判別するプラグインの紹介
Qiita
↗
vue.jsでクリックのデフォルトイベントを止めるディレクティブを作る
Qiita
↗
Nuxtで直接アクセスを禁止にするmiddlewareを作る
Qiita
↗
マウスホバーで離れた位置になにか表示したいときの便利ワザ
Qiita
↗
Nuxt, netlify, Firebase を使ったWebサービス開発と個人開発における技術選定のポイント
Qiita
↗
NuxtMeetUp#6 にブログ枠で参加してきました
note
↗
Nuxt, ElementUI, Storybook 構成のVueプロジェクトの始め方
Qiita
↗
Step by Step で始める Vue.js の CSSトランジション
Qiita
↗
STORES.jp (hey) に入社してちょうど1ヶ月経った感想
note
↗
Chromeデベロッパーツール本の通販開始のお知らせ と 初サークル参加の感想 #技術書典 5
note
↗
Chrome デベロッパーツール本を書き始めたきっかけから入稿完了までの物語 #技術書典 5
note
↗
Chrome の Custom Object Formatters 機能を使ったオブジェクトのデバッグ
Qiita
↗
Cloud Functions with Puppeteer + Google Apps Script でスクレイピングサーバーをサクッと作る
Qiita
↗
スプレッドシートをWebAPI化するサービスの作り方
Qiita
↗
Chrome デベロッパーツールの Console を使いこなす
Qiita
↗
スプレッドシートにマクロ機能が追加されたので試してみた
Qiita
↗
Google Apps Script のデプロイを Circle CI から行う
Qiita
↗
Google Apps Script をローカル環境で快適に開発するためのテンプレートを作りました
Qiita
↗
GASにGoogleカレンダーのイベント変更検知機能が実装されたので試してみた
Qiita
↗
Google App Maker と Apps Script dashboard
Qiita
↗
GAS と Stackdriver(Logging, Error Reporting) を連携させる
Qiita
↗
Google App Maker ー AppLoader で描画前に処理を行う
Qiita
↗
Google App Maker ー Popup の使い方
Qiita
↗
Google App Maker ー Resources の使い方
Qiita
↗
Google App Maker ー Transformerを使いこなす
Qiita
↗
Google App Maker ー Calculated モデルを使ってスプレッドシートのデータを表示する
Qiita
↗
Google App Maker ー オーナーや編集者でアプリケーションを公開した場合に実行できることの違い
Qiita
↗
Google App Maker ー アプリを別のサイトに埋め込む
Qiita
↗
Google App Maker ー Roleでモデルと画面を制御する
Qiita
↗
Google App Maker ー Application 実行アカウントについて
Qiita
↗
Google App Maker ー デフォルトアクションの一覧
Qiita
↗
App Maker 2017年の個人的な総括
Qiita
↗
Google App Maker ー Drive Tables のバックアップ方法
Qiita
↗
Google App Maker ー 検索時に日本語を使えるようにする
Qiita
↗
Google App Maker ー スクリプトから開いているURLを取得する方法
Qiita
↗
Cloud Translation API を使用する際のポイント
Qiita
↗
Chrome 拡張機能 ー コンテキストメニュー(ContextType/ItemType)
Qiita
↗
Google App Maker ー PageFragmentインスタンスのハマりやすいところ
Qiita
↗
Google App Maker ー 実行時のURLパラメータについて
Qiita
↗
Google App Maker ー Query を使った検索のテクニック
Qiita
↗
Google App Maker ー Drive Tables へのデータ投入方法
Qiita
↗
Google App Maker ー 環境の違いを理解する
Qiita
↗
Google Domains と G Suiteを使って独自ドメインのメールアドレスを作成する
Qiita
↗
JsonnetをVisual Studio Codeで使う
Qiita
↗
Google Apps Scriptのコード補完を徹底解説 #gasja
Qiita
↗
Google Apps Scriptのログ設計 #gasja
Qiita
↗
Google Sheets APIでセルの値を書き込む方法
Qiita
↗
Google Sheets APIでセルの値を読み込む方法
Qiita
↗
PostmanでOAuthの設定をしてGoogle APIを実行する手順
Qiita
↗
Google Apps Scriptを使った独自メニューの作り方
Qiita
↗
GoogleスプレッドシートAPIの高速化
Qiita
↗
Google Classroomが一般公開されました
Qiita
↗
Google Video Intelligence APIのデモを触ってみた
Qiita
↗
GitHubにトピック(タグ)機能が追加されました
Qiita
↗
Qiitaをより便利にするChrome拡張機能をつくりました
Qiita
↗
Step by Stepで始めるESLint
Qiita
↗
Google Slides APIが公開されたので使ってみた
Qiita
↗
図で理解するJavaScriptのプロトタイプチェーン
Qiita
↗
Chrome拡張機能「Falcon」でWeb閲覧履歴をサクッと検索
Qiita
↗
Granim.jsでグラデーションをアニメーション表示してWebサイトをリッチにしよう
Qiita
↗
cssnextから学ぶ次世代CSS
Qiita
↗
Step by Stepで始めるPostCSS
Qiita
↗
step by stepで始めるwebpack
Qiita
↗
Googleクラウド自然言語APIを使ってみた
Qiita
↗
GoogleのWebAPI設計とWebAPI設計のベストプラクティスを比較してみる
Qiita
↗
Gmailの設定を操作するAPIが開放されました
Qiita
↗
GoogleスプレッドシートでGopherを描く with Go
Qiita
↗
Google Pickerを使ってWebサイトのUXを向上させよう
Qiita
↗
Googleスプレッドシートをプログラムから操作
Qiita
↗
step by stepで始めるKarma
Qiita
↗
フロントエンドにテストを導入
Qiita
↗
Google People APIを使ってみる
Qiita
↗
GoogleAPIを高速化しよう
Qiita
↗
Google APIのBatch Requestの仕組みを理解する
Qiita
↗
# Books Source: https://howdy39.dev/ja/books 技術同人誌(サークル Tech The Toaster)を、すべて無料の電子書籍として公開しています。 技術書典などで頒布してきた、技術同人誌を、すべて無料の電子書籍として公開しています。サークル名は「Tech The Toaster」で、本を通して、技術の知識(Tech)を、読んだ人に焼きつける(Toast)トースターであることを目指しています。
Chrome デベロッパーツールを使いこなそう Elements 編
電子書籍 · 無料
Chrome デベロッパーツールを使いこなそう Network 編
電子書籍 · 無料
Chrome デベロッパーツールを使いこなそう Console 編
電子書籍 · 無料
WebPagetest で始めるパフォーマンス計測
電子書籍 · 無料
[Tech The Toaster のショップを見る →](https://techthetoaster.stores.jp/) 無料にした経緯は、[こちらの記事](https://note.com/howdy39/n/na4c24d39b006)に書いています。 # Howdy! Source: https://howdy39.dev/ja/index 中野 達也(@howdy39)です。Admina エバンジェリスト、Notion Japan チャンピオンズ、元コーポレートエンジニア。 ## 登壇予定
Business Technology Conference Japan 2026 スポンサーセッション ビジネスの現場に立ってわかった、情シスにできること
2026/11/28 · 登壇
イベントページ →

現在、公開している登壇予定はありません。

[Speaking をすべて見る →](/ja/speaking) ## 最近書いたブログ
Claude と壁打ちして、Mintlify で AI ネイティブなポートフォリオサイトを作った話
2026/10/04 · note
↗
大腸内視鏡検査は正直しんどかったけど、みんな受けた方がいいよという話
2026/09/07 · note
↗
感謝をモチベーションにして働くのは悪いことなのか?
2026/08/13 · note
↗
Claude Code のデフォルトが自動モードになる前に、情シスが決めておきたいこと
2026/08/10 · note
↗
[Blog をすべて見る →](/ja/blog) ## 数字で見る
160+
記事
note・Qiita・Zenn など
15+
登壇
カンファレンス・イベント
50+
社内登壇
研修・勉強会の発表者として
19年
経歴
エンジニアから情シスまで
## スキル
情シス・SaaS 管理
AdminaOktaNotionGoogle WorkspaceJamf Pro1PasswordCrowdStrikeMiroAsanaDialpadSlack
AI
ClaudeClaude CodeOpenAIPineconeGeminiNotion AISlack AIChatGPT
自動化・内製
Google Apps ScriptclaspSlack AppNode.jsChrome ExtensionApp Maker
フロントエンド
Vue.jsNuxt.jsTypeScriptAngularAngularJSjQueryStorybookreg-suitSentryWebPagetest
バックエンド・クラウド
GoRuby on RailsPHPJavaSpringGoogle App EngineCloud SQLHerokuCloudFrontS3MySQL
発信・ドキュメント
MintlifynoteZennQiitaSpeaker Deck
## 経歴 | 期間 | 会社 | 役割 | 技術 | | - | - | - | - | | 2026/06〜 | マネーフォワードi | Admina エバンジェリスト | Claude, Notion, Mintlify, Admina | | 2020/04〜2026/05 | hey(STORES) | コーポレートエンジニア
シニアマネージャー | Google Workspace, Google Apps Script, Slack App, Heroku, Jamf Pro, OpenAI, Pinecone | | 2018/10〜2020/03 | STORES.jp \| hey | フロントエンドエンジニア | Vue.js, Nuxt.js, Storybook, reg-suit, Sentry, WebPagetest, CloudFront, S3, Ruby on Rails | | 2017/05〜2018/08 | TOPGATE | Google テクノロジーエンジニア | TypeScript, Angular, Chrome Extension, Go, Google App Engine, Cloud SQL, App Maker | | 2012/01〜2017/04 | フリーランス | ソフトウェアエンジニア | TypeScript, AngularJS, Chrome Extension, G Suite, PHP, MySQL | | 2007/04〜2011/12 | ネクサート | ソフトウェアエンジニア | jQuery, Java, Struts, Spring, PHP, Ruby, Oracle | 各社での主な取り組みです。クリックで開きます。 * 情シスを支援する SaaS 管理サービス「マネーフォワード Admina」の、エバンジェリストを務めています。カンファレンスやイベントでの登壇、ブログや SNS での発信を通して、情シス領域の課題と、プロダクトの良さを、社外に届けています([Speaking](/ja/speaking) を参照)。 * 情シス経験者としての知見を、プロダクト開発、マーケティング、セールス、カスタマーサポート、カスタマーサクセスのチームに還元しています。顧客の解像度を上げるためのインプットや、意思決定のサポートです。 * 生成 AI を前提に、業務のやり方そのものを作り直す、AI を使った BizOps に取り組んでいます。情報収集、要約、コンテンツ生成を AI で効率化して、各チームの生産性とアウトプットの質を上げています。 * 情シスのコミュニティや、顧客との関係づくりに力を入れ、現場の声を、プロダクトや事業にフィードバックするハブの役割を担っています。 **組織とマネジメント** * 2020年4月に、フロントエンドエンジニアから、社内異動で情シスになりました。同年7月にマネージャーになり、チームを立ち上げて、心理的安全性、1on1、アジャイルな評価、ペア作業・モブ作業など、ソフトウェアエンジニアの文化を取り入れました([記事](https://note.com/howdy39/n/n6ea6aa4d15e3))。 * 2人のチームを、6人まで増やしました。IT 本部の下に、コーポレートエンジニアリングと、IT サポートの2グループを置き、2024年7月から、シニアマネージャーとして、マネージャーを束ねました。2025年9月時点で、正社員7人と、業務委託1人を統括していました([組織づくりの記事](https://note.com/howdy39/n/n487d1bd8820b))。 * プレイングマネージャーとして、大規模なプロジェクトや、重要な SaaS の導入では、プロジェクトオーナーを務めました。 **主なプロジェクト** * 社名変更(hey から STORES)に伴う、およそ450アカウントのドメイン変更で、プロジェクトオーナーとして、全体のスケジュールと、各種 SaaS のアカウントの引越しを率いました([手順の記事](https://product.st.inc/entry/2023/04/03/123846)、[インタビュー](https://note.st.inc/n/n0720316aff35))。 * Notion の全社導入で、2025年1〜3月に、プロジェクトのオーナーとして、ワークスペースの設計と、勉強会を担当しました([記事](https://note.com/howdy39/n/n313e8caf39d1))。 * 全社の AI 活用を進めるための研修(Gemini、Notion AI、Slack AI)を行い、Notion のカスタムエージェントを、社内の AI ヘルプデスクとして導入しました([記事](https://note.com/howdy39/n/nfd1561f42afe))。 * オフィスの増床のプロジェクトオーナーを務めました。能登半島地震をきっかけに、安否確認サービスを切り替えました([記事](https://product.st.inc/entry/2024/02/21/140507))。 * バックオフィスで使う SaaS を、個別の最適化ではなく、全体の最適化の観点で、再構築しました。 **導入した SaaS** * EDR、Okta、Admina、Notion、Miro、1Password、セキュリオ、Cmosy、Dialpad、Safie、Asana、安否確認サービス2 など。Admina は、ロール機能を使った、アカウント管理の運用フローも作りました([記事](https://note.com/howdy39/n/n24d9bae7d92c))。 **自動化・内製・環境づくり** * Google Apps Script や Node.js で、アプリケーション(Slack Bot など)を作りました。Google フォームと GAS の共有ドライブ運用([記事](https://zenn.dev/howdy39/articles/066bb145b8f247))、ChatGPT の社内アシスタント Bot([記事](https://note.com/howdy39/n/n196e7f3ecc5f))などです。Looker Studio での可視化も、進めました。 * プロ用に近い映像・音響機材を入れて、社内に、配信・収録のスタジオを作り、全社会(レビュー会)などの、配信と運営のオーナーを務めました([記事](https://note.com/howdy39/n/n6493bf9adda0))。開発 PC を、いつでも交換できる制度も、作りました([記事](https://note.com/howdy39/n/n05a2d5cc22b0))。 **発信・社内活動** * 社内の研修や勉強会で、発表者として、50回以上、登壇しました([GAS 研修の記事](https://note.com/howdy39/n/nd0123df608dc))。 * 部門のアドベントカレンダーを企画して、プロジェクトオーナーとして開催しました。 * STORES.jp のフロントエンドエンジニアとして、Vue.js と Nuxt.js で、画面を構築しました。ストアデザイン画面のリニューアルでは、AngularJS(1系)を Nuxt.js に置き換えながら、機能を強化しました([振り返り](https://note.com/howdy39/n/n76aed8a48e68))。 * Storybook、reg-suit、Sentry、WebPagetest など、開発者の生産性を上げる環境を、整えました。 * フロントエンドチームは、入社時の3人から、1年で9人になりました。週替わりで、運用とカイゼンの担当者を割り当てる仕組みを作りました([記事](https://qiita.com/howdy39/items/fb221122eda45b3f7d1a)、[開発の紹介](https://note.com/howdy39/n/n05cf138afee2))。 * 技術書典5・6 に、Chrome デベロッパーツールの本で出展しました([記事](https://note.com/howdy39/n/n1517a60af39d))。 * Google Cloud を使った、Web アプリケーションの開発を中心に行いました。主な開発言語は、Go です。 * Google App Maker と Google Apps Script を使った開発をしました。客先に出向いて、対面で、Google Apps Script の講師も務めました。 * Chrome 拡張機能を開発しました。 * GAS をローカル環境で開発するためのテンプレート「gas-clasp-starter」を公開しました([記事](https://qiita.com/howdy39/items/0e799a9bfc1d3bccf6e5))。 * Chrome デベロッパーツールの Console の使い方などを、Qiita で発信しました([記事](https://qiita.com/howdy39/items/c22c2cfafab88fa73d15))。 ## お仕事のご依頼 次のようなご依頼を、副業としてお受けしています。 * **登壇・イベント**: 講演、パネル、ファシリテーターなど * **執筆・メディア**: 記事の寄稿、取材、インタビューなど * **技術支援・相談**: Notion、Google Workspace、GAS、AI 活用、Admina をはじめとした情シス向け SaaS 活用、その他情シス支援のご相談など 直近で興味があるのは、情シス業務を AI でどう効率化するか、そして、デバイス管理業務(MDM の設定から、購入、キッティング、売却まで)のフロー改善です。 単価はご相談ください。やったことのないことや、楽しそうなことであれば、お安くお受けすることもあります。 ご連絡は、[X(@howdy39)](https://twitter.com/howdy39)の DM までお願いします。 # MCP サーバー Source: https://howdy39.dev/ja/mcp howdy39.dev の MCP サーバーのつなぎ方です。llms.txt や Markdown など、AI 向けの入り口もあります。 このサイトには、MCP サーバーがあります。Claude などの AI ツールにつなぐと、このサイトを検索して、記事や経歴の内容を読んでもらえます。「howdy39 が書いた Notion の記事を教えて」のように、AI に聞けます。 Mintlify の AI ネイティブな機能で、AI 向けの入り口を、ほかにも用意しています。日本語版と英語版の、どちらも使えます。 ## MCP サーバーにつなぐ MCP サーバーの URL は `https://howdy39.dev/mcp` です。 ### Claude(claude.ai) 1. [Connectors](https://claude.ai/settings/connectors) を開きます。 2. **Add custom connector** を押します。 3. 名前に `howdy39.dev`、URL に `https://howdy39.dev/mcp` を入れて、**Add** を押します。 4. 会話の入力欄の「+」から、`howdy39.dev` を選びます。 ### Claude Code ```bash theme={null} claude mcp add --transport http howdy39-dev https://howdy39.dev/mcp ``` ### Cursor など `mcp.json` に、次のように書きます。 ```json theme={null} { "mcpServers": { "howdy39-dev": { "url": "https://howdy39.dev/mcp" } } } ``` ### できること * `search_howdy39_dev`: サイトの内容を検索します。 * `query_docs_filesystem_howdy39_dev`: ページを、ファイルのように開いて読みます。 対象は、公開しているページの内容だけです。読み取り専用で、ページの誤りを報告するツールだけが、書き込みになります。 ## そのほかの AI 向けの入り口 * **llms.txt**: [https://howdy39.dev/llms.txt](https://howdy39.dev/llms.txt)
サイト全体の目次です。どんなページがあるかを、AI が把握します。 * **llms-full.txt**: [https://howdy39.dev/llms-full.txt](https://howdy39.dev/llms-full.txt)
記事の紹介文を含む、全ページの内容をまとめたものです。 * **英語版の索引**: [https://howdy39.dev/\_llms/en.md](https://howdy39.dev/_llms/en.md)
英語版のページの目次です。 * **ページの Markdown**: 各ページの URL の末尾に `.md` を付けます。
例: [https://howdy39.dev/ja.md](https://howdy39.dev/ja.md) ## 作り方 このサイトは、Mintlify で作っています。ソースは、[GitHub](https://github.com/howdy39/howdy39.dev) で公開しています。 # Speaking Source: https://howdy39.dev/ja/speaking 登壇、ファシリテーター、メディア掲載、スライドの記録です。 登壇、メディア掲載、スライドを、新しい順に載せています。 # Videos Source: https://howdy39.dev/ja/videos YouTube に出演した動画です。 YouTube に出演した動画です。新しい順に載せています。
【強い情シス組織の作り方】ベンチャー情シスの立ち上げ〜マネジメントまで、徹底解説
情シス転職支援チャンネル
2026/07/03 · 15:25
【情シスのキャリアマップ】SIerから情シスへの転身、どんなスキルが活きた?情シスのその先も聞いてみた
情シス転職支援チャンネル
2026/07/16 · 16:41
# Google APIのBatch Requestの仕組みを理解する Source: https://howdy39.dev/ja/blog/2016-02-03-qiita-google-api-batch-request Google API の、複数の API をまとめて実行する仕組み、Batch Request を、解説しました。リクエスト数が減ると、API を発行する側の実行速度が上がり、Google 側の負荷も減るので、基本的にデメリットはありません。Drive API でファイルの一覧を取得する例を、Batch Request に変換して、送り方まで説明しています。 # GoogleAPIを高速化しよう Source: https://howdy39.dev/ja/blog/2016-02-09-qiita-speeding-up-google-apis Google API を、高速化する方法を、紹介しました。主な方法は4つで、Batch Request、gzip 圧縮、fields パラメータの指定、GAE・GCE です。大量のデータを登録するときは Batch Request が必須で、画面などから API を何度も実行するときは、gzip、fields、GAE・GCE の組み合わせが、効果的です。カレンダーの予定を使って、検証しています。 # Google People APIを使ってみる Source: https://howdy39.dev/ja/blog/2016-03-01-qiita-google-people-api Google の People API が公開されたので、簡単な解説を書きました。Google+ API と Contacts API を合わせたような API で、people.get、people.getBatchGet、people.connections.list などを紹介しています。2017年7月に、登録・更新・削除の機能が追加され、Contacts API を置き換えると明言されたので、追記しました。 # フロントエンドにテストを導入 Source: https://howdy39.dev/ja/blog/2016-04-27-qiita-frontend-testing-introduction フロントエンドの、画面の JavaScript のテストを、まったくやったことがない人に向けて、導入の流れを、全体を通して解説しました。Mocha、webpack、Karma のそれぞれの解説は、よく見かけますが、全体像がわからない、という人のために、テストする対象のアプリを作るところから、順に、導入していきます。 # step by stepで始めるKarma Source: https://howdy39.dev/ja/blog/2016-05-16-qiita-karma-step-by-step Karma を使った、フロントエンドの単体テストを、Step by Step で解説しました。Karma は、ブラウザ上で単体テストを実行する、テストランナーで、ファイルの変更の監視や、結果のレポートの出力もできます。特定のフレームワークに依存せず、プラグインで拡張できます。最後に、重要だと思われる補足も、書いています。 # Googleスプレッドシートをプログラムから操作 Source: https://howdy39.dev/ja/blog/2016-05-22-qiita-google-sheets-api-intro Google I/O 2016 で、Spreadsheet API v4 がリリースされ、今までのAPI が、システムに組み込めるレベルまで強化されたので、スプレッドシートをプログラムから操作する方法と、実際に何ができるのかを解説しました。データ系と操作系でできること、できないことを、サンプルのスプレッドシートで、試しています。 # Google Pickerを使ってWebサイトのUXを向上させよう Source: https://howdy39.dev/ja/blog/2016-06-08-qiita-google-picker-ux Google Picker を使って、Web サイトの UX を向上させる方法を紹介しました。Gmail にある、Google ドライブのファイルを選んで貼り付ける機能を、JavaScript を少し書くだけで、自分のサイトに埋め込めます。ドライブのほか、Google フォトなどのピッカーもあり、`` のクラウド版のようなものです。デモも用意しました。 # GoogleスプレッドシートでGopherを描く with Go Source: https://howdy39.dev/ja/blog/2016-06-30-qiita-draw-gopher-in-google-sheets-with-go Google スプレッドシートに、Go で、Go のマスコットの Gopher を描いてみました。Excel で絵を描く記事の、スプレッドシート版です。ブラウザで画面を開きながら、裏で API を実行すると、リアルタイムに描かれていきます。1 つの API で同時に変更できるセル数や、連続実行、行列の幅の仕様などの知見も、書いています。 # Gmailの設定を操作するAPIが開放されました Source: https://howdy39.dev/ja/blog/2016-07-13-qiita-gmail-api-settings-endpoints 2016年7月7日に追加された、Gmail の設定を操作する API について、何ができるようになるかを、メモがてら解説しました。フィルタの設定、IMAP/POP の設定、転送設定などがあり、メールを送るサービスの開発者や、メールクライアントの開発者、システム管理者が、対象です。 # GoogleのWebAPI設計とWebAPI設計のベストプラクティスを比較してみる Source: https://howdy39.dev/ja/blog/2016-07-19-qiita-google-web-api-design-vs-best-practices 「WebAPI 設計のベストプラクティス」の内容と、普段使っている Google の WebAPI(Calendar API の予定情報)を、項目ごとに、比べてみました。RESTful な URL、SSL、バージョンを URL に含める、フィルタやソートをパラメータで行う、などの項目を、表で整理しています。Google の API デザインガイドへのリンクも、追記しました。 # Googleクラウド自然言語APIを使ってみた Source: https://howdy39.dev/ja/blog/2016-07-21-qiita-google-cloud-natural-language-api Google が公開した、クラウド自然言語 API を、使ってみました。どのような API が実装されたのか、API の種類と対応言語、エンティティ分析(Entities)などを紹介しています。デモが用意されているので、試せます。2017年11月に、記事を最新の状態に更新しました。 # step by stepで始めるwebpack Source: https://howdy39.dev/ja/blog/2016-08-08-qiita-webpack-step-by-step webpack を、手を動かしながら学べる、初学者向けの資料を作りました(webpack 1 系の記事)。公式のチュートリアルはありますが、webpack を使った OSS のボイラープレートを見ると、世の中の使われ方に沿っていないかもしれない、と思って書きました。最終形のソースも公開しています。 # Step by Stepで始めるPostCSS Source: https://howdy39.dev/ja/blog/2016-09-05-qiita-postcss-step-by-step PostCSS を使って、CSS をモダン化する流れを、Step by Step で解説しました。Sass の代替というより、CSS のエコシステムを作るための共通基盤、という位置づけです。Sass すら使っていない人や、CSS 界隈のライブラリがよくわからない人に向けて、サンプルのページを作るところから始めています。 # cssnextから学ぶ次世代CSS Source: https://howdy39.dev/ja/blog/2016-09-08-qiita-cssnext-next-generation-css cssnext が使える、策定中の CSS の機能を、一覧で紹介しました。cssnext は、CSS 版の Babel で、PostCSS のプラグインをまとめたものです。vendor prefix の自動付与、custom properties と var()、@apply、calc() の簡略化などを、取り上げています。策定中の CSS の知識をつけることが目的です。 # Granim.jsでグラデーションをアニメーション表示してWebサイトをリッチにしよう Source: https://howdy39.dev/ja/blog/2016-09-15-qiita-granim-js-gradient-animation GitHub でトレンド入りしていた JavaScript ライブラリ、Granim.js の紹介記事です。グラデーションを、アニメーションで表示して、Web サイトをリッチにできます。デモや API を見ても、わかりづらかった点を中心に、使い方と、API の補足を、書いています。 # Chrome拡張機能「Falcon」でWeb閲覧履歴をサクッと検索 Source: https://howdy39.dev/ja/blog/2016-09-20-qiita-chrome-extension-falcon GitHub でトレンド入りしていた、Chrome 拡張機能 Falcon を紹介しました。サイトの中身まで検索の対象にできる、閲覧履歴の検索ツールです。オムニボックスに「f 検索したい文字列」を入れて使います。使い方、オプション、サイトを開いたときの処理と、検索するときの処理の、技術的な解説を、書いています。 # 図で理解するJavaScriptのプロトタイプチェーン Source: https://howdy39.dev/ja/blog/2016-10-03-qiita-javascript-prototype-chain JavaScript のプロトタイプチェーンを、図で理解する記事を書きました。MDN のリファレンスを、より読めるようにすることと、Object や Array など基本型の構造を理解することが目的です。Chrome 52 のコンソールで、ES5 で、説明のしやすさのために `__proto__` を使って、シンプルなオブジェクトから順に、見ています。 # Google Slides APIが公開されたので使ってみた Source: https://howdy39.dev/ja/blog/2016-11-14-qiita-google-slides-api-first-look 2016年11月10日に公開された、Google スライドを操作する API、Google Slides API を、使ってみました。Google スライドとは何か、API の実装例(Markdown からスライドを作る md2gslides など)、ブラウザ上で動くデモ、リファレンスを読む前に知っておくとよいことを、紹介しています。 # Step by Stepで始めるESLint Source: https://howdy39.dev/ja/blog/2016-11-28-qiita-eslint-step-by-step JavaScript の静的検証ツール、ESLint を、Step by Step で始める方法を解説しました。チームで統一された、きれいなコードを作るためのツールです。2016年11月時点で、jshint や JSCS と比べて ESLint が伸びていること、環境の準備から、package.json の作成、設定までの流れを、説明しています。 # Qiitaをより便利にするChrome拡張機能をつくりました Source: https://howdy39.dev/ja/blog/2017-01-09-qiita-qiita-chrome-extension-q-accelerator 「Qiita にこういう機能があったら、もっと使いやすいのに」と思っていた機能を、Chrome 拡張機能として作ったので、紹介しました。名前は、Q Accelerator で、Qiita での活動を加速させるもの、という意味です。行番号の表示、記事の更新時間の表示などの機能があり、設定画面で選べます。 # GitHubにトピック(タグ)機能が追加されました Source: https://howdy39.dev/ja/blog/2017-02-01-qiita-github-topics 2017年2月1日に、GitHub に追加された、トピック(タグ)機能を、紹介しました。リポジトリに、自由にトピックを設定でき、トピックで検索もできます。設定の方法、自動で提案されるタグ(機械学習で提案されるが、まだ賢くない)、トピックでの検索の様子を、書いています。 # Google Video Intelligence APIのデモを触ってみた Source: https://howdy39.dev/ja/blog/2017-03-09-qiita-video-intelligence-api-demo 2017年3月9日に、プライベートベータで公開された、Google の Video Intelligence API の、デモを触ってみました。API を使うには申請が必要ですが、デモページなら、誰でもすぐに試せます。デモページへのアクセス、動画の選択、画面の構成、しばらく放置したときの様子を、紹介しています。 # Google Classroomが一般公開されました Source: https://howdy39.dev/ja/blog/2017-05-07-qiita-google-classroom-public Google Classroom が、一般の Gmail にも開放されたので、その概要と使い方を、まとめました。クラスを作る(担任)、テーマを変える(教師)、副担任を追加する、といった操作を、画面つきで紹介しています。IT の勉強会や研修で、便利になるかもしれないので、導入の足がかりになる記事です。 # GoogleスプレッドシートAPIの高速化 Source: https://howdy39.dev/ja/blog/2017-05-18-qiita-sheets-api-speedup Google スプレッドシート API を、高速化するコツを書きました。愚直に、セルへ値を設定するリクエストを送ると、とても遅くなるので、人が画面で操作する要領で、リクエストを書きます。100行×100列の、10,000セルへの書き込みを例に、悪い例と、良い例(updateCells)を、比べています。 # Google Apps Scriptを使った独自メニューの作り方 Source: https://howdy39.dev/ja/blog/2017-05-28-qiita-gas-custom-menu GAS で、スプレッドシート、ドキュメント、フォームに、独自のメニューを追加する方法を、解説しました。Ui クラスの取得、メニューの作成、項目の追加、メニューの追加の流れと、区切り線、サブメニュー、ソースの整え方を、説明しています。メニューから、自分で定義した GAS の処理を動かせます。 # PostmanでOAuthの設定をしてGoogle APIを実行する手順 Source: https://howdy39.dev/ja/blog/2017-05-30-qiita-postman-oauth-google-api Postman で、OAuth の設定をして、Google API を実行する手順を解説しました。Google 側で、OAuth クライアント ID を作り、Postman の認証情報の設定画面に入力して、トークンを取得します。Google API の検証に使っている手順ですが、OAuth に対応したサービスなら、似た方法で使えます。 # Google Sheets APIでセルの値を読み込む方法 Source: https://howdy39.dev/ja/blog/2017-06-03-qiita-sheets-api-read-cells Google Sheets API で、セルの値を読み込む3つの方法の、使い方と違い、どれを使えばよいかを、まとめました。1つ目の spreadsheets.get では、includeGridData、ranges、fields で、セルの情報、範囲、取得する情報を、指定します。値が3つ返ってくる理由も、説明しています。 # Google Sheets APIでセルの値を書き込む方法 Source: https://howdy39.dev/ja/blog/2017-06-14-qiita-sheets-api-write-cells Google Sheets API で、セルの値を書き込む3つの方法の、使い方と違い、どれを使えばよいかを、まとめました。UpdateCellsRequest を、spreadsheets.batchUpdate で使う方法などを、Path parameters、Request body、start や range のプロパティなどとあわせて説明しています。読み込み方法の記事も、あります。 # Google Apps Scriptのログ設計 #gasja Source: https://howdy39.dev/ja/blog/2017-06-25-qiita-gas-logging-design GAS を使い始めて、いちばん辛いと思った、ログ出力(デバッグ)を、なんとかする方法を書きました。Logger.log() や Browser.msgBox() の辛さを整理したうえで、開発時に必要なログは Google ドキュメントに書き込み、処理の結果はメールで送る、というログ設計を紹介しています。のちに、Stackdriver を使う記事を、書きました。 # Google Apps Scriptのコード補完を徹底解説 #gasja Source: https://howdy39.dev/ja/blog/2017-07-02-qiita-gas-code-completion GAS のスクリプトエディタの、コード補完のルールを、徹底的に解説しました。変数へ代入された型は補完される、コメントアウトされていても補完される、配列の中身や関数の引数までは、考慮されない、といったルールを、順に説明しています。補完のルールを理解して、GAS をより楽しく便利に使うための記事です。 # JsonnetをVisual Studio Codeで使う Source: https://howdy39.dev/ja/blog/2017-07-06-qiita-jsonnet-vscode Jsonnet を、Visual Studio Code で使うための、拡張機能(vscode-jsonnet)を紹介しました。拡張機能を入れるだけでは動かないので、Homebrew で Jsonnet をインストールします。実行すると、デフォルトでは、YAML 形式で出力されます。 # Google Domains と G Suiteを使って独自ドメインのメールアドレスを作成する Source: https://howdy39.dev/ja/blog/2017-07-26-qiita-google-domains-gsuite-custom-email Google Domains が日本でも使えるようになったので、Google Domains と G Suite を使って、独自ドメインのメールアドレスを作る方法を、画面つきで紹介しました。MX レコードの設定などが、自動で行われるので、設定不要で、簡単に作れます。前提は、Google Domains を契約済みで、G Suite は未契約であることです。 # Google App Maker ー 環境の違いを理解する Source: https://howdy39.dev/ja/blog/2017-08-28-qiita-app-maker-environments App Maker の「環境」の考え方を、メモしました。環境は、PREVIEW、検証、本番のほかに、いくつでも作れること、PUBLISH した時点のソースから配備されること、環境ごとに、プロジェクト ID、Drive Table、Role が、別に用意されることなどを、図つきで、整理しています。 # Google App Maker ー Drive Tables へのデータ投入方法 Source: https://howdy39.dev/ja/blog/2017-08-31-qiita-app-maker-drive-tables-data-import App Maker の Drive Tables に、データを投入する3つの方法を解説しました。Form ウィジェット、Import Data From Sheet、自分でスクリプトを書く方法です。開発時に何度もデータを登録するときや、本番環境の初期データの登録に使えます。一括削除と、日付を扱うときのタイムゾーンの注意も、書いています。 # Google App Maker ー Query を使った検索のテクニック Source: https://howdy39.dev/ja/blog/2017-09-08-qiita-app-maker-query-techniques App Maker で、一覧の上に絞り込みの条件を入れるときのテクニックを紹介しました。Query Filter は、AND 検索になってしまい、OR の指定ができないので、OR 検索をしたいときは、Query Builder を使います。基本的な使い方と、応用した使い方を、説明しています。 # Google App Maker ー 実行時のURLパラメータについて Source: https://howdy39.dev/ja/blog/2017-09-11-qiita-app-maker-url-parameters App Maker の実行時の URL パラメータ、console と devConsoleProjectId について解説しました。PREVIEW で、デバッグ用の画面が出るのは、PREVIEW だからではなく、この URL パラメータのためです。理解すると、PREVIEW でも本番と同じ画面を確認でき、本番環境でも、デバッグの画面を出せます。 # Google App Maker ー PageFragmentインスタンスのハマりやすいところ Source: https://howdy39.dev/ja/blog/2017-09-17-qiita-app-maker-pagefragment-instance App Maker の PageFragment のインスタンスで、ハマりやすいところをまとめました。PageFragment の使い方は、複数のページにまたがる共通部品と、ページの部品として何度も使う部品の2種類あり、後者がインスタンスです。インスタンスから親ページへのバインドはできますが、親ページからインスタンスへは、できません(スクリプトからは値を取得できます)。 # Chrome 拡張機能 ー コンテキストメニュー(ContextType/ItemType) Source: https://howdy39.dev/ja/blog/2017-09-25-qiita-chrome-extension-context-menu Chrome 拡張機能で、コンテキストメニュー(右クリックのメニュー)に項目を追加するときの、ContextType と ItemType をまとめました。background.js での書き方と、contexts に複数の ContextType を指定する方法、chrome.contextMenus.create で複数追加する方法を説明しています。 # Cloud Translation API を使用する際のポイント Source: https://howdy39.dev/ja/blog/2017-09-27-qiita-cloud-translation-api-points Google の翻訳 API、Cloud Translation API を使うときのポイントをメモしました。POST での変換方法、GET で使うときは URL エンコードが必須なこと、デフォルトのニューラル機械翻訳(NMT)などの2種類の翻訳、言語のサポート、価格、文字数について書いています。 # Google App Maker ー スクリプトから開いているURLを取得する方法 Source: https://howdy39.dev/ja/blog/2017-10-02-qiita-app-maker-get-current-url App Maker のスクリプトから、開いている URL を取得する方法を調べたメモです。サーバーサイドは ScriptApp.getService().getUrl()、クライアントサイドは google.script.url や window.parent.document.referrer を使います。後者は階層構造が変わる可能性があるので、おすすめしません。App Maker の構造についても書いています。 # Google App Maker ー 検索時に日本語を使えるようにする Source: https://howdy39.dev/ja/blog/2017-10-03-qiita-app-maker-japanese-search App Maker で、データソースのクエリのパラメータに日本語を使うとエラーになる問題の、回避方法を解説しました(2017年10月3日時点)。パラメータの設定側に encodeURIComponent、クエリの実行側に decodeURIComponent を付けると、エラーが出ずに、日本語で検索できます。 # Google App Maker ー Drive Tables のバックアップ方法 Source: https://howdy39.dev/ja/blog/2017-11-12-qiita-app-maker-drive-tables-backup App Maker の標準の DB、Drive Tables のバックアップ方法を解説しました。日付フィールドがなければ標準のエクスポート、あればスクリプトを書く、Relation も使っているならさらに頑張ってスクリプトを書く、お金があるなら Cloud SQL を使う、という結論です。エクスポート機能と、スクリプトの2つの方法を説明しています。 # App Maker 2017年の個人的な総括 Source: https://howdy39.dev/ja/blog/2017-12-01-qiita-app-maker-2017-review 2017年の App Maker との関わりを、個人的に総括しました。2017年7月ごろに始めたきっかけ、日本語の情報がなく、公式のドキュメントやリファレンスで勉強したこと、社内での導入、トレーニング、登壇・LT、Qiita での発信、感想を書いています。 # Google App Maker ー デフォルトアクションの一覧 Source: https://howdy39.dev/ja/blog/2017-12-12-qiita-app-maker-default-actions App Maker に、デフォルトで用意されているアクション(Custom Action、Navigate to Page、Reload Datasource、Create New Item、Delete Current Item、Open Dialog など)の一覧と概要を、まとめました。コードを書かずに、デフォルトアクションを使って、サクサクアプリを作るための記事です。 # Google App Maker ー Application 実行アカウントについて Source: https://howdy39.dev/ja/blog/2017-12-24-qiita-app-maker-execution-account App Maker のサーバースクリプトを、User's account で実行するか、Developer's account で実行するかの違いを解説しました。デフォルトは User's account で、メールの送信元、スプレッドシートの権限、Quota の消費の違いで、使い分けます。 # Google App Maker ー Roleでモデルと画面を制御する Source: https://howdy39.dev/ja/blog/2017-12-24-qiita-app-maker-roles App Maker の Role の使い方を解説しました。Role は、定義(APP SETTINGS)と割り当て(DEPLOYMENTS)の2段階で作り、環境ごとに割り当てを変えられます。モデルのデフォルトは AdminsOnly、画面のデフォルトは Everyone で、これらに Role を設定して、セキュリティを考えたアプリを作ります。 # Google App Maker ー アプリを別のサイトに埋め込む Source: https://howdy39.dev/ja/blog/2017-12-25-qiita-app-maker-embed-app App Maker のアプリを、別のサイトに埋め込む方法を解説しました。アプリの URL は長くてわかりにくく、作り直したときの再周知も面倒なので、iframe で埋め込むことが多いです。新しい Google サイトに埋め込む場合と、それ以外の場合(Allow embedding app を ON にする)の、2通りを説明しています。 # Google App Maker ー オーナーや編集者でアプリケーションを公開した場合に実行できることの違い Source: https://howdy39.dev/ja/blog/2017-12-25-qiita-app-maker-owner-editor-publish App Maker のアプリを、オーナーが公開した場合と、編集者が公開した場合で、実行できることの違いをまとめました。バグが多いので、編集者での公開や、オーナーの変更は、しないほうがよい、というのが結論です。VIEW LOGS が、権限がなく動かない点なども書いています。 # Google App Maker ー Calculated モデルを使ってスプレッドシートのデータを表示する Source: https://howdy39.dev/ja/blog/2017-12-26-qiita-app-maker-calculated-model App Maker の Calculated モデルで、スプレッドシートのデータを表示する方法を解説しました。Calculated は読み取り専用で、任意のデータをデータソースにできます。スクリプトからデータを作るパターンと、スプレッドシートから読み込むパターンで、データソースの作り方を説明し、Tables ウィジェットで表示します。 # Google App Maker ー Transformerを使いこなす Source: https://howdy39.dev/ja/blog/2017-12-26-qiita-app-maker-transformers App Maker の Binding Transformers(バインディングのオプション)のうち、よく使うものを厳選して解説しました。#formatDate、#formatNumber、#join、組み合わせ、projection、#readonly などです。表示の仕方を変えられ、スクリプトの行数も減らせるので、使いこなしたい機能です。 # Google App Maker ー Resources の使い方 Source: https://howdy39.dev/ja/blog/2017-12-27-qiita-app-maker-resources App Maker の RESOURCES(ファイルのアップロード機能)の使い方をメモしました。アップロードしたファイルは、サイトの Favicon や画像として使えます。最大ファイルサイズは 16MB で、ファイル数は 30 ほどまで確認しました。公式のサイトでも触れられていないので、とっつきにくい部分です。 # Google App Maker ー Popup の使い方 Source: https://howdy39.dev/ja/blog/2017-12-28-qiita-app-maker-popup 2017年12月の初めに追加された、App Maker の Popup 系の画面モジュールを使うときに、知っておくとよいことをメモしました。Popup の種類は6つで、clickOutsideToClose、navigateToClose、hasGlass、escapeToClose などの共通オプションがあります。公式にサポートされて、リッチなアプリを作りやすくなりました。 # Google App Maker ー AppLoader で描画前に処理を行う Source: https://howdy39.dev/ja/blog/2017-12-29-qiita-app-maker-apploader App Maker の AppLoader を使って、画面を描画する前に処理を挟む方法を解説しました。AppLoader を使わない場合は、ページが読み込まれてからデータの読み込みが始まりますが、使うと、事前にデータを読み込めます。そこまで重要な機能ではないものの、そういう機能がある、と知っておくとよい、という内容です。 # GAS と Stackdriver(Logging, Error Reporting) を連携させる Source: https://howdy39.dev/ja/blog/2017-12-30-qiita-gas-stackdriver-logging GAS から Stackdriver Logging にログを出力する方法を解説しました。以前書いた、Google ドキュメントにログを出力する記事の後で、Stackdriver がかなり便利だとわかったので、console を使ったログの出力、動作確認用のコード、Stackdriver Logging での確認の流れを説明しています。Apps Script Advent Calendar 2017 の最終日の記事です。 # Google App Maker と Apps Script dashboard Source: https://howdy39.dev/ja/blog/2018-01-12-qiita-app-maker-apps-script-dashboard GAS に追加された Dashboard の機能を、App Maker の目線で確認したメモです。App Maker は、プロジェクトの一覧には出てこず、実行数の画面では、サーバーサイドスクリプトとして認識されていて、関数名が doGet になっている、といった点を書いています。 # GASにGoogleカレンダーのイベント変更検知機能が実装されたので試してみた Source: https://howdy39.dev/ja/blog/2018-02-28-qiita-gas-calendar-event-triggers 2018年2月26日に GAS に追加された、Google カレンダーのイベント変更の検知機能(Calendar event triggers)を試したので、サンプルのコードを書きました。自分のカレンダーに予定が書き込まれたときや、会議室のカレンダーに予定が登録されたときなどに応用できます。Calendar の高度なサービスを有効にし、トリガーを設定して、実際に予定を作って動かすところまで説明しています。 # Google Apps Script をローカル環境で快適に開発するためのテンプレートを作りました Source: https://howdy39.dev/ja/blog/2018-03-19-qiita-gas-clasp-starter Google Apps Script をローカル環境で開発するためのテンプレート、gas-clasp-starter を作ったので、その紹介を書きました。google/clasp をベースに、webpack、TypeScript、TSLint、Prettier、Jest を使ったテンプレートです。GAS は新しい構文に対応していない、ソース管理やテスト、Lint ができない、といった悩みへの答えで、メリットと、使う流れ(クローン、ビルド、デプロイ)を説明しています。 # Google Apps Script のデプロイを Circle CI から行う Source: https://howdy39.dev/ja/blog/2018-03-22-qiita-gas-deploy-circleci GAS のデプロイを、Circle CI から行う方法を解説しました。ローカル環境で GAS を開発するためのテンプレートに、CI/CD を足すものです。clasp の仕組み(.clasprc.json)を理解したうえで、デプロイスクリプトと Circle CI の設定ファイルを作り、master ブランチへのマージでデプロイされることを確認します。 # スプレッドシートにマクロ機能が追加されたので試してみた Source: https://howdy39.dev/ja/blog/2018-04-13-qiita-sheets-macros Google スプレッドシートにもマクロの記録機能が追加されたので、さっそく試しました。スプレッドシートにドット絵で「HOWDY39」を書く、という例で、マクロの記録の開始から、保存、実行までの手順を、画面付きで紹介しています。マクロで記録されたコードも載せています。 # Chrome デベロッパーツールの Console を使いこなす Source: https://howdy39.dev/ja/blog/2018-05-20-qiita-chrome-devtools-console Chrome デベロッパーツールの Console に備わっている便利機能を、解説しました。コマンドライン API($$(selector)、$(selector)、$_、copy、clear、table、inspect、dir など)と、実際に Qiita の画面を解析して、トレンド記事のタイトルと URL を取得する手順、リアルタイムで評価結果を返す Eager Evaluation を取り上げています。Web 画面からの情報抽出や、Chrome 拡張機能の開発に役立ちます。 # スプレッドシートをWebAPI化するサービスの作り方 Source: https://howdy39.dev/ja/blog/2018-07-29-qiita-spreadsheet-web-api-service スプレッドシートを Web API 化するサービスの作り方を解説しました。GAS を使う方法には、URL を自由に設定できない、リクエスト数などの制限がある、といった弱点があるため、サーバーやクライアントなど、好きな環境からスプレッドシートを読み込む手法と、それを使った Web API のサービスの作り方を書いています。サービスアカウントを使う手法のメリットとデメリットも整理しています。 # Cloud Functions with Puppeteer + Google Apps Script でスクレイピングサーバーをサクッと作る Source: https://howdy39.dev/ja/blog/2018-08-21-qiita-cloud-functions-puppeteer-gas-scraping 2018年8月16日に Cloud Functions が Puppeteer に対応したので、Cloud Functions と GAS を組み合わせて、スクレイピングサーバーを作る方法を解説しました。環境構築が不要で、Web ブラウザだけで作れるのが最大のメリットです。例として、Qiita の人気記事を取得して、スプレッドシートに書き出すものを作ります。Cloud Functions を単体で使うと使い勝手が悪いので、GAS と併用します。 # Chrome の Custom Object Formatters 機能を使ったオブジェクトのデバッグ Source: https://howdy39.dev/ja/blog/2018-09-13-qiita-chrome-custom-object-formatters Chrome の Custom Object Formatters 機能を使って、オブジェクトを独自の形式で表示する方法を、簡単に解説しました。console.log(obj) で表示される内容を、オリジナルの形式にでき、デバッグの役に立つかもしれません。Console を開いた状態でないと有効にならない点や、Custom Formatter Object の作り方(htmlTemplate、header、hasBody、body)を、デモ付きで説明しています。 # Chrome デベロッパーツール本を書き始めたきっかけから入稿完了までの物語 #技術書典 5 Source: https://howdy39.dev/ja/blog/2018-09-21-note-chrome-devtools-book-story 技術書典に出す本を入稿した日に、書き始めたきっかけから入稿までの物語を書きました。Google I/O 2018 のセッションで、Chrome デベロッパーツールの Eager evaluation を知り、Qiita の記事を書いたのが始まりで、それが技術書典へのサークル参加、初執筆で500冊を刷ること、さらに転職にもつながった、という話です。 # Chromeデベロッパーツール本の通販開始のお知らせ と 初サークル参加の感想 #技術書典 5 Source: https://howdy39.dev/ja/blog/2018-10-14-note-chrome-devtools-book-sales-tech-book-fest-5 技術書典5で頒布した Chrome デベロッパーツール本が、予備を含めて512部すべて完売し、再発注したので、通販の開始をお知らせするとともに、初めてサークル参加した感想を書きました。サークル参加したいけど少し怖い、という人に向けて、当日の到着の様子や、席に届いていた本の様子などを、初参加の目線で書いています。 # STORES.jp (hey) に入社してちょうど1ヶ月経った感想 Source: https://howdy39.dev/ja/blog/2018-10-31-note-stores-one-month-impressions STORES.jp(hey)に入社してちょうど1ヶ月経ったので、会社についての感想と、自分がやっていく必要がありそうなことを書きました。働く時間(フレックス)、リモートワーク、会社の場所、福利厚生などの紹介と、フロントエンドのレガシーの問題や、サービス改善が優先されてしまう問題など、これから取り組みたいことを挙げています。これから hey に入ろうとする人の参考になれば、と思って書きました。 # Step by Step で始める Vue.js の CSSトランジション Source: https://howdy39.dev/ja/blog/2018-11-04-qiita-vue-css-transition-step-by-step Vue.js の CSS トランジションを使ったアニメーションを、Step by Step で解説しました。実装自体はシンプルですが、公式サイトが少しわかりにくいと思ったので、アニメーションしていない画面から始めて、 でくくって .v-enter を足すところから、.v-enter-active、.v-enter-to、.v-leave を使った消えるタイミング、トランジションに名前を付けるところまで、順に進めます。属性値がどう変わるかも追っています。 # Nuxt, ElementUI, Storybook 構成のVueプロジェクトの始め方 Source: https://howdy39.dev/ja/blog/2018-11-18-qiita-nuxt-elementui-storybook-setup Nuxt、ElementUI、Storybook の構成で始めようとしたときに、Storybook に ElementUI を適用させるのに手こずったので、その手順を残しました。Nuxt のプロジェクトを element-ui で作成し、コンポーネントを作って動作を確認してから、Storybook を追加し、webpack.config.js を作って ElementUI を使えるようにします。最終的なソースは、ボイラープレートとして GitHub に公開しています。 # ChatGPTを使った 社内アシスタントBOTを作りました Source: https://howdy39.dev/ja/talks/2023-05-12-slides-chatgpt-bot 2023年5月12日、ChatGPTを使った 社内アシスタントBOTを作りました(スライド)。 # GAS x スプレッドシート x Looker Studio を組み合わせたデバイス管理 Source: https://howdy39.dev/ja/talks/2023-10-11-slides-device-management 2023年10月11日、GAS x スプレッドシート x Looker Studio を組み合わせたデバイス管理(スライド)。 # マネーフォワードi主催 Adminaの導入から6ヶ月! STORESがAdmina導入で実現したアカウントライフサイクルの効率化と現在地 Source: https://howdy39.dev/ja/talks/2024-04-17-admina-six-months 2024年4月17日、マネーフォワードi主催 Adminaの導入から6ヶ月! STORESがAdmina導入で実現したアカウントライフサイクルの効率化と現在地(登壇)。 # ITmedia デジタル戦略EXPO 2024 夏 SaaS管理 基調講演 "アカウント管理の理想の実現に向けてSaaS管理ツールを活用しよう" Source: https://howdy39.dev/ja/talks/2024-07-17-itmedia-expo-keynote 2024年7月17日、ITmedia デジタル戦略EXPO 2024 夏 SaaS管理 基調講演 "アカウント管理の理想の実現に向けてSaaS管理ツールを活用しよう"(基調講演)。 # ITmedia 激増するSaaSをどう管理する? 200超のSaaSを利用する企業の情シスが見つけた「理想の姿」 Source: https://howdy39.dev/ja/talks/2024-07-26-itmedia-saas-management 2024年7月26日、ITmedia 激増するSaaSをどう管理する? 200超のSaaSを利用する企業の情シスが見つけた「理想の姿」(メディア)。 # うちの情シス Connect + i (コネクト アイ) キーセッション "AI新時代:情シスが向き合うべきAI活用戦略" Source: https://howdy39.dev/ja/talks/2024-09-20-connect-i-keynote 2024年9月20日、うちの情シス Connect + i (コネクト アイ) キーセッション "AI新時代:情シスが向き合うべきAI活用戦略"(基調講演)。 # AI新時代 情シスが向き合うべきAI活用戦略 Source: https://howdy39.dev/ja/talks/2024-09-20-slides-ai-strategy 2024年9月20日、AI新時代 情シスが向き合うべきAI活用戦略(スライド)。 # Findy主催 ビジネスを加速させる情シス、コーポレートITとは? "LT『Slackbot × RAG で実現する社内情報検索の最適化』" Source: https://howdy39.dev/ja/talks/2024-10-02-findy-lt 2024年10月2日、Findy主催 ビジネスを加速させる情シス、コーポレートITとは? "LT『Slackbot × RAG で実現する社内情報検索の最適化』"(LT)。 # Slackbot × RAG で実現する社内情報検索の最適化 Source: https://howdy39.dev/ja/talks/2024-10-02-slides-slackbot-rag 2024年10月2日、Slackbot × RAG で実現する社内情報検索の最適化(スライド)。 # CorpEn Night #1 Dify導入で目指すAIドリブンな組織 Source: https://howdy39.dev/ja/talks/2024-10-18-corpen-night-1 2024年10月18日、CorpEn Night #1 Dify導入で目指すAIドリブンな組織(登壇)。 # うちの情シス: STORES 株式会社 - 情シスが情シスに聞く7つの質問 Source: https://howdy39.dev/ja/talks/2025-03-19-uchi-no-joshisu-stores 2025年3月19日、うちの情シス: STORES 株式会社 - 情シスが情シスに聞く7つの質問(登壇)。 # うちの情シス: 株式会社マクアケ - 情シスが情シスに聞く7つの質問 ファシリテーター Source: https://howdy39.dev/ja/talks/2025-04-15-uchi-no-joshisu-makuake 2025年4月15日、うちの情シス: 株式会社マクアケ - 情シスが情シスに聞く7つの質問 ファシリテーター(ファシリテーター)。 # マネーフォワードi, Notion Labs Japan 共同主催:成長企業の"今"を直撃STORESとNOT A HOTELに聞く情シス業務の効率化 Source: https://howdy39.dev/ja/talks/2025-05-22-stores-not-a-hotel 2025年5月22日、マネーフォワードi, Notion Labs Japan 共同主催:成長企業の"今"を直撃STORESとNOT A HOTELに聞く情シス業務の効率化(登壇)。 # Beyond Corp IT DAY 2025:SaaS導入に立ちふさがる3つの壁 - Notion導入事例から学ぶ実践プロセス Source: https://howdy39.dev/ja/talks/2025-06-25-beyond-corp-it-day 2025年6月25日、Beyond Corp IT DAY 2025:SaaS導入に立ちふさがる3つの壁 - Notion導入事例から学ぶ実践プロセス(登壇)。 # IIJ Webセミナー:情シスのチーム力を最大限に引き出す秘訣!ソフトウェアエンジニアリング文化の取り入れ方 Source: https://howdy39.dev/ja/talks/2025-07-11-iij-webinar 2025年7月11日、IIJ Webセミナー:情シスのチーム力を最大限に引き出す秘訣!ソフトウェアエンジニアリング文化の取り入れ方(登壇)。 # JMUG:JMUG #33 Notionで夏休みの宿題もJNUCも。 Source: https://howdy39.dev/ja/talks/2025-08-07-jmug-33 2025年8月7日、JMUG:JMUG #33 Notionで夏休みの宿題もJNUCも。(登壇)。 # Notionウェビナー:業務効率を劇的に改善!STORES社に学ぶ、Notion全社導入の成果とリアルな活用術 Source: https://howdy39.dev/ja/talks/2025-08-22-notion-webinar-stores 2025年8月22日、Notionウェビナー:業務効率を劇的に改善!STORES社に学ぶ、Notion全社導入の成果とリアルな活用術(登壇)。 # AI活用・導入の壁と越え方:AIヘルプデスク、結局どう作る? 自作・ノーコード・SaaSの3つを比べてみる Source: https://howdy39.dev/ja/talks/2026-07-29-ai-helpdesk-pasona-mfi 2026年7月29日、AI活用・導入の壁と越え方:AIヘルプデスク、結局どう作る? 自作・ノーコード・SaaSの3つを比べてみる(登壇)。 # DXER株式会社主催 情シスの現場からVol. 11「情シス卒業」の中野氏に聞く、変化に強い組織づくりと社内ITの未来 〜「人が足りない」からの脱却と社内ITのカスタマーサクセス〜 Source: https://howdy39.dev/ja/talks/2026-08-06-dxer-syskul-vol11 2026年8月6日、DXER株式会社主催 情シスの現場からVol. 11「情シス卒業」の中野氏に聞く、変化に強い組織づくりと社内ITの未来 〜「人が足りない」からの脱却と社内ITのカスタマーサクセス〜(登壇)。 # Business Notion Community主催 ビジネス利用におけるNotionのリアルな権限管理 Source: https://howdy39.dev/ja/talks/2026-08-22-business-notion-community-permissions 2026年8月22日、Business Notion Community主催 ビジネス利用におけるNotionのリアルな権限管理(登壇)。 # マネーフォワードi主催 「情シスから事業会社へ転職した真意」と「Adminaエバンジェリスト」とは? Source: https://howdy39.dev/ja/talks/2026-09-02-mfi-admina-evangelist-webinar 2026年9月2日、マネーフォワードi主催 「情シスから事業会社へ転職した真意」と「Adminaエバンジェリスト」とは?(登壇)。 # Business Technology Conference Japan 2026 スポンサーセッション ビジネスの現場に立ってわかった、情シスにできること Source: https://howdy39.dev/ja/talks/2026-11-28-btconjp-sponsor-session 2026年11月28日、Business Technology Conference Japan 2026 スポンサーセッション ビジネスの現場に立ってわかった、情シスにできること(登壇)。