タダケンのEnjoy Tech

楽しみながらラクに成果を上げる仕組みを考える

「Apps Script dashboard」でGoogle Apps Scriptのプロジェクトが一元管理できるようになった

f:id:tadaken3:20180126003010p:plain こんにちは!
タダケン(@tadaken3)です。

2018年1月11日に、Google Apps Scriptに新しい機能が追加されました。GASのプロジェクトを一元管理できる「Apps Script dashboard」です。今ままでは、GASのスクリプトがどこに保存されているか、わかりにくかったのですが、「Apps Script dashboard」ができたことによって、プロジェクト(スクリプト)の管理が格段にやりやすくなりました。

今回は「Apps Script dashboard」についてご紹介いたします。

Google Apps Scriptはプロジェクトの管理がとても煩雑だった

Google Apps Scriptには大きく分けて2種類あります。「スタンドアロンスクリプト」と「コンテナバインドスクリプト」です。

「スタンドアロンスクリプト」はその名の通り、スタンドアロンで実行される単体のスクリプトプロジェクトとなります。Google ドライブからGoogle Apps Scriptのプロジェクトファイルを新規作成していきます。

「コンテナバインドスクリプト」はスプレッドシート、ドキュメント、フォームといった親ファイルに紐づく形で保存される形式のスクリプトプロジェクトです。スプレッドシート、ドキュメント、フォームなどから新規作成します。

  • スタンドアロンスクリプト: 単体のスクリプト
  • コンテナバインドスクリプト: スプレッドシート、ドキュメント、フォームといった親ファイルに紐づくスクリプト

スプレッドシートの機能を使いたい場合などは、コンテナバインドスクリプトを使って、スプレッドシートに紐づけた形でスクリプトを書いていくケースが多いです。

「コンテナバインドスクリプト」は紐付いたスプレッドシートの情報を参照できるメソッド(getActiveSpreadSheet、getUiなどの)を使用することができる点がメリットでした。

一方で、スクリプトがスプレッドシートやドキュメントに紐付けられて保存されるので、どのスプレッドシートに、どんなスクリプトが書かれているのかは、自分で管理しておく必要がありました。

スクリプトが書かれたファイル名を自分で覚えておかないといけなかったり、いちいちファイルを開かないとスクリプトがあるかわからなかったりで、とてもとても不便でした。

でも、もう安心です。

Apps Script dashboardがあれば、「スタンドアロンスクリプト」であろうが、「コンテナバインドスクリプト」であろうが一元管理できます。

「Apps Script dashboard」を早速使ってみる

「Apps Script dashboard」にアクセスするには下のリンクをクリックします。

Apps Script – Google Apps Script

ログインをするとプロジェクト一覧画面が表示されます。

f:id:tadaken3:20180125214932p:plain
プロジェクト一覧


見ていただくとわかるように、すべてのGASプロジェクトが一覧で表示されています。プロジェクト名で検索することもできますし、dashboardから直接GASのファイルにアクセスすることもできます。メニューから「プロジェクトを開く」をクリックすると、スクリプトエディタが立ち上がります。 f:id:tadaken3:20180125222247j:plain

プロジェクト名の横にはアイコンが表示され、スタンドアロンなのか、スプレッドシート、フォームなどに紐付いているものなのかもひと目でわかるようになっています。

f:id:tadaken3:20180125221603p:plain
プロジェクト名


プロジェクトの実行状況をモニタリングする

Apps Script dashboardには、プロジェクトの実行状況を監視する機能もあります。これも使うのは簡単で、監視したいプロジェクトを選択して、メニューから「監視を開始」をクリックするだけです。

f:id:tadaken3:20180125234316j:plain

左メニューの「監視対象のプロジェクト」をクリックすると、監視対象となったプロジェクトの実行状況をモニタリングできます。

f:id:tadaken3:20180125235534p:plain

モニタリング画面では、直近7日間の

  • エラー率
  • スクリプトの実行数数
  • 実行ユーザー数

が確認できます。シンプルですが、とても便利ですね。

また、プロジェクトを監視対象としなくても、メニューの「実行数」から、すべてのスクリプトの実行状況がわかります。

  • 実行開始時間
  • 期間(実行にかかった時間)
  • 関数 (実行された関数名)
  • ステータス

などが確認できます。こちらは、プロジェクト名などでフィルターすることもできます。

f:id:tadaken3:20180125235746p:plain

時間主導型トリガーをつかって、定期的に実行しているスクリプトの状況も簡単に把握できるようになりました。

まとめ

「Apps Script dashboard」の機能をご紹介しました。「Apps Script dashboard」を使うことで

  • GASのすべてのプロジェクトを一元管理する
  • スクリプトの実行状況もモニタリングする

といったことが簡単におこなえるようになりました。これでGASの開発もはかどりますね。

読者登録をお願いします

本ブログではGoogle Apps Scriptについての記事を公開しています。よろしければ読者登録していただけると更新の励みになります。ぜひ一緒にプログラミングを学びましょう。

詳解! GoogleAppsScript完全入門 ~GoogleApps & G Suiteの最新プログラミングガイド~

詳解! GoogleAppsScript完全入門 ~GoogleApps & G Suiteの最新プログラミングガイド~

Reactを学ぶ上で理解しておきたいJavascriptの歴史

f:id:tadaken3:20180120205214p:plain こんにちは!
タダケン(@tadaken3)です。

Reactの開発を始める上で大変だと感じるのが、babel、ES6、webpackといった用語・ツールが多いことでした。

前回は、「create-react-app」を使ったので、このあたりを意識せず、開発環境を構築したのですが、実際に開発を進めたりコードを読む上で、こういった用語の意味やツールを使う背景を理解しておくにこしたことはありません。

tadaken3.hatenablog.jp

そこで、今回はReactを学ぶ上で理解しておきたいJavascriptの歴史を簡単にまとめてみました。

Javacriptの標準仕様について

JavaScriptの標準仕様はECMAScriptと呼ばれています。国際団体EcmaインターナショナルによってJavaScriptの中核的な仕様がECMAScriptとして標準化されています。

標準化される以前は、ブラウザごとに言語仕様の独自拡張が行われていたため、ブラウザ間の互換性が極めて低かったそうです。ECMAScriptが策定されたことにより、ブラウザ間での互換性が向上しました。

現在、大抵のブラウザは、ECMAScript 5.1以上に対応しています。ECMAScript 5.1は、略してES5と表記します。

そして、書店にあるJavascriptの入門書はES5に基づいて書かれていることが多いです。

イマドキのJavacript(ES6)

Javascriptの標準仕様なのですが、今までよりも大幅に進化したECMASCript 6th Editionが2015年に策定されました。ECMAScript 6th editionの6を取ってES6と呼ばれていましたが、2015年に標準化されたため正式名称はES2015になりました。

ES6(ES2015)では、以下のような機能が新たに追加されました。

  • let constキーワードによる変数宣言
  • class構文
  • 関数の引数のデフォルトパラメータ(Default Parameters)
  • アロー関数(Arrow Functions)
  • 分割代入(Destructing Assignment)
  • 配列展開(Array Spread)
  • 関数の可変長引数(Rest Parameters)
  • 関数のデフォルト引数
  • テンプレート文字列(Template Strings)
  • importとexportによるモジュール構文(Module)

簡単にまとめますと現在のjavascriptの標準規格としては

の2つが存在していることになります。

ES5とES6の違いは以下の記事などを参考にしてみてください。

