ひまつぶし雑記帖

作業環境の小ネタ

2024/7/10 [09:07:19] (水) 天気

ここんとこネタもない。
在宅仕事、電書制作する時の作業環境の小ネタでもメモっておこう。

ノートパソコン3台を使ってる。
・WINDOWS11のDELL
・ChromeOSのASUS
・ChromeOS FlexのASUS(元WINDOWS10)

どれも作業するのはSDカード上。スクリプトを走らせるのもデータを保存するのもすべてSDカード。
本体に何かあってもSDカードさえ読み書きできれば問題がない。

で、よく考えないまま、作業ディレクトリ名を3台バラバラの名前にしてしまった。
ファイルのコピーをする時にどのノパソからどのノパソにコピーするのか意識できるように、という上書き事故を防ぐためでもあるんだけど…。
同じスクリプトなのに、ディレクトリ名が違うとエラーの元になるので、いちいちそこだけ書き直す必要があって、これはこれで面倒くさいし、スクリプトの先祖返りとか起こしがち。

電書制作の準備段階で走らせるスクリプトが4つぐらい。確認段階で走らせるスクリプトが10ぐらい。これに電書制作のためのスクリプト1つ。epubに梱包するスクリプト、epubチェックをするスクリプト。

ひとつ修正が必要になるたびにノパソ3台にあるスクリプトを書き換えてきた。さすがにアホらしくなったんで、スクリプトを修正したら、それをほかの2台に上書きコピーするだけで終了にする。
bashのシェルスクリプトで対応することにした。

for d in \
    '/mnt/usb/_works.inspiron' \
    '/mnt/chromeos/removable/USBDrive/_works.vivobook' \
    '/mnt/chromeos/removable/USBDrive/_works.cx1101'
    do
    if [ -d $d ]; then
            export LOCALWORK=$d
    fi
done


とりあえず。
各ノパソの作業ディレクトリを環境変数に設定。スクリプト内でディレクトリ指定しているところを環境変数参照にした。

SDカードのディレクトリ名を統一するのが本当かなあ、と思ったんだけど、上書き事故が怖いし、なんか苦肉の策。

image
病院が開くのを待ってたら視線を感じた。

»電子書籍制作代行についてはこちら

GBLシーズン18でACE到達

2024/5/11 [17:41:27] (土) 天気

いや。ありえないほどACE到達が難しかった。
いつものシーズンならもうとっくにACE到達だったのに、今季はヤバかった…ていうか前シーズンもヤバかったなあ。
どういうわけかわからないけど、ここんとこ周りのレベルが高すぎる。
技回数をかぞえて、交代受けを当たり前にしてくるし、当然ながらGBL用にポケモン育成してるし。

のんびりまったりやってる爺さんとしてはとてもついていけなくなってる。
まじやばいなあ。

