今頃気が付いた。
PyObjC の AppKit に objc は含まれていた。
#!/usr/bin/env python3 #import objc from AppKit import *
いらなかったんや!!!
PyObjC Tips ページを作っていて気がつく、書いていないのに動いたって。
作っているうちに又気がついたことがあったらコッチに書くわ、ネタがないし。
しかしゼロから作るのはどう書くか迷って中々進まない。
本サイトのアクセス状況がなんか変。
ログのユーザーエージェントを見ると WWWC が、コイツが原因か。
Windows のネタなんてとうの昔に全削除しているのに意味不明、何故?
よし、今月は macOS のネタしかやらないことにする。
来月は Fedora 30 が出るはずだし、ということで。
とりあえず今朝までに blog でやったクイックアクション等はまとめた。
macOS Tips – L’Isola di Niente
次は VSCode を Gedit 化するページを作っているんだけーが。
実はまだ shebang 実行を実現していなかったりする。
Gedit でスクリプトを debug – L’Isola di Niente
tasks.json は Python3 では “command”: “python3” にしているだけ。
Visual Studio Code 2018 | PaePoi
シバンを見つけて実行する手段が無いのなら自分で作ればいいジャン!
head コマンドからシバン部分を抜き出すスクリプトを書いてしまえ。
#!/bin/sh line=`head -n 1 $1` ${line#*!} $1
たった 2 行。。。
これに run_shebang と拡張子の無い名前を付けて保存。
実行パーミッションを付けパスの通った所に置く、tasks.json の書き換え。
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "run shebang", "type": "shell", "command": "run_shebang", "args": [ "${file}" ], "group": { "kind": "build", "isDefault": true }, "presentation": { "reveal": "always", "panel": "new" } } ] }
command に run_shebang を指定。
タスクの実行をやってみる。
よしイケる、もっと早くこの方法に気が付けばよかった。
拡張又はフリーソフトをインストールwwwww
って、たった 2 行のスクリプトすら自分で書けない人のやることだ。
JavaScript 覚書で jjs を削除し他を今風に書き換え。
だけじゃつまらないから何か追記したい。
日付けと時刻の取得はまだ Gjs でしかやっていなかった。
よしこれを JXA, Node.js で行う手段を探し、、、、、いやまて。
よく考えたら JavaScript には Date オブジェクトがあった。
/** * Gjs, JXA, Node.js 共通 */ const WEEKS = ['日','月','火','水','木','金','土']; let now = new Date(); let year = now.getYear() + 1900; let month = now.getMonth() + 1; let day = now.getDate(); let week = WEEKS[now.getDay()]; let hour = now.getHours(); let minut = now.getMinutes(); let sec = now.getSeconds(); if (month < 10) month = '0' + month; if (day < 10) day = '0' + day; if (hour < 10) hour = '0' + hour; if (minut < 10) minut = '0' + minut; if (sec < 10) sec = '0' + sec; if (typeof print === 'undefined') print = console.log; print(`${year}年${month}月${day}日(${week}) ${hour}:${minut}:${sec}`);
で。
ウエブブラウザでも使える、JavScriptCore 単体でも動く。
.bashrc にエイリアスを作って試してみよう。
# Fedora alias alias jsc=/usr/libexec/webkit2gtk-4.0/jsc # macOS alias alias jsc=/System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc
あ、仕事は遅番出勤ですので。
ところで、以下で検索するとやはりというかなんというか。
‘node.js 日付と時刻’
strftime 形式で日時取得ごときにインストール…
何故いつもいつもインストールばかりやっているのだ?
その程度を自分で作れない輩にいったい何が作れるのだ?
%H,%M,%S だけの実装例を書いてみる。
datetime.now なのはもちろん Python に合わせた。
const datetime = { now(fmt) { let now = new Date(); let kwd = false; let res = []; for (let s of fmt) { if (kwd) { switch (s) { case 'H': s = now.getHours(); if (s < 10) s = '0' + s; break; case 'M': s = now.getMinutes(); if (s < 10) s = '0' + s; break; case 'S': s = now.getSeconds(); if (s < 10) s = '0' + s; break; default: throw 'undefined format'; } kwd = false; } else { if (s === '%') { kwd = true; continue; } } res.push(s); } return res.join(''); } } if (typeof print === "undefined") print = console.log; print(datetime.now('%H:%M:%S'))
15 分で作れた。
Google さん、もっとまともなサイトを上位に表示してよ。
GraalVM の macOS 版って全然ダメだ。
awt を使おうとしたら、ビルドはできるけど JVM で弾かれる。
/opt/X11/lib/libfreetype.6.dylib
が無いって言われましても。。。。。
/opt すら無いよ、筆者の 2018 Air には。
てゆーか X11 だったのカヨ!
Java Client Roadmap Updateによせて (前編) – AOEの日記
JavaFX 以外は使うなになったのかな?と思ったけど違うんだな。
Java8 とはいえ、いつの mac で JVM を開発しているんだろう?
Java11 なら問題ないかどうかは知らない。
それと js で TimerTask を使おうと思ったけど。
継承が使えるとは思っていなかったけど、Nashorn と同じ表記もできない。
いくら探しても手段が見つからない、何を試しても動かない。
そういう使い方をするためのものではない、って感じ。
そういう使い方をするために入れたのに。。。。。
もう GraalVM はヤメ!
同梱の Node.js はありがたく使わせてもらいます。
Linuxのバージョンの確認方法 – Qiita
Linux OSの種類とバージョンの調べ方 – Qiita
あれ? /etc/os-release ならばどのディストリビューションにもあるのか。
ということはドットコマンドで取り込んで。
#!/bin/sh # ディストリビューション名 . /etc/os-release; echo $PRETTY_NAME #cat /etc/system-release では Fedora 等一部
$NAME なら簡易。
これでどのディストリビューションでもイケるはず。
でもドットコマンドってどのシェルでも使えるかどうかは知らない。
ダメだったら source に書き換えしてちょ。
ちなみに macOS には /etc/os-release は無いです。
覚書ページの作り替え作業が終わらないので小ネタでした。