ローカルLLMを用いて英文PDFを日本語PDFにするアプリを作ってみた

レイアウトを崩さずPDFを日本語化する翻訳アプリを自作した話

仕事や勉強で英語の文書を四苦八苦して読んでいて辛かったので、LLMを使って翻訳アプリを自作してみました。 OpenAI互換のwebapiが動いているllama.cpp serverやLM StudioをLLMサーバーとして使えば利用可能です。 そこまでリッチなモデルを使わなくても動くのでM1 Macとかでも利用可能です。

実行環境(動作確認環境)

  • LLMサーバー: Minisforum PC(Ryzen AI HX370のNPU)の上に lemonade server を使って gemma4-it-e4b-FLM を動かしている
  • クライアント環境: Pythonが動いているPC

中身はシンプル

やっていることはシンプルで、PDFを分解してテキストデータを取り出し、そのテキストデータをLLMサーバーへ送信して、翻訳結果のテキストに置き換えてPDFファイルを復元する、というものです。

実装自体はLLMにやらせましたが、一度自分で企画してアプリを作ってみたかったので挑戦してみました。まあまあな出来だと思っています。

リポジトリはこちらです。

https://github.com/yshr1982/pdf_translator

というわけで、ここから先はこの pdf_translator の仕組みと使い方を解説していきます。

どんなツールか

  • 英語または中国語のPDFを日本語へ翻訳
  • 元のレイアウトを保持したまま新しいPDFを再構築
  • 入力PDFは書き換えず、出力は別ファイルとして生成される

翻訳エンジンにはOpenAI互換のAPIを利用するため、クラウドのOpenAI APIだけでなく、OpenAI互換のエンドポイントを持つローカルLLMでも動作します。

処理の流れ(3段階パイプライン)

内部的には次の3段階で処理が行われます。

[1. PDF解析] → [2. 翻訳] → [3. PDF再構成]
  1. PDF解析 PyMuPDFを使ってテキスト・座標・フォント・画像・罫線を抽出します。数式やコード、表などの「文章ではないブロック」は自動的に判定され、翻訳対象から除外(原文のまま保持)されます。

  2. 翻訳 段落を結合し、カラムやページをまたいで途切れた文章を1つの単位にまとめたうえで、OpenAI互換APIに送信して日本語へ翻訳します。

  3. PDF再構成 ここがこのツールの特徴的なところで、まっさらなPDFを新規作成するのではなく、原文のPDFを複製し、翻訳対象のテキスト部分だけを消して日本語のテキストを重ねて配置します。この方式のおかげで、内部リンクや画像、数式、表、文字装飾がそのまま維持されます。また、翻訳後の文章が元のブロックからはみ出さないよう、フォントサイズや折り返しも自動調整されます。

動作環境

  • Python 3.14系
  • OpenAI互換APIのエンドポイント(クラウドのOpenAI、またはローカルLLM)
  • macOSではシステムのPythonへの直接 pip install がPEP 668によって拒否されるため、仮想環境(venv)の利用が前提です

セットアップ

リポジトリにはvenvが同梱されているため、そのまま使うこともできます。

source venv/bin/activate
python -m pip install -r requirements.txt

新しく仮想環境を作る場合は以下の手順です。

python3.14 -m venv venv
source venv/bin/activate
python -m pip install -r requirements.txt

使い方

基本的な実行方法

CLIから直接実行できます。

source venv/bin/activate
PYTHONPATH=src python -m pdf_translator.cli.main /path/to/input.pdf --lang en

付属の起動スクリプトを使う方法もあります。venvを使ってくれるうえ、日本語フォントがなければ自動取得も試みてくれるので、こちらの方が手軽です。

./scripts/start.sh /path/to/input.pdf --lang en

--lang オプション(対応言語 / プロンプト選択)

キー 意味
en 英語
zh 中国語
mixed 英語と中国語の混在
unknown 不明

config.yamlpromptsセクションでシステムプロンプトを定義している場合は、en1en4のようにバリアント番号を付けて指定できます(en/zh/mixed/unknown × 1〜4の最大16通り)。番号を省略すると1が指定されたものとして扱われます。未定義のキーを指定した場合は、言語ベースの組み込みプロンプトにフォールバックします。