qiita.com

そして、ReactではES6にそって、開発を進めていくことが推奨されています。

ES6をES5に変換するBabel

Reactは基本的にES6で開発を進めていくことになるのですが、ここでひとつ疑問が生じます。新しく策定されたES6は機能が追加されてコードが書きやすくなったのですが、ブラウザの対応状況はどうなっているのか?ということです。

2017年現在、主要なPC/MacのブラウザはES6に対応しています。一方、スマホ用のブラウザでは、ES6が限定的にしかサポートされていなかったりもします。

現在のインターネットの利用状況を考えると、スマホなどモバイル端末を無視することはできません。

ES6で書かれたJavascriptをES5に変換してしまうツールが登場します。これがBabelというツールです。1

ES6でかかれたReactのコードをES5に変換して、古いブラウザで使えるようにしようというのがイマドキのフロントエンドのお作法です。

まとめ

今回は、Reactを使う上で、理解しておきたいJavascriptの歴史を簡単にまとめました。重要なポイントは以下の点です。

  • JavaScriptの標準仕様はECMAScriptで定められている
  • ほんとどのブラウザが対応しているES5と2015年に新しく策定されたES6(ES2015)がある
  • ReactはES6で開発することが推奨されている
  • 現存するブラウザに対応するため、BabelをつかってES6で書いたコードをES5に変換する

次回もReactに関して学んだことをまとめていきたいと思います。

読者登録をお願いします

本ブログではプログラミングについての記事を公開しています。よろしければ読者登録していただけると更新の励みになります。ぜひ一緒にプログラミングを学びましょう。


  1. babel単体でも利用可能ですが、一般的にはwebpackというビルドツールと併用して使います。ほかにも、CSS、styleのローダーと組わせて使うことが多いからです。webpackについても今度まとめようと思います。

Reactを学ぶメリットとReactの開発環境を簡単に構築する方法

f:id:tadaken3:20180325115545p:plain こんにちは。
タダケン(@tadaken3)です。

今年はフロントエンドをきちんと学んで、個人開発でサービスをリリースしたいと考えてます。いろいろ調べてみて、その中でもReactの学習を進めたいなと感じました。

調べていく中で感じたReactのメリットとReactの開発環境構築についてをまとめます。1

tadaken3.hatenablog.jp

Reactとは

ReactはWebサイト上のUIパーツを構築するためのJavasciptのライブラリです。Facebook社が開発しておりで、Facebookを始め米国のいくつかの有名なWebサービスでも使われています。

Reactは「コンポーネント志向」という思想で設計されています。WEB画面は、ヘッダー、メニュー、商品一覧、ショッピングカートなどの様々なパーツに分かれて作らています。Reactではこららをパーツをひとつのコンポーネントとして扱います。様々なコンポーネントを組み合わせて、UIを構築します。

なぜ、Reactを学ぼうと思ったのか。 Reactを学ぶメリット

フロントエンド技術には、Reactの他にVueやAngularといったフレームワークやライブラリがあります。

Reactの特徴のひとつに「Learn Once, Write Anywhere」(一度学べば、どこでも書ける)という考えがあります。Reactには、プラットフォームをまたいでコードを活用できるエコシステムが存在しています。例えば、以下のような範囲でReactの知識を活かすことができそうだと感じました。

  • WEBフロントエンド: React
  • モバイルアプリ(iOS,Android): ReactNative
  • デスクトップアプリ(Mac,Windows): React + Electron
  • サーバーサイド: Node.js + React

学習の目標として、サービスをひとりで立ち上げたいなと思っています。個人で開発することを考えているため、学習や開発に使える時間が平日の仕事終わりや土日に限られています。

「Learn Once, Write Anywhere」の考えにより、Reactに加えて、Node.jsやelectronを学べば、javascriptでかなりの範囲をカバーすることができます。効率よく開発をすすめることが重要な個人開発において、非常に大きなメリットに感じました。

学習のための戦略

また、本業がデータアナリストであり、フロントエンドの業務経験は全くありません。自分のまわりに詳しい人がいるわけでもないので、基本独学で、Reactを習得していくことになります。

Reactはフロントエンドのライブラリとしては、比較的歴史があり、書籍やネット上の情報が充実している印象があります。このあたりもReactを学ぼうと思ったメリットです。

Reactを学習するための戦略としては、inkdropというメモアプリをひとりで開発しているTAKUYAさんのブログを参考にしました。

blog.odoruinu.net

上記のブログ記事を参考に

  • まず、入門書を写経して、基本を学ぶ
  • 基本が理解できたら、有名なプロダクトをForkして、開発のノウハウを盗む

という流れで学習を進めて行くつもりです。

Reactの開発環境を構築する

ということで早速、Reactの開発環境を構築していきます。

Node.jsのインストール

まずは、Reactの開発環境の土台作りです。Javacriptの処理系であるNode.jsをインストールします。Macを使用しているのでHomebrewを使っていインストールしました。

$ brew install node.js
$ node -v
v9.3.1

Javasriptのライブラリやツール類はnpmというパッケージ(ライブラリ)で配布・管理されています。npmパッケージのインストールはnpmコマンドで行います。npmコマンドはNode.jsと一緒にインストールされています。npmのバージョンを確認します。これで土台が整いました。

$ npm -v
v5.3.0

create-react-appを使って、Reactの開発環境を構築する

Reactの開発環境は、Facebook製ツール「create-react-app」を使うことにしました。コマンド一発でReactの開発環境を構築してくれるCLIツールです。参考にしたのは以下の記事です。

mae.chab.in

以下のコマンドでグローバルにcreate-react-appをインストールします。

$ npm install -g create-react-app


create-react-appがインストールできたら、create-react-appコマンドが使えるようになります。

create-react-appコマンドの後にこれから作成するプロジェクトのディレクトリ名を指定して、コマンドを実行します。

$ create-react-app my-first-app


create-react-appコマンドを実行すると、指定したディレクトリ名のディレクトリが作られ、その中に開発に必要なビルドツールや構文チェックツールがインストールされます。

作成されたプロジェクトのディレクトリに移動します。

$ cd my-first-app


以下のコマンドを実行してみます。

$ npm start

すると、サーバーが立ち上がります。 f:id:tadaken3:20180114010803p:plain

http://localhost:3000/にアクセスすると、以下のページが表示されます。

f:id:tadaken3:20180114010916p:plain

これでReactの開発環境が整いました。srcディレクトリ内のApp.jsを変更すると、ブラウザの画面が更新されます。さっそく、じゃんけんアプリを試しに動かしてみました。

f:id:tadaken3:20180114011638p:plain

まとめ

Reactを学ぶメリットとReactの開発環境についてまとめました。今後はReactの要素を学び、学習した内容をブログにアウトプットとしてきたいと思います。

読者登録をお願いします

本ブログではプログラミングについてボクが学んだことを公開しています。よろしければ読者登録していただけると更新の励みになります。ぜひ一緒にプログラミングを学びましょう。


  1. フロントエンドは全くの初心者なので、間違えなどありましたらご指摘いただけますと幸いです。

運動をつづけるために「運動報告部 for ぼっち」というLINE ボットを作ってみた

こんにちは。
タダケン(@tadaken3)です。

先日、運動を継続するために「運動報告部」というLINEグループを作った記事が話題になっていました。運動報告部をつくったことにより、運動が習慣化できたというお話です。

「運動報告部」というLINEグループを作ったら1年運動が続いた話

