Mac Script (No Terminal.app)

Mac で AppleScript/JavaScript を端末起動無しで使う手段があった。

OSXのアプリケーションをJavaScriptで作る – Qiita

Mac には osacompile なんてスクリプトコンパイラがあったのか。
これで Mac でもスクリプトを使う時にターミナルを開かずに使えるぞ!

っっって、それじゃ意味無いジャン。

スクリプト言語はコンパイルせずにスパッと使えるのがメリットなんだから。
つかコンパイルするなら Swift とかで作ったほうが絶対に楽だし。

世の中にはそうしたい奇妙な人が結構いることは置いておいて。
特に IronPython でコンパイルしたい人の多さにドン引きDESU。

うーん、コンパイルせずにターミナルを開かない方法は…
あ、Automator という手があった。

Automatorで簡単にコマンド実行アプリを作る|MacFan

この程度ならシェルスクリプトのほうが圧倒的に簡単だと思うんですけど…
それはいいとして。

この手段で端末を開かずに bash 等のシェルが使えるようだ。
本当に上手くいくのかな?
JavaScript でウインドウを作って試してみよう。

いや、筆者はまだ Cocoa がよく解っていない。
なので上のリンク先にあるウインドウを作るスクリプトをコピペ。

app_create

と Bash から osascript にスクリプトのフルパスを与えて。
JavaScript でも -l オプションは必要無かったのね。
/Applications 内に保存して Finder から W クリックしてみる。

app_exec

よしスクリプトのまま端末起動無しで実行できた。
しっかり Dock にも表示される、アイコンは自前で入れればイケそう。

実行パーミッションを付ける必要もないしメンテも簡単そう。
シェルで起動しているだけだから Python でも何でもイケるな。
何より書き換えしてもコンパイルのやりなおしをする必要が無い。

いいことづくめに感じるけど、ただただ面倒臭い!
Linux と PyGObject コンビがドンダケ神がかっているか思い知るだけだった。

Nemiver Vala

何を今頃気になった。
前記事のように C/C++ という特定言語での GUI デバッガは Nemiver で賄える。
っって Vala みたいな別言語へのジェネレーターだとどうなるんじゃ?
gdb 直使いな人も気になる所かも。

経験値が多いなら出力された C ソースへリンクと予測できる。
でもやってみなきゃ断言できないな、試すとしよう。

Gtk.Application ? gtk+-3.0

valadoc.org がしばらく見ない内に色々進化していた。
ソコらはもっと詳しい人にまかせてと。
このページにある vala ソースを gedit にこんな外部ツールで Nemiver に渡してみる。

vala_gedit

nemiver_vala

全然面白くない結果になってしまった。
Vala から使っても生成された C ソースへのリンクになるってことね。
コレだと Vala で書いているソースコードの直接的デバッグにならないんですが。

Vala という超マイナーな言語で書ける人という時点で(以下略
現状ならソレでいいけどさ。
未来なんて誰も断言できないから。
スマートフォンがココまで普及すると予測できた人なんているのか?

Gedit gcc

Gedit の外部ツールは便利だが自分で設定したショートカットキーを忘れる。
簡単なキーに割付けたくてもできないことも多いし。
特に C ビルドで GLib や Nemiver の利用を振り分けしたい場合とか。

Nemiver | PaePoi

本格的に作るものなら当然 Makefile を用意するので問題ない。
けれどチビッと試したいコードのためにそんな面倒したくないですよ。
プログラミング関連は全部 F5 キーだけでまかなえないものか。

そうだ、’GLib.h’ という文字列が含まれているかどうかで振り分けできないか?
ものは試しだ、こんなツールを作ってみた。

#!/bin/sh
PYTHON="text/x-python"
GJS="application/javascript"
HTML="text/html"
BASH="application/x-shellscript"
VALA="text/x-vala"
CSRC="text/x-csrc"
echo @MIMEtype $GEDIT_CURRENT_DOCUMENT_TYPE
if [ $GEDIT_CURRENT_DOCUMENT_TYPE = $PYTHON ]; then
    python3 $GEDIT_CURRENT_DOCUMENT_PATH
elif [ $GEDIT_CURRENT_DOCUMENT_TYPE = $GJS ]; then
    gjs $GEDIT_CURRENT_DOCUMENT_PATH
elif [ $GEDIT_CURRENT_DOCUMENT_TYPE = $HTML ]; then
    google-chrome $GEDIT_CURRENT_DOCUMENT_PATH
elif [ $GEDIT_CURRENT_DOCUMENT_TYPE = $BASH ]; then
    sh $GEDIT_CURRENT_DOCUMENT_PATH
elif [ $GEDIT_CURRENT_DOCUMENT_TYPE = $VALA ]; then
    vala $GEDIT_CURRENT_DOCUMENT_PATH
elif [ $GEDIT_CURRENT_DOCUMENT_TYPE = $CSRC ]; then
    src=`cat $GEDIT_CURRENT_DOCUMENT_PATH`
    case $src in
        *gtk.h*)
            echo "Gtk Build"
            gcc $GEDIT_CURRENT_DOCUMENT_PATH `pkg-config --cflags --libs gtk+-3.0` ;;
        *glib.h*)
            echo "GLib Build"
            gcc $GEDIT_CURRENT_DOCUMENT_PATH `pkg-config --cflags --libs glib-2.0` ;;
        *)
            echo "Gcc Build"
            gcc $GEDIT_CURRENT_DOCUMENT_PATH ;;
    esac
else
    echo Non Support File
fi

