ひこぽんのーと

覚書と雑記です。

SQuirreL SQLのこと その3

その2のつづき。

SQuirreL SQLのDB接続設定について。

ここではHSQLDBを使用しているのでその手順となる。
まずは、JDBCドライバを認識させる。
アプリ上からドライバをダウンロードする機能はない*1ので自前で用意する。
HSQLDBはインストールディレクトリのlibにドライバがあるので今回はこれを使う。

ドライバのタブを押して一覧を出し、
設定するドライバを選択する。
f:id:nagamitsu1976:20170328144342p:plain

[選択したドライバの編集]ボタンを押して編集画面を出し、
追加クラスパスのタブでドライバファイルを追加する。
f:id:nagamitsu1976:20170328144526p:plain

正しく認識されるとドライバリストにチェックマークが付く。
f:id:nagamitsu1976:20170328144655p:plain

エイリアスのタブを押し、[エイリアスの追加]から接続設定を追加する。
接続文字列についてはJDBCの記法と同じなので、いつも通り書けば良い。
f:id:nagamitsu1976:20170328145609p:plain
f:id:nagamitsu1976:20170328144906p:plain

OKボタンを押して、DB接続すると正しく情報が取得できる。
f:id:nagamitsu1976:20170328145149p:plain

SQLもこの通り。
コード補完もあるし、なかなか便利。
f:id:nagamitsu1976:20170328145235p:plain

というわけで、SQuirreL SQLについてはこれまで。

*1:ドライバ毎にドライバのWebサイトを開く機能はある

SQuirreL SQLのこと その2

その1のつづき。

SQuirreL SQLでのGUI設定やDB接続を含む設定手順のあれこれについて
以下に書いておく。

まず、GUIの変更。
このアプリ、デフォルトではフォントが小さくて自分にはとても見づらい。
幸いにしてフォントが変更できるので早速変更する。

ファイルメニューから、グローバル設定を選び、設定画面を出す。
フォントのタブに4種類のフォント設定があるので、
これらを好みのフォント、サイズに設定し直す。
f:id:nagamitsu1976:20170328131402p:plain

あと、アプリのロケール設定があるので、
合わせてこれも設定する。
f:id:nagamitsu1976:20170328142938p:plain

設定変更後、アプリを再起動すると反映される。
f:id:nagamitsu1976:20170328143104p:plain

さらに再度ファイルメニューから新規セッションプロパティを開き、
SQLエディタのフォントも変更しておく。
SQLタブの下方にフォント設定の項目がある。
f:id:nagamitsu1976:20170328143414p:plain

これで画面周りの設定は終わり。
ルックアンドフィールなども変更できるので、
こだわる場合は色々と触ってみると面白いかもしれない。

DB接続設定については、その3へつづく。

SQuirreL SQLのこと その1

最近、PyCharmでPythonばかり書いているせいか、Eclipseをとんと起動しなくなってしまった。
そのせいもあって、Javaを書く時用にIntelliJの製品版が欲しくなっている今日このごろ。
また、DBクライアントを探し始めてしまった。

以前は、DBViewerやDBeaverなどのEclipseプラグインで賄っていたけれど、
PyCharmなどでは使えないし、DB参照のためだけにEclipseを立ち上げるのも
なんだか間抜けな感じもするので、いいものはないかと考えていた。

一応、PyCharmやIntelliJと同じくJetBrains社からSQLIDEとして
DataGripという製品があるけれど、これは有料なので対象外。
使いやすそうなんだけどね。

また、PyCharmやIntelliJにもDBプラグインがあるようだが、
これはOracleMySQL, Postgresなんかが対象で、
HSQLDBでは使えなさそうなのでこれも見送った。

Linuxでも使えるDBクライアントはなかろうかと、ネットを探してみた結果、
SQuirreL SQLというアプリを見つけた。
Javaで作られていてOSの縛りもなく、基本的な機能はそろっていそう。
また、更新もまだ止まっていないようだったので、
使ってみることにした。

SQuirreL SQL Client Home Page

ここのサイトから最新版のインストーラをダウンロードして、
端末から実行する。

java -jar squirrel-sql-3.7.1-standard.jar

GUIインストーラが起動するので、
説明に従って設定していく。
このあたりは一般的なものと変わらないのでわかりやすい。
このアプリは日本語化もされているので、
インストール時にトランスレーション用のプラグインも忘れずに設定する。
起動用のショートカットも作ってくれるので、
インストール後はアプリケーションメニューから簡単に起動できる。
アンインストーラーはインストールディレクトリにコピーされているので、
削除したい時にはコマンドから実行する。

java -jar {インストールディレクトリ}/Uninstaller/uninstaller.jar

起動イメージはこんな感じ。
f:id:nagamitsu1976:20170328130440p:plain

DB接続設定についてはその2へ続く。

http記法(はてな記法)でリンクターゲットが指定できないのこと

はてな記法で記事を書いていて、
参考ページを貼り付けることがよくあるのだけれど、
本文中の参考ページは別タブないし、別窓で表したいと思っている。

けれども、http記法ではリンクターゲットが指定できないので、
うっかりアンカーを押すと本文からリンク先へ遷移してしまう。
まぁ、読み終わったあとbackで戻ればいいのだけれど、
ポリシーとしては最初に描いた通りなので、少々の不満がある。