「運動報告部」の実践方法と効果について

「運動報告部」とは社会人になって運動をはじめる→挫折するを繰り返してきたライターの@HikaruYozaさんが編み出した方法です。ざっくり内容をまとめますと、

  • 仲の良い2〜3人で「運動報告部」というLINEグループを作成
  • そこで運動したことを報告する
  • 他の人は「えらい」と運動したことを褒める
  • 会話は基本「報告」と「えらい」に抑える

を実践し、一年間運動を継続できたということでした。

シンプルな運用ですが、とても効果的なようですね。また、運動以外にも応用が効きそうな点が素晴らしいなと感じます。

ただ、一点、問題があるとすると

「運動をする友だちがいないとできない」

ことです。そうです

ぼっちだと実践できないんです。

ボットを作って解決

「運動報告部がぼっちではできない」問題を解決するために、「運動報告部 for ぼっち」というLINEボットを作成しました。

使い方はとてもシンプルで

  • ジムに行ったら「ジム」
  • 走ったら「走った」

というように「報告」をするとボットが「えらい」と言ってくれます。1

f:id:tadaken3:20180107154830p:plain

「運動報告部 for ぼっち」をLINEで友だち登録する

友だち登録する方法は簡単です。以下のボタンを押すかQRコードを読み込んでいただくと、LINEアプリが立ち上がり、友だち登録できます。もしよかったら友だち登録して、試してみてください!

かがくの ちからって すげー!

こちらをクリックするか

友だち追加

QRコードで登録できます。
f:id:tadaken3:20180107152835p:plain

開発環境について

最初はGoogle App Engineでガッツリ作ろうかと思ったのですが、必要機能がとてもシンプルですし、あまり時間をかけたくなかったので、以下の記事を参考にGoogle Apps Scriptで作成しました。2

inside.pixiv.net

ざっくりとして手順はこのようになります。

  • LINE@のアカウントを開設
  • GASでWEBサーバーを作成
  • 返信機能を実装

実装自体は1時間程度でできましたが、どちらかというと、LINE@のアカウント設定に時間がかかりました。(アイコン画像やアカウント説明を書いたりなど)

Githubにコードをあげていますので、ご興味のある方はご覧いただければ!

github.com

ちなみにボク自身は以下の仕組みを利用して、運動を継続しています。よければこちらもご参考にしてみてください。

tadaken3.hatenablog.jp

おまけ

こんな風に励ましてもくれます。

f:id:tadaken3:20180107193351p:plain

読者登録をお願いします

本ブログではGoogle Apps Scriptに情報を公開しています。よろしければ読者登録していただけると更新の励みになります。ぜひ一緒にプログラミングを学びましょう。

詳解! GoogleAppsScript完全入門 ~GoogleApps & G Suiteの最新プログラミングガイド~

詳解! GoogleAppsScript完全入門 ~GoogleApps & G Suiteの最新プログラミングガイド~


  1. ネタで作ったところもありますので、不具合などございましたら、本ブログもしくはTwitterなどからお問い合わせいただけると幸いです。

  2. GASだとスケールできないので使ってくれる人が増えたらちゃんと考えます。

2018年は「実戦投入力を高める」を目標にする

f:id:tadaken3:20171231225349p:plain 2018年、あけましておめでとうございます。
タダケン(@tadaken3)です。

本年もブログ「Relax and Enjoy Programming」をよろしくお願い致します。

早起きして初日の出を見ました。 今週のお題「2018年の抱負」

2018年の抱負

2017の振り返り記事にちょろっと書いたのですが、「自分のプロダクト・サービスで生計を立てれるようなることが目標」です。

tadaken3.hatenablog.jp

幸いなことに今は恵まれた環境にいて、楽しく仕事させていただきています。ただ、ボクはゲーム業界に身をおいているのですが、ゲームは娯楽産業であり、当たれば大きいのですが、栄枯盛衰が激しく、いつ自分の置かれた環境が変わってもおかしくありません。

なので、自分自身のスキルを高めつつ、収益の柱をいくつか作っておきたいと考えています。これは転職を決めた時からずっと思っていることです。収益源がいくつかあれば、たとえ本業と同じ金額を稼げていなくても、いざという時の心理的なバッファーになります。

まだまだ抽象的ですが、起業して上場して一発当てるって感じではなく、ニッチな分野で価値提供できるようなサービスをコツコツ作りたいです。

実戦投入力を高める

サービスやプロダクトをリリースするには、「実戦投入力を高めていく」必要があるなとここ最近感じています。

昨年は本を読んで、サンプル動かして、終わりみたいなことがちょっと多かったので、今年は、ダサくても未熟でもどんどんリリースしていきたいです。

そう思ったのはid:a-knowさんの以下のブログ記事です。

blog.a-know.me

上記で紹介されている「Go言語によるWebアプリケーション開発」は自分も読んだのですが、読んで、動かして終わりになっていたので、上記の記事をみて、むちゃくちゃ反省しました。

同じ本を読んだのに、ここまでアウトプットできなかった自分が悔しいです。技術力に天と地ほど差がありますがそれを差し引いても、自分の中で全力でやれてなかったなと思いました。

または、「実戦投入力を高める」という言葉。これはid:kakku22さんの言葉なのですが、自分が感じてことをまさに言語化してくれていたと思い、拝借しました。

今年の目標は「実戦投入力を高める」です.実戦投入するからこそ深く知る必要があるし,絶対に困難もあるので,大きく成長できます.「実戦投入力」って言葉は凄く気に入っています.実戦投入力!
2015年の振り返りと2016年の抱負 - kakakakakku blog

@a-knowさんも、@kakakakakkuさんも実戦投入力を意識しているからこそ、今の技術力を身につけられたのではないでしょうか。

本業がエンジニアではないボクはスキル習得に使える時間も限られていますので、「実戦投入力」を強く意識して2018年は過ごしていくつもりです。

技術的には

  • React / Vue.js / Angularなどのフロントエンドをちゃんとやる
  • デザインの基礎を身につける
  • Sketchの使い方をマスターする

あたりを習得していきたいなと思っています。

読者登録をお願いします

本ブログではプログラミングについてボクが学んだことを公開しています。よろしければ読者登録していただけると更新の励みになります。ぜひ一緒にプログラミングを学びましょう。

Go言語によるWebアプリケーション開発

Go言語によるWebアプリケーション開発

2017年のタダケンを振り返る

f:id:tadaken3:20171230130425p:plain

こんにちは!
タダケン(@tadaken3)です。

2017年も残すところあと2日ですね。ボクはというと28日に仕事納めをし、これから大掃除をして、実家に帰る予定です。

年の終わりということもあり、2017年のタダケンがどうだったのかということを振り返ってみました。

転職して一年がたちました。

転職自体は2016年にしたんですが、入社日が11月15日だったこともあり、本格的に仕事をし始めたのは2017年からになります。

転職する前は正直、不安でいっぱいだったんですが、今は転職してほんとに良かったなと思っています。待遇も上がったし、裁量労働制になったので、出勤時間なども自由になったので、仕事のストレスがだいぶ減りました。このあたりは会社のマネージャさんがすごい良い人でよかったなってのも大きいです。

仕事方面では、データアナリスト兼リサーチャーということで、ゲームのログ分析をしたり、ユーザーリサーチ、市場調査なんかをやっています。仕事内容的には前職でやってきた経験や知識がそのまま活きています。