PYTHONPATH=src python -m pdf_translator.cli.main /path/to/input.pdf --lang en2

--page-range オプション(ページ範囲指定)

開始-終了の形式(1始まり・両端を含む)で、指定した範囲のみを翻訳できます。省略した場合は全ページが翻訳対象です。

PYTHONPATH=src python -m pdf_translator.cli.main /path/to/input.pdf --lang en --page-range 3-8

出力について

  • 出力PDFは入力ファイルと同じディレクトリに生成されます
  • ファイル名は 元ファイル名_jp.pdf
  • 出力は常に全ページを含みます。--page-rangeを指定した場合、範囲外のページは原文のまま出力されます
  • config.yamldebug: falseの場合、中間生成物を置く一時ディレクトリは処理後に自動削除されます

設定ファイル(config.yaml)

設定はリポジトリ直下のconfig.yaml(固定パス)で行います。雛形としてconfig_sample.yamlが用意されています。

llm:
  provider: "openai"                      # 現状は "openai" 固定
  base_url: "https://api.openai.com/v1"   # クラウド or ローカルLLMのエンドポイント
  api_key: "sk-xxxxxxxx"                  # ローカルLLMではダミー文字列でよい
  model: "gpt-4o-mini"                    # 使用モデル名
  timeout_seconds: 60
  max_retries: 3                          # 失敗時のリトライ回数

translation:
  split_threshold_chars: 500              # この文字数を超える文書をLLM送信前に分割

merge:                                    # 段落結合の設定(セクションごと省略可)
  enabled: true                           # false で段落結合・チェーンを無効化
  paragraph_gap_ratio: 0.5                # 縦隣接ブロックを結合する行間しきい値(×font_size)
  font_size_tolerance: 0.5                # 同一段落とみなすフォントサイズ差の許容(pt)
  full_width_ratio: 0.6                   # 全幅ブロック判定のしきい値(テキスト幅比)

# prompts:                                # 任意: システムプロンプト上書き

debug: false                              # true: 一時フォルダを残す / false: 削除

llmtranslationは必須セクションで、欠けるとConfigErrorになります。mergepromptsdebugは省略可能で、省略時はデフォルト値が使われます。

よく変更しそうな設定項目

  • クラウド ↔ ローカルLLMの切り替え: llm.base_urlllm.model(必要に応じてapi_key)を変更するだけで切り替えられます。ローカルLLMはOpenAI API互換のエンドポイントを想定しており、api_keyはダミーで構いません。
  • 分割単位の調整: 長文をLLMに送る際の分割文字数はtranslation.split_threshold_charsで変更できます。
  • 段落結合の調整・無効化: merge.enabled: falseにすると段落結合と継続チェーンを無効化できます。結合の積極性はparagraph_gap_ratio(値が大きいほど結合しやすい)やfont_size_toleranceで調整可能です。
  • 翻訳の作風・専門性の切り替え: システムプロンプトを差し替えることで対応します(後述)。
  • デバッグ: debug: trueにすると、parsed.jsonmerged.jsontranslated.jsonや切り出し画像といった中間生成物が、入力PDFと同じ場所の隠し一時フォルダ.<名前>_tmp/に残り、DEBUGログも出力されます。

システムプロンプトのカスタマイズ

翻訳時のシステムプロンプトは、config.yamlの任意セクションpromptsで上書きできます。キーは<en|zh|mixed|unknown><1-4>(例: en1en4)で、--lang引数で選択します。

prompts:
  en1: "あなたは翻訳者です。..."
  zh1: "あなたは翻訳者です。..."

config_sample.yamlには、法律・CS/数学/物理・SF文学・地理歴史という4つのプリセット例(en1en4)が用意されているので、文書のジャンルに応じて使い分けることができます。

テスト

同梱のテストスイートは以下のコマンドで実行できます。

source venv/bin/activate
PYTHONPATH=./src pytest tests/ -v