全部読み込んで case 文にしたのは inclide が一行目とは限らないので。
ぶっちゃけ効率ガン無視だがチョコッとビルド用途なのでいいよね。

ついでに Nemiver 用も

#!/bin/sh

src=`cat $GEDIT_CURRENT_DOCUMENT_PATH`
case $src in
    *gtk.h*)
        echo "Gtk Build"
        gcc -g -o debug $GEDIT_CURRENT_DOCUMENT_PATH `pkg-config --cflags --libs gtk+-3.0`
        if test $? -eq 0; then
            nemiver debug
        fi
        ;;
    *glib.h*)
        echo "GLib Build"
        gcc -g -o debug $GEDIT_CURRENT_DOCUMENT_PATH `pkg-config --cflags --libs glib-2.0`
        if test $? -eq 0; then
            nemiver debug
        fi
        ;;
    *)
        echo "Gcc Build"
        gcc -g -o debug $GEDIT_CURRENT_DOCUMENT_PATH
        if test $? -eq 0; then
            nemiver debug
        fi
        ;;
esac

gedit_tool

これで F5 を押すだけで筆者が使う言語は全部まかなえるぜ。
あと PHP があるけどこれは Apache 経由でしか使わないので。

いや、本当はモードごとに書いたほうがいいのだろうけどね。
ツールが一つで自力振り分けのほうが筆者はメンテが楽なだけ。

nairon

スマホのソシャゲを作って課金でウハウハしてぇ。
でもオッサンはゲームなんてファミコンのドラクエ 4 までしか知らん!
しかたがない、勉強のためオッサンは色々スマホのゲームを始めた。

で現在まで続いているのは某(仮)だけ、しかも無課金。。。
部活(ギルド)に入る気がないので今はプチガールちゃんを育てているだけ。
そろそろ違う感じで新し目のゲームでも始めてみよう。

はっきりいってゲーム性なんてどうでもいい。
女の子がカワ…ではなく時間潰し程度にパパッとできるやつ。
育成要素はあるけどギルドとマルチプレイが無いのが理想。

なないろランガールズ|育てて、走って、そして恋をする。

某所の広告でこんなのを見つけた。
やはりスマホアプリは広告無しじゃ誰も見つけられないと実感。

うん、これなら 7 人の女の子を育てればいいだけみたい。
キャラが固定で衣装でステータスか、このほうが愛着が出そうだ。
早速 iPhone に入れてみる。

チュートリアルが糞長いよ!
しかもあんまり意味わかんなかったし。
一通り終わったところで色々ポチポチしてみる。

3d

おぉスワイプすると部屋がクルクル回る、3D だったのか。
斜め 45 度上アングルにもできる、残念ながら下には(マテ!
タップすると声付きでお喋りも、ツンツンしまくれる。

isyou

衣装を全部外してもマッパにはならなかった(あのさぁ
カードゲームと違って着せ替えできる、幼女になった気分。

3D キャラで着せ替えできると楽しい、メモメモ。

よくわかんないけどトレーニングをしてみよう。
怪我してもーた、なんで腕立て伏せで足を捻挫なんだよ!
トレーニングするとステータスが上がって日付が進む。
んでレースという流れみたい。

HP 要素もないしレースはすぐ終る、空き時間にやる目的にはよさげ。
もう少し続けてみよう、いや勉強のためですよ。

KeePassX v2

このサイトで使うパスワードは何だっけ?
って KeePassX があるじゃないか。

いやまあ筆者は必要になった時にしかアプリをインストールしない人なので。
そういえば Fedora 23 にしてから ffmpeg すら入れていないな。
最近動画をダウンロードなんて全然やらなくなったし(…

とにかく gnome-softwere から KeePassX で検索、って出てこねぇ!

sudo dnf install keepassx

コマンドで入れたらバージョン 2 になっていた。
まあとくに使い勝手は変わっていない、Ctrl+V で自動入力できる。

keepassx2

v1 のデータはインポートできるけど v1 形式にエクスポートは無い。
CSV にエクスポートできるのでその場合でも問題は無いと思うけど。

しかし面白いよね。
本家 KeePass2 は Linux でも動くと言っているのに v2 互換を作るって。
mono なんて Linux では誰も使っていないからね。
Downloads – KeePass

Mac KeePass で検索してもみんな KeePassX ばかり。
実際本家が v1 の公開を続けているのは v1 しか需要が無いってことだろう。
mono の遅さに耐えられるのってマジで Unity のゲームだけだよ。

その Unity なウチ姫は iPhone から削除したけど。
ランキング戦やマルチプレイなんてやりたくないのにそればかり。
ガードスキルの追加で過去のイベント産 SR を皆殺しって嫌がらせかよ。
まあそれはどうでもよくて。

KeePassX ? Downloads

Mac 版どころか Windows 版まであるっていったいどういうことだ。
互換なのに本家を殺しにきているのかな。
せっかくなので MacBook Air にも v2 を入れてみよう。

AppStore には本家はあるけど KeePassX は無い、Fedora と同じか。
Mac は普通にサイトからダウンロード、自分でインストール。

keepass2linux

keepass2mac

うん Qt はネイティブだからどちらでもサクツと起動できていいね。
Mac 版なのに閉じるボタンで終了するんだがコレは Qt の仕様なのか?

あれ、Mac 版って command+V の自動入力はできないのか。
v1 なら対応版があるみたいだけど現行 OSX バージョンで動くのかな?
まあいいか、持ち運び用途なんだから確認できれば筆者には充分。