SQLを書いてデータベースからデータ取ってきて、PythonやR、エクセルで統計処理や可視化してレポートにまとめるという仕事をしています。

基本的な仕事の内容は前職とそう変わってないのですが、前職から変わったこととして、DBに入ってないようなデータも自分で取ってくることが増えました。外部のAPIからデータを取得したり、スクレイピングしてデータを取ってきています。

前職ではインフラ周りはほとんど携わってなかったのですが、最近は自由に使えるサーバーをもらったので、そこでRedashでいい感じにダッシュボードで作っています。チームのアナリストの方なども活用してくれていて嬉しい限りです。

Redashはほんと最近使い始めたばかりなのでもっともっといじり倒していきたいなと思っています。

副業を始めました

本業とは別に「いつも隣にITのお仕事」を運営するプランノーツという会社でシステム開発やブログ執筆の仕事をさせていただいています。

具体的な副業の内容については以前以下の記事にまとめました。

tadaken3.hatenablog.jp

僕の本業はアナリストであり、普段からちょっとしたコードを書いたり、社内向けのツールとか使ったりする経験はあるのですが、実際にお客さんがいるシステムの開発の経験はありませんでした。

コードを書くのはすごく好きなので、キャリアとしてはそちらの方向に進んでいきたいなと思う反面、すでにアラサーなので、未経験のままジョブチェンジするのは、色々思うところがあったところに、ちょうどプランノーツのパートナー募集のツイートを見つけて応募しました。

転職したばかりで、時間的にどれだけ貢献できるのか、本当にやっていけるのかなど、不安はあったのですが、応募して正解でした。というのも自分の中で今後のキャリアに活かせそうな様々なことを学べたからです。

プランノーツでは代表のタカハシさんの元で

  • ブログ執筆のイロハ
  • フリーランスとしての仕事の受け方(契約や受発注、見積り業務)
  • Google Apps Scriptを使っての開発業務

などを学ぶことができました。

「いつも隣にITのお仕事」のブランド力もあってこそですが、結構大きい会社さんからもシステム開発の受注があったりして、副業で確定申告が必要になるくらいは、お金をいただくことができました。

副業だったり、受託だったりするので安定的な収入ではありませんが、本業とは別にある程度まとまったお金を稼ぐことができたのは、自分としては大きな経験です。

自分が勤めている会社からの給料以外に収入があると、会社への依存度を下げることができ、いざという時にすぐに転職したりできる(と思える)ので、自分の中で自信になりました。

「会社に頼らずに生きていく術を身につける」ことを自分のテーマにしていたので、2017年はその一歩を踏み出すことができました。

ブログを本格的にスタートしました

「いつも隣にITのお仕事」であるブログ執筆のノウハウを学んだこともあり、自身のブログも作って見たいと思って6月頃からこのブログを本格的にはじめました。1

今年執筆した記事は34記事で、週1回のペースを維持するようにしています。「いつも隣にITのお仕事」に寄稿した記事は25記事だったので、このブログと合計して、59記事、執筆しました。

以下の記事ははてブもある程度してもらえて、カテゴリ別のホットエントリに入ったのがうれしかったです。ホットエントリに入ったのはじめてだったので、最初はアクセス解析ツールを仕事中もチラチラ見ていました笑

tadaken3.hatenablog.jp

tadaken3.hatenablog.jp

tadaken3.hatenablog.jp

はてブ狙いで書いているわけではないのですが、こんな形でみなさんにみていだけるのは、やっぱりうれしいです。

自分のブログでは、結構思いついたことや自分で試してみたことを興味の赴くままに書いているところもあるので、来年は一定のテーマを持って執筆をしたいなと思いつつも、あまり自分でハードルを上げすぎて、ブログ投稿を負担に思ってしまうようでもあれなので、そのあたりはバランスを見つつアウトプットを続けていこうと思っています。

とりあえず、現時点での読者登録数が76人なので、来年は100人を突破するのが目標です!いつもブログを御覧頂いている読者の皆様には、感謝しています。本当にありがとうございます。

講演・LTにはじめてチャレンジしてみました

ブログ記事やTwitterをきっかけに講演やLTをさせていだく機会がありました。

tadaken3.hatenablog.jp

tadaken3.hatenablog.jp

まだまだ技術的には未熟なこともあり、ネタ的な内容ばかりになるのですが、人前で話すことに苦手意識があったのを克服するチャンスとなりました。

また、京都から東京に引っ越してきた理由のひとつとして「勉強会やコミュニティ活動に参加したい」という思いがあったのですが、まさかこんな形になるとは想像もしてませんでした。

講演やLTをやってみて思ったのですが、ただ参加するよりも、講演・LTをするほうが圧倒的に楽しいです。他の登壇者の方や参加者の方と深くつながることができますし、「人にわかってもらおう」と意識することで、自分の中であやふやだった知識を再確認したりもできました。

また、本業で社内向けのSQL講座なんかをやってたりしたのですが、講演、LTでの経験を活かしています。

今年を振り返ってみて

2017年は、転職をきっかけに、副業やブログ、講演・LTなどを開始することができ、自分の中で、様々な「新しい一歩を踏み出す」ことができた一年だったと思います。せっかく蒔いたタネなので、ゆっくり、じっくりと育てていきたいと考えています。

また、今年できなかったこととして「自分のプロダクト・サービスをリリースする・育てる」ということがあります。CLIツールやGASのライブラリは公開はしたものの、作ってほったらかしにしてしまったので、そのあたりは改善して行ければなと思っています。一応、ほったらかしにしているものを自戒をこめて晒しておきます。

tadaken3.hatenablog.jp

tadaken3.hatenablog.jp

将来的には「自分のプロダクト・サービスで生計を立てる」ということ考えています。なので来年は「まず人に使ってもらえるプロダクト・サービスを作り上げる」を目標にして、活動していく予定です。

上記のように思ったきっかけが「週休7日で働きたい」のTAKUYAさんです。TAKUYAさんはInkdropというMarkdownエディタを開発し、その収益で生活しようと、奮闘されています。TAKUYAさんみたいな生き方がかっこいいなと憧れつつ、自分なりのやり方を模索しているところです。

学ばなければいけないこともたくさんありますが、千里の道もよちよちあるきの一歩からだと思っているので、コツコツ頑張っていきたいます!

それでは2018年もよろしくお願い致します!

読者登録をお願いします

本ブログではプログラミングについてボクが学んだことを公開しています。よろしければ読者登録していただけると更新の励みになります。ぜひ一緒にプログラミングを学びましょう。


  1. このブログ自体は2014年に開設したのですが、ブログの書き方がわからず、ずっと放置していました。

「詳解!Google Apps Script完全入門」を読めばプログラミングを習得できるのか?

f:id:tadaken3:20180325125201p:plain こんにちは!
タダケン(@tadaken3)です。

先日、「ノンプログラマーのためのスキルアップ研究会」を主催されているタカハシさん(@ntakahashi0505)から、「詳解!Google Apps Script完全入門」を献本いただきました。この場を借りてお礼を言わせていだきます。

さて、今回は書籍の内容とGAS本を使ってのおすすめの勉強法をご紹介します。

「詳解!Google Apps Script完全入門」をうまく使えば、プログラミング未経験の方でも、Google Apps Scriptを習得できるのではないかと思います。

Google Apps Scriptとは

まず、「Google Apps Scriptって何?」って方もいらっしゃる方と思いますので、簡単に説明いたします。