README記載時点では137件すべてがパスしていると報告されています。結合テスト(tests/test_pipeline.py)では、バンドルされた論文PDFを実際に翻訳(LLM部分はスタブ化)し、ページ数・リンク復元・画像や描画の一致・原文の除去・日本語出力・数式や表の保持・テキストのはみ出しがないことなどを検証しているとのことです。

主な依存パッケージ

  • PyMuPDF(pymupdf) — PDFの解析・再構成
  • OpenAI — 翻訳API呼び出し
  • PyYAML — 設定ファイルの読み込み
  • Pillow — 画像処理
  • fonttools — フォント関連処理
  • pytest — テスト

まとめ

pdf_translatorは、単に翻訳文を流し込むだけでなく、「原文PDFを複製して該当箇所だけ置き換える」というアプローチによって、レイアウト崩れを最小限に抑えているのが大きな特徴です。数式やコード、表を自動で翻訳対象から除外してくれる点も、技術文書や論文を読む場面では嬉しいポイントだと思います。

クラウドのOpenAI APIだけでなくローカルLLMにも対応しているので、翻訳したい文書の機密性に応じてエンドポイントを使い分けられるのも魅力です。英語・中国語の資料を日本語で読みたいときに、ぜひ試してみてはいかがでしょうか。

賃貸住宅にAQUA アクアの食器洗い乾燥機ADW-GM3を導入した

AQUAの食器洗い乾燥機を導入したので記事を書いてみます。

昨年子供産まれ、そろそろ育休明け。 職場復帰後、朝起きて朝食の準備と後片付けを終えて、保育園の登園時間を守りつつ出勤する。 仕事終わりに子供を迎えに行って帰ってから夕食の準備と後片付けからのお風呂とねんねのルーチン このルーチンを子供の際限の無い抱っこや絵本、構って要求、ご飯を大人しく食べることは無いをやるってのは、無理ゲーだなってなったので 食器の洗いと乾燥は機械に任せてしまおうと購入を決意しました。

事前準備

我が家は築30年くらいの賃貸アパートで、シンクの蛇口は壁付き混合水栓と呼ばれる種類のものになっています。 食器洗い乾燥機を取り付けるための分岐水栓はありませんので、別途分岐水栓を取り付けました。 (パナソニックの食器洗い乾燥機には、分岐水栓不要のタイプもありますが、我が家のシンクでは高さ制限があって使えなかった。)

また、賃貸なので穴あけ工事などの設備に対して変更を加えることは大家さんの許可を得ないといけないので大変かつ多分許可を得られない。しかし、幸いシンクの蛇口が壁付きの混合水栓タイプだったので、取り外して分岐水栓を取り付けることができそう。出て行くときに元に戻せば問題ない。

混合水栓はMYM社のもので、壁側のクランクは30mmのボルトで止められていました。 また食洗機はJEM1206規格であるので、それに適合する分岐水栓 SANEI社PB515Sをホームセンターで購入してきて自分で付けました。

シンク周りのサイズ

縦横48cm x 高さ62cm (この高さが足りなくてパナソニックNP-TZ300を断念しました) のスペースに食器洗い乾燥機をおこうと思います。

分岐水栓取り付け工事

取り外し

使用工具: ウォーターポンププライヤーとモンキーレンチ(36cmまでのもの) ボルトを外す、取り付ける際に全体が動いてしまったちゃんと閉まらないのでウォーターポンププライヤーで挟んで固定してモンキーレンチで締めていました。 傷つけないようにタオルで包むと良いと思います。

  1. 水の元栓を締めます。

水道メーター付近にありますので締めましょう。締め終わったら水が出ないことを確認します。古い物件だと元栓が緩んでいて流れ続ける場合があるので注意。

  1. 蛇口、混合水栓を外す

クランク部分のボルトを外していきます。反時計回りにレンチを回して緩めると簡単に混合水栓が外れます。

蛇口を横から見た図。ここのクランクのボルトを緩めます。 簡単に外れました。 この状態のクランクに購入したSANEIの分岐水栓を取り付けます。

取り付け

SANEI分岐水栓は各社に対応していますので、説明書を読みながら取り付けます。

