20201023のMacに関する記事は3件です。

【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 

で、より簡単に見れます。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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)
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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アプリが起動するようになります。)
スクリーンショット 2020-10-23 3.58.57.png
あと、ダイアログで権限関係のエラーが出ると思うので、環境設定から許可してください。(確かアクセシビリティだと思います。)

適当にデスクトップにでも保存してください。

カレンダー

ここまでで自動で授業に参加できるプログラムは完成しました。ここからは毎週自動で授業に参加するために自動で起動されるようにしましょう。

定期的に実行するのはめんどくさそうと思っていたのですが、そこは天下のapple様。カレンダーから実装できてしまいます。

  1. カレンダーで実行したい時間にイベントを作成します。
  2. 通知の設定を新規で設定します。
  3. カスタムをクリックし、時間をイベントの開始時間に設定します。
  4. サウンド付きメッセージの項目をクリックし、ファイルを開くをクリック
  5. その下のカレンダーをクリックし、先ほど保存したautomatorのプロジェクトを選択してください。

スクリーンショット 2020-10-23 4.00.39.png
以上で実装されます。

いろんな記事を漁った結果以上の方法が出てきました。ですが、自分は通知のところからなぜか上記で設定したファイルを開くという通知が消えてしまうんですよね。。困ったな。。と

macの設定1

ここまできてまだ設定かよと思った方。抜けています。
なんとこのスケジュールmacが開いていないと動きません!(当たり前)

なのでシステム環境設定>省エネルギー>スケジュールから先ほど設定した授業の時間の3分前にでもスリープが解除されるように設定しましょう。

これであなたはオンライン授業の日はぐっすり眠れます。お疲れ様です。

cronを使ったやり方

先ほど書いた通り、スケジュールがうまく動作しないので、他の方法を考えました。
救世主cronの登場です。

AppleScript

ソースコード自体は先ほど書いたものと全く一緒です。

AutoParticipantClass.scpt
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

名前は適当に設定してデスクトップにでも保存してください。

cron

最初はcronを使ってさっき作成したautomatorのプロジェクトを起動すれば完璧やん!!!って考えてたんですけど、40分ぐらい格闘したんですけど、最後は権限の問題が大きかったです。あるファイルを削除すると実行されると書かれていたのですが、削除は怖いので諦めました。

となると普通のAppleScriptのファイルを実行するっていうコマンドを書けば完成だと。もうここまでくれば終わったも同然です。

一点、terminalからAppleScriptを実行するにはosascriptをつけないといけないです。

osascript {プロジェクトまでのパス}/{ファイル名}

terminalを開き

$ crontab -e

#設定例
#デスクトップに保存しているのなら
#毎週金曜日9時21分指定のAppleScriptファイルを実行
21 9 * * 5 osascript /Users/{あなたの名前}/Desktop/AutoParticipantClass.scpt

設定されているかどうかを確認するには下のを実行しましょう。

$ crontab -l

macの設定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

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む