Google Apps Script (略称GAS)は、Googleが提供するサーバーサイドのスクリプト言語です。GASを使えば、スプレッドシートやGmail、Googleカレンダーをプログラムで操作することができます。めちゃくちゃ大雑把に言いますと、エクセルのVBA・マクロのようなものです。

例えば、

  • Googleフォームで作ったお問い合わせフォームに自動返信機能を作る
  • スプレッドシートの内容をGoogleカレンダーに一気に登録する
  • 特定の条件に合致したGmailのデータをスプレッドシートに保存して分析する

といったことができます。

GASはVBAよりもできることがむちゃくちゃ多いので、業務の効率化・自動化などにかなり役立ちます。

また、Googleのクラウドサーバー上で実行されるため、自分のPCの電源が入っていなくとも、任意タイミングで実行することもできます。例えば、特定の時間になったら、サーバ上でスクリプトを実行するといったこともできます。

サラッと書いていますが、ちゃんとやろうと思うとサーバーなどを用意したりしないといけないので、けっこう大変だったりします。

待ちに待ったGAS本の発売

そんな便利なGASなのですが、マイナー言語のため日本語の書籍はほとんど存在せず、基本的には公式ドキュメントもしくはネット上の記事を参考にするしかありませんでした。

著者のタカハシさんは「いつも隣にITのお仕事」というブログを運営されています。日夜、「IT×働き方改革」をミッションに掲げ、ITを使って仕事を効率化するためノウハウを公開しています。その中でGASの記事も公開されておりました。

ボク自身はタカハシさんが運営するブログ「いつも隣にITのお仕事」のブログ記事を参考にしながら、四苦八苦してGASを習得しました。

ある程度のプログラミング経験があれば、公式ドキュメントやWEB上の記事からGASを理解することはできるかもしれませんが、プログラミング初心者の場合はさらに大変だと思います。

そこでこの本です。

「詳解!Google Apps Script完全入門」には

  • GASのベースとなっているJavascriptの基本文法
  • クラウドサーバーで実行する上のルールや癖
  • スプレッドシートや、Gmailなどの各サービスを取り扱う上でのポイント

などがまとまっており、この本を読めば、GASの基本的な要素は、網羅できる内容になっております。

ほんとにGASを習得した時の苦労は何だったのか。もっと早く出してくれればよかったのに!と思う内容です。

「詳解!Google Apps Script完全入門」を使ったおすすめの勉強法

「詳解!Google Apps Script完全入門」はとても素晴らしい本なのですが、ひとつ書いてないことがあります。

それは

「何を作れば良いのか」

ということです。

プログラミングを勉強したことがある方はわかるかと思うのですが、基礎的な文法などを理解したあと、悩みどころがあります。

「基本はわかった!ではこのあと、何を作ったらいいのか?」

こういったことに悩んで、プログラミングを挫折してしまうケースが多いように感じますし、自分も昔そうでした。

でも安心してください!著者のタカハシさんが運営する「いつも隣にITのお仕事」には沢山のレシピが公開されています。

こういったレシピを参考に、自分が作りたいものを作りながら、わからないところや自分なりに改良したい部分を本を参考して学習してくのが効率的です。

動くものが作れると学習のモチベーションにつながります。小さいスクリプトでも試しに作ってみると色々と改良したいところが出てきます。

そこで本を読みながら、自分なり改良してみます。最初はちょっとしたものしか作れないかもしれませんが、コツコツ続けていくと、ちょっと大きめのシステムが作れるようなっていきます。

ボクはこのように学習を進めながら、プログラミングを習得してきました。

「詳解!Google Apps Script完全入門」と「いつも隣にITのお仕事」はこうしたプログラミング学習の最初の一歩を踏み出すにはとても最適なコンテンツだと思います。

とくに年末年始はまとまった時間が取れると思いますので、プログラミングを習得するには最適です。ぜひ年末年始は「詳解!Google Apps Script完全入門」を読んで、GASの勉強をしてみてはいかがでしょうか。

詳解! GoogleAppsScript完全入門 ~GoogleApps & G Suiteの最新プログラミングガイド~

詳解! GoogleAppsScript完全入門 ~GoogleApps & G Suiteの最新プログラミングガイド~

読者登録をお願いします!

本ブログでは、Google Apps Scriptやプログラミングに関する記事を公開しています。(ときどき、それ以外のことも)読者登録してもらうと更新の励みになります。ぜひ一緒にプログラミングを学びましょう。

「Digdag」を使って依存関係のあるタスクをコードベースで管理する

f:id:tadaken3:20171219003555p:plain こんにちは!
タダケン(@tadaken3)です。

会社で使っている分析基盤に、Digdagというワークフローエンジンを導入しました。digdagはとても魅力的なツールで、ぜひより多くの人にも使ってほしいなと思い、Digdagの導入方法をまとめてみました。

ところで、ボクはディグダといえば、ポケモンを思い出します。

Digdagとは

Digdagは複雑なタスクを実行するためのTresure Dataが開発したOSSのワークフローエンジンです。

例えば、

  • 外部APIからデータを取得する
  • 取得したデータを成形する
  • データをデータベースにインサートする

みたいな処理を順番に実行したいとします。

cronで実行することもできますが、何らかの理由でAPIからデータ取得に時間がかかったりした場合、その後の処理がエラーとなってしまいます。

ワークフローエンジンを使えば、タスクの依存関係も含めて管理するとことがでますし、エラーが発生した場合に、リトライをしたり、通知を送ったりすることができます。

類似のツールとしてAirflow、Luigiなどがあります。Digdagは、ワークフローを「*.dig」というファイルに記述していくのですが、他のツールと比較して、ワークフローの内容をシンプルに記述できる点がわかりやすくて良いなと感じ導入しました。

シンプルなツールですが、スケジュール機能、WEB上でモニタリング画面なども提供されています。詳しい内容は開発者の以下のスライドをご覧ください。

www.slideshare.net

Digdagをインストールする

centOS 7.4で試しています。digdagを動かすためには、Java 8(8u72) 以上が必要になります。基本的に公式のチュートリアル通りにインストールすれば、オッケーです。

$ curl -o ~/bin/digdag --create-dirs -L "https://dl.digdag.io/digdag-latest"
$ chmod +x ~/bin/digdag
$ echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc

念のため、きちんとインストールできたか、確認します。

$ digdag --version

digファイルを作成してワークフローを記述する

digdag initでプロジェクトファイルが作成されます。コマンドを実行してみます。

$ digdag init project-name

porject-nameディレクトリの配下にproject-name.digというファイルが作られます。

$ cd project-name
$ ls
project-name.dig

このdigファイルにワークフローを記述していきます。フォーマットはYAML拡張です。 このような感じで記述してきます。

timezone: Asia/Tokyo # Timezoneの設定

schedule: #スジェジュールを記載します。この場合、毎日7時に実行されます。
  daily>: 07:00:00 

+step1: #タスク1 (+がタスクを表します)
  sh>:echo "start task1 ${session_time}"
  
+step2: #タスク2
  sh> : ./src/sample_script.sh #シェルスクリプトも実行できます。
  _error: #タスクが失敗したときの処理も記述できます。
     echo>: echo "failure!"
     sh>: ./src/error_notify.sh #

少し話がそれますが、ボクはSlackやLINEなどに通知をするためのシェルスクリプトを作って、エラー時に通知するようにしています。

とくにLINE Notifyはトークンを用意するだけで簡単に通知が送れるので、色々試しているときは、LINE Notifyを重宝しています。