分岐水栓を手で支えながらボルトを時計回りに締めていきます。 クランクは結構ガタついてズレてしまうので、最初は手でやって仮締めして、外した分岐水栓を取り付けられるか確認しながらやりましょう。 締め切ったあと調整するのは二度手間になります。 これで完了。 元栓を開いて水漏れがしていないか確認します。 締め付けが弱い、パッキンが合っていない場合は水漏れするので確認する際には元栓をゆっくり開いて確認しながらやった方が良いです。 写真の壁に水滴がついているのは、元栓開けたら水が噴き出た後です。

ど素人の自分でも簡単にできました。

食器洗い乾燥機の設置

食器洗い乾燥機の設置は非常に簡単で、、

仮置きしてみた。シンク横のスペースにピッタリサイズ。予定通り。 説明書に従って、分岐水栓にホースを取り付けて、筐体後下部の給排水口に取り付ける コンセントに電源コードとアースを取り付ければOK。 アースはなくても動きますが、水回りなので感電防止のため接続した方がいいです。

問題なく動作しています。周辺の水漏れもなく分岐水栓の取り付けから食洗機の設定までこれで完成です。 大体2時間弱で全ての作業を終えることができました。

購入品

この作業をするにあたり購入したものを紹介します。

家電

広さがある人は、パナソニックの方食洗機でも良いです。分岐水栓は規格適合なので使えます。

工具

少し値が張りましたが日本製の工具を用意しました。 何年後かに家を出るときに取り外す工事をしないといけないので、ちゃんとしたものを購入。

水栓

壁付き混合水栓タイプだとSANEIのこれが適合していたので購入。 壁付きではないタイプの水栓の家庭は別のものを用意する必要があります。

スペース確保要員

シンクの調理スペースに食洗機を置いたので、調理スペース追加のためニトリのスチールラックを購入しました。 高さ80cmでキャスター付きなので便利で良いです。 www.nitori-net.jp

さらにスペース確保のため山崎実業の水切りプレートを購入。多少寄りかかっても問題なかったので、この上にまな板を置いて使っています。切れ端をそのままシンクに落とせるので結構便利です。

追記 2024年7月

ADW-GM3を手放しました。注文住宅を購入し、食洗器付きのキッチンを導入したためです。 それまでの2年間故障もなく1日2回しっかり動作してくれました。 お手入れは週一回部品を外してスポンジで掃除するくらいで、全然故障の気配もなく良い商品でした。 もう不要になったため廃棄しましたが、そのまま賃貸住宅に住んでいたらずっと使っていたと思います。 取り外す際は、このブログの記録を読み返して逆の手順でもとに戻しました。引き渡しの際に管理会社から特に指摘もなかったのでやり方としては問題なかったと思います。

車2台持ちの夫婦がなぜコンビ(Combi)のチャイルドシートを買ったのか

目次

初めに

先日子供が生まれて、乳幼児を迎えるにあたりおむつや哺乳瓶、服、布団、ガラガラなどいろいろなものを購入しました。
その中て購入するまでに悩んだものがチャイルドシートです。
チャイルドシートは様々なメーカーが発売していて、有名なもので
アップリカ
エールベベ
コンビ
マキシコシ
Joie
などがあり、似たような性能、機能でとても迷いました。
自分たちは最終的にCombiのTHE S Air ISOFIX エッグショックを購入したのですが、その購入理由について日記に残しておきます。

欲しかったもの

私たちは共働きで田舎に住んでいるため公共交通機関の利便性がよくない為、車移動が主体になります。
その為、車を2台所有していますので、2台にそれぞれチャイルドシートが必要になります。
チャイルドシートは安くても3万円、高いものだと7万円するので2台分になると最低7万円から15万円くらいの出費になります。
さらに安いものがありますが、大切な赤ちゃんを守るために性能基準R129を満たすものが欲しいため上記の価格帯からが購入対象と考えました。
しかし、高いのでできるだけ出費を抑える
子供を載せる時に載せやすく、洗えるもしくはカバーが付いているもの
車にはISO FIXが付いていたのでISO FIXサポート を条件にしました。