[05/17 08:28:20]
ちなみに初期レートが出たのは3/23で1681。そこから2ヶ月近くかかってる…。モチベーションがあがらなかった、というのもあるけど、スクリプト書きや在宅仕事がらみで余裕がなかった、かな。【ポケモンGo】
お気に入りのポケモン (2016/8/10)
ポケモンGoでウォーキング再開 (2016/9/19)
ポケモンGo:カビゴンが放流されている (2016/9/26)
ポケモンGo:種族のHP順 (2016/9/29)
ポケモンGo:カビゴンの英才教育 (2016/10/24)
ポケモンGo:ハロウィンイベント飴ちゃん祭りの成果 (2016/11/1)
ポケモンGo:ジムバトルに参戦 (2016/11/29)
ポケモンGo:Pokemon GO Plus (2016/12/6)
ポケモンGo:ヤドランでカイリュー退治 (2016/12/29)
ポケモンGo:レギュラーとジムトレーナー (2017/1/20)
ポケモンGo:TL33になりました (2017/2/15)
ポケモンGo:イースターイベントで図鑑埋め (2017/4/18)
ポケモンGo:ハピナス対策【ジム戦】 (2017/5/29)
ポケモンGo:大型アップデート直前 (2017/6/23)
ポケモンGo:新ジム戦がめっちゃ面白くなってた (2017/6/23)
ポケモンGO:レイドバトルで技マシンget (2017/6/28)
ポケモンGo:コイキングレイドバトル (2017/6/29)
ポケモンGo:TL36になりました (2017/7/27)
ポケモンGo:ソロレイドの準備 (2017/7/31)
ポケモンGo:レベル3ソロレイド:ゲンガー (2017/8/9)
ポケモンGo:3鳥捕獲完了 (2017/8/10)
ポケモンGo:技マシン使用履歴 (2017/8/16)
ポケモンGo:宵越しの砂は持たない (2017/8/24)
ポケモンGo:レベル3ソロレイド:カイリキー (2017/8/30)
ポケモンGo:金コイキング捕獲 (2017/9/6)
ポケモンGo:秋分の砂2倍イベント (2017/9/28)
ポケモンGo:今月のレイドバトルはライコウ (2017/10/11)
ポケモンGo:フーディンレイドに惨敗中 (2017/10/17)
ポケモンGo:エンテイ初日GET (2017/11/2)
ポケモンGo:レベル3ソロレイド:ストライク (2017/11/9)
ポケモンGo:ポケモンのMAX強化 (2017/12/6)
ポケモンGo:レベル3ソロレイド:フーディン (2017/12/14)
ポケモンGo:バトルパーティ編成 (2017/12/21)
ポケモンGo:レベル3ソロレイド:ポリゴン (2017/12/22)
ポケモンGo:EXレイド・ミュウツー捕獲 (2018/1/24)
ポケモンGo:EXレイドパスが来た! (2018/2/10)
ポケモンGo:レックウザ終了・伝説系捕獲率 (2018/3/15)
ポケモンGO:噂のミュウをゲット (2018/4/4)
ポケモンGO:カンストポケモン (2018/5/9)
ポケモンGO:力まかせのジムバトル (2018/6/13)
ポケモンGO:ルギア最強説 (2018/6/19)
ポケモンGO:水イベント終了 (2018/6/21)
ポケモンGo:レベル40になった (2018/8/14)
ポケモンGO:カンストポケモンその2 (2018/9/20)
ポケモンGO:ミュウツー事情 (2018/10/18)
ポケモンGO:ミュウツー技開放 (2019/1/2)
ポケモンGO:ブイズでジムバトル (2019/6/4)
ポケモンGO:GOバトルリーグ (2020/2/5)
GOバトルリーグ:44勝61敗 (2020/2/7)
GOバトルリーグ:初の5連勝! (2020/2/12)
GOバトルリーグ:5連敗5連敗 (2020/2/17)
ポケモンGO:GBLで負け続ける (2020/8/23)
GOバトルリーグ:シーズン8でもACE到達 (2021/6/15)
GOバトルリーグ シーズン10開始 (2021/11/30)
GBLシーズン10でACE到達 (2021/12/20)
GBLシーズン11のランク20 (2022/3/7)
GBLシーズン11でACE到達 (2022/6/17)
GBLシーズン12でACE到達 (2022/9/23)
GBLシーズン13でACE到達 (2022/12/18)
GBLシーズン14でACE到達 (2023/3/14)
GBLシーズン14で初のVETERAN到達 (2023/5/15)
GBLシーズン15でACE到達 (2023/6/14)
GBLシーズン16でACE到達 (2023/11/15)
GBLシーズン17でACE到達 (2023/12/17)
GBLシーズン18でACE到達 (2024/5/11)

»電子書籍制作代行についてはこちら

chromeOSのlinux環境を再設定

2024/3/28 [14:58:26] (木) 天気

chromeOSのアップデートとともに、linux環境もアップデートが必要になることがある。
前環境でコンパイル済みでインストール済みのモジュールなどはdebianのアップデートによって、改めてコンパイルから作り直さなきゃいけないケースがある。

ぶっちゃけ、どれをコンパイルして、どれを後からインストールしたのか、なんて覚えてない。
実際にlinux環境で作業していてエラーになって初めて気づくわたしの素人レベル。

てことで、それならlinux環境を削除して作り直した方が話は早い。データなんかは全部外付けのSDカードだしlinux環境を削除しても問題はない。削除して、再度linux環境をONにするのに10分もかからない。この手軽さはchromeOSのメリット。

CloudReadyのバージョンアップ(94系から96に)
https://t2aki.doncha.net/?id=1646188302