LINE Notifyの詳細については、以下の記事を参考にしてみてください。

コマンドラインから LINE にメッセージを送れる LINE Notify : LINE Engineering Blog

ワークフローを実行する

digファイルの記述ができたら、ワークフローを実行します。まずは手動で実行できるか試してみましょう。以下のコマンドで、ワークフローを手動で実行できます。

$ digdag run project-name.dig

ワークフローを定期実行するには、schedulerを起動します。以下のコマンドを実行すると、先程のdigファイルがschedulerに登録されます。設定されたタスクが毎日7字に実行されるようになります。

$ digdag sched

digファイルを更新すると、scheduler1にも自動で反映されます。

まとめ

駆け足でありましたが、digdagの使い方をまとめてみました。digdagを使うとタスクの依存関係などをコードベースでかつ簡単に管理できるようになります。

digファイルを記述していくだけでいいので、覚えることも少なくて、そのあたりがとても魅力的だなと思います。

cronで消耗している方は、ぜひ試してみてはいかがでしょうか。

参考URL

読者登録をお願いします!

本ブログでは、副業やプログラミングに関する記事を公開しています。(ときどき、それ以外のことも)読者登録してもらうと更新の励みになります。ぜひ一緒にプログラミングを学びましょう。


  1. Digdagには3つのモードがあります。ローカルモード、サーバーモード、クライアントモードです。今回はお試しということで、ローカルモードのスケジューラーの機能を利用していますが、本格的に利用するのであれば、サーバーモードを使った方が良いようです。digファイルはそのまま流用できます。

【書評】「Webサービスのつくり方」を読めば、きっとものづくりがしたくなる!

f:id:tadaken3:20180325115650p:plain こんにちは!
タダケン(@tadaken3)です。

ちょっと古い本なのですが、今日は「Webサービスのつくり方」のご紹介をしたいと思います。

「Webサービスのつくり方」の概要

著者は「ボケて」や「君のラジオ」といったWebサービス・アプリを開発してきたゆーすけべーさん

本書ではWebサービスづくりにおける「心構え」「下準備」「企画」「設計」「開発」「プロモーション」「運用」という各過程を、丁寧にそして楽しく解説されています。本書を読めば、Webサービス制作の全体像を俯瞰することができます。また、エッセイ形式なので、どこから読んでもOKな構成です。

Perl好きな著者によって書かれた本のためサンプルコードは基本Perlです。とくに難しいコードではないので、他の言語の知識があれば、基本的に理解できると思います。

「Webサービスのつくり方」を読んで感じたこと

著書自体は2012年に発刊されているので、今となっては古くなっているところもあるのですが、Webサービスやアプリを開発する上で、学びがたくさんあります。

この本が好きな理由は、本を読むと「何か作りたい」という気持ちになりことです。

「何かを作りたい」という気持ちはプログラミングを学習する上での強いモチベーションに繋がりますし、やはりものづくりは楽しいです。とくに気分が乗らないときは、この本を読んでテンションを上げています。

一般的な技術書では「どう作るのか」の部分が中心になっていますが、本書は「何を作るのか」という点にフォーカスが当てられています。プログラミングの書籍や技術ブログを読んでもみえてこない「どんなサービスを作るのか?学んだ技術でどうやってサービスやアプリをつくるのか?」という部分が具体的に勉強できます。

基本エッセイなので、サラッと読めるところも気に入っています。これが読み返したりするのにちょうどいいのかもしれません。

また、この本の良いところとして、開発以外の工程について、きちんと触れているところです。とくに開発した後の「プロモーション」「運用」の部分はWebサービスを作って終わりにせず、きちんと育ていくために重要な要素です。

プレリリースをする方法やWebサービスを運用しているサーバー監視方法まで触れられています。(ただし、紹介されている監視ソフトやサービスなどはさすがに古くなっています)

最後に

個人的に日記アプリを作りたいと考えて企画を考えているところです。そんなときふと思い出して読み返してみて、やっぱり良い本だなと感じたので、紹介してみました。

日記アプリの企画も本書を参考にしながら、ブラッシュアップしていきたいと思います。

読者登録をお願いします!

本ブログではGoogle Apps Script、Pythonの役立つテクニックを公開しています。よろしければ、本ブログの読者もしくはTwitterアカウントのフォロワーになっていただけると更新の励みになります。ぜひ一緒にプログラミングを学びましょう。

Webサービスのつくり方 ~「新しい」を生み出すための33のエッセイ (Software Design plus)

Webサービスのつくり方 ~「新しい」を生み出すための33のエッセイ (Software Design plus)

【書評】「プログラマのためのGoogle Cloud Platform入門」で手を動かしながらインフラ構築を学ぶ

f:id:tadaken3:20180325120101p:plain こんにちは
タダケン(@tadaken3)です。

あなたは、プログラミングを学んでいて、自分でWEBサービスを作ってみたいと考えたことはありませんか?

自分のPC上で動かすようなちょっとしたプログラムを書けるようになってくると、今後はWEBサービスを作ってみたいという気持ちがふつふつと湧いてくることかと思います。

WEBサービスを作って公開するためには、プログラミングの知識はもちろん、ネットワークやサーバーなどのインフラを設計・構築・運用する知識が必要になってきます。

インフラ構築の基礎知識と今流行りのGoogle Cloud Platformの使い方を「プログラマのためのGoogle Cloud Platform入門」で学ぶことができます。

Google Cloud Platfromとは

Google がクラウド上で提供するサービス群の総称で、Google 社内で使われているものと同じテクノロジーを使って、インフラを構築ができます。Google Cloud Platfromは略してGCPと呼ばれます。

すごい!!

類似のサービスとしてはAmazon Web Servise(AWS)というのがあります。

Google Cloud Platfromは基本的に使う分だけお金がかかる仕組みになっています。ただし、12ヶ月間の無料クレジット枠300ドル(約30,000円分)があるので、最初の一年は基本的に無料でお試しすることができます。仮に無料枠を使い切っても、勝手に課金されるということありません。

またある程度の制限はありますが、ずっと無料で使えるサービスもあります。

例えば、Google Computer Engineというサービスを使って、無料でちょっとしたサーバーを立てることもできます。

GCEのf1-microインスタンスなどが無期限無料で使えるらしい - 覚書

インフラ構築の基本に踏みこんで解説されているので3年後もきっと役立つ

GCPには色々なサービスがあります。

  • Google Computer Engine
  • Goolgle Big Query
  • Cloud Load Balancing

なんでこんな沢山のサービスが有るかというとインフラにもいろいろな役割があるからです。

例えば

  • クライアントのやりとりをするWEBサーバー
  • 永続的にデータを保存するデータベースサーバー
  • 負荷を分散するためのロードバランサー

などがあります。こういったインフラ技術の基礎知識をGCPを通して学んでいくことができます。

インフラ技術のトレンドを追いかける

もちろんGCPは最新のクラウドサービスなので、基本的な内容だけにとどまりません。

本書ではざっくり

「WEBアプリケーション基本」
      ↓
「スケーラブルなWEBシステムの構築」
      ↓
「コンテナ実行環境を使ったインフラ構築の自動化」

といった形で、インフラ構築の流れを学んでいきます。

最終的には、機械学習を用いたGAEアプリケーションを構築するところまで体験できます。

終わりに

インフラの知識とGCPがあれば、ひとりでWEBサービスを立ち上げることもできるようになります!