値段も高いので、できたらチャイルドシートは一台で車2台分使いまわせたらいいなーとも思っていました。

比較したもの

アップリカ クルリラシリーズ
エールベベ KURUTTO 5i
マキシコシ MaxiPEBBLE PRO i-SIZE + FamilyFix2
コンビ Combi THE S ISO FIX です。

安全規格

アップリカ、コンビ、マキシコシが良さそう。エールベベも悪くはない。

アップリカ、コンビ、マキシコシ

ECE R129準拠。

エールベベ

エールベベのKURUTTOもECE R44準拠+側面の強化を謳っています。
のでどれも甲乙付け難し。どれ選んでも大丈夫そう

値段

どれも高いですね。

全品

型落ち品だと3万半ばで西松屋やショッピングセンター内のベビー用品売り場で売っていました。
現行品、新製品は7万円前後
たか〜😭
セールや型落ち品を狙わないと車2台分は大きな出費になりそうです。

載せやすさ

マキシコシの圧勝。次点でコンビ

マキシコシ

分離できるため、赤ん坊を自宅などでシートに載せて車に持っていくことができます。
ベビーカーと組み合わせれば車まではベビーカーで移動して、座面を取り外して車に載せるという使い方ができます。
座面を分離できるため、車2台分そのまま購入するよりも座面は一つ、台座を2つ購入すれば良いためコストも抑えられます。
この点は、大きな利点だと考えました。
ほとんど、マキシコシにしようと思いました

コンビ

コンビも物によっては座面を取り外すことができます。
しかしマキシコシのようにベビーカー連携や移動に配慮した取っ手があるわけではないです。

アップリカ、エールベベ

回転できるので赤ちゃんを載せる時に楽です。 購入を検討されている方は回転できるものを選んだ方が良いです。

メンテナンス

エールベベが良い。次点でマキシコシ

エールベベ

布を取り外して、洗えるのので大きな利点に感じました。

アップリカ、コンビ

シートや追加カバーで汚れを防止する 拭いたり、消臭スプレーで対応する

マキシコシ

座面が取り外せるので、その分メンテしやすい。

決め手

アカチャン本舗でチャイルドシートの説明を聞いた際に、
メンテナンス性でエールベベがいいですねと話したところ 店員さんが、洗うと生地がよれてしまうのでエールベベであっても洗うことは推奨できないですと聞いたのでメンテナンス性の利点がそこまでなさそうだ

マキシコシが田舎だと品薄でものが見れない。HPで重量を見たところ本体重量4.55kgで子供を合わせると合計で10kg超える
イメージしていた運用が「家で子供を載せて、取っ手を持って車まで移動して設置する。ショッピングセンターに行った時も座面のみを持ってカゴを持つかのうように移動する」
だったので10kgを超えるものを女性ができるかというと出来ない。男性でも結構キツい。 運用するならばベビーカーとの組み合わせが必須。自分たちの車にベビーカーを載せるスペースがあるのか?無い。 出費も9万円くらいになりそう

コンビにした理由

ものは十分に良いが、回転できるので赤ちゃんを載せやすい
座面を分離できるので、車から車へチャイルドシートを外して付け替えることが可能。

購入前にアカチャン本舗で実際にアップリカとコンビで試させてもらいました。
その感触で、アップリカ、エールベベのチャイルドシートを取り外すのは一苦労。
一台で運用するには覚悟が入りそうです。自分の場合は二、三ヶ月後にチャイルドシートを買い増してそうな未来が見えました。
しかし、コンビの場合は台座だけ取り付けて、その後で座面を取り付けることができるので、設置が簡単でした。
外す時も逆の手順を行えばよくて、結構簡単に出来ました。
座面、台座ともに両手で持ちやすいので女性でも簡単に取り付け、取り外しができます。 コンビなら一台で使いまわせる確信が得られ、購入の大きな決め手になりました。

メンテ用品も純正品で肩パッドや汚れ防止シートが売っていたのと、購入時にキャッシュバックキャンペーンで実質一万五千円くらい安くなりました。 価格は実質6万8千円になりました。型落ち品2台買うよりも安くなった計算です。😃

