Categories
├─Books Cloud services Events Standard TechTips Others
├─Software
│ ├─Mac OS Programming languages Windows Others
│ ├─Libraries
│ │ └─C C++ Java JavaScript Python Ruby Rust Others
│ └─Unix
│ └─Unix commands Others
└─Web
└─Document Service Others
ChatGPTやCopilotを活用したペルソナ作成
Copilotを利用したペルソナの作成例
ペルソナ作成用プロンプトとその実行結果
入力プロンプト:
Coplilotの回答:
続けてペルソナに関して質問をする例
入力プロンプト:
Coplilotの回答:
ChatGPTやCopilotを活用したペルソナ作成
ChatGPTやCopilotのような生成AIの力を借りてのペルソナの作成に関するTopicです。
参考資料
importmap-railsは、2.x系でiOS 16.3以前のサポートを打ち切りました。
問題
importmap-railsはv2.0.0で、「ネイティブでImport mapsに対応していないブラウザでImport mapsを機能させるためのshims」の利用を打ち切りました。 一方で、iOS 16.3以前に搭載されているSafariブラウザは、ネイティブではImport mapsに対応していません。 したがって、importmap-railsを1.x系から2.x系にバージョンアップすると、iOS 16.3以前のデバイスではJavaScriptを利用したRailsアプリが動かなくなります。 このことは、この打ち切りのプルリクエスト #216で議論されているように、開発陣に既に認識されており、認識した上での打ち切りとなっています。
なお、特にiOS 15は、2024-01-22にセキュリティアップデートが出ているAppleがサポートをまだ続けているOSであるにもかかわらず、最新の15.8.1へアップデートしたデバイスであってもRailsアプリが動かなくなるため要注意です。
(参考)iOS 15とiOS 16の状況
以上から、iOS 15とiOS 16のデバイスは、2024年2月現在まだまだ利用されていると言えます。
回避策
importmap-railsを用いたRails 7アプリで、iOS 16.3以前をサポートするには、 以下のように
javascript_importmap_tags
の前にes-module-shims
を入れます。 詳細は、GitHubの公式リポジトリのREADMEの該当部分(Supporting legacy browsers such as Safari on iOS 15)を参照してください。参考情報
Windows上でPlaywrightを使ってWebKitブラウザを実行する方法
Windows PCでWebアプリなどを開発しているときに、iPhoneなどのAppleデバイスでの動作確認をしたいときがあります。 しかしながら、Appleデバイスの標準ブラウザであるSafariのWindows版は2012年頃にサポートが終了しています。 その一方で、SafariのHTMLレンダリングエンジンであるWebKitをWindows上で走らせることは現在でも可能です。
Playwrightを利用するとWebKitブラウザをWindowsにインストールして実行することが比較的簡単に出来ますので、 このコメントではその方法を以下に示します。
NodeJSのインストール
Windowsの公式パッケージマネージャであるwingetを利用すれば、以下のコマンドでNodeJSをインストール出来ます。
Playwrightのインストール
まず、適当な作業フォルダを作成します。次にそのフォルダでコマンドプロンプトかPowerShellを開き、以下のコマンドを実行します。
このコマンドを実行すると出てくる「Install Playwright browsers」の質問項目でYesつまりtrueを選択します。 (ここでYesを選択できなかった場合には、このコマンドに続いて
npx playwright install webkit
を実行して下さい。)WebKitブラウザの起動
以下のフォルダを開き、
Playwright.exe
を実行すると、WebKitブラウザが起動します。WSL2上にてrails serverで立ち上げたサーバに別デバイスからのアクセスを可能にする方法
背景
WindowsのWSL2環境でRailsアプリを開発しています。開発しているWebアプリに関してAppleのSafariブラウザでの動作確認が必要になりました。そこで、同一LAN内にあるiPhoneやiPadといった別デバイスから、WSL2環境において
rails server
コマンドで走らせたサーバへ、アクセスできるようにしました。手順
LAN接続の設定
後述のファイアウォールの設定にて、プライベートネットワークに限定する設定をする場合には、Railsサーバを走らせているPCのLAN設定で、ネットワーク プロファイルをプライベートにしておきます。
WSL2で走っているLinuxのIPアドレスの確認
ifconfig
の出力のinet
のところなどで、WSL2で走っているUbuntuなどのLinux OS側のIPアドレスを確認し、転送先アドレスとして控えます。LinuxのIPアドレスが正しいことの確認
まず、
bin/rails server -b 0.0.0.0
でWSL2上でRailsサーバを起動します。次に、このRailsサーバに、WSL2環境ではなくWindows上で普通に走っているブラウザから、先ほど調べたWSL2で走っているLinuxのIPアドレスに対し http://(LinuxのIPアドレス):3000/ というようなアドレス(ここではポート番号を3000としていますが、別のポートをRailsサーバに用いている場合はそのポート番号に変更して下さい)でアクセス出来ることを確認します。
ここでアクセスに失敗するようでは何かしらが間違っていますので、まずはこのようにアクセス出来るようにしましょう。
ホストOSであるWindowsのIPアドレスの確認
ipconfig
などで、Windows側、つまり、ホストOS側のLAN上でのIPアドレスを確認し、転送元アドレスとして控えます。ポートフォワーディングの設定
管理者権限で以下のコマンドを実行します。なお、特に理由が無ければ、転送元ポートは転送先ポートと同じ(3000)で大丈夫です。
ファイアウォールの設定
Windowsのファイアウォールの設定にて、「受信の規則」として以下の設定を追加します。
なお、ファイアウォールの設定にて、プライベートネットワークに限定したり、テスト時以外は無効にしたりするなど、セキュリティには十分に配慮をして下さい。
接続確認
同一LAN内の別デバイスから、 http://(WindowsのIPアドレス):(転送元ポート)/ というようなアドレスでアクセス出来ることを確認します。
参考情報
Windowsでのnetshを用いたポートフォワーディングの設定
ポートフォワーディングを設定する
管理者権限で以下のコマンドを実行する。
注意事項:ポートフォワーディングの実用ケースでは、ファイアウォールの設定も追加で必用な場合が多いです。参考情報: https://gunmagisgeek.com/blog/other/7171
ポートフォワーディングの設定を確認する
ポートフォワーディングを削除する
参考情報
リアクション機能をリリースしました!
本日(2024/01/26)リアクション機能をリリースしました。
それぞれのコメントの右下にあるアイコンをクリックすることで、リアクションの種類を選んでリアクションを付けることが出来ます。
なお、ログインをしていなくてもリアクション出来ます!
お気軽にご利用下さい!
Copilot Studioのニュースや記事
Microsoft Copilot StudioでデータソースをSharePointにしたCopilotの作成方法
Microsoft Copilot Studioで生成型回答をするCopilotの作成方法の続きとなる記事。
JSONのobject name (hash key)は文字列限定
JSONのobject name(辞書やハッシュ、連想配列におけるキーに相当するもの)の型は文字列のみに限定されています。 規格書のObjectsのセクションには、"A name is a string"と明記されています。
Rubyでの検証例
RubyでJSONライブラリを利用した場合でも、当然ですが、以下のようにキーは全て文字列になります。 また、その結果、JSON文字列からRubyのハッシュを再構築すると、元のハッシュと異なったものになってしまいます。
したがって、キーに文字列以外を用いるときには、プログラム側で適宜キャストするなどの対応が必要となります。 その中の対応方法としては、JSONではなく、以下のようにYAMLを使うという手もあります。
ただし対応方法の選択においては、セキュリティの観点での注意が必要です。 一般に、JSONよりもYAMLの方が高度な記述が可能であるため、YAMLの方がセキュリティの問題が起きやすいと考えられます。 実際にYAMLを悪用した攻撃手法が知られています。 ですので、ユーザーが任意の記述を送り込めるような場面では、JSONにするかYAMLにするか、はたまたXMLなどの第三の規格にするかの選択において特に慎重な判断が求められます。
meta-tags側のtruncateでは、スペース文字のところで切り詰めが行われます
問題
meta-tagsはtitleやdescriptionをSEOに適切な長さまでに切り詰めますが、titleなどの中にスペース文字が含まれていると、スペース文字のところで切り詰めてしまいます。そのため、文章の先頭付近のみにスペース文字がある文章は大幅に切り詰めが行われてしまいます。
例えば、次の文章にあるスペース文字は10文字目のところのみです。
したがって、80文字に切り詰める設定であっても、この10文字目のところで切り詰められて「Microsoft」となり、80文字に比べ大幅に短い文字数に切り詰められることになってしまいます。
回避策
回避策はいくつかあります。
v2.21.0で追加された'truncate_on_natural_separator'の設定を利用する
設定ファイルである
meta_tags.rb
の中で、以下の記述を行うことで、スペース文字のところで切り詰めなくなります。詳細はmeta-tagsの設定のtruncate_on_natural_separator
の説明をご覧ください。アプリケーション側で切り詰めを行う
meta-tagsに渡す前に、あらかじめアプリケーション側で切り詰めを行うことでも、この問題は回避できます。なお、meta-tagsの設定によっては、meta-tags側での切り詰めをオフにすることも出来ます。設定方法についてはmeta-tagsのREADMEを参照してください。
(参考)内部的な原因
meta-tagsはRuby on Railsのtruncateヘルパーメソッドを最終的に呼び出しますが、このヘルパーメソッドをラップするメソッドを内部に持っています。このラッパーメソッドの引数であるnatural_separatorを省略してのメソッド呼び出しがmeta-tags内に存在し、v2.19.0までは、この省略時のnatural_separatorのデフォルト値がスペース文字であるため、スペース文字のところでの切り詰めが発生しています。
v2.21.0からは、前述の引数natural_separatorが廃止され、ラッパーメソッド内で前述の'truncate_on_natural_separator'の設定値が与えられるようになっています。ですのでこの設定値を変えることで、スペース文字のところで切り詰めなくしたり、任意の文字での切り詰めたりすることが可能になりました。