今年の年末は、「プログラマのためのGoogle Cloud Platform入門」を読んで、手を動かしながらインフラ構築とGCPの知識を深めてみてはいかがでしょうか。

プログラマのためのGoogle Cloud Platform入門 サービスの全体像からクラウドネイティブアプリケーション構築まで

プログラマのためのGoogle Cloud Platform入門 サービスの全体像からクラウドネイティブアプリケーション構築まで

読者登録をお願いします!

本ブログではGoogle Apps Scriptの役立つテクニックを公開しています。本ブログの読者もしくはTwitterアカウントのフォロワーになっていただけると更新の励みになります。ぜひ一緒にプログラミングを学びましょう。

「酔いどれGCPUG」でGoogle Data Studioの話をさせていただきました!

f:id:tadaken3:20180823232903p:plain こんにちは
タダケン(@tadaken3)です。

11月28日にGoogle Cloud PlatformのUser Group(略してGCPUG)の酔いどれGCPUGにて、『Google Data Studioでイカしたダッシュボードを作る』という内容でLTさせていただきました。

今回はクラウドエースの平戸さんよりお声掛けいただき、発表の場をいただきました。

LT時の様子はこちら。

f:id:tadaken3:20171129204514j:plain

GCPUG(ジーシーパグ)とは

GCPUG(ジーシーパグ)はGoogle Cloud Platformを普及させることを目的とし、Googleと共にGCPをより良くし、盛り上げていくユーザーグループです。私たちに共感していただける方なら、GCPUGへの参加は自由です。一緒に GCP を盛り上げていきましょう。 Google Cloud Platform User Group

Google Cloud Platformをヘヴィーに扱っている方から初心者の方まで集まってワイワイやっている会です。今回の酔いどれと銘打っていることもあり、序盤からお酒が振る舞われての勉強会でした。サイコーですね。

発表内容について

ボクは『Google Data Studioでイカしたダッシュボードを作る』という内容で登壇させていただきました。

もともと「いつも隣にITのお仕事」でGoogle Data Studioの記事を書いていたので、その中から内容を抜粋して発表しました。

圧倒的に見やすいダッシュボードを作成できる「Google Data Studio」が熱すぎるtonari-it.com

Google Data Studioについてはこんな記事も書いてます。

Twitterでの反応

若干のネタ被りやマシントラブルで途中スライドが映らない事故もありましたしたが、いくつか肯定的なコメントをいただけて良かったです!

GCPUGに参加した感想

初参加なのにいきなりLTをするという強硬手段に及んだにもかかわらず、皆さん暖かく迎えてくださって、ほんとうに感謝です。酔ってたけど。

個人的には@yutah_3さんの発表されていたApache Airflowの話はとても勉強になりました。さすがGoogleの中の人。

ほかにも

など興味深いお話がたくさんありました。

自分もGCPガンガン使っていきたいなという気持ちになりました。

おまけ

二次会の抽選会でGoogle Cloud PlatformのTシャツとハンドスピナーをいただきました!

f:id:tadaken3:20171129203614j:plainf:id:tadaken3:20171129203537j:plain
自宅で適当に撮ったのでちょっとしわしわ

読者登録をお願いします!

本ブログではプログラミング・データ分析の役立つテクニックを公開しています。本ブログの読者もしくはTwitterアカウントのフォロワーになっていただけると更新の励みになります。ぜひ一緒にプログラミングを学びましょう。

匠メソッドで学ぶ『価値』から考える企画のまとめ方

f:id:tadaken3:20180325122442p:plain こんにちは!
タダケン(@tadaken3)です。

先日、匠メソッドを学ぶための匠塾に参加してきました。匠塾とは毎月開催されている招待制の匠メソッドを学ぶ会です。株式会社アクティアCOO 高崎健太郎さんを塾長とする有志によって開催されています。

匠メソッドとは

匠メソッドとは何なのでしょうか。匠メソッドを開発した「株式会社匠BusinessPlace」のサイトより引用します。

特徴は価値から戦略・業務を見ていくことです。 戦略立案の手法は他にも多くありますが、戦略が絵に描いた餅になったり、他から持ってきたもので現場に浸透しなかったりしがちです。 匠Methodはこういったビジネス企画における問題を価値の視点でまとめ上げ、組織全体が一体となって推進していける戦略・業務をデザインすることができる唯一の手法です。 匠Method | 匠Methodとは

一言で表すと「まず提供する価値をしっかり決めてから、ビジネスモデルや要件定義をする」というメソッドです。

匠メソッドをしったきっかけ

個人で何かを開発したいなと考えていました。 WEBサービスなのか、アプリなのかといったことをぼんやりと考えているときに以下のスライドを拝見しました。

www.slideshare.net

株式会社ビープラウドの佐藤社長のスライドです。ビープラウドでは、

  • イベント・勉強会支援サイト「Compass
  • WEBブラウザーでプログラミングを学ぶオンライン学習サービス「PyQ(パイキュー)

のサービスを提供されています。これらCompassやPyQも匠メソッドを導入して開発がされており、興味を持ちました。

価値デザインモデルと価値分析モデル

今回は初めての参加ということもあり、初心者チームに参加させていただきました。

匠塾で実施される「12月のLT大会の企画」というテーマで匠メソッドを体験します。

匠メソッドではいくつかのモデルを作ります。アイデアを出しながら、モデルを作成していきます。複数のモデルを組み合わせて企画全体を俯瞰していきます。

今回のチームでは

  • 価値デザインモデル ・・・ビジョン、コンセプトを考えながら価値を表現していく
  • 価値分析モデル・・・ステークホルダーのそれぞれの価値を分析する

の2つを体験しました。

実際には付箋を使って、他の参加者の方と企画をまとめていきます。

f:id:tadaken3:20171116094349j:plain

最後に

匠メソッドを学びつつ、自身でも価値あるサービスを提供できるように前に進んでいきたいと思います。匠メソッドはとても学びが多く、懐が深いので、ご興味のある方はこちらの書籍を読んでみてはいかがでしょうか。

匠Method: 〜新たな価値観でプロジェクトをデザインするために〜

匠Method: 〜新たな価値観でプロジェクトをデザインするために〜

読者登録をお願いします!

本ブログではプログラミングや仕事効率化に関する情報を公開しています。よろしければ、ブログの読者登録もしくはTwitterアカウントをフォローしていただけると更新の励みになります。ぜひ一緒にプログラミングを学びましょう。

Google Apps ScriptのコードをGithubで管理できる「Google Apps Script Github アシスタント」が便利すぎる

f:id:tadaken3:20171110121704p:plain

こんにちは!
タダケン(@tadaken3)です。

Google Apps Scriptのコードを書いていて、ちょっと困るのがコードのバージョン管理です。

Google Apps Scriptはブラウザで開発していくことになり、ソースコードのバージョン管理ができません。とくに複数人で開発しているときなんかは、誰がどのように編集をしたのかわからず、何が最新版なのかわからなくなってしまいます。ソースコードを管理できないと心細いです。

そこでGASのコードをGithub上で管理できるChrome拡張の「Google Apps Script Github アシスタント」をご紹介します。「Google Apps Script Github アシスタント」を使うとGASのコードを手軽にGithubで管理できます。

「Google Apps Script Github アシスタント」を導入する

「Google Apps Script Github アシスタント」はChrome拡張です。 以下からChromeウェブストアにアクセスし、Chromeに追加ボタンを押すと簡単に追加できます。