以前にも同じことを書いてるけど、最新版。
linux環境をONにしたら

・必須の基本セット(linux環境を最新版にアップデートする)
sudo apt update
sudo apt list --upgradable
sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt autoremove

・ターミナルでの日本語基本セット
sudo apt install task-japanese locales-all

・aptでインストール
make →CPANのモジュールを生成するのに必須
gcc →同上
zip →あると便利
lftp →ftpはこれ一択
imagemagick →画像処理はこれ一択
perlmagick →cpanのものはコンパイルエラーになるのでaptで

・cpanでインストール
JSON
XML::Simple
DBI
DBD::SQLite
CGI
Spreadsheet::ParseXLSX

・HOMEディレクトリやSDカードにlinkの作成
lolipopとDocumentRootを同じにするために
sudo mkdir /home/users/
sudo mkdir /home/users/1
sudo mkdir /home/users/1/lolipop-NNNNNNNN
sudo ln -s /mnt/chromeos/removable/doncha.net /home/users/1/lolipop-NNNNNNNN/web

javaを使うために(JAVAはSDカードに保存してある)
sudo ln -s /mnt/chromeos/removable/jdkk-16.0.1 jdk-16.0.1

・ドットファイルの復元
バックアップしてあるドットファイルを復元してHOMEディレクトリに展開

これで復元復旧。全部で20分程度。
image

»電子書籍制作代行についてはこちら

縦書き電子書籍のための縦中横

2024/2/11 [10:00:20] (日) 天気

image
青空文庫に限らず、縦書きのEPUB電子書籍を作る時に半角の英数字を縦にするための小ネタが今回のエントリ…なにを今さら、というネタで、縦書き文章で半角英数字の縦中横なんて当然。

それでもネタとして取り上げるのはビミョーに考えることがあって、たぶん、どんなことを縦中横にするのか、どうやってるのかがいろいろあるから。特にWEB経由の文章は半角英数字がてんこ盛り。全部対応するのはやってられないけど。
image
・一文字の英数字は全角の英数字にして縦表示にしたい。
・数字の3桁以上は縦中横にすると無理矢理感が強い。この場合はそのまま転がしておきたい。
↑このへんがこだわりどころ。

そのために使ってるのが以下のもの
置換する時にゴソゴソする必要があったのでメモ…「1 while〜」のあたり、たぶん5分後には忘れる

・perl

sub _tcy{
    my $self = shift;
    my $str = shift;

    return $str if $str =~ m![0-9][0-9][0-9]+!;
    $str =~ s!([a-zA-Z0-9\!\?][a-zA-Z0-9\!\?]+)!sprintf(qq{<span class="tcy">%s</span>}, $1)!eg;
    return $str;
}
sub h2z{
    my $self = shift;
    my $str = shift;

    $str =~ tr/a-zA-Z0-9\!\?/a-zA-Z0-9!?/;
    return $str;
}
sub add_tag{
    my $self = shift;
    my $str = shift;
                                                                                                                                                             
    $str =~ s!^([a-zA-Z0-9\!\?])([^a-zA-Z0-9\!\?])!$self->h2z($1) . $2!e;
    $str =~ s!([^a-zA-Z0-9\!\?])([a-zA-Z0-9\!\?])$!$1 . $self->h2z($2)!e;
    1 while $str =~ s!([^a-zA-Z0-9\!\?])([a-zA-Z0-9\!\?])([^a-zA-Z0-9\!\?])!$1 . $self->h2z($2) . $3!eg;
    $str =~ s!([a-zA-Z0-9\!\?][a-zA-Z0-9\!\?]+)!$self->_tcy($1)!eg;

    return $str;
}


・style sheet

.tcy {                                                                                                                                                       
  -webkit-text-combine: horizontal;
  -epub-text-combine:   horizontal;
}

»電子書籍制作代行についてはこちら

青空文庫をEPUB3電子書籍に変換

2024/2/9 [14:49:12] (金) 天気

image
青空文庫の『罪と罰』(ドストエフスキー/米川正夫 訳)をepub3の電子書籍にした。
以前も何回かやってるんだけど、今回、割りと真面目にスクリプトを作ったのでメモしておこう、というエントリ。

