Qtで同じ名前のスロットが複数ある時のconnectの仕方

前回の記事でPhonon::VideoPlayer::playをボタン押したら動作させたいなと思ったら複数スロットがあり、

void play(const Phonon::MediaSource &source);

を選んできて引数エラーになるので…
公式ドキュメントにある方法でやってみる(旧式のSIGNAL(),SLOT()形式ではこのような問題は起きない)
New Signal Slot Syntax in Qt 5

Phonon::VideoPlayer *videoplayer = new Phonon::VideoPlayer(Phonon::VideoCategory);
QPushButton *play = new QPushButton;
play->setIcon(this->style()->standardIcon(QStyle::SP_MediaPlay));
//====
connect(play,&QPushButton::clicked,videoplayer,static_cast<void (Phonon::VideoPlayer::*)(void)>(&Phonon::VideoPlayer::play));
//====

キャストするんだってさ。
以上。

Qtで作ったアプリでVLCをバックエンドとしてH.264な動画を再生する

どうも。
以前openSUSEのFirefoxでH264な動画再生をするため色々していたのですが、Qt製のソフト、詳しく言えばQMovieクラスだけではH.264な動画は再生できないことがわかっていました。(QMovieは「without sound」とある。)

そこで気になったのが以前書いたPhononのバックエンドをVLCに変えるの中で紹介したPhononというもの。
これはQtに付属しており、このバックエンドをVLCに変更し、VideoLAN本家のvlcを導入しておけばPhonon経由で再生できるのかもと思った次第です。
まずは開発に必要なものを揃えます。最低Qt開発環境とcmakeは入っているものとして…yastかzypperで「phonon4qt5-devel」を入れます。他のディストロでは似たようなものを入れてください。(もちろんバックエンドはVLCに変更済みにしておいてください。)

次にCMakeLists.txtに

find_package(Phonon4Qt5 REQUIRED)
target_link_libraries(プロジェクト名 ${PHONON_LIBRARY})

を追加します。
以下テストコード

#include <QApplication>
#include <QUrl>
#include <phonon/VideoPlayer>
int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    Phonon::VideoPlayer player(Phonon::VideoCategory);
    player.show();
    player.play(QUrl("./test.mp4"));
    return app.exec();
}

