Fedora USB

突然だがメインマシン (Fedora) のスピーカーが壊れた。
ということで楽をしようと USB 給電の安い奴を買った。
超高音がとうの昔に聞こえなくなっているジジイは安物スピーカーで充分だ。

これでノートパソコンのように本体の電源 OFF に連動してスピーカーも…
給電され続けるじゃん!

パソコンの電源を切っても、USB 機器に給電される。 | ドスパラ サポートFAQ よくあるご質問|お客様の「困った」や「知りたい」にお応えします。

筆者のマザーも ASRock なのでコレだな。
S5 って何だ?

PC の電源がオフでも USB が通電し続けるときの解決方法

S4-S5 ってつまり Windows10 専用ということか。
バイオスの領域なので OS の種類は関係ないはず。
Fedora 等の Linux なら S5 に指定すればいいってことだろう。
筆者のバイオスは日本語化されていただけで設定は同じだった。

設定して、よし連動するようになった。
音は、まあ安物なので。

上記とは関係ないけど。
macOS 10.15 Catalinaのインストーラアプリのサイズは8GB超えでMac OS X 10.7 Lion以降で最大に。 | AAPL Ch.

まじで 8.09GB もある、Apple さん勘弁してくれ。
次回から macOS ネタになる予定。

PHP Imagick

さて PHP をやるといっても言語仕様なんてすぐに理解できる。
筆者はすぐ忘れる人なのでまたチップスページを作る、はいいとして。
PHP で何をやるかだ、とりあえず画像のリサイズだな。

PHPで画像をリサイズしよう!表示・保存方法もわかる | 侍エンジニア塾ブログ(Samurai Blog) – プログラミング入門者向けサイト

GD は定番として Imagick ってココ(さくら)で使えるのかな?
手持ちパソコン内だけで可能なのでは意味がないし。
と思ったけれど、どちらも問題なく使えるようだ。

【さくらのレンタルサーバ】基本仕様 ? さくらのサポート情報

ところで Fedora 自体は PHP をインストールしただけでは両方使えない。
てなわけで dnf する。

sudo dnf install php-gd php-pecl-imagick

httpd を通すのが面倒だからスクリプトで直接試す。
Linux はコレができるから楽なんだよね。

#!/usr/bin/env php

<?php

    // php-gd
    [$width, $hight] = getimagesize('test.jpg');
    $baseImage = imagecreatefromjpeg('test.jpg');
    $image = imagecreatetruecolor(100, 100);
    imagecopyresampled($image, $baseImage, 0, 0, 0, 0, 100, 100, $width, $hight);
    imagejpeg($image , 'out_01.jpg');

    // php-pecl-imagick
    $image2 = new Imagick('test.jpg');
    $image2->thumbnailImage(100, 0); // Segmentation fault...
    $image2->writeImage('out_02.jpg');
    $image2->clear();

?>

Imagick::thumbnailImage でセグメンテーション違反になってしまうヤン。
縮小画像は問題なく作成されるけど。
下記のように起動すればこのエラーは出なくなる、けどソレでいいのか?

env MAGICK_THREAD_LIMIT=1 php test.php

おまけ、cairo も使えるんだね。
PHP: Cairo – Manual
94. PHPからCairoを使う | 日経 xTECH(クロステック)

dnf で見つからないし必要性もあまり感じないので無視するけど。
せっかくなのでリンク先コードを Python3 で書き直ししてみた。
create なんてメソッドは無いのでこんなふうに。

#!/usr/bin/env python3

import cairo

surface = cairo.PDFSurface('sample.pdf', 605.0, 855.0)
cr = cairo.Context(surface)

cr.set_source_rgb (0.0, 0.0, 1.0)

cr.move_to(150, 150)
cr.select_font_face('Monospace', cairo.FONT_SLANT_NORMAL, cairo.FONT_WEIGHT_NORMAL)
cr.set_font_size(72)
cr.show_text('日本語OK!')
cr.show_page()

# 破棄はガベージコレクション

Linux てか GNOME って本当にプログラミングは楽チンだよね。

PHP SELinux

Fedora Tips | Web 開発
なんてページを作ったのだから超久々に PHP をやろうと思う。
だってプログラミングといいながらインストールして設定してハローワールドするだけじゃまるでサルブンツみたいじゃん、やだー。