青空文庫の資産は膨大だし、なんといっても青空記法が最強だろう。
それに、青空文庫の本を制作する姿勢は見ていて背筋が伸びるほどちゃんとしている。
底本の誤植の指摘、ルビや圏点はもちろん、字下げや地付きといったレイアウトについても底本を忠実に再現している。
「青空文庫」
わたしはmarkdownというかその手のなんちゃら記法には否定的で、そんなものを学習するヒマがあったらhtmlを読み書きできるようにしたほうが早い、と思っている。
それでも青空文庫の青空記法だけは別格で、全角文字で指示を入れる・可読性の優れた書き方、おそらく入力ボランティアさんにとても優しい。全角文字というのがポイントで、これによってプログラム的なタグやなんかとバッティングする心配がない。
これでほぼ表現すべきことを網羅、対応してるんだから改めてびっくりさせられる。

今回作ったのは。
・青空文庫で公開されている本のテキスト版、zipファイルをダウンロード
・ダウンロードしたzipファイルを所定のディレクトリに保存
・書誌情報(タイトルと著者名)を記載したファイルを作成
・カバー画像を作成して所定のフォルダに保存
以上で、あとはスクリプトを叩けば電子書籍の出来上がり、というもの。

そして、今回一番手こずったのが、JIS第3水準、第4水準の漢字の扱い。
青空文庫のテキストファイルは歴史的経緯もあって文字コードがShiftJIS。青空文庫が始まった時期的に当時としては最適だったんだけど、今から始めるならutf8だったろうなあ。