chrome.google.com

Google Apps ScriptのIDEを開くと「Github アシスタント」のメニューが追加されます。 まずはGithubとの認証を行うため「Login SCM」を選択します。

f:id:tadaken3:20171110115255p:plain

GithubのID、パスワードを入力する画面がでてきますのでアカウント情報を入力します。

f:id:tadaken3:20171110114725p:plain

これで設定は完了です。簡単ですね。

リポジトリにコードをPushしてみる

Githubではリポジトリという単位でコードを管理します。

「Repository」を選択すると、リポジトリ一覧がプルダウンで選択できます。Gistや新しいリポジトリを作成することもできます。今回は新たにリポジトリを作成してみようと思うので「Create new repo」を選択します。

f:id:tadaken3:20171110114854p:plain

リポジトリの設定を入力する画面が出できます。リポジトリ名などを入力して、「Create」ボタンをクリックするとリポジトリが作成されます。

Githubのサイトにアクセスすると、リポジトリが作られてたことが確認できます。

リポジトリにコードをアップすることをPushといいます。早速ソースコードをPushしてみましょう。Pushするのも簡単でコードを書いた後に「Push」ボタンを押すだけです。

f:id:tadaken3:20171110125422p:plain

すると、追加されたコードのDiffとコミットメッセージが入力する画面がでてきます。コミットメッセージを入力して、Pushすると完了です。

f:id:tadaken3:20171110114938p:plain

Githubのサイトで確認するとgas-github-sampleというリポジトリに「コード.gs」が追加されました。

f:id:tadaken3:20171110115407p:plain

いや、本当に簡単ですね。

リポジトリからコードをPullして最新のコードを取得する

Github上の最新のコードを取得することをPullと言います。続いて、Pullしてコードを取得してみましょう。

Githubのサイト上で、先程のgsファイルを以下のように編集します。

  • ファイル名をコード.gsからmain.gsに変更
  • Logger.logの中身を”Hello Google Apps Script”から”Edit Github”に変更

f:id:tadaken3:20171110115450p:plain

では、Google Apps ScriptのIDEに戻ってPullできるか試してみます。 メニューバーにあるPullボタンを押します。

f:id:tadaken3:20171110125438p:plain

すると、Diffが表示されました。

f:id:tadaken3:20171110115535p:plain

そのままPullボタンを押すと、Google Apps Scriptのコードが最新の状態に変更されました。

f:id:tadaken3:20171110115548p:plain

まとめ

今回は「Google Apps Script Githubアシスタント」を使って

  • ソースコードをGithub上のリポジトリにPushする方法
  • Github上にある最新のコードをPullして取得する方法

をご紹介しました。

Githubアシスタントを使えば、Google Apps ScriptのコードをGithubで管理する事ができます。 Githubアシスタントブランチを切って管理することも可能なので、追加機能を実装するときも安心して開発できますね。

読者登録をお願い致します!

本ブログではGoogle Apps Script、Pythonの役立つテクニックを公開しています。よろしければ、本ブログの読者もしくはTwitterアカウントのフォロワーになっていただけると更新の励みになります。ぜひ一緒にプログラミングを学びましょう。

参考サイト

開発者のleonhartXさんによる解説記事
手軽にGoogle Apps ScriptのコードをGithubで管理する | Recruit Jobs TECHBLOG

Githubアシスタントのソースコード
GitHub - leonhartX/gas-github: sync gas code to github

詳解! GoogleAppsScript完全入門 ~GoogleApps & G Suiteの最新プログラミングガイド~

詳解! GoogleAppsScript完全入門 ~GoogleApps & G Suiteの最新プログラミングガイド~

Gaiaxさん主催の『Google Apps Script 活用ミートアップ』に登壇しました!

f:id:tadaken3:20180325120149p:plain こんにちは
タダケン(@tadaken3)です。

10月31日にGaiax さん主催のGoogle Apps Script 活用ミートアップにて、『Google Apps Scriptで三日坊主を克服する』という内容で登壇させていただきました。

登壇時の様子はこちら。なんか変にハニかんでますね。

f:id:tadaken3:20171101222414j:plain

Google Apps Script 活用ミートアップのに参加させていただき、たくさんの学びを得ることができました。簡単にレポートします。

Google Apps Script 活用ミートアップとは

多くの企業が活用しはじめている Google の G Suite(Google Apps)。そんな G Suite を拡張するスクリプト言語 Google Apps Script の活用事例をご 紹介! 【エンジニア交流会】Google Apps Script 活用ミートアップ - connpass

Google Apps Scriptの活用している企業が集まって、活用事例を紹介し意見交換をする場です。 企業とあるのですが、ボクは個人として参加させていただきました。

主催のGaiaxさんのオフィスがむちゃくちゃオシャレでどこぞのバーにいるかと錯覚しました。 実際にバーカウンターも設置されており、参加者にお酒も振る舞われていました。(写真をとっておくのを忘れました)

発表内容について

ボクは『Google Apps Scriptで三日坊主を克服する』という内容で登壇させていただきました。

Google Apps ScriptとLINE notify、IFTTTを組み合わせた仕組みづくりの話です。ジムに行った日から3日経過したら、LINEに通知がくるという内容を紹介させていただきました。

もともと、ブログにまとめていた内容を発表させていただいた形です。ですので、詳しい実装方法はこちらをご覧ください。

tadaken3.hatenablog.jp

当日の様子

昨日は、他にも

  • 新入社員が配属されたときに必要なWEBサービスのアカウント作成業務をGoogle Apps Script で効率化した事例
  • Google Search APIを使って、ちょっとした業務ツールを作る話
  • Twitterのエゴサーチを自動化する話
  • 非エンジニアの方がGoogle Apps Scriptにチャレンジしたエピソード

などの事例やエピソードをお聞きすることができました。

他の登壇者の方の発表内容はGaiaxさんのブログにアップされていますので、ご興味のある方はこちらもご覧になってみてください。

gaiax.hatenablog.com

また、登壇や質疑応答などで

  • コードの管理をどうするか
  • エクセルとスプレッドシートの住み分け

あたりが課題感としてあがっていました。とくにGoogle Apps ScriptはGitなどでバージョン管理するには若干手間なので、このあたりは今後、Googleがなにかソリューションを提供してほしいなと思います。

近い将来Google Cloud Source Repositoriesでうまく管理できるようになるのではないかなと予想しています。と思ったらGithubで管理できるツールがありました。素敵ですね。

tadaken3.hatenablog.jp

登壇を終えて

この手のイベントで登壇させていただくのははじめてだったので、えらく緊張しました。 個人での参加者はボクだけだと予想したので、真面目すぎず、個人でも活用できる話の内容を選びました。 若干ネタに走りましたが、うまく笑いが取れてよかったです。

参加してみて、本当に楽しいイベントでしたし、色んな人交流できてほんとうに勉強になりました。 お酒を飲みながらワイワイできて、本当に楽しい時間を過ごせました。

また、個人での参加にも関わらず、暖かく迎えてくださったGaiaxの皆さんにはほんとうに感謝です! この場を借りて、お礼をいわせていただきます。

今後もぜひ積極的にイベントにチャンレンジしていきたいです。

読者登録をお願いします!

本ブログではGoogle Apps Scriptの役立つテクニックを公開しています。本ブログの読者もしくはTwitterアカウントのフォロワーになっていただけると更新の励みになります。ぜひ一緒にプログラミングを学びましょう。