写真

箱です。チャイルドシート丸ごと入っているので結構大きいです。

段ボール

取り出すと本体があります 座面前部にボタンがあり、そこを押しながら回すと回転できます。 横を向いた状態で、左右にあるボタンを押すと座面と台座が分離します 車に装着するときは、台座と座面をそれぞれ別個に持って装着させることができます。 子供を載せるとこんな感じになります。(ぬいぐるみで代用) ISO FIX 後部座席に取り付け

座面を台座に取り付ける。 取り付け方は分離したときの逆の手順を踏めば良いので簡単です

終わり

自分が買った奴はこれです

高価ではありますが、チャイルドシート2台買うよりも安く済みました。 自動車を夫婦で2台持っているような家庭は、Combiを検討してみてはどうでしょう。

マキシコシでもよかったんですけど、実物見れなかったのが残念です。

追記 2024年7月

このCombiのチャイルドシート子供が1歳になる際に使わなくなり、ジュニアシートに変更しました。

このジュニアシートは、シートベルトで固定するので車2台体制での載せ替えがエッグショックよりもすごく簡単なので重宝しています。

このエッグショックを使わなくなった理由ですが、子供が大きくなるにつれて少し狭そうにしていたのが変更した理由です。新生児から1歳くらいまでは問題なく使えています。
そして今、第二子が誕生し再び使い始めました。買ったのは3年ほど前になりましが問題なく使えています。
カバーもすべて取り外し可能で、ウンチを漏らした際もきれいに洗うことができます。

最新式はこれですが、私が購入した3年前よりもずいぶんと高くなっていますね。

デスクワークが多いソフトウェアエンジニア向けのストレッチ

狙い

自分の肩コリ、腰痛の改善のためのメモ。
実際にやる場合は理学療法士に相談して行うと良いです。

プログラミングなどのデスクワークを長時間行うと、背中を丸、肘をつき顔を突き出した姿勢になりがちです。
そうすると、背中の僧帽筋、広背筋や脊柱起立筋、腰周りの腰方形筋、大腰筋、多裂筋、腸骨筋、大臀筋に凝りが生じます。
凝りが継続すると血流が悪くなり肩凝りや神経を圧迫し坐骨神経痛の要因になったりするので、
30歳を過ぎたらみなさんストレッチをしましょう。

*私はふかふかの椅子に勢いよく座った時に腰に違和感を覚えて以降腰痛との付き合いが始まりました。
 症状がひどい時は、電車に立って5分移動するのも辛かったです。つり革で懸垂しながら電車に乗っていました。
 この症状も大臀筋と大腰筋膜張筋をほぐす事で症状が治ったので、もし同様の経験をされている方がいらしたら参考になればと思います。

ストレッチ

椅子に座りながら出来そうなものを中心に記載します。

僧帽筋、広背筋1

立って気をつけをした状態から、
胸骨を上下に伸ばすイメージで胸を張ります。
30秒から60秒維持
元に戻します。
これを10回くらい気が向いたときに行います。

胸を張るときに左右に胸を開くようにするのではなく、上下に張るのがコツです。
イメージは芸能人のオードリー春日という人の姿勢です.

僧帽筋、広背筋2

背中の腰に手を甲を当てて肘を外側に突き出します。
腕で三角形を作るイメージ
肘を前後にリズムよく動かします。
しっかりやると肩周りが熱を帯びてきて汗が出ます

ちょど良い動画がありました。これの1分くらいからの動き
https://www.youtube.com/watch?v=MbxqnHHECQg

脊柱起立筋

https://smartlog.jp/128766#S21316757
ここのブログの「背中のストレッチ5」が参考になります。

多裂筋・腰方形筋

寝転んで、両膝を立てます。足は、三角座りで背中は床付いている状態になります。
そこから両膝を左右どちらか側の床につけるように倒します。
この姿勢で1分以上。 
私の通っている理学療法士さんは7分くらいかけると良いと言っていました。
(私の腰周りは、石のように硬い状態なのでそう言ったと思います。)
筋肉は30秒くらいで緩和するので、1分待たずに緩んできたと感じたら止めると良いでしょう。
終わったら反対側も行います。