そんなわけで、ぐぐってみたら、
対処法を作ってくれている人がいた。

markdown記法でリンクをtarget="_blank"にする - エンジニアをリングする

また、それを紹介してくれている人がいた。

はてなブログ内のリンクを新しいタブ(別窓)で開く方法 - maroom

すばらしいっですね、これで、リンクについてあまり気にする必要がなくなったよ。

UbuntuにUnity3Dをインストールするのこと

Unity3Dをインストールしてみたくて、インストール方法を調べてみた。
ubutnu-makeでインストールするのが一番簡単だったりするのだが、
これはこれで問題があって、うまくいかなかった。

umake games unity3d

手順としては、これでインストールできる。
・・・・・・はずだが、インストールできたり、できなかったりする。
また、インストールできても起動できなかったりして、
どうにもならなかった。

しかたないので、パッケージファイルを探したら、
本家Unity3Dのフォーラムでパッケージファイルがひっそりと公開されていた。
(ダウンロードページには一言も、Linux対応版の文字がないのにね)

https://forum.unity3d.com/threads/unity-on-linux-release-notes-and-known-issues.350256/

最新の記事から遡って、環境にあったパッケージファイルをダウンロードしてインストールすれば、
簡単にインストールできる。

実際、Linuxでも動かせるのに、なぜ、ダウンロードページに紹介が無いのだろう。
このフォーラムへのリンクくらいはあるとありがたいのだが。。。

ubuntu-makeを試してみて、ダメだったらバイナリからインストールがいいのかしらん。

pythonで音声を再生するのこと

pythonで音楽を再生したくなったので、やり方を調べてみた。
まずあたったのが、pyAudioというライブラリ。

PyAudio: PortAudio v19 Python Bindings

ページにはpipで入れよと書いてあったけど、
ubuntuならapt-getでもインストールできる。

sudo apt-get install python-pyaudio

けれども、ライブラリのサンプルを眺めてみると
どうやらこれはwave再生のようで、MP3が再生できるかはわからない。
コードを書いて調べるのも面倒だったので、
次に行くことにした。

MP3が再生できそうなライブラリにpygameが当たった。

ダウンロード&リファレンスサイト
http://pygame.org/download.shtml

その日本語訳。
pygame - Pygameドキュメント 日本語訳

これもapt-getでインストールできる。

sudo apt-get install python-pygame

ゲーム制作用のライブラリのようだが、
それなら当然、音声再生もできる。
というわけでこれを使ってみることにした。
音の出し方は意外と簡単だった。

import pygame
import time


if __name__ == '__main__':
    # ライブラリの初期化
    pygame.mixer.init()
    # MP3ファイルのロード
    pygame.mixer.music.load(u"MP3ファイルパス")
  # 再生回数の指定。-1ならリピート
    pygame.mixer.music.play(1)
    # 音楽再生の間、スレッドを止めるためにスリープ。
    # これでは中断のために割り込みとかできないから、
    # 本当に使うときは色々と作りこみをする必要がある。
    time.sleep(300)
    # 再生の停止。
    pygame.mixer.music.stop()

これはストリーム再生なので起動も早く、負荷も少ない。
ただし、音声ファイルの再生時間が取得できない。
ストリーム故にバッファに読み込んだデータの再生時間は取得できるが。。。
とはいえ、waitする時間の根拠値としても、音声の再生時間はどうしても取得したい。

なんとかならないかと探してみた。
mutagenというライブラリでMP3の再生時間が取得できるらしい。

Overview — mutagen

インストールはやはりapt-getでいける。

sudo apt-get install python-mutagen

使い方は簡単で、ファイルを読み込んで該当のプロパティを叩けばいい。

import mutagen.MP3

sound = mutagen.MP3(u"MP3ファイルパス")
print sound.info.length

といわけで、これらのライブラリを使うことでMP3の再生はできた。
いやぁ、楽しいなぁ、こういうの。

pythonでポップアップ通知を表示するのこと。

NASAの科学者によると、
30分に1回立ち上がると老化防止になるそうな。
本当かなと思いながら"試してガッテン"を見ていた。

こういうのに乗せられやすい性質なので、
PCが起動している間、30分に1回ポップアップ通知を出すプログラムでも作ってみようと思い、
実装方法を調べてみた。
(まぁ、タイマーなんて腐るほどあるんだろうけれど、なんでも勉強なので)

pythonでポップアップ通知を出す方法については、下記の記事が参考になった。

http://kyoui3350.blog96.fc2.com/blog-entry-258.html

上のサイトにもあるように、下のロジックで通知表示できる。

import pynotify

pynotify.init(u"application name")
n = pynotify.Notification(u"title", u"message")
n.show()

けれども、これには落とし穴があった。
自分が試したところでは、
wxPythonのApplicationクラスと併用しようとするとエラーになる。

さらに調べた結果、notify2というライブラリがあるので、
結局、こっちの方を使うことにした。
インストールはapt-getからインストールできる。

sudo apt-get install python-notify2

で、使い方についてはpynotifyと全く同じ。
インポートするライブラリだけが異なる。

import notify2

notify2.init(u"application name")
n = notify2.Notification(u"title", u"message")
n.show()

f:id:nagamitsu1976:20161117172659p:plain

と、まぁ、こんな感じでした。
アプリ?
その後、ちゃんと作りましたとも。