カテゴリー: 技術系

  • JSON型のテキストをJSONのオブジェクトにする

    JSON形式のテキストをJSONとして扱うには、テキストをJSONオブジェクトに変換(パース)する必要がある。 JSON.parse() 関数を使用して、JSON形式のテキストをJSONオブジェクトに変換する。 これを行うことで、JSONを扱う関数などにJSONデータとして、値を渡すことできるようになる。(Hangouts Chatへの応答はJSONでデータを作って返す必要があり、それを関数などで作ろうとするとJSONオブジェクトにパースする場面がでた)

    var jsonObj = JSON.parse(JSON形式のテキスト);

    例) Chat Bot用に実際にJSON形式のテキストをつくり、JSONオブジェクトにする

    // JSON形式のテキストを作る
    var jsonText = "";
    jsonText += '{';
    jsonText += '"header": {\n';
    jsonText += '"title": "タイトル", \n';
    jsonText += '"subtitle": "サブタイトル"\n';
    jsonText += '}\n';
    jsonText += '}\n';
     
    // JSON形式のテキストを、JSONオブジェクトに変換する
    var jsonObj = JSON.parse(jsonText);
     
    
  • Chat Botのカード内のテキストフィールドで使えるタグ

    Hangouts Chatのチャットボットのカードのテキストフィールドで使えるタグ。

    太字 Bold            
    斜体 Italic    
    下線 Underline            
    取り消し線 Strikethrough    
    フォントカラー Font Color            
    リンク Hyperlink    
    改行 Line Break    

    参考: https://developers.google.com/hangouts/chat/reference/message-formats/cards

  • GASの関数は引数の型により値渡しと参照渡しが決まる

    以下のように、関数に引数を渡す場合、引数hogeの型によって、値渡しか、参照渡しかが決まる。

    function func1(引数) {
      。。。。
    }
    

    引数が、数値、文字列、真偽値の場合は、値渡し(値を複製して、関数に渡す)。

    引数が、オブジェクト、配列の場合は、参照渡し(引数に指定したものが、書き変わる)。

    ※これは、GASの特性ではなく、JavaScriptの仕様。

  • SSL証明書のDV、OV、EV。

    SSL証明書の種類で、DV認証、OV認証、EV認証があるが、これが何の略なのか気になった。
    調べたので、メモとして残す。

    DV認証 = Domain Validation Certificate
    OV認証 = Organization Validated Certificate
    EV認証 = Extended Validated Certificate

    日本だと、ほぼ略称のDVやOVだらけなので。

  • Active Directoryに登録されたコンピュータの一覧を出力する

    AD(Active Directory)に登録されたコンピュータの一覧を出力するにでは、”csvde”コマンドを使用する。

    コンピュータの一覧をファイルで出力するには、以下のコマンドを実行する。

    csvde -u -f 出力するファイルのパスと名前 -r objectCategory=computer

    実行例)

    csvde -u -f C:\Users\administrator\Desktop\computer-list.csv -r objectCategory=computer

    1000台程度のコンピュータがADに登録されていたが、ほんの数秒で実行が終わった。

  • F5 Big-IPでサポート問い合わせ用のログを取得する

    Ciscoでいうところの「show tech-support」をBig-IPで取得する方法。

    1. sshでBig-IPにログインする
    2. nice -n 19 qkview を実行する(nice -n 20 qkview でない理由は、ロードバランサの負荷を考えて、ログ取得の優先度を下げているため)
    3. /var/tmp/.tgz にログがあるので、SCPで取得する。

    GUIでやる場合は。

    1. GUIでログインする。
    2. 「system」から「support」を選択する。
    3. Support Snapshotで「QKview」にチェックを入れて、「start」をクリックする。
    4. 生成が終わったら、ダウンロードのボタンが画面に出るので、クリックしてダウンロードする。

    以上。

  • SQL Server 2005でログを消す方法

    SQL Server 2005で、DBのログが肥大化してしまい、バックアップ時に切り捨てるスペースもないときの対処。 この作業手順は、作業対象のDBをオフライン(というかデタッチ)にするので、注意。

    1. SQL Server Management Studioを開き、DBサーバに接続する。
    2. 対象のDBを選び右クリックし、プロパティを開く。
    3. プロパティから、MDFファイルとログファイル(LDFファイル)の場所を調べる。
    4. 対象のDBを選び右クリックし、「タスク」から「デタッチ」を選択する。
    5. ExplorerでLDFファイルの保存場所を開き、該当のログファイル(LDFファイル)を削除する。
    6. SQL Server Management Studioで、データベースを選択し、右クリックし、「アタッチ」を選択する。
    7. 「アタッチするデータベース」で「追加」をクリックする。
    8. 上記で調べたMDFファイルの場所を指定し、該当のMDFファイルを選択し、OKをクリックする
    9. 「データベースの詳細」にログファイルのファイル名が表示されている場合は、これを選択して、削除する。
    10. 「OK」をクリックする
    11. データベースがアタッチされる(ちょっと時間がかかる)。このタイミングで新しいログファイル(LDFファイル)ができる。

    ※ SQL Server 2005のサポートは終了してます。なので、自己責任で。

  • GASでIF文(条件分岐)

    GAS(Google Apps Script)での条件分岐の制御構文。IF文。

    if文は、条件の部分に書かれた処理が真の場合に、決まった処理を実行する。if文のパターンとして、おもに3種類があり、「else if」の部分は、いくつも増えてよい。(ただ、多数になるときはSwitch文の方が楽)

    (GASのif文は、JavaScriptのif文と同じ)

    パターン1: 条件が正しい(真)のときだけ実行する

    if ( 条件) {
        ここに、条件が真のときの処理を書く
    }
    

    パターン2: 条件が正しい(真)のときに実行する文と、条件がただしくなったとき(偽)のときに実行する

    if (条件) {
        ここに条件が真のときの処理を書く
    } else {
        ここに条件が偽のときの処理を書く
    }
    

    パターン3: 条件1が正しい(真)のときに実行する文と、条件2が正しい(真)のときに実行する文と、条件がただしくなったとき(偽)のときに実行する

    if (条件1) {
        ここに条件1が真のときの処理を書く
    } else if (条件2) {
        ここに条件2が真のときの処理を書く
    } else {
        ここに条件が偽のときの処理を書く
    }
    
  • Atom をEmacs風のキーバインドに変えてみる

    Atomを使いやすいようにカーソル移動などをEmacs風のキーバインドに変えてみた。 変えたのは、普段使う、カーソルの上下左右の移動や、行頭・行末移動など。PCを変えたり、初期化するたびに毎回困るので、自分用のメモ。

    キーバインドの変え方は、

    1. [File] -> [keymap…]を開く。
    2. 「keymap.cson」が開くので、そこに以下の内容を追記するだけ。
    '.platform-win32':
      # cursor
      'ctrl-f':'core:move-right'
      'ctrl-b':'core:move-left'
      'ctrl-n':'core:move-down'
      'ctrl-p':'core:move-up'
      'ctrl-h':'core:backspace'
      #'ctrl-g':'core:cancel'
    
      'ctrl-g':'go-to-line:toggle'
    
    '.platform-win32 atom-text-editor':
      # Emacs binds
      'ctrl-e':'editor:move-to-end-of-line'
      'ctrl-a':'editor:move-to-beginning-of-line'
      'ctrl-d':'core:delete'
      'ctrl-o':'editor:newline'
      'ctrl-h':'core:backspace'
      'ctrl-k':'editor:cut-to-end-of-line'
    

    ctrl-gの設定がダブりでエラーになることが分かったので、片方をコメント化した。

    参考:
    http://blog.dksg.jp/2015/06/windows-atom-editormarkdownpreview.html

  • MacをMojaveにアップデートしたら

    Mac miniをMojaveにアップデートしたところ、無線LANに繋がらなくなった。

    いろいろと設定をみたところ、ネットワークの検出はできているが、もともと接続されていたAPは発見されない状態だった。OSを再起動してみたが状況はかわらず。APから出ている無線LANのチャネルを調べて、Mojave上でシステム情報から認識できるチャネルと見比べてみたがしっかりと入っている。過去の接続履歴にもAPは存在している状態だった。

    結局、困って駄目元で手動でAPを手動で追加し、認証情報も設定したところ、無事に接続ができた。Mojaveにアップデートした際に、APの情報が中途半端に消えていたようだ。