老眼の悪化と電子書籍の変換

目の老化が指数関数的に悪くなっていると感じているますが、焼酎の濃度だけは進化を遂げている、ここ最近です。

よく電子書籍をスマホやタブレットで見ていたのですが、さすがにスマホで見ると文字が チャイチー のでまったく文字が見えない状況になり タブレットがない場合に不自由することが多くなってきました。

日常はKindleで読んでいるのでmobi形式のものなら文字を拡大できるので問題ないのですが、PDFになると拡大したり、ずらしたり、縮小したりと、忙しく なってしまうので、非常に読みにくく感じています。 (デバイスが チャイチー のが一番の問題なのですが…)

さらに、オライリーなどで買った本がepub形式のものだと、読みやすいのですが、Kindleにエクスポートできない モドカシサ を辱められます。

なにか良い解決方法がないかと、gentooを漁っていたところ、python製のcalibreというツールを発見したので試してみたところ便利でした。

インストール

これだけです

# emerge -pv  app-text/calibre

epubからmobiへの変換

これだけです

cuomo@cmv ~/temp $ ebook-convert SRE\ サイトリライアビリティエンジニアリング.epub SRE\ サイトリライアビリティエンジニアリング.mobi
1% 入力をHTMLに変換中...
InputFormatPlugin: EPUB Input running
on /home/cuomo/temp/SRE サイトリライアビリティエンジニアリング.epub
Found HTML cover OEBPS/index.xhtml
Parsing all content...
34% 電子書籍の変換中...
...
...
Converting XHTML to Mobipocket markup...
Serializing markup content...
  Compressing markup content...
Generating MOBI index for a book
MOBI output written to /home/cuomo/temp/SRE サイトリライアビリティエンジニアリング.mobi
出力を名前をつけて保存   /home/cuomo/temp/SRE サイトリライアビリティエンジニアリング.mobi
cuomo@cmv ~/temp $ 

PDFからmobi

これだけです、が、PDF内のサンプルコードなどはかなり読みにくいです、多少のインデントのずれは 老眼目グレップ 、経験豊富な 心の老眼目 で見れば、問題ないです。

cuomo@cmv ~/temp $ ebook-convert Real\ World\ Haskell.pdf Real\ World\ Haskell.mobi
1% 入力をHTMLに変換中...
InputFormatPlugin: PDF Input running
on /home/cuomo/temp/Real World Haskell.pdf
pdftohtml log:
Page-1
Page-2
Page-3
...
...
Page-719
Page-720
Page-721
Parsing all content...
34% 電子書籍の変換中...
Merging user specified metadata...
Detecting structure...
Flattening CSS and remapping font sizes...
Source base font size is 12.00000pt
Removing fake margins...
Cleaning up manifest...
Trimming unused files from manifest...
Creating MOBI Output...
67% プラグイン MOBI Output を実行中
Serializing resources...
Creating MOBI 6 output
Generating in-line TOC...
Applying case-transforming CSS...
Rasterizing SVG images...
Converting XHTML to Mobipocket markup...
Serializing markup content...
  Compressing markup content...
Generating MOBI index for a book
MOBI output written to /home/cuomo/temp/Real World Haskell.mobi
出力を名前をつけて保存   /home/cuomo/temp/Real World Haskell.mobi
cuomo@cmv ~/temp $ 

少し中を覗くと calibre-server などという謎のコマンドがあったりと、色々ありそうですが、これだけ使えれば目的は達成できそうなので良とします。

Pythonには感謝です。

Posted on 2021-11-27 08:52:01

ビールから意識を遠ざけるための暇つぶし

Tech > Haskell

酒飲めずあまりに暇だったのでつまらない時間つぶし、ファイルかディレクトリか判断するだけのコード

import os

def main():
    r = []
    fs = os.listdir(".")
    for f in fs:
        r.append(os.path.isdir(f))
    return r

if __name__ == '__main__':
    r = main()
    print(r)

Pythonはカレントディレクトリ 「.」 と 親ディレクトリ 「..」 は親切に返してこない、これはいい

これほぼ同じコードをhaskellで書いてみた

import System.Directory
import System.Posix
import Control.Monad

main :: IO ()
main = do
  r <- return . map isDirectory =<< mapM getFileStatus =<< getDirectoryContents "."
  putStrLn $ show r

getFileStatusstat っぽい事してるので少し違うけど心地良い、ループがないけど最後の map でループしてて [チョメチョメ] が帰ってきて、 isDirectory の型さえ調べればもはや [Bool] これとすぐ分かる。 一番右の getDirectoryContents “.” と一番左の map isDirectory だけで真ん中はそんなに重要でなくなる。

そして、これをphpで書いてみた

<?php

$r = main();
var_dump($r);

function main() {
   $d = opendir('.');
   $res = array();

    while (($file = readdir($d)) !== false) {
        if (is_dir($file)) {
            array_push($res, true);
        } else {
            array_push($res, false);
        }
    }
    closedir($d);
    return $res;
}

久しぶりにphp書いたけど、結構エラーで叱られる、たまには違う言語も書かないとだめですね。

ちなみにphpはワンライナーでもやれる

<?php $r = main();var_dump($r);function main() {$d = opendir('.');$res = array();while (($file = readdir($d)) !== false) {if (is_dir($file)) {array_push($res, true);} else {array_push($res, false);}}closedir($d);return $res;}