http://quiizu.com/archives/14288
ここのブログが参考になります。

大臀筋、中臀筋

椅子に座った状態で、伸ばしたい方の外側の踝を反対側の足の膝の上に載せます。
片足だけ椅子の上であぐらをかいた状態。
深くお辞儀をします。
30秒から1分伸ばします。
反対も同様に行います。

https://www.goodspress.jp/howto/135912/2/
の腰のストレッチ① が参考になります。

大腿筋膜張筋

説明が難しいですが、シェーのポーズで右足を上げずに左足よりも左外側の床に右踝をつけると右側が伸びます。
これも30秒から1分伸ばします。

http://yoshinashigotowo.blogspot.com/2014/11/blog-post_14.html
ここの写真のポーズを参考にしてください。

筋トレ

筋肉は左右、前後で引っ張って体を支えていますので、背中周りの筋肉を緩めたなら
大胸筋の筋トレ、ストレッチを行いバランスをとる
腰周りを伸ばしたなら、腹筋など体幹の筋トレを行ってバランスをとるなどしないと余計に悪化しますのでバランスを意識しながらやると良いです。
やみくもに一箇所だけストレッチをし続けるとそこに対応する反対側の筋肉に負荷がかかりますのでお気をつけください。

また次の機会に

 

 

LABRICOを使って本棚を作ってみた

最近引っ越しをしたので新たにディアウォールと同じようなコンセプトのLABRICO(ラブリコ)

f:id:tront1982:20180224230806j:plain

を使ってツーバイフォーの木材を柱にして本棚とテレビを壁掛け、自転車の壁掛けを作成してみました。

 

ざっくりと利点と不利な点をまとめますと

LABRICOの利点:取り回しが良い

ラブリコの利点はディアウォールと違って天井から9.5センチ短い木材で使用するものです。そのためディアウォールの時のように木材の長さが天井の高さと殆どの差が無いことによる天井や床、壁との接触が少なかったです。

使用感としては、ディアウォールに比べて木材の取り回しが非常に良いのと長さの調整するアジャスターが付いているので木材が少し短い、長い場合でも調整が可能です。ディアウォールの時は、長すぎた場合は切断しないといけなくて、短すぎた場合は下駄を履かせる必要があったのに比べ、非常に使いやすいので、値段は少し高いですがこちらのほうをおすすめします。

LABRICOの不利点:断面積が狭い、天井を押し上げる

・ディアウォールに比べて天井と床の接触面が少し小さいのが気になりました。私は、ダイソーに売っている耐震用のジェルを天井とLABRICOの間に挟んで接触面積を増やして対応しました。

 ・天井との間はアジャスターで調整可能ですが、しっかりと固定しようと突っ張らせる為にネジを回しすぎて天井を押し上げてしまう事がありました。いい感じに天井につっぱらせるように調整に気をつけないといけません。コツを掴めば(簡単に掴めます)問題ないです。これは、突っ張る長さがが40mmで固定なディアウォールと90mm-95mmと可変のLABRICOの差になります。

このため天井がしっかりしていない場所に設置してしまうと将来ずれて倒れてくる場合があります。*先日震度3程度の地震があって自転車の壁掛けが傾いて倒れる寸前になってしまいました。

使い方

至って簡単。ディアウォールと同じように2x4木材をホームセンターなどで購入してきて「天井の高さ-95mm」にカットします。大方のホームセンターでは有料カットサービスがあるので利用すればノコギリが無くても用意できます。

 

f:id:tront1982:20171015183327j:plain  f:id:tront1982:20180102120754j:plain f:id:tront1982:20171228072136j:plain f:id:tront1982:20180102141537j:plain 

f:id:tront1982:20180103115055j:plain

自転車の壁掛けも作成

f:id:tront1982:20180204190746j:plain

 

テレビの壁掛けは写真を撮るのを忘れました。

 

LABRICOはディアウォールと異なり長さ調整が可能な点がとても良いです。しかし、その良さが裏目に出てしまうと調整の失敗を誘発し柱が倒れてくる可能性があります。

