koudenpaのブログ

趣味のブログです。株式会社はてなでWebアプリケーションエンジニアをやっています。職業柄IT関連の記事が多いと思います。

Kindle Unlimitedで面白いと思った本へのスタンスの変化

Kindle Unlimited という月額1000円位で電子書籍が読み放題のサービスがある。個人的にはさほど魅力的なラインナップではないのだが、開始当初に登録してから会員を続けていて、時たま気になった本をダウンロードして読んでいる。

そうしていると、中には「これは面白い!!」という本もある。

が、これまでそういった本を買うこともなく、また読みたくなったら再ダウンロードしていた。

だが、よくよく考えてみたら普段Kindleでは「面白そう」位で躊躇なく本を買っている。

なのに何故「面白い!!」という実績のある本を買っていないのだ?

というわけで、Unlimitedで「面白い!!」と思った本は買うようにスタンスを変えた。

続きを読む

Mackerel UG × IDCFクラウド UG Meetup #1

に参加、LTしてきた。

共催イベントなのでconnpassページは双方に合わせて2つ!

LTスライドはこちら。

www.slideshare.net

続きを読む

CGI = Perl ? 懐かしインターネット上のプログラム言語

なんだか最近CGIという略語をよく見かける気がする。

CGIとは、インターネット上のサーバでプログラムを動かすための仕掛けで、20年くらい前の僕は CGIスクリプトPerl だと思っていた。

もちろん今では、CGIはCommon Gateway Interfaceの略であり、Perlに限らず何でもインタフェースして実行できる仕掛けだと知っている。

PHPスクリプトでも、シェルスクリプトでも、バイナリでも。

続きを読む

PHPでPNGのICCプロファイルを無視する

Chrome 68 はHTTPのサイトが警告表示されることが話題になっていましたが、他にもこんなことがあったようです。

var.blog.jp

どうやらこれまで無視されていた画像ファイルへ埋め込まれたICCプロファイルが反映されるようになった結果、表示が変化してしまったようです。

自分の周りでもユーザーがアップロードした画像を表示しているサイトで同じことが起きました。 やったね。

元と同じ表示を得るには、このICCプロファイルを削除してやれば良さそうです。 (これが正しい対応かにはやや疑問が残りますが)

そのサイトでPHPで画像を処理するときにはGDを使用しています。

このGDではICCプロファイルは無視されるようです。

github.com

つまり? 一度GDで何か処理してやれば無視できる。

<?php
    public static function normalize_image($baseImagePath, $outputImagePath) {
        // 一度GDで処理することでPNGのICCプロファイルを削除する
        $workimage = imagecreatefrompng($baseImagePath);
        imagesavealpha($workimage,true);
        imagepng($workimage, $outputImagePath);
        imagedestroy($workimage);

        return $outputImagePath;
    }

相当ダーティですが、これでICCプロファイルを消せました。

正しさより結果、この位でいい。


尚、この記事を書いていて、PHPのコードハイライトを有効にするには <?php が必要であることに気づきました。

一つ賢くなった。