ということでシフトJISで扱えない漢字、第3水準、第4水準の漢字については
[#「木+吶のつくり」、第3水準1-85-54]
などと、青空記法で記載されている。

最初、コード変換なんて計算させればいいんだろう、ぐらいに考えてたら甘かった。
グーグル先生にお願いしてもそんなお手軽な方法は教えてくれない。
どうやらベタでコードと漢字のハッシュを作って対応するしかないっぽい。切り替えて検索方法を変えて探して見つけたサイト
JIS第3水準漢字一覧表【全1259字】(JIS X 0213:2004)
https://www13.plala.or.jp/bigdata/jis_3.html
JIS第4水準漢字一覧表【全2436字】(JIS X 0213:2004)
https://www13.plala.or.jp/bigdata/jis_4.html
(※どちらもhttpsではなくてhttpでアクセスしてください)
こちらに「テキストでコピーできる一覧表」があった。
こちらにも書かれてるように「使いやすい一覧表が無く、コピペできないPDFとかしか無かった」のはほんとその通りで、こちらのページには大感謝、だった。ありがとうございます。

これをスクリプトに仕込んでハッシュに読み込んで、青空文庫のJIS3、JIS4に対応することができた。

これさえクリアしてしまえば、EPUB3ファイルを作成するについては使いまわしの部品の組み合わせだけ。おかげで、青空文庫から電子書籍化が簡単になった。
手作業が必要なのは「タイトル・著者名を記載したテキストファイルを作成する」のと「カバー画像を作成する」の2つだけ。カバー画像はこだわらなければ真っ白の画像でもかまわない。
とはいえ、せっかくだし「本」「書籍」っぽくしたよなあ、という欲も出るんで、カバー画像を作るのに時間が一番かかる。

今どきはAIにイラストを発注することができるので、『罪と罰』のカバー画像もAIにお願いした。
年寄りの趣味として本作りは悪くない趣味じゃないかなぁ。

で、こんなネタで終わらせると申し訳ないので、上記サイトからいただいた漢字テーブルを貼り付けておきます。全部で3817行あります。未定義のところは「〓」を入れてます。
・jis3で始まるのは水準3。jis4で始まるのは水準4
・続く「-」で繋がってるのは面-区-点
・「,」の後ろが該当する漢字

※ネタ元のサイトはヒエログリフなんかもあって、めっちゃ充実しているんでぜひ飛んでみてみてください。

»電子書籍制作代行についてはこちら

おひとり様サーバーの改修

2024/1/16 [14:34:23] (火) 天気

ちょろちょろ改修してるんで、忘れないようにメモ。
5分以上前の自分はあかの他人、だからなぁ。

おひとり様ActivityPubサーバーのソースコードを外部モジュール化した。

ため池とcron側と両方共通して使うルーチンばかりで、ふたつのファイルに対して同じ修正するのが面倒くさくなった(今さらかよ)ここんとこ1ファイルでやっつける安いスクリプトしか書いてなかったんで、久しぶり。
これで改修やつけ足しも楽になった。

Like一覧・Mention一覧をつけ足した。

LikeはWeb拍手がわりの使い方のほか、ブックマーク的な使い方もしてるので一覧ページが欲しかった。イベントや博物館美術館情報の展示情報など、わたし的に貴重な情報が多い。
LikeのJSON保存は個数制限は外して期間制限だけにした。上限14日間。
Likeを削除するのはウチだけの話。意図してLikeを外すワケじゃないのでUndoは飛ばさない。

Likeの情報はお相手の所属するサーバーが持ってるんでこちらでLikeのJSONを削除しても影響はない。こんなところも分散型、ActivityPubの特徴、ということだなあ。

わたし宛のMentionはデータベースに登録してもいいと思ったんだけど、なにかの拍子に(Fediverseに)飛ばしてしまうと危険なので、とりあえずJSONそのまま保存。一覧して確認できればいいかな、ぐらいの感じ。


サークル機能に対応(?)

飛んでくる投稿はCreateというActivityの中のobjectという箱に入ったNoteがその実体。なので、投稿を取り出すにはCreateというActivityのJSONをデコードしてobjectを取り出す。
objectには投稿本文や投稿日時など投稿についてのすべての情報がハッシュ配列になって格納されている。
…てのが、ほとんどなんだけど。
objectがハッシュ配列じゃないActivityが飛んできてエラーとなってロックがかかってビックリ。配列じゃないobjectなんてまったくの想定外だった。

JSONを覗いてみたらobjectが配列じゃなくて、1行の文字列。
HTMLエンコードされたURIとなにやらハッシュ文字列とキーワードっぽいbearという文字。投稿の宛先や投稿者、投稿日時がないんだけど大丈夫か。

エンコードされているURIにブラウザでアクセスしてみたら400番代のエラーページが表示される。ハッシュ文字列がOAuthっぽくもあるけどなんのこっちゃわからない。

手がかりがまったくなくて困って、ため池に投稿したらFedibird管理人ののえるさん(@noellabo@fedibird.com)に拾ってもらって、該当ドキュメントを教えてもらった。
https://docs.joinmastodon.org/spec/bearcaps/
詳細はこちらにも↓
https://fedibird.com/@noellabo/104790008237308249

飛んできたobjectのURIに対して、GETリクエストする時のヘッダにAuthorizationをつければ問題なくURIを開くことができて、内容を読めた。宛先がない投稿を勝手に開いていいのかという問題は残るので、要調査。
とはいえ、これは投稿として開いて読む場合。サークル機能?にこちらからリクエストを投げる時は投稿先などちゃんと調べなきゃダメ。今日はとりあえず読むところまで。

まだまだわからないことだらけだ。
image
初詣の神社はアスクル御神籤でありがたみもないんで、昨日改めて浅草寺。
ここは「凶」が多くてひとに厳しい御神籤なんだけど、今年は一発で「吉」を引けた。去年がいろいろ厄年だったので、これで今年がいい年になればいいなぁ。

»電子書籍制作代行についてはこちら

profile

profile

 
doncha.net
contact:
»運営者
@t2aki@tokoroten.doncha.net

ところてんx5

2024/7/22 04:29

て、またこんな時間に目が覚めるし

2024/7/22 01:29

あと下ネタも気をつけないとマズい。底辺の頃のネタを21世紀のいま出したら危険過ぎる。シャレにならんだろう

2024/7/22 01:27

気持ちいいんだろうとは思う。けど不毛だなあ。おれも気をつけよう

検索
<<2024/7>>
 123456
78910111213
14151617181920
21222324252627
28293031

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版

[498 Page] »
1 2 3 4 5 6 7 8 9 10

TOTAL:2984

2024 (7)
1 (2)
2 (2)
3 (1)
5 (1)
7 (1)
2023 (53)
1 (1)
2 (5)
3 (1)
4 (1)
5 (3)
6 (9)
7 (9)
8 (6)
9 (5)
10 (3)
11 (2)
12 (8)
2022 (16)
1 (1)
3 (2)
6 (2)
7 (1)
8 (4)
9 (2)
10 (1)
11 (2)
12 (1)
2021 (12)
1 (3)
2 (1)
6 (1)
8 (2)
9 (1)
10 (1)
11 (2)
12 (1)
2020 (18)
1 (2)
2 (6)
4 (1)
6 (1)
7 (2)
8 (2)
12 (4)
2019 (17)
1 (3)
2 (4)
3 (2)
4 (2)
5 (1)
6 (1)
8 (1)
10 (1)
12 (2)
2018 (21)
1 (3)
2 (2)
3 (2)
4 (1)
5 (1)
6 (6)
8 (1)
9 (1)
10 (2)
12 (2)
2017 (32)
1 (2)
2 (1)
4 (2)
5 (1)
6 (6)
7 (3)
8 (5)
9 (3)
10 (2)
11 (2)
12 (5)
2016 (41)
1 (5)
2 (5)
3 (2)
4 (3)
5 (4)
6 (6)
7 (2)
8 (2)
9 (3)
10 (1)
11 (4)
12 (4)
2015 (99)
1 (11)
2 (12)
3 (9)
4 (6)
5 (8)
6 (8)
7 (3)
8 (5)
9 (16)
10 (6)
11 (1)
12 (14)
2014 (112)
1 (16)
2 (5)
3 (6)
4 (12)
5 (16)
6 (19)
7 (9)
8 (6)
9 (4)
10 (8)
11 (6)
12 (5)
2013 (145)
1 (24)
2 (15)
3 (18)
4 (23)
5 (14)
6 (11)
7 (7)
8 (11)
9 (5)
10 (4)
11 (6)
12 (7)
2012 (103)
1 (1)
2 (1)
3 (4)
4 (3)
5 (7)
6 (26)
7 (17)
8 (5)
9 (8)
10 (10)
11 (11)
12 (10)
2011 (54)
1 (4)
3 (7)
4 (4)
5 (14)
6 (6)
7 (3)
8 (3)
9 (1)
10 (4)
11 (2)
12 (6)
2010 (70)
1 (12)
2 (7)
3 (6)
4 (6)
5 (3)
6 (10)
7 (6)
8 (4)
9 (3)
10 (4)
11 (3)
12 (6)
2009 (144)
1 (15)
2 (12)
3 (12)
4 (6)
5 (15)
6 (6)
7 (10)
8 (9)
9 (17)
10 (12)
11 (14)
12 (16)
2008 (148)
1 (10)
2 (6)
3 (10)
4 (11)
5 (13)
6 (10)
7 (13)
8 (19)
9 (18)
10 (12)
11 (13)
12 (13)
2007 (106)
1 (7)
2 (5)
3 (3)
4 (7)
5 (5)
6 (9)
7 (8)
8 (13)
9 (18)
10 (11)
11 (8)
12 (12)
2006 (158)
1 (28)
2 (28)
3 (25)
4 (7)
5 (9)
6 (7)
7 (12)
8 (13)
9 (10)
10 (7)
11 (6)
12 (6)
2005 (350)
1 (31)
2 (26)
3 (26)
4 (27)
5 (29)
6 (30)
7 (32)
8 (30)
9 (30)
10 (32)
11 (29)
12 (28)
2004 (292)
1 (24)
2 (24)
3 (29)
4 (27)
5 (28)
6 (25)
7 (26)
8 (24)
9 (12)
10 (19)
11 (26)
12 (28)
2003 (318)
1 (22)
2 (25)
3 (21)
4 (28)
5 (28)
6 (28)
7 (28)
8 (29)
9 (26)
10 (29)
11 (28)
12 (26)
2002 (317)
1 (29)
2 (26)
3 (26)
4 (25)
5 (28)
6 (30)
7 (27)
8 (21)
9 (25)
10 (27)
11 (28)
12 (25)
2001 (277)
1 (17)
2 (21)
3 (23)
4 (20)
5 (31)
6 (18)
7 (26)
8 (25)
9 (29)
10 (19)
11 (24)
12 (24)
2000 (53)
6 (9)
7 (4)
8 (2)
9 (3)
10 (1)
11 (15)
12 (19)
1999 (3)
7 (1)
10 (2)
1998 (18)
9 (9)
10 (7)
11 (2)