特に自転車の壁掛けのように柱で面を作るような構成にすると捻れに弱くて棚が傾くことがあります。

本棚のように柱で立体的な構成にすると捻れに対しても強くなり安全です。自転車の方が傾く一方、本棚は震度3程度ではビクともしませんでした。

 

トータルすると天井の強度、捻れを考慮した構成を考えるならLABRICOを採用するのは有りです。

しかし柱一本で支えるような構成を考えているならディアウォールを採用することをおすすめします。 

 

 

Raspberry Pi3でTimeMachineサーバー構築

Raspberry Pi3 netatalkを用いたTimemachineサーバー構築

準備

以前TImemachineサーバーを構築していたのですが、新しいおもちゃRaspberry Pi3を買ったのでそっちに移行しようと思います。

apt-get install libssl-dev libgcrypt11-dev libpam0g-dev libwrap0-dev libdb-dev libavahi-client-dev libacl1-dev libldap2-dev  libcrack2-dev

 

ビルド

sudo wget http://prdownloads.sourceforge.net/netatalk/netatalk-3.1.8.tar.bz2 

tar xvf netatalk-3.1.8.tar.bz2

./configure --with-cnid-dbd-backend --with-init-style=debian-sysv --with-acls --with-zeroconf --with-cracklib --with-pam-confdir=/etc/pam.d --with-dbus-sysconf-dir=/etc/dbus-1/system.d

make -j6 

   -j 数字(同時にメイクするスレッド数 cpu core x 1.5くらいが目安)

sudo make install

これでインストールは完了。

設定

まずは、TimeMachine用にHDDを用意してフォーマットする

sudo mkfs -t ext3 /dev/sda1

そして、マウント

sudo mount /dev/sda1 /media/TimeMachine

自動マウントの設定を行っておこう

ls -l /dev/disk/by-uuid

で出てきたHDDに対して

vi /etc/fstab

に以下の行を追加する。

/dev/sda1 /media/TimeMachine ext4 defaults,relatime,nofail 0 2

 

netatalkの設定を行っていく

sudo vi /usr/local/etc/afp.conf

 

[Global]
hostname = Raspberry ; お好きなホスト名を
mac charset = MAC_JAPANESE

uam list = uams_clrtxt.so uams_dhx.so uams_dhx2.so uams_guest.so
log file = /var/log/netatalk.log
vol preset = my default values
log level = default:info
ea = samba ; 拡張属性の保存方法を Samba と同じにする。Samba との共存に備えて

[my default values]
valid users = @username
file perm = 0660
directory perm = 0770

[Time Machine]
path = /media/TimeMachine
time machine = yes
vol size limit = 300000

これを保存して、

sudo service netatalk restart

を実行すればOK 

ディアウォール使って賃貸物件でTVを壁掛けにした

ディアウォールでTVを壁掛けにしました

ディアウォールがいい感じだったのでテレビも壁掛けにしました。

今回は一本ではなく2本使って壁掛けにします。

アングル使って壁掛けにする案もありましたが、壁掛け金具が安かったのでそれを採用しました。

 

f:id:tront1982:20160703195359j:plain

座った時の目の高さが中心に来るように測って金具を取り付けましょう。

f:id:tront1982:20160703212614j:plain

こんな感じに立てて、金具を取り付けます。

f:id:tront1982:20160703223135j:plain

取り付けたらこんな感じになしました。 37インチだったのでなんとか一人でできました。

30kgくらいあるでしょうが、ビクともしません。いい感じ。

今回の取り付けでわかったこと

・水準器使ってしっかり水平と垂直を出すこと

・金具を取り付ける際には必ず下穴を開けること

電動工具が欲しくなる

・ケーブル類は接続した状態で金具を取り付けること

・木材の曲げには気をつけること。できるだけまっすぐなものを購入しましょう。

天井の高さから-38mmになるように木材調整してディアウォールを使いました。

一週間経ちましたが問題なしです。

 

ディアウォール使うと賃貸物件でも釘打ちできる柱が作れるので、DIYを楽しめます。おすすめ。