頭と尻尾はくれてやる!

iOSアプリなどの開発日記です


書籍データをiPadのiBooksに持ってくる

Harry Potterの2周目で、Harry Potter and the Sorcerer’s Stone を読み終えた。最近はiPadで読んでるんだけど、さてどうやってiPadにepubデータを持ってくるんだっけ?となったのでメモ。

MacのiBooksアプリを起動。

iBooks (Mac)のメニュー画面

↑メニューのファイルから「ライブラリに追加」を選択。
該当する書籍データ(epubやpdf)を選択すればMacのiBooksで使えるようになる。

iBooks (iPad)

↑しばらくするとiCloud経由でiPadでも使える。

iTunesを起動してどうやったかなあ〜としばらく悩んでたけど、今はiTunesでは本をどうこうするってのはなくなってたんだったわ。



macOS High Sierra 10.13.2
iBooks 1.13 (Mac)
iOS 11.1.2


机の上のケーブルをまとめてスッキリ

購入前の机上の様子

↑普段は机の上はこんな感じだ。ライトニングケーブルなんかをすぐにiPhone/iPadに挿せるようにするためある程度の長さを机の上に来るように置いてる。これだと時々机の上から落ちることもあるので困ってた。
USBの延長コードに至っては微妙に短く、コードの端が常時机の上にあるようにはできなかった。苦肉の策でクリップを折り曲げて落ちないようにしてみたけど使いづらいなあと思ってた。

磁力の力でデスクがスッキリ。ケーブル類をひとまとめにできる「Philonext」 | ライフハッカー[日本版]
↑そんな時にこの記事を目にした。
おおお!これはいいかも!と思った俺は早速100均ショップをいくつか見た。ほらこういうのって似たようなのがありそうじゃない?あるなら100均の方が安いし。
でも見当たらなかったので結局Amazonで購入。



↑種類がいくつかあって俺はライトニングケーブルが2本とUSBケーブル1本をまとめたかったので3本できるのを選んだ。

購入したPhilonext

↑すぐに到着。

Philonextの中身

↑引っ張り出したところ。

買ったのにはコードを留める側の方も2種類ある。’BIG’という方にはUSBケーブルやもっと平べったいコード、’3’とある方は3種類の穴径を選べる。

Philonextの磁石

↑’3’の方は角度によって径の大中小ありますよってのがデザインされてるけど最初はこの表記の意味が理解できてなかった。

ライトニングケーブルは一番小さい穴を使うといい具合に固定できた。コードに対してゆるゆるだといざケーブルを使おうとする時なんかにケーブルの根元側に落ちてしまう。

まとめた後の机の上

↑設置後。めっちゃすっきりした!
台側を机の側面に付ける方がよりすっきりするかも、と思ったんだけど自作スタンディング机の1x4材の端っこなのでうまく接着しないかも?ということで上の画像のように机の上面のデスクマットに接着した。


Blenderで文字(日本語)のオブジェクトを扱いたい

Blenderで文字(日本語)のオブジェクトを作ろうとした時のメモ

add Textの場合

↑普通にTextをAddしても日本語の入力ができない。

(62) 【Blender】テキストに日本語を使う方法 - YouTube
↑このあたりを参考にすると日本語を含むテキストファイルを読み込めば日本語のオブジェクトの作成ができた。
ところが日本語のフォントにいいのがなく、オリジナルのフォントとかできる?とか調べた。

フォント作成サイト”Paintfont.com”を使って『走れメロス』を自作手書きフォントにした – たぬきフォント
↑このサイトを参考に自作フォントを作ってみた。なお、Paintfont.comというのはすでになく、今はcaligraphrというらしい。
ここにサンプルのがあったのでそれをcaligraphrにアップ、作成しそれをダウンロード。
それをBlenderで読み込んだらうまくいった。次は日本語を試そうかと思ったけど日本語をやろうとするとやっぱり結構なお金がかかりそう。月額課金だし。

それで他に方法はないかと調べていたら下のページを見つけた。
Blender iDrawで書いたベジェ曲線のインポート : ブログ

Graphic(旧iDraw)でSVGで出力してBlenderで使えるの、、、?ということで試してみた。

Graphicで作成

↑Graphicで文字を作成。これをSVGで出力。普通に出力するとBlenderでインポートしたら妙に小さかったのでうまくインポートできてないの?とか悩んだ。

SVGインポート

↑Blenderでインポート。まだ曲線扱い。

Convert to Mesh

↑なのでオブジェクトモードでObject / Convert to / Mesh from Curve…
ってのを選択する。

メッシュ作成後

↑するといつもの(?)メッシュになった。これでいじれる、、、けど頂点数はそこまでいらない。

頂点数削減

↑ModifierのDecimateで適当に減らして65個→18個に。具合はお好み次第で。

厚み付け

↑後は煮るなり焼くなり厚みをつけるなり。


ということでBlenderで日本語をオブジェクトとして扱うにはこの方法が一番ラクかな、俺の環境では。Graphicならまだベジェ曲線使うのも(Blenderよりは)慣れてるし。



macOS High Sierra 10.13.1
Blender 2.79
Graphic 3.0.1


macOSでwindowを閉じる時に「保存しないの?」って聞いて欲しい

masOSのDocument-Based ApplicationでwindowをメニューのCloseや⌘+wで閉じる時に保存してない場合、 「保存してないけどええのん?」って聞いてくれる例のあれを実装するのに苦労した話。

そもそもNSDocumentオブジェクトはどうやって保存すべき内容に変更があるかどうか知るんだ?というのも疑問だよな。調べるとNSUndoManagerを使ってundo/redoを実装するなら特に気にせんでいい、実装しないなら
updateChangeCount:
メソッドを実装すりゃええ、ということらしい。

ところがどちらにせよ、いくら頑張っても「保存してないけどええんか?ホンマにええんか?」と聞いてくれない。NSDocumentのdocumentEdited(ダーティフラグっていうのかな?)を見るとちゃんと立ってるはずなんだが、、、?いけずな奴だ。

で、ようやく気付いたんだが、、、
XcodeでDoc-Based Appを新規作成した場合デフォでDocument(NSDocumentのサブクラス)が作成されて、その中に
+(BOOL)autosavesInPlace
ってクラスメソッドがある。デフォでYESを返してるところをNOにしてやると

保存するか聞く画面

↑ちゃんと聞いてくれた!ああ、そういうことかよ、、、orz


なお、NSUndoManagerを使う時、
undoManager = document.undoManager;
のようにNSDocumentオブジェクトからもらいましょう。自分で
undoManager = [UndoManager new];
このように自作してて地味にはまってました。


↓参考サイト、多謝!
NSUndoManagerを使って簡単にアンドゥ、リドゥを実装する




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.