これで再生できるはずです。
割とかんたんに再生できて、びっくりなんですが、player.play(QUrl(“http://…”))とUrl入れるとネットから持ってきて再生しだします。ストリーム再生はできてませんが。

というわけでメモでした。

LibreOfficeで印刷時に紙のサイズが指定できない

キャノンのピクサスで無線印刷しようとしたら遭遇したのでメモ。
LibreOffice Writerで印刷ボタンをクリックして「プロパティ」の欄で用紙サイズがグレーになってて変えられない。
解決するには印刷ダイアログの「オプション」のところの「プリンター設定の用紙サイズのみ使用」にチェックを入れ、再び「全般」に戻り、「プロパティ」を選べば、選択可能になっている。
以上。
でもなんか少し字がずれるなぁ…気のせいか。

FujiSSLの証明書を買った

お金がぁと言いながら金を使う金欠マンはこちらです。
StartSSLの件で認証局を選び直すことになったのですが、ふとFujiSSLという物が目に入りました。
RapidSSLやPositiveSSLよりも安い…
しかものりかえ割というのがありLet’s EncryptからでもOKみたい。
何より新しい物好きの自分にとっては試したくて仕方ない。
「よし、じゃあドメインの有効期限と同じ3年分買ってみようじゃないか。」

購入の際意外と苦労したので記録しておきます。

会員登録と支払い

購入はSSLストアで行いました。
まずは、ホームページの右側の「会員登録」から登録。
個人運営だから「個人」を選んで入力していく、利用規約を目を通し、同意の上で次へ。
その後何したかは忘れたけど、とりあえず登録が完了したら、管理ページヘログインします。
次に証明書を購入するために入金やなんやかんやするが初心者向けの案内がしっかりしてあるので特に迷うことはなかった。
購入が完了したら上のバーの証明書管理からアクティベートできるようになってるはず。

有効化と発行と設置

ファイル認証にしてCSRを作って…
さて、ここが一番困った。

Whois情報が審査対象になると思うけど、そのWhoisは代理公開中。
「じゃあWhois通りにCSRを作ればええやん。」
「あれCSRと別にドメイン所有者情報も入れないかんのか…ふむ、これもWhois情報と合わせるかな。」
「名前が姓名別れてて、どっちも入力必須やけど、『Whois Privacy Protection Service by onamae.com』ってどこまでが姓でどっからが名前だ…」
「ドメイン所有者情報に書いたメールアドレスに証明書が送られるんか…じゃあ自分の持ってるアドレスに変えなきゃななぁ…そしたらWhois情報と食い違う…えぇ…」



そうして悩むこと数十分、ここを見ると(ログインしてないと見れない)「申請情報入力2」の欄で「Whois情報 担当メールアドレス」が「proxy@whoisprotectservice.com」じゃないか。

結論:どうやらドメイン所有者情報はWhoisと合致しなくても良さそう。CSRはWhoisに合わせて、ドメイン所有者情報は自分の情報を書くことにしよう。

どうせコモンネーム以外は真っ白にされて証明書が発行されるし。

端末を開いて、

openssl req -new -newkey rsa:2048 -nodes -keyout private.key -out server.csr


(ECCのSSL証明書が楽しそうだったけど、FujiSSLは非対応だからできないので、RSA 2048bitを使用)
CSRを作っていきますが、代理公開情報に合わせ…

  • Country Name : JP
  • State or Province Name : Tokyo
  • Locality Name : Shibuya-ku
  • Organization Name : Whois Privacy Protection Service by onamae.com
  • Organizational Unit Name : (そのままEnterか、「.」だけ)
  • Common Name : (申請するFQDN)
  • あとはすべてそのままenter

できたserver.csrの中身をテキストエディタかcatでコピーしアクティベートのページに貼り付け、所有者・技術担当者は自分の住所などを書く。
待つこと数分、メールで添付ファイルをサーバに上げるように指示されてアップ。
さらに待つこと10分…あれれ。
アクセスログを見てみると認証BotからPOSTでアクセスされてnginxが「HTTP 405」返しちゃってる。アチャー。
応急処置で設定ファイルを「error_page 405 =200 $uri;」と書き換えてnginx再起動。
それから数分後公開鍵が来たので、応急処置を元に戻し、CA証明書と結合させ、秘密鍵とともに配置して、バックアップを取り、nginx再起動。うまく動いておる。
次はメール認証でやったところ、何も不具合なくできた。nginxを使用してる場合はメール認証が良さそう。
サイトシールもついてきてご満足。EV証明書ではないので前と変わらないけど、期限が2020年までなのを見てニッコリ。
この値段で3年取れるのはなかなか良い。積極的に使っていくことしよう。個人でドメインはめったに買わないと思うけど。
みなさまもぜひ利用してみてはいかがでしょうか。
では。

追記(2017/09/09)
銀行振込は個人ではできなくなりました。(ずっと前から)
Japan-SSLという(今の所)Fuji-SSLを専門に扱う販売店では銀行振込ができる…かも?

StartSSL発行の証明書をChromeが拒否しだした

さて、いよいよやってきたこのとき。Firefoxでの記事を前に書いたが、それよりもChromeの対応が早かった。
ついにDevelop版でプライバシーエラーが2016年10月以前に作った証明書でも出だした。
個人では2つドメインを管理しているが、このブログを運営してるドメインは、念の為Let’s Encryptに差し替えておいたが、もう一つの方は準備だけして差し替えずにいた。そして昨日(2/1)にプライバシーエラーが出ることを確認し、予定通り差し替えた。2月中に更に別の証明書に変更する予定だ。
StartSSLでプライバシーエラーが出たときの画面
さて、Googleで「StartSSL 無料」などと検索したサイトをクリックするとプライバシーエラーが出るサイトがある。
調べてみたところ…
「プライバシーエラー」が出るサイトの中間CA証明書の発行元の一般名(CN)

  • StartCom Class 1 DV Server CA
  • StartCom Class 2 Primary Intermediate Server CA
  • StartCom Class 3 OV Server CA

通常通り接続できるサイトの中間CA証明書の発行元の一般名(CN)

  • StartCom Class 4 EV Server CA

「StartCom Class 4 EV Server CA」はstartssl.comで確認した。(中間CA証明書の発行元の一般名って呼び方あってんのかいな…)
殆どが別の認証局に移っていたので多く見つけられなかったが、StartSSLのサイトのほとんどのサイトでアクセスできなかった。ただし詳細設定からアクセスすることは可能だった。
Stable版はどうなってるかわからないが、同じようになるのだろう。
10月以降に発行して沼にハマった人がいるようだが、StartSSLのホームページに注意書きはないどころか「Transparency(透明)」ってある。Oh,No…
確かサインインした先に何か書かれていた気もするが忘れた。
ただし、Newsに注意書きがある(上は太文字なのに重要な部分は赤文字だけで太文字ではないのね…)
読む限り、新たな証明書に移行し信頼されればその時から新たにStartSSLで発行される証明書は使えそうだ。
ちゃっかり無料版の期限が3年に伸びてるがこれはWoSignと同じでは…
StartComは完全に独立したわけではなく、とある中国企業の傘下にある。
イスラエル発のStartComが買収でこのような事態になってしまったのは残念だが、StartSSLを離れることにした。

サーバ機更新

コーヒー美味しい。(唐突)
三ヶ日は家に閉じこもりいろいろしていて2017年到来が実感できてない頃ですが、どんな年になるんでしょう。
さてさて、新年ということでサーバ機を新たに作りました。
…と言うのは冗談で12月の三連休に大阪行ったとき調子に乗って最新・新品CPUを買ったからです。(Kaby Lake出ますね〜)
Xeonは手は伸びずにね…Coreシリーズに手を伸ばす…オカネナイ…。
さて(家にある部品を使わず)全部新品部品で組んだPCにOpenSUSE入れて爆速OSインストールにテンションMAXでサーバーの設定しました。
基本的にはscpで前のデーターを持ってきましたがソフトウェア設定は見直しました。
ルンルン気分で寝て次の日サーバーがネットにつなげてないと焦ってましたが直ったようです()。
前のサーバーはCore2DuoだったりHDD異常だったり危なかったので、交換して一安心。ファイルサーバも速い速い。
思えばペンティアムの64Bitが使えないメモリ256MBなサーバから始まりラズベリーパイ初代、Core2Duoなサーバーと進化しこれで4代目です。
サーバOSはDebian,Fedora Server,Raspbian,Ubuntu Serverと動かしていき現在はOpenSUSEです。
メモリ増量、SSD追加などしていきたいと思います。

設定が行き届かずサーバに繋げないときがあるかもしれませんが、そのときは…一時待ってみてください。
では。

openSUSEにCanon PIXUS MG3630を無線接続する

今年もわずか数日。
そんなときに時代の進化をしみじみと感じてる自分。
今はプリンタをどこかにドンと置いて、電源つけて、紙をセットすればWifi越しにできるんですねぇ。いやはや。
さてそんな感想はおいといて、この機能、Linuxでも使いたいという願望は自然に現れるわけで、セットアップしましょう。
Windowsは勝手に認識してくれるんですがLinuxは自動では出てきません。(出ては来るがうまく使えない。もしかしたらいっとき経つとLinuxにドライバが追加されて自動認識するかもしれない。)
というわけで印刷できるようにする。
前提条件
プリンタのWifi設定を済ましてある。

プリンタ<-(Wifi)->ルータ<-(有線・無線)->openSUSE

ファイアウォールは「Zerconf/bonjourマルチキャストDNS」を許可しておく(Yast->ファイアウォール->許可するサービスより)
=========================

まずCanonのソフトウェアダウンロードページにアクセスし、「インクジェットプリンター」をクリック、「インクジェット複合機」と進んでいく、自分のプリンターの型番を選び、OSではLinuxを選ぶ、「IJ Printer Driver Ver. 5.20 (rpmパッケージアーカイブ)」を選び、使用許諾契約書をよく読んで右の「rpm HTTPダウンロード」をクリック。保存して展開し、「packages」の中のx86_64(32bitならi386)のrpmをインストール(sudo rpm -iする)。
次にアプリケーションメニューの「設定」から、「印刷の管理」をクリック。ブラウザが起動しCUPSが出てくる。
ここでプリンタの電源をつけWifiを有効にし待機させる。
「管理」から「プリンターの追加」を押すとユーザー、パスワードを要求するので、「root」とパスワードを入れる。
すると「発見されたネットワークプリンター: Canon MG3600 series (Canon MG3600 series)」とあるはずなので、チェックを入れ、「続ける」。名前や場所を設定(デフォルトでもOK)、デフォルトの動作を聞いてくるので設定し保存する。
これで完了。
試しにGIMPで画像を開いて「ファイル」より「印刷」を出すと「Canon_MG3630_series」がいるので印刷サイズなどを設定して印刷するとウィィィン…完了です。
ちなみにGwenviewでするとデフォルトでモノクロ印刷になった。Options>>よりOptionsタブを選んでColor ModeをColorにする。
スキャナのドライバも入れれば動くのかな?まぁスキャンは今の所しないので、パス。

—追記(2018/04/14)—
KDE設定のプリンタドライバ一覧に追加されてました。よってダウンロード作業は不要です。

openSUSEでH264な動画再生

さてもう少しで2016年も終わりですね…
ポケッと過ごしてたら12月。
そう思っていたら
「あ、libavcodecがVLCのものではないのでは!!」
と頭に浮かんだ次第でございます。いつも突然浮かぶのでありまして。
さて試したとこ、動きました。おお。
結局Phononは関係ありませんが、一部アプリに効果はあるよう。
というわけで記録

  1. VLCのリポジトリを導入(https://pg-mana.net/blog/opensuse-42-1-vlc/を参照)またはPacmanリポジトリを追加
  2. libavcodec**(現時点では56,57だった)のベンダーをVLCのリポジトリに変更(Yastはバージョンタグから)
  3. ついでにlibavutil、libavformatもベンダーも変える。
  4. 再起動

これで行けると思う。多分。
突発的にやったのでよく記録を取ってないです。ログを見ました。
わからないことがあったらわかる範囲で答えたいと思いますので、下のコメント欄へお願いします。

==追記==
なんとLeap 42.2と42.1はlibavc57のVLCからの提供がないため使えない。つまり再生できない。Tumbleweedでしかできないようだ…悲しいなぁ。

Linux(GUI)を使うときに入れるソフト

備忘録です。よかったら参考程度にどうぞ。

  • Firefox
  • Google Chrome
  • Qupzilla
  • VLC(Codecs含む)
  • Git
  • KDevelop
  • Okteta
  • ThunderBird
  • Timidity++
  • Qt Creator
  • fish
  • noto-coloremoji-fonts
  • Linphone
  • Atom
  • Kdenlive
  • GIMP
  • Skype for Linux(新しい方)
  • Rust
  • Go
  • Clang
  • VirtualBox

KDevelop入れるときはlibQt**-devel、qconf,cmakeなど入れるように。
ここは随時追加していきます。