沖縄旅行

沖縄に行くのは今年で2回目だ。社会人になってからは忙しくなるのであまり旅行には行かなくなるかもしれないとは思っていたが実際には休みを取って3連休にして旅行に行っている。沖縄は同じ日本とは思えないくらい生態系も街の雰囲気も違ったりするので本州の田舎を巡るより個人的には楽しい。冬場は本土との気温差も高く、冬〜春の沖縄の方が別天地にきた感覚は強い。ついでに飛行機代もホテル代もオフシーズンのため安く抑えられることも魅力的だ。

今回は金曜日を休みにした上で2泊3日で友人と沖縄本島に行った。仙台ー那覇便は夏は人気路線で直前にとったこともあって飛行機代は高くついてしまった。2時間かけて自宅から仙台まで急ぎ目で向かい、仙台空港では保安検査場を30分前くらいに通過。搭乗口前で仙台在住の友人Gと合流した。ANA便には久しぶりに乗ったが座席前に着いているモニターで最近の映画も見れる(しかも画質は悪くない)様だったので、行き帰りですずめの戸締りをみていた。那覇空港に着いたらまずは車を借りて、シェーキーズでご飯を食べた後空港に戻り、秋田、山形から来た友人K、Aと続けて合流した。それから沖縄で研修していたYが浦添付近で待っていたので、そこで合流。そのまま恩納村のホテル近くまで行き、地元の居酒屋で夕食を食べた。その後ホテルでチェックイン。割と新しめのホテルで、客室も豪華だった。

2日目は午前中、だらだらと客室で過ごしてスマブラしたりしたらKに折角沖縄に来たのにもったいなくね!って言われ、昼くらいからビーチに出かけた。残波岬で普通に海水浴したり、ボートに乗って競争したり、海の生き物の観察をしたり悠々と思いのままに過ごしていた。海に浮かんでゆらゆらしている時間は至福のひと時だった。

その後ホテルに戻り、プールで遊んだりしているうちに夕方になったので、その後はアメリカンビレッジにでかけた。日本に居ながら異国情緒を味わえるところで色々店を物色したあとはバーガー屋で夕食を食べた。

僕の住んでいた街にもバーガーハーツという素敵な店があったなあと思い出しつつ、何を食べて、話したかも忘れてしまったが楽しいひと時を過ごした。帰り際に路上で演奏していたダイナミック琉球という初めて聴いた素晴らしい曲に聴き入ってしまった。帰ったあと客室でボードゲームをしたかったが、すでに疲れていたためすぐに寝てしまった様な気がする。

3日目は帰るだけだったがKが早めに帰らないといけなかったため、ホテルを出るとすぐに那覇空港に向かった。道中しきりに時間を気にしているKは面白かったが、遅れたら洒落にならないのは確かだった。もちろん、無事に間に合い、その後はレンタカーを返した後そのまま空港に戻り、沖縄そばを食べたあと、Aと別れた。仙台までGと一緒に帰り、Gと仙台でいつものラーメン屋に行った後、近くのカフェで将来の話などした後別れ、帰路についた。天国みたいな場所からの帰りなので、その時は憂鬱だったが、他の地域で研修している今はすぐに大船渡に帰りたくなってしまう。不思議なものだ。

詰将棋&必至

2014年に作成したアプリの紹介ページです

本アプリでは詰将棋63問、必至問題26問を収録している他、詰将棋(7手詰まで)の創作ができます
詰将棋の問題については間違った手を選択した場合でも指し続ける機能をオプションで付けることもできます。
7手詰めの問題の解答機能は表示速度が遅い場合がありますが、ご了承ください。

プライバシーポリシー

[ 利用者情報の取得 ]

本アプリが利用者の個人情報を取得することはありません。

[ 利用者情報の利用 ]

本アプリが利用者の個人情報を利用することはありません

[ 利用者情報の第三者提供]

本アプリが利用者の個人情報を第三者に提供することはありません。

[ お問い合せ先 ]

何かご不明な点がございましたらお問い合せ下さい
hisano.haruki@icloud.com

medu4のテキストをanki化してみた

始めに

medu4のテキストをPDFから文字データを抽出し、その文字だけでankiのデッキを作成しようと思い、試行錯誤を重ねたが、表からの文字データの抽出が難しいことや画像の扱いに困るなどの問題が生じた。
次に考えたのは、画像化したPDFの上に空欄になっている文字を位置情報を合わせて貼り付けることでこれはそこまで悪くない形になった。今回はその手法を説明しようと思う。

PDFの画像化

pdfの画像化はpdf2imageというライブラリを用いた。

文字の抽出

PDFにはどの環境でも互換性を維持したレイアウトで印刷可能となるように、文字とその位置情報が保存されているが、PDFからの文字情報を抽出するのは難しいものとなっている。
Python環境ではPDFから情報を抽出するライブラリとして、pdfminerやその派生版があり、今回はpdfminerの派生であるpdfmajorを用いた。これによって、文字の背景色が黒かどうかを判定し、黒でないものがあった場合、空白文字とみなして、その位置情報、文字、フォントサイズを取得している。

if not isBlack(ltchar.color.values):
 if not is_searching_white_letter:
  let = PDFLetter(x=ltchar.bbox.x0 + 2, y=ltchar.bbox.y0, fontsize=ltchar.size,letter=ltchar.get_text())
  is_searching_white_letter = True
 else:
  let.letter += ltchar.get_text()

文字を画像に貼り付ける

次に、空白文字の座標を取得したことを利用して、以下のようなHTMLを自動生成した。この例では、毛様体や後嚢といった文字をPDFからx,y座標ごと抽出し、CSSのpositionプロパティにHTMLの座標系に変換した値を代入することで文字列の埋め込みを実現している。

<div class="test1"><img src="144531_2021gankaF_8.jpg"><div class="test2"><div style="position:absolute; left:55.24101202661208%; bottom:82.51024765705733%"><span class="cloze" onclick="cloze(this.id);">毛様体</span></div><div style="position:absolute; left:67.38549129989765%; bottom:82.51024765705733%"><span class="cloze" onclick="cloze(this.id);">動眼</span></div><div style="position:absolute; left:31.39297594677585%; bottom:78.62957440995855%"><span class="cloze" onclick="cloze(this.id);">後嚢</span></div><div style="position:absolute; left:48.51602482088025%; bottom:71.50096917649574%"><span class="cloze" onclick="cloze(this.id);">99</span></div><div style="position:absolute; left:25.499776100307063%; bottom:64.33613766644099%"><span class="cloze" onclick="cloze(this.id);">10</span></div>

作成したもの

参考にしたもの

ankiで暗記ペンを実現する方法
https://ameblo.jp/macgyverisms/entry-12160265445.html
pdfmajor
https://pypi.org/project/pdfmajor/

SyntaxHighlighter Evolvedを導入

プラグインのSyntaxHighlighter Evolvedを導入してみた。これはソースコードを綺麗に表示するためのものだそうだ。例えばC言語のHello Worldプログラム(最も基本的なもの)を表示すると以下のようになる

#include<stdio.h>
int main(void){
printf("hello world!\n");
return 0;
}