2020年4月15日水曜日

Servicenowインスタンスのタイムゾーンを日本に設定する

ServiceNowのデベロッパーインスタンスを使っていると日本のタイムゾーンが右上の歯車のGeneralからは設定できないことに気づく。
デフォルトで選択できるタイムゾーンとして日本時間は用意されていない様子。
※日本軽視な気がして個人的にはちょっと腑に落ちないが仕方ない。

追加するには次のような手順が必要になる。

ServiceNowを自由に試せる環境を入手する

Service Nowのデベロッパーインスタンスを取得する方法をステップバイステップでメモ。

次のURLへ接続(2020/04/15現在、IEと旧Edgeでは接続不可。Edgeの場合は、MicrosoftからchromiumベースのEdgeをダウンロードする必要あり。)
https://developer.servicenow.com/dev.do
Create an Accountをクリックする。

ServiceNowのdeveloperインスタンスを日本語化する

前回作成したdeveloperインスタンスを日本語化する。ステップバイステップ。インスタンスバージョンは前回構築したOrlandoで実施。

ログイン状態で左上のフィルタナビゲータにpluginsと入力し、System DefinitionのPluginsをクリック。

2019年7月20日土曜日

情報処理安全確保支援士試験 合格体験記

世の中にいっぱい出ていて今更感はあるが、せっかく情報処理安全確保支援士試験に合格できたので、書いてみる。
学習期間:凡そ3か月
学習時間:通勤電車の座れる時間帯のみ(1日当たり30分前後)
投下費用:受験料+本一冊 1,620円


2018年8月1日水曜日

AIテストツールのMagic Podを使ってみた(かった)

こことか
https://tech.nikkeibp.co.jp/atcl/nxt/column/18/00359/071100004/

こことか
http://weekly.ascii.jp/elem/000/000/400/400673/

で話題になっていたAIテストツールMagic podというのが非常に興味深いので少し使ってみてレポートしたい。

まずこちらへGo
https://magic-pod.com

Githubのアカウントでログインできるので「無料版を使ってみる」から登録してみる。(Githubのアカウントなしでも普通にメールで登録可能。)

組織名とproject名とテスト名を聞かれるので適当に登録し、

Create。

