月: 2018年4月

  • GASの制限事項

    GASは、Googleのサーバ上で実行されるため(クラウド上で実行されるため)、一部のユーザによって過負荷をかけられないようにスクリプトの実行に際して制限がある。

    スクリプトの実行時間やメールの受信者数、カスタム関数実行時間などを制限するハード制限。スクリプトの実行中に制限を超えると、スクリプトはエラーで終了する。

    ドキュメントの作成やカレンダーイベント作成など、一日あたりの実行回数を制限する容量制限。容量制限は、ユーザーごとにカウントされており、太平洋標準時(PST)の0時にリセットされる。だいたい日本だと、16時か17時で、サマータイムなどで変わる。

    ハード制限の例

    • スクリプト実行時間: 1回あたり6分
    • カスタム関数実行時間: 1回あたり30秒
    • メールの受信者件数: 1メッセージあたり、50件

    容量制限の例

    • カレンダーイベント作成数: 1日あたり、10,000件
    • ドキュメント作成数: 1日あたり、1,500件
    • JDBC接続: 1日あたり、50,000件

    GASの制限が書かれたページ

    https://developers.google.com/apps-script/guides/services/quotas

  • GASのスクリプトとスクリプトエディタ

    GASのスクリプトは、プロジェクトという単位で構成される。GASのスクリプトの拡張子は「.gs」。プロジェクトには、今のところ、GASスクリプトファイルとHTMLファイルのみ含めることができる。

    GASのプロジェクトは、「スタンドアロンスクリプト」と「コンテナバインドスクリプト」の2種類がある。「スタンドアロンスクリプト」は、Googleドライブにプロジェクトファイル自体を保存する。一方「コンテナバインドスクリプト」は、スプレッドシートやフォームなどに紐づき、それぞれのアプリ上から作成する。

    イメージとしては、「コンテナバインドスクリプト」は、ExcelなどのVBAみたいな感じである。

    スクリプトエディタの開き方

    スタンドアロンスクリプト

    1. Google ドライブを開く
    2. 「新規」→「その他」→「アプリを追加」を選択する
    3. ダイアログの中から、「Google Apps Script」を探し、「+接続」をクリックする 「アプリを追加」の作業は一度だけでよい。
    4. 「新規」→「その他」→「Google Apps Script」を選択する
    5. スクリプトエディタが開く。

    コンテナバインドスクリプト

    (スプレッドシートの例)

    1. スプレッドシートを開く
    2. 「ツール」→「スクリプトエディタ」を選択する
    3. スクリプトエディタが開く
  • GASのスクリプトエディタのデバック機能

    GASのスクリプトエディタにも、デバック実行と、ブレークポイント設置ができるデバック機能がついている。

    ブレークポイント

    ブレークポイントは、スクリプトエディタのスクリプト部分のライン表示の数字の横をクリックするとブレークポイントを設置できる。ブレークポイントが設置されると、ライン表示の横に赤い丸がつく。

    ブレークポイントを外すときは、ブレークポイントの丸をクリックする。これで、ライン表示から丸が消える。

    デバック実行

    GASのスクリプトエディタの下にあるツールバーにある「虫マーク」をクリックすると、デバック実行になる。ブレークポイントが設置されているときは、ブレークポイントで、止まる。デバック中は、さまざまな値や状態がスクリプトエディタ上に表示される。

  • GASでログを出力する

    スクリプトの動作確認のために、ログ出力機能がある。

    Logger.log() を使うことで、GASでログを出力することができる。

    function myFunction() {
      Logger.log('write log'); // ログに出力される
    }
    

    出力されているログは、スクリプトエディタで、「メニュー」→「表示」→「ログ」で表示するか、「Ctrl」+「Enter」(Macは「リンゴ」+「Enter」)でログが表示される。

    なお、Loggerクラスは、GASのBASEサービス。

  • GASとは何か?

    GASは、Google Apps Scriptの略で、Googleが提供するGoogle Apps(G Suits)で使用できるJava Scriptベースのプログラミング言語。

    GASは、Java Scriptをベースにしているが、一般的に使われるJava Scriptと同じではない。Java Scriptの基本部分である基本構文、制御構文、演算子、関数、組み込みオブジェクトのみが対象となる。これらに加えて、Google Appsを操作するための拡張機能で構成される。

    ベースに使用しているJava Scriptは、ECMAScriptではなく、JavaScript1.6~1.8の機能。そのため、新しいバージョンで追加された機能はGASでは使用できない可能性がある。

    なお、GASは、Googleのサーバ上で実行され、実行環境もGoogleの環境に依存する。

  • Windows Server で同時にオープンできるセッション数を増やす

    Windows Serverでオープンできるセッション数が足りなかったときに、オープンできるセッション数を増やす方法。

    ■コマンド

    netsh int ipv4 set dynamicport tcp start=XXXX num=range

    ■MAXまで広げる場合

    netsh int ipv4 set dynamicport tcp start=1025 num=64511

    startは、ウェルノウンポートの後のである「1025番」を指定。

    numは、65535から、ウェルノウンポートの1024を引いた64511。

    なお、デフォルトで動的ポートの開始である49152番は、自由に割り当て可能なポート範囲として規定されているポートの開始番号。

  • Windows Server でオープンできるセッション数の調べ方(クライアントも可)

    Windows Serverでオープンできるセッション数の調査は、コマンドで行う。

    調査コマンド:

    netsh int ipv4 show dynamicport tcp

    IPv6を調査するときは、「ipv4」の部分を「ipv6」に変更する。UDPを調べるときは、「tcp」の部分を「udp」に変更する。

    なお、Windows Server 2003以前のサーバは、レジストリ値を参照して調べる。

    C:\Users\hoge>netsh int ipv4 show dynamicport tcp
    
    プロトコル tcp の動的ポートの範囲
    ---------------------------------
    開始ポート      : 49152
    ポート数        : 16384
    
    
    C:\Users\hoge>
    C:\Users\hoge>netsh int ipv4 show dynamicport udp
    
    プロトコル udp の動的ポートの範囲
    ---------------------------------
    開始ポート      : 49152
    ポート数        : 16384
    
    
    C:\Users\hoge>
    C:\Users\hoge>netsh int ipv6 show dynamicport udp
    
    プロトコル udp の動的ポートの範囲
    ---------------------------------
    開始ポート      : 49152
    ポート数        : 16384
    
    
    C:\Users\hoge>
    C:\Users\hoge>netsh int ipv6 show dynamicport tcp
    
    プロトコル tcp の動的ポートの範囲
    ---------------------------------
    開始ポート      : 49152
    ポート数        : 16384
    
    
    C:\Users\hoge>
    

    参考; https://docs.microsoft.com/en-us/biztalk/technical-guides/settings-that-can-be-modified-to-improve-network-performance?redirectedfrom=MSDN

  • スネーク記法

    単語を連結する際に、アンダースコア(_)、アンダーバーで連結して書くことを「スネーク記法」という。変数や定数を作るときに、_でつなげるアレにスネーク記法という名前があったとは・・・。キャメル記法は知っていたけれど、アレにもスネーク記法という名前があった。

  • 「NTTグループ3社が海賊版サイトをブロッキング」を考える

    NTTグループ3社(NTTコミュニケーションズ、NTTドコモ、NTTぷらら)が、「漫画村」「Anitube」「Miomio」および類似するサイトへのブロッキングを発表した。

    itmediaの記事。
    http://www.itmedia.co.jp/news/articles/1804/23/news103.html

    NTTコミュニケーションズのプレスリリース
    https://www.ntt.com/about-us/press-releases/news/article/2018/0423.html

    ブロッキングの手法は、DNSブロッキングを行うという。これは、政府が方針を決めるまでの一時的な措置だともいう。なんというか「なお、政府において、可及的速やかに法制度を整備していただきたいと考えています。」とプレスリリースに書いてある。

    この問題を考えて見ると、政府が方針を決めていないのに、ISPがブロッキングするという状況だ。政府の動きを忖度して、先回りという悪い動きでもあるし、ISPがコンテンツの検閲をして、コンテンツを止めているともいえる。プロバイダが、自分の管理下にある違法コンテンツを削除するならばまだしも、他のサイトへの通信をブロッキングするというのは検閲じゃないか。通信事業者がこれをやるのはいかがなものか。しかも、現状、これをやるのがNTT系の3社。独立しているけれど、政府の子飼いとも言うべき行動。どうなのよ、これ。

    日本は、どこへ向かうのだろう?某国のように、グレートファイアウォールを作って、鎖国をできるようにしたいのだろうか。こっそりと裏で傍受でもなく、どうどうと止めるとは。そのうち、言論統制とか作品検閲とか始まったらどうしよう。頭に浮かぶのは、図書館戦争。政府とNTT系3社と、他のISPの動向が気になる。

    あと、これを気に、またアングラサイトとか、偽装化が流行るようになるのだろうか。ふと頭に「うめーこのみかん」とか思い浮かんだ。普通に考えれば、ダークウェブに進むのだろうけれど。

  • EXレイドでミュウツーとバトル!

    PokemonGoのEXレイドの招待券が届き、ミュウツーと戦って来た。(赤坂のマクドナルド。前回のときは招待券がもらえず。。。)

    EXレイド ミュウツー

    初のEXレイドだけれど、画面の表示上は普通の黒い卵だった。プレイヤーの上限も20人でのレイドバトルなので、通常と同じ。バトル中のCP値も他の伝説ポケモンと、ほぼ変わらず4万台。さすがにプレイヤーが20人もいると、さくさくとバトルは進み、楽にミュウツーを討伐できた。

    ミュウツー

    ゲット画面になったけれど、なかなかの暴れっぷり。そして、他の伝説ポケモンと同じく、CPはしぼみ、2226になった。ここから育てるのか、考えるとアメの工面が大変。だけど、先に捕まえないことには始まらないので、金のズリのみを惜しまずに与えて、ボールを投げるタイミングを見計らう。

    ミュウツーをゲット

    ボールもギリギリのところで、なんとかミュウツーがボールに収まり、ゲット完了!うれしい!海外限定を除けば、カントー地方のポケモンコンプリートもあと少しだ。次は、ミュウを目指して頑張ろう。