というか筆者の知識は PHP 5、それも一部分で止まっているままだったりする。
本サイトも全部 PHP だけど 5 でも 7 でも動く標準関数しか使っていないかったり。
fstring(Python3) やアロー関数(js)をガッツリ使っているのにコレじゃいかん。

基本から PHP を勉強やりなおし、いきなり詰まった。
SELinux で。
write.txt には 666 のパーミッションを付けてね。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Write Test</title>
</head>
<body>
<p>
<?php
    file_put_contents("write.txt", "SUZUKI のバイクはカッコイイ<br />\n", FILE_APPEND);
    echo file_get_contents("write.txt");
?>
</p>
</body>
</html>

リロード毎に行が追記されるサンプル。
のはずなのに PHP でファイルへの書き込みできない!

SELinux にブロックされていると気がつくのに時間が掛かった。
ほわいとのホームサーバ:Fedora構築メモ

httpd 経由で書き込みを行う属性を付ける必要があるみたい。
Fedora 30 では以下でイケた。

# chcon -t 属性名 ファイル名
chcon -t httpd_sys_rw_content_t write.txt

しかもこの属性、Gedit で上書きとかすると消えちゃう。
面倒だと思ったと同時にサーバー用途と考えるとなるほどって感じ。
いやいや SELinux の勉強になった。

関係ないけど file_get_contents って GLib の関数と同じジャン!
echo は sh だし、Linux に慣れた人は多分 PHP が楽しい。

Celluloid

Fedora でアプリケーション一覧、あれ?
Celluloid というインストールした覚えのない GUI アプリがあるんだけーが。
というか gnome-mpv が無いぞ。

Celluloid

gnome-mpv が知らない間に変名していたのか。
そりゃ使おうと思うまで気が付かないよ、普段鑑賞用途は自作して使っているんだから。
試しに gnome-mpv を dnf から指定してみたらリンクなのか変名版が出て来た。
つまりパッケージマネージャは変名 Update にも普通に対応しているようだ、へー。

ただ現行版は Fedora でメニューボタンを押すと落ちるんだが、アップデートを待つか。

それと初期化で動画の元サイズにリサイズせず固定にできないものか。
筆者自作のプレイヤーも以前はそうしていたけどスマホが普及した今となっては合わない。
スマホの縦動画や 4k 等々で元サイズが豊富になった現状では MPV 方式はイラッとする。

動画プレイヤーの自作をやっていて良かった、自分に必要な機能に絞ったものが手に入る。
それも不満がサイズ関連だけで良かった、サイズ固定ならむしろ簡単なんだからさ!

有名アプリだとか複数人が開発に関わっていると基本動作を変更するのは超難問だ。
Windows 日本語版が cp932 から脱却できないなのもソレ、依存していた大多数の顧客を失う。
その理由で Windows を完全に使わなくなった人は筆者を含めて 1% にも満たないと思う。
mpv 系の場合はオプションで対応できる、と思うけど筆者の知らない色々があるのかなと。

そんなこんなで。
上記リンク先から Celluloid のソースコードに辿り着けるだろう。
プログラミングに興味を持つのは現状に不満がある、ことがキッカケなのだから。

PrintScreen

突然だがデジイチを先日はじめて買った。
Nicon D3400 という型落ちだけど新品かつ望遠レンズとバッグ込みで五万ならばと。

理由はポケ GO をヤメたので別の歩き回る理由が欲しいというこで。
10 年前の IXY からの乗り換えなのでデジイチなら何でも満足できそう。
欠点は今のところ人前で出すのは結構勇気がいるということだけだ。

先日の十五夜に IXY や iPhone では話にならない満月を撮ってみた。
しかし 6000×4000 の JPEG って 6MB 以上もあるんだよね。
1920×1080 のフル HD に切り出そうと考えた。

eog で開く
Ctrl+0 で等倍にする
F11 でフルスクリーン
月を中心に動かして PrintScreen

スクロールバーも一緒に切り出し、ちょっとまて。
Fedora じゃ駄目だ、macOS でやってみよう。
macOS だと 1440×900 になるけど。

プレビューで開く
command+0 で等倍にする
command+control+F でフルスクリーン
command+shift+3 でスクリーンショット
Retina の場合 72dpi に変換

ド素人がフルオートで撮ってもそれなりなものに、流石デジイチだ。
何年かたった後自分で見て「こんなもん…」と言える人に私はなりたい。
しかし切り出し作業が面倒臭い、てかデスクトップの Fedora でやりたいし。
切り出しアプリでも作るか、その手順を考えている時が一番楽しい。