月別アーカイブ: 2016年2月

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 バージョンで動くのかな?
まあいいか、持ち運び用途なんだから確認できれば筆者には充分。

click addEventListener

前回なにげに書いたコードを見返してアレ?となった。
addEventListener には click イベントを指定できるのか。
touchend とか mouseup みたいなのでなくていいんだね。

タッチパネルとマウスの両方がこの指定でイケるみたい。
それぞれでどんな感じになるか実験ページを書いてみよう。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>タップとクリック</title>
<!-- for Smart Phone -->
<meta name="viewport" content="
    width=device-width,
    initial-scale=1.0,
    minimum-scale=1.0,
    maximum-scale=1.0,
    user-scalable=no" />
<style>
body {
    -webkit-text-size-adjust: 100%;
    font-size: 24pt;
}
div {
    background-color: #000088;
    border: 1px solid #0000ff;
    color: #ffffff;
}
</style>
<script type="text/javascript"><!--

    var counts = [0, 0, 0];
    var touch, mouse, click = null;

    var init = function() {
        // Touch
        //if (window.TouchEvent) {
            touch = document.getElementById("ID_TAP");
            touch.addEventListener("touchend", function() {
                counts[0] += 1;
                touch.innerHTML = "タップカウント: " + counts[0];
            });
        //}
        // Mouse
        mouse = document.getElementById("ID_MOUSE");
        mouse.addEventListener("mouseup", function() {
            counts[1] += 1;
            mouse.innerHTML = "マウスカウント: " + counts[1];
        });
        // Click
        click = document.getElementById("ID_CLICK");
        click.addEventListener("click", function() {
            counts[2] += 1;
            click.innerHTML = "クリックカウント: " + counts[2];
        });
    }
    //-->
</script>

</head>
<body onLoad="init()">

<div id="ID_TAP">タップカウント: 0</div>
<br />
<div id="ID_MOUSE">マウスカウント: 0</div>
<br />
<div id="ID_CLICK">クリックカウント: 0</div>
<br />
<p><a href=".">Back</a></p>
</body>
</html>

タップとクリック

tap_click

あれ?タッチパネルエミュレートで mouseup イベントが発生するのね。
iPhone Safari で試してもやはり同じ、そういうものなのか。

touchend は当然タッチパネルかエミュレートでしか反応しない。
まあこのイベントは本来マルチタッチ用途ですし使い道が違うかと。

click イベントという名前も直感的だし両対応だし今後はコイツだな。
しかし HTML5 関連サイトでもあまり見かけないような。