表題の通り、設定できないというか真っ白になって固まるという症状が起きたので、その解決メモ書き。結論から書くと、
- 管理者権限で起動してみる
- (上記でもだめなら)NVIDIAのドライバが悪さをしているので、522.25 または 517.48までダウングレードする
情報工学技術を利用した教育支援、いわゆる教育工学の研究やってます。研究に関係する技術動向(プログラミングねた)や、日常の覚書き、呟きなどを書いていこうかと思います。今のところ、初歩的なプログラムネタばっかりですが、、、、長い目でお付き合いください。
表題の通り、設定できないというか真っ白になって固まるという症状が起きたので、その解決メモ書き。結論から書くと、
表題の通り、MacにBluetooth接続しているマウスの動きが悪くなった場合は、
で解決することがあります。お試しあれ。
スケジュール調整に「調整さん」を利用することはよくありますが、日程を入れるのが面倒なときがあります。こういう面倒な作業は、ChatGPTにやらせましょう
プロンプト例)
6月26日から7月1日の間で、日付(曜日)時間という日時フォーマットで文字列を出力してください。1行に1つの日時とします。時間帯は、17時から19時までの時間で30分ごとに用意してください。曜日は2023年のカレンダーに従ってください。また時間帯の後ろに「~」という文字を追加してください。
出力
6月26日(月曜日)17:00~以下の過去記事に質問コメントがあったのでその回答記事になります。
画像を複数用意した場合に、それぞれに異なるメソッドを割りあてる方法についてです。代替テキストを利用したら良いということを書きましたが、具体例を以下に書きます。
今回のお題
代替テキストを割り当てる
今回はタイトルに書いてみました。それぞれに、「momo」「risu」と書きました。
下記のようになります。ポイントとしては、イメージを取ってきて、getAltTextTitleで画像のタイトルを取り出し、確認してメソッドを登録しているところになります。なお、assignScriptsToImages()を実行しないと、メソッドは登録されませんので、このメソッドをいつ呼び出すかについては、AppScriptのトリガーでシートの起動時にこのメソッドを呼び出すようにするのは一つの手でしょう。
function assignScriptsToImages() { | |
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); | |
var images =sheet.getImages(); | |
for(var i=0;i<images.length;i++){ | |
switch(images[i].getAltTextTitle()){ | |
case "risu": | |
images[i].assignScript("risuSay"); | |
break; | |
case "momo": | |
images[i].assignScript("momoSay"); | |
break; | |
} | |
} | |
} | |
function risuSay(){ | |
Browser.msgBox("りすだよ"); | |
} | |
function momoSay(){ | |
Browser.msgBox("モモだよ"); | |
} |
Flaskはそのフレームワーク自体がウェブサーバーの機能を持っているので、プログラムを実行するだけで、ウェブアプリとして公開されるという利点があります。しかし、他のマシンからWebアプリとして公開するには、app.runの記述に注意が必要です。
設定すべき項目
下記のように、runメソッドを実行するときに、host='0.0.0.0'を設定する必要があります。この設定をしないと、localhost以外からのアクセスできません。
なお、上記のように実行時の環境情報をコード内にハードコーディングするのはあまり望ましい形ではありません。Flask-DotEnvというライブラリを利用することで、実行時の環境変数をアプリごとに設定できるようですので、それもありのようです。
表題の件、ちょっとハマったのでメモ書き。
前提条件
おちラボでは、Windowsドメイン(Active Directory)で、ラボのPCアカウント管理をしています。ターミナルなどでこのアカウントを利用してWindowsの計算サーバーにSSHアクセスするには、
というアカウント名でログインすることになります(まあこれはわかる話)。
ドメイン表記が無視される?
ところがVSCodeのRemote DevelopmentでSSHしようとした時に、SSH ConfigのファイルのUserの項目を上記の書き方をしたら、¥以前のところが無視されることが判明。
具体的にいうと、「ochilab¥ユーザ名」のアカウントでSSHアクセスしたいのに、ドメインのところが消えちゃうので、ログインアカウントが「ユーザ名」だけになり、ローカルユーザでSSHログインを試みてしまうわけです。
¥のところをバックスラッシュにしたり、続けて複数回書いたり、ログイン名をクォーテーションで囲んだり、、といろいろ試行錯誤するもダメ!
で、結論として、ドメイン名をユーザ名の前の書くのではなく、
のように、ユーザ名の後に@で続けて書くのが正解です。でもこんなことしちゃうと、ログインアクセスが、
みたいに@が2つになってしまい、大丈夫なのかと思いますが、どうやらOKなようです。
Windows11でSSHサーバを立ち上げる方法は、思いのほか簡単です。
以上です。なお、sshはポート22番を使います。上記の作業を行ったにも関わらずアクセスできない場合は、ファイヤーウォール(Windows Deffender)が悪さをしてます。22番ポート開けるようにWindows Deffenderの設定しましょう。
近年の画像AI技術が発展により、Kinectとかあまり注目されなくなりましたが、おちラボではデプスカメラとしての性能の良さなどに魅力を感じていることから、懲りずに使ってます。
といっても久しぶりな面もあり、最近流行りのPythonでも利用できることから、数あるライブラリの中で、
import numpy as np | |
import cv2 | |
import pykinect_azure as pykinect | |
if __name__ == “__main__“: | |
# Initialize the library, if the library is not found, add the library path as argument | |
pykinect.initialize_libraries(track_body=True) | |
# Modify camera configuration | |
device_config = pykinect.default_configuration | |
device_config.color_resolution = pykinect.K4A_COLOR_RESOLUTION_OFF | |
device_config.depth_mode = pykinect.K4A_DEPTH_MODE_WFOV_2X2BINNED | |
#print(device_config) | |
# Start device | |
device = pykinect.start_device(config=device_config) | |
# Start body tracker | |
bodyTracker = pykinect.start_body_tracker() | |
cv2.namedWindow(‘Depth image with skeleton’,cv2.WINDOW_NORMAL) | |
while True: | |
# Get capture | |
capture = device.update() | |
# Get body tracker frame | |
body_frame = bodyTracker.update() | |
# Get the color depth image from the capture | |
ret_depth, depth_color_image = capture.get_colored_depth_image() | |
# Get the colored body segmentation | |
ret_color, body_image_color = body_frame.get_segmentation_image() | |
if not ret_depth or not ret_color: | |
continue | |
# Combine both images | |
combined_image = cv2.addWeighted(depth_color_image, 0.6, body_image_color, 0.4, 0) | |
# Draw the skeletons | |
combined_image = body_frame.draw_bodies(combined_image) | |
# Get body information | |
bodies = body_frame.get_bodies() | |
# Get body information | |
bodies = body_frame.get_bodies() | |
# Access joint positions | |
for body in bodies: | |
for joint in body.joints: | |
nose_joint = body.joints[pykinect.K4ABT_JOINT_NOSE] | |
position = joint.position | |
# Use position.x, position.y, position.z to access the x, y, z coordinates of the joint | |
print(“nose positionだよ“, position.x,position.y) | |
# Overlay body segmentation on depth image | |
cv2.imshow(‘Depth image with skeleton’,combined_image) | |
# Press q key to stop | |
if cv2.waitKey(1) == ord(‘q’): | |
break |