- 投稿日:2020-10-23T23:27:54+09:00
【fish】Mac ターミナル上でカウントダウンタイマー
こんな感じ
#入力値調整 read -P "How many minutes? >" input; set error_message "--------------------------------------"\n"please set numbers 1 ≦ [input] ≦ 120!!"\n"--------------------------------------"; set input_time (expr $input - 1); #このタイマーは1分未満を測れません! if test $status -eq 2; echo $error_message; exit; else if test $input_time -lt 0; echo $error_message; exit; else echo "-------------------"\n"start["{$input}"]minutes!!"\n"-------------------"; end; #n分* 59 sleep_loop for mm in (seq $input_time 1); for ss in (seq 59 0); sleep 1;clear; #1桁分の場合、先頭に0を追加 if test $mm -le 9; echo -n 0; end; echo -n $mm:; #1桁秒の場合、先頭に0を追加 if test $ss -le 9; echo -n 0; end; echo $ss; end; if test $mm -eq 0 -a $ss -eq 0; break; end; echo "-------"; echo "finish!"; echo "-------"; end;おまけ
※不具合ありワンライナー版(残り1分で止まります)
※※使い道がないので修正はしていませんfor mm in (seq 3 1); for ss in (seq 59 0); sleep 1; clear ; if test $mm -le 9; echo -n 0; end; echo -n $mm:; if test $ss -le 9; echo -n 0; end; echo $ss; end; if test $mm -eq 0 -a $ss -eq 0; break; end; end;なんでこんなものを作ったのか
ScaraMatsuri2020のスタッフとして参加した10/18
タイムキーパーだったのでZoomにて仮想カメラを用いてタイマーを映す必要がありました。しかしタイマーが映せない+タイマーアプリそのものも起動できないなどトラブルが発生
前日は大丈夫だったのに・・・。色々思考錯誤しターミナル画面は映せたのでこれでなんとかできるのでは・・・
と思ったのですがなんだかんだ解決したのでお蔵入りしました。後日.shとして作り直したのがこちらでございます。
※ifとforはbashだと若干書き方違うので、流用する場合はその辺りちょっと調べてみてください。カウントアップでもよければ
// 現在時刻表示 1秒ごとに更新 watch -n 1 date //例 オプション付けてみたり watch -n 1 date -v-1H +%M:%Sで、より簡単に見れます。
- 投稿日:2020-10-23T08:19:54+09:00
qhullのインストール for mac
Voronoi
ボロノイ図とは、複数の点(母点)が存在する時に、同一平面(空間)上の他の点が、どの母点に最も近いかを領域によって分割した図です。
ボロノイ図を実際に作成すると次のようになります。qhull
qhullを使ってボロノイ分割の計算が可能です。
その他にもドロネー三角形分割なども可能です。
以前CentOS 7に導入してしていたのですが、今回はmacにインストールしてみます。インストール
Homebrewからインストールできます。
brew install qhullおわり ( Homebrew 便利。)
動作確認
以下のコマンドで確認してみます。
qhull qhull -- compute convex hulls and related structures. Qhull 2020.1.r 2020/05/29 input (stdin): dimension, number of points, point coordinates comments start with a non-numeric character halfspace: use dim+1 and put offsets after coefficients options (qh-quick.htm): d - Delaunay triangulation by lifting points to a paraboloid d Qu - furthest-site Delaunay triangulation (upper convex hull) v - Voronoi diagram as the dual of the Delaunay triangulation v Qu - furthest-site Voronoi diagram H1,1 - Halfspace intersection about [1,1,0,...] via polar duality Qt - triangulated output QJ - joggled input instead of merged facets Tv - verify result: structure, convexity, and point inclusion . - concise list of all options - - one-line description of each option -? - this message -V - version Output options (subset): s - summary of results (default) i - vertices incident to each facet n - normals with offsets p - vertex coordinates (if 'Qc', includes coplanar points) if 'v', Voronoi vertices FA - report total area and volume Fp - halfspace intersections FS - total area and volume Fx - extreme points (convex hull vertices) G - Geomview output (2-d, 3-d and 4-d) m - Mathematica output (2-d and 3-d) o - OFF format (if 'v', outputs Voronoi regions) QVn - print facets that include point n, -n if not TI file - input file, may be enclosed in single quotes TO file - output file, may be enclosed in single quotes examples: rbox D4 | qhull Tv rbox 1000 s | qhull Tv s FA rbox 10 D2 | qhull d QJ s i TO result rbox 10 D2 | qhull v Qbb Qt p rbox 10 D2 | qhull d Qu QJ m rbox 10 D2 | qhull v Qu QJ o rbox c d D2 | qhull Qc s f Fx | more rbox c | qhull FV n | qhull H Fp rbox d D12 | qhull QR0 FA rbox c D7 | qhull FA TF1000 rbox y 1000 W0 | qhull Qc rbox c | qhull n無事にインストール完了です。
次回qhullの機能qvoronoiを使ったvoronoi解析方法を説明しようと思います。
環境
- macOS Catalina (10.15.7)
- 投稿日:2020-10-23T04:05:20+09:00
macユーザーなら誰でもできる簡単にオンライン授業をサボる方法
最近は減ってきましたけど、まだまだ大学生はオンライン授業ですよね。僕も毎週金曜日はオンライン授業です。毎日毎日学校行ってるんだからオンライン授業の日ぐらいはゆっくり眠っても許されると思わないですか?
そんなわけで自動でzoomに入室してくれるようなプログラミングをしてみました。
※残念ですけど、windowsには対応してないです。。ごめんなさい。でも記事は読んでください。目次
- 環境
- 技術について
- automatorを使ったやり方
- AppleScript
- カレンダー
- macの設定(共通です)
- cronを使ったやり方
- AppleScript
- cron
- macの設定(共通です)
- 最後に
- お世話になったサイト
環境
mac OS Catalina 10.15.7
技術について
automatorを使ったやり方
最初はmacに標準で入っているautomatorと呼ばれるアプリを活用しようと模索しました。
簡単にこのautomatorについて説明するとmacのいろんな作業を自動化してくれるすごいやつです。
例えばautomatorで作成したプロジェクトを起動するとゴミ箱の中が空になるとか。色々と便利そうなのでちゃんと活用したら楽しそうです。AppleScript
引用です。
AppleScriptは、マウスやキーボードを使わずに、Macを操作する方法です。すなわち「AppleScriptはメイドのようなもの」と言ってもいいでしょう。
macを操作してzoomに入るのから必須です。(コピペでいけました。)
実際に詳しいことはここに書くよりも調べた方がいい記事が出ると思うので実際使用したコードだけ載せときます。
tell application "Google Chrome" open location "https://zoom.us/j/{zoomのID}" activate end tell tell application "zoom.us" activate tell application "System Events" delay 3 keystroke "{password}" key code 76 -- Enterを意味します。 end tell end tellうちの学校は同じzoomID、パスワードで定期的なミーティングとして設定しているので固定です。
簡単に解説すると上の四行でGoogle Chromeで授業のURLにアクセス
下の八行でパスワードを入力してます。zoomのアプリからIDとパスワードを入力と言う形にしなかったのは単純にキー操作でzoomのtopから参加までアクセスできなかったからです。(マウス操作を記憶し、実行というのもあるにはあるのですが、汎用性を高めたかったのと、プログラミングしたかったのでプログラムを書きました。)
ここで1度実行してみてください。
そうすると画面上部に下のようなものが出てくるのでその中のzoom.usでのこのタイプのリンクは常に関連づけられたアプリで開くのチェックボックスをチェックを入れてください。(チェックすると次回以降リンクで飛ぶと勝手にzoomアプリが起動するようになります。)
あと、ダイアログで権限関係のエラーが出ると思うので、環境設定から許可してください。(確かアクセシビリティだと思います。)適当にデスクトップにでも保存してください。
カレンダー
ここまでで自動で授業に参加できるプログラムは完成しました。ここからは毎週自動で授業に参加するために自動で起動されるようにしましょう。
定期的に実行するのはめんどくさそうと思っていたのですが、そこは天下のapple様。カレンダーから実装できてしまいます。
- カレンダーで実行したい時間にイベントを作成します。
- 通知の設定を新規で設定します。
- カスタムをクリックし、時間をイベントの開始時間に設定します。
- サウンド付きメッセージの項目をクリックし、ファイルを開くをクリック
- その下のカレンダーをクリックし、先ほど保存したautomatorのプロジェクトを選択してください。
いろんな記事を漁った結果以上の方法が出てきました。ですが、自分は通知のところからなぜか上記で設定したファイルを開くという通知が消えてしまうんですよね。。困ったな。。と
macの設定1
ここまできてまだ設定かよと思った方。抜けています。
なんとこのスケジュールmacが開いていないと動きません!(当たり前)なのでシステム環境設定>省エネルギー>スケジュールから先ほど設定した授業の時間の3分前にでもスリープが解除されるように設定しましょう。
これであなたはオンライン授業の日はぐっすり眠れます。お疲れ様です。
cronを使ったやり方
先ほど書いた通り、スケジュールがうまく動作しないので、他の方法を考えました。
救世主cronの登場です。AppleScript
ソースコード自体は先ほど書いたものと全く一緒です。
AutoParticipantClass.scpttell application "Google Chrome" open location "https://zoom.us/j/{zoomのID}" activate end tell tell application "zoom.us" activate tell application "System Events" delay 3 keystroke "{password}" key code 76 -- Enterを意味します。 end tell end tell名前は適当に設定してデスクトップにでも保存してください。
cron
最初はcronを使ってさっき作成したautomatorのプロジェクトを起動すれば完璧やん!!!って考えてたんですけど、40分ぐらい格闘したんですけど、最後は権限の問題が大きかったです。あるファイルを削除すると実行されると書かれていたのですが、削除は怖いので諦めました。
となると普通のAppleScriptのファイルを実行するっていうコマンドを書けば完成だと。もうここまでくれば終わったも同然です。
一点、terminalからAppleScriptを実行するにはosascriptをつけないといけないです。
osascript {プロジェクトまでのパス}/{ファイル名}terminalを開き
$ crontab -e #設定例 #デスクトップに保存しているのなら #毎週金曜日9時21分指定のAppleScriptファイルを実行 21 9 * * 5 osascript /Users/{あなたの名前}/Desktop/AutoParticipantClass.scpt設定されているかどうかを確認するには下のを実行しましょう。
$ crontab -lmacの設定2
お疲れ様でした。
最後に
最初automatorの存在を知らずに、どうやるんだろうか悩んでいたところに「automator知らんの?」と教えてくれた人がいました。
それを聞いてから着手し、大体2時間ぐらいで完成しました。(記事書くのに2時間かかりました。)途中無駄足踏んだ利もしたんですけど、なんとか形になってよかったです。
初めてこうやってアウトプットしてみました。思ったよりも大変ですね。何よりタイピングしすぎて肩が痛いです。
よかったらmacユーザーの人はこれで授業を自動で入室するようにしてぐっすり寝ましょう。
no sleep no life ですよ。
もう3時なんで寝ます。おやすみなさい。
何か気づいたことがあったらコメントで教えてくださいお世話になったサイト
http://tonbi.jp/AppleScript/Introduction/01/
https://mac-tegaki.com/basic-usage/safari-applescript.html
https://kinopy-techhack.hateblo.jp/entry/180308
https://dev.classmethod.jp/articles/applescript-sample/
https://aichanworld.com/wd/2017/03/03/mac%E3%81%AE%E3%82%AB%E3%83%AC%E3%83%B3%E3%83%80%E3%83%BC%E3%81%A7%E3%82%A2%E3%83%97%E3%83%AA%E3%82%84%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B/
https://shinmedia20.com/mac-cron
https://support.apple.com/ja-jp/guide/terminal/trml1003/mac
https://www.yoheim.net/blog.php?q=20190902