phpつおい、ちなみに私は、 ZendFramework派 です。

Posted on 2021-09-11 17:10:36

夏の日の想ひで 後編

とりあえず飲むから走る

もう、柴漬け食って健康になろうとか、みのもんたが言ってたような記憶がありますが、年くったらなにも食わない方が健康だということを同級生から学んだ夏でした。

そして開始

こうなるとアルコールも水のようです、ご近所の人たちが暖かい目で見守ってくれています。

そして保護色になって何処をつかんだら良いのか…

浜で鮎

そして海で鮎、これは簡単に味わえない経験、なんとも感慨深い。

七輪が死にました

一夏で1480円の七輪を2つダメにした私にとって、もう金属以外を信用しろと言われても無理です。

キリン黒が大好きです

海で飲む黒が最高です

だが清い

最後まで清くいたいと思う今日この頃

無理

缶ビールの写真しか撮っていないので、ネタが無いため皆様にはご迷惑お掛けしましたが、今年も限界までやったとおもう、コロナ禍だが、関係ない、また来年。

Posted on 2021-08-30 21:49:00

カテゴリ管理機能のバグ修正しました

カテゴリ機能が一部腐っていました、 「▲」「▼」 の位置入れ替えボタンです。 onClickイベントを張り付かせて安心していたところ、動いていませんでした。

原因はここです

「あとでやればいいや」という考えはいけません、忘れます、ここです、Elmのコードです

  • jssrc/category/src/Category.elm抜粋
...
swapCate : SwapSw -> Cate -> List Cate -> List Cate
swapCate sw c cs =
    case cs of
        c0::c1::xs ->
            if c.unCatePid /= c0.unCatePid then
                ({ c0 | unCateList = ctonc (swapCate sw c (nctoc c0.unCateList))}
                  :: { c1 | unCateList = ctonc (swapCate sw c (nctoc c1.unCateList))}
                  :: swapCate sw c xs)
            else
                case sw of
                    SwapUp ->
                        if c1.unCateId == c.unCateId then
                            c1::c0::xs
                        else
                            c0::(swapCate sw c (c1::xs))
                    SwapDown ->
                        if c0.unCateId == c.unCateId then
                            c1::c0::xs
                        else
                            c0::(swapCate sw c (c1::xs))
        c0::[] ->
            if c.unCatePid /= c0.unCatePid then
                ({ c0 | unCateList = ctonc (swapCate sw c (nctoc c0.unCateList))}::[])
            else
                [c0]
        _ -> cs
...

入れ替えるために2つ要素が必要なので、「c0::c1::xs」 この書き方だと最低3つの要素が必要でした、なので、ちょうど2つの場合にパターンマッチせず、「_ -> cs」 へマッチするので、カテゴリの一覧はそのまま動かずと言うことでした、勢いで書いたので、汚さはお許しください。

一覧表示へカテゴリ表示

反省の意を込めて少し修正しました、その1

一覧でカテゴリを設定してある記事やフリーページが分かるようカテゴリを表示しました。

公開側へのカテゴリ出力

反省の意を込めて少し修正しました、その2

sitemap.xmlへカテゴリURL出力

反省の意を込めて少し修正しました、その3

https://blog.karky7.com/sitemap.xml で出力されるURLにカテゴリのURLも出力出きるようにしました、カテゴリに記事や フリーページが1つも登録されていない場合、出力されません(はずです、でなければまた反省です)。

BBQにいけなかった週末を利用して、3つの反省点を改善しました、今週末は、肉を浜で焼きたいと思っております。

Posted on 2021-08-18 18:30:58

夏のおもひで 前編

コロナ禍2回目の夏、ここでのBBQも最適化され、不自由ない。

こう天気がいいと、コーディングなんかやってらんない。

昼間に飲みたいから、とりあえず走る、が、この時期は命がけ、いつか倒れる感じがする、が、汗が吹き出る感覚が心地よい。

もはや、水割りの氷を割る道具となった、ハガシ

装備1

緊急事態に備えた常備

炙る技術。

さらに後編に続く…..

Posted on 2021-08-12 20:56:18

はじめまして

静岡の極東の浜辺で何かをやっている人間です、基本的に季節を問わずBBQとオフロードをバイクで走るのがが大好きです、暇があれば何かを焼いているか走っています。どこかの浜で焼いている姿をみたら、gentooの話もで飲みながらしましょう...

Posted

Amazon

tags

epub mobi calibre mask lens ワンライナー php redmine Linux Oracle Map OMap omap map BBQ カテゴリ管理 カテゴリ timestamp date oracle database string 麦焼酎 ダービー process 磨き蒸留 広井酒店、日本酒 芋焼酎 焼酎 ゆるキャン 広井酒店、日本酒池 spring framework java persistent spring session session spring hdbc-odbc persistent-odbc odbc day utctime スィート レマンの森 elm初期化 elm バイク xlr80 esqueleto database xl2tpd strongswan vpn l2tp ipsec 正月 ゲーム grub nginx systemctl portage 豚骨 圧力鍋 yesod-auth-hashdb yesod-auth yesod CentOS8 tsl ssl 設定 install gentoo ghci stackコマンド stack MathJax 数式 templete-haskell haskell とんこつラーメン プレビュー チャーシュウ python インストール CentOS7 ラーメン Houbou 置換タグ