・・・デフォルトで英語??つらいので日本語に設定変更(^^♪
・・・あれ?見当たらない。。。動画等では日本語のインターフェースになっているようなので、日本語インターフェースも用意されてるんだと思うが、メニュー全部見ても日本語への設定変更の項目が私には見つけられなかった@2018年7月現在。。。
しょうがないので今日は英語のまま行く。

今回はAndroid携帯を動かしてみようと思う。
まずはPC側の環境構築が必要。
「Magic Pod Desktop」なるパッケージが必要とのことでダウンロードしてみる。
https://www.trident-qa.com/magic-pod-help/

Android studioも必要
https://www.trident-qa.com/magic-pod-android-set-up/

この手順に従って、JavaとAndroid SDK一式(tools, platform-tools, build-tools, API)をインストール。

・・・と、恥かしながらここまでやってから気づいた「なお、Windows PCは未対応です。」との表記・・・( ;∀;)
うーん。最近MACのシェアが馬鹿にならないくらい上がってきているとは聞いていたが。。。うーん。

仕方がないので、実機を動かすのは諦めて、AIと呼ばれている部分、画面の画像からUIを抽出する部分を弄ってみたい。

まずは、Yahoo乗換案内。

この画像を読み込ませてみると・・・

こんな感じで読み込まれ、基本的にすべてのUIを識別出来ていた。すばらしい!

まぁこれは境界がくっきりしていてわかりやすいし、楽勝か。
もうちょっと難しそうなゲーム画像を用意してみる。

Age of CivilizationsというAndroidゲーム。

こちらも明確なボタン類は大体行けているようだが、地図の境界はやはりちょっと難しい様だった。
とはいえ人間と比べたらまだまだにせよ、かなり高確率でUIを認識してくれているように見える。

この後の作業としてはキーワード駆動テストの様な要領で、アクションを選択後、UIをドラッグ&ドロップし登録することで、簡単にテストスクリプトが書ける様になっている。
↓こんなイメージ。

・・・というわけで環境の都合で(MAC持ってない)動作確認まではできなかったが全体の所感としては、現時点では「UI認識に画像解析AIを用いたキーワード駆動テストフレームワーク」といえるものであると理解できた。
(ASCIIの記事なんかを見ると「AIで自動ソフトウェアテストを実現するウェブサービス「Magic Pod」」等というタイトルが記載されており、テスト対象分析~テスト設計~実行までAIがカバーするかの様な印象を惹起させるが、これは少なくとも現時点では実現されておらず、誤解の元になりかねない。)

とはいえ、ゆくゆくはゲーム攻略AIみたいな仕掛けと組み合わせてテスト実行とかまでAIが支援できるようになると、素晴らしいことになりそうだ。

2018年7月25日水曜日

Python2系と3系を両方共存させて使いたい(簡単)@Windows

AIや世の中のいろんなツールのスクリプティング用言語として、割と頻繁に使われているPython。
個人的にはインデントが重要な意味を持つ仕様がどうにも好きじゃない。
そのうえに2系と3系で微妙に許容される文法が違ったり、
2系:
 〇 print "Hello World!!"
 〇 print ("Hello World!!")
3系:
 × print "Hello World!!"
 〇 print ("Hello World!!")

inportやpip installするライブラリの名称や仕様がちょっとずつ違ったり、あるいはどっちかには無かったり、と結構情報集めるのにも怠い状態である。

・・・のだが、最近使わざるを得ない機会(しかも2系3系両方)が増えてきた。

Venvとか調べるの面倒だなーと思ってたら意外とすんなり共存ができたので、メモしておきたい。

まず、
こちらから2系3系それぞれの最新版インストーラをダウンロード。

※余談だが、Python 2.7.9より前のインストーラではpipが同梱されておらず、しかもググると出てくるpipの追加方法(get-pip.pyやらを使用)が現在では動かず、いろいろ嵌るので注意。最新版を落とせば問題ないが、社内のセキュリティ規則とかでPython 2.7.9より前のインストーラをイントラからダウンロードして使用しなければならない場合などは要注意。

現時点(2018年07月25日)での最新版は、
 Python 3.7.0
 Python 2.7.15
なのでまずはこいつらのインストーラをダウンロード。

したら、まずは2系のインストール
「python-2.7.15.amd64.msi」を起動。
基本的にNEXT→NEXTで問題ないはず。
もしインストールパスが長いパスになっていたら、「C:\Python27\」みたいなところに直しておいた方が、後々Path通すのとかコマンドラインでGit使うのとか、いろいろ楽なので私は修正する。

Pathは後でちょっと修正するが、どうせなので通しておく。


ほかには特に迷うことは無いはず。

次に「python-3.7.0-amd64.exe」を起動。
次へ次へと行きたいところだが、デフォルトだとやたら深いインストールパスになるので、Customize installationで行く。

Add Python 3.7 to PATHもチェック入れておく。
ここに書いてあること以外はそのままNextで行くが、長ったらしいインストールディレクトリは嫌なので、、、

短くしておく。

他はお好みで。

Install。
終わったら、環境変数のPathの設定を開き、2系3系それぞれのpython.exeとインストールディレクトリ配下の「scripts」フォルダを追加する。
※多分インストーラでチェックを入れていればそうなっているはず。

こんな順番で入っているはず↓

C:\Python37\Scripts\
C:\Python37\
C:\Python27\
C:\Python27\Scripts\

この順番を変更して、2系のパスが先に来るようにする。


そうしたらコマンドプロンプトを起動して
c:\>python -V
Python 2.7.15
c:\>py -V
Python 3.7.0

という具合に簡単に使い分けることができた。

2018年6月23日土曜日

Ubuntu(デスクトップ 18.04 LTS)をVirtualBox上にインストールしてsshとRDPで接続可能な様に設定する

今回はUbuntu(Serverではなくデスクトップを入れてみる)まずは時間がかかるのでISOイメージをダウンロードしておく。
https://www.ubuntu.com/download/desktop
現在の最新版は、Ubuntu 18.04 LTS。
デスクトップ環境はデフォルトのGnomeでやってみたい。

VirtualBoxでマシンを作成。

Desktop版はそれなりにメモリを食うようなので一応メモリは4GB確保しておく。

ディスクサイズは、25 GB of free hard drive spaceと書いてあるので念のため可変ディスクで40GB確保。

デカい・・・。

作成したら右クリック→設定で「ubuntu-18.04-desktop-amd64.iso」ファイルをマウント。

ネットワーク設定をNATにして高度な設定を開き、ssh(port 22)、RDP(port 3389)をポートフォワーディングしておく。

OKで設定を保存して→ボタンで起動。

Englishのままでもいいが、今回は日本語にしてUbuntuをインストールをクリック。

キーボードレイアウトを検出は試してみたらヘブライ語とかになったりあまり使えないご様子なので、そのまま続ける。

アップデートと他のソフトウェアは今回特に変更しない。

ディスクを削除(=上書き)のままでインストール。

そのまま続ける。

タイムゾーンも特に変更なし。

名前とpasswordはとりあえず今回は全部ubuntu、個人使用なので自動ログインにしてしまう。

インストールが開始されるので待つ。(かなり時間がかかった)

終わったら再起動。

自動ログインに設定したのでそのままデスクトップが表示。


起動してきたらまずはopensshserverのインストール。
$ sudo apt install -y openssh-server

sshのpasswordログインを許可。
$ sudo vi /etc/ssh/sshd_config
で「# PasswordAuthentication yes」を#を削除しアンコメント。

サービスの設定。
$ sudo systemctl enable ssh
$ sudo systemctl restart ssh

これでlocalhost:22にsshでログインできる用になった。

次、XRDPを入れていきたい。
$ sudo apt install -y xrdp

セッション情報の設定を追加。
$ sudo vi ~/.xsessionrc
記載内容は次の通り
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop
export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
new_cursorsの無効化。
$ sudo sed -e 's/^new_cursors=true/new_cursors=false/g' -i /etc/xrdp/xrdp.ini

サービスの設定
$ sudo systemctl enable xrdp
$ sudo systemctl restart xrdp

Authentication Requiredダイアログの回避。
$ sudo vi /etc/polkit-1/localauthority/50-local.d/xrdp-color-manager.pkla
以下を追記、
[Netowrkmanager]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device
ResultAny=no
ResultInactive=no
ResultActive=yes
polkitのリスタート。
$ sudo systemctl restart polkit

Windowsからrdpで接続してみる。

何とか成功。

ただしこの設定だとVirtualBos上のUIからはログアウトしないとRDPではログイン出来ない点と、起動後の初回ログイン時に「カラープロファイルを作成するには認証が必要です」という無駄な認証画面↓が2回出てしまうようで面倒だ。

これらが解決出来たら追記しようと思う。

※参考サイト
https://www.hiroom2.com/2018/04/28/ubuntu-1804-xrdp-gnome-ja/

ウェブサイトのURLにおけるトレイリングスラッシュの解釈と有無による動作の違い

インターネットが現代社会におけるコミュニケーションの基盤となっている今日、ウェブサイトのURLはビジネスや個人ブランディングにとって重要な役割を果たしています。URLは単にウェブページへの経路を示すだけでなく、SEO(検索エンジン最適化)においても重要な要素です。この記事では、U...