tkhrsskの日記

技術ネタなど

EPUBとは

EPUB電子書籍ファイルフォーマット規格。 XML, XHTML, CSS, ZIPに基づいた規格。 2014年、ISOより標準規格化。

EPUB - Wikipedia

  • 画面に大きさに合わせた表示をするリフロー機能が特徴的
  • 2007年 EPUBを公式規格に。2010年 EPUB2.01ドラフト、2011年 EPUB3 公式規格。
  • ファイル構造は、XHTMLがZIP圧縮された .epub 拡張子
  • SVG 1.1サポート
  • EPUB 3.0は、縦書き・ルビに対応
  • 日本電子書籍出版社協会(電書協)により『電書協 EPUB 3 制作ガイド』が策定されている
  • KADOKAWAでは『KADOKAWA-EPUB 制作仕様』を、電書ラボでは『電書ラボEPUB制作仕様』をそれぞれ策定し公開している
  • CSS3の草案で提案されていたプロパティを、-epub-というプレフィックスを追加して採用

日本電子書籍出版社協会

kadokawa-epub.bookwalker.co.jp

対応リーダ

DRM

JEPA|日本電子出版協会 DRMとは?

EPUB以外の電子書籍ファイルフォーマット

電子書籍 - Wikipedia

Amazon S3 Glacier でパス情報の管理 (Cloud Berry)

CloudBerry Explorerというツールを使うと、本来ファイル名やパスの情報を管理していないAmazon S3 Glacierでパス情報を管理できているように見える。

どうやっているのだろうと思っていたら、StackOverFlowでCloudBerryの中の人が答えていた。

stackoverflow.com

Our Glacier archive description metadata is a simple JSON with the following fields:

  • "Path": the full path of the source file. E.g., "c:\myfolder\myfile.txt" for file copied from local disk or "mybucket/myfolder/myfile.txt" for files copied from cloud storage like Amazon S3. The path is UTF7-encoded.
  • "UTCDateModified": ISO8601 utc date without milliseconds (format: "yyyyMMddTHHmmssZ"). This is modification date of the original file (not the archive creation date).
  • "Flags": integer flags value. 1 - compressed, 2 - encrypted.

Thanks, Andy

アーカイブのdescriptionのメタ情報をjson形式で埋め込んで管理しているとのこと。

ルービックキューブ初心者

ルービックキューブ

送料のみの無料のやつを買ってすっかりハマった。 3分で解けるようにはなった。 説明書が何よりも分かりやすかった。

store.tribox.com

時間計測は下記サイトが便利

qqTimer

csTimer - Professional Rubik's Cube Speedsolving/Training Timer

向きを揃えたいタイプのルービックキューブが他にあったので、メモ。

  • 180度:変えたい面を上にして、R U R' U を5回
  • 90度:変えたい面を上(時計回りにしたい方)と前(反時計回り)にして、M' U' M U (M'は前から見て中央列が下から上にいく回し方)

macozy.com

SIerスキル

めちゃわかるツイート。

ちょっと大きめな開発に関わることが多いので、ものすごく欲しい能力だし後輩たちにも身につけてほしい。 特に各人の認識の言語化。めちゃむずい。

Python開発環境

Python開発のきほんをおさえたい

(WIP)

ディレクトリ構成

qiita.com

VSCode

linterやformatterのベストプラティクスを探す(WIP) flake8でチェックして、autopep8でフォーマットするのが無難っぽい。

VSCodeのPython開発環境でpylintの代わりにflake8を導入し自動整形を設定する - Qiita

Pythonプログラムの静的解析 - Qiita

テストコード

$ pip install pytest pytest-mock pytest-cov

これでpytestコマンドが通るようになる。 環境上通っていない場合は、 python3 -m pytest でもOK。

よく困る現在時刻のMock化は下記を参考にする。

pytest でも datetime.datetime.now() を mock したい! - Qiita

monkeypatchによるmockの使い方は下記が参考になる。

thinkami.hatenablog.com