実験記録 No.02

大阪市在住プログラマー。 翻訳とか、物理シミュレーションとかやってます。

【日本語訳】盲人国(The Country of the Blind)

盲人国(The Country of the Blind, 1904)
H.G.ウェルズ 著
H.Tsubota 訳
ライセンス:クリエイティブ・コモンズ・ライセンス 表示-非営利-継承 4.0 国際

チンボラソ山から三百マイル以上、コトパクシ山の雪原から百マイル、エクアドルのアンデスの不毛な荒れ地にその謎めいた山あいの谷はある。人間の世界から切り離された盲人の国である。大昔にはこの谷もある程度は世界に向かって開かれていて、人々は恐ろしい渓谷を抜けて凍りついた小道を通り、最後には平らな牧草地へとたどり着いていたはずだ……続きを読む

Snow mountain

H.G.ウェルズの「The Country of the Blind」の翻訳。

アンデス山脈の奥地にある村に迷い込んだ男の物語で、ウェルズの短編の中では比較的知名度の高い作品。

この村は数百年前に火山噴火によって外界から完全に切り離されていて、その上、その地域独特の疫病によってそこで生まれる人間は全て盲目である。その結果、視力の存在は忘れ去られ、独自の世界が作り上げられている。

迷い込んだ主人公の目を通して描かれる奇妙な世界が実は現実の世界を風刺であるという点ではスウィフトの「ガリヴァー旅行記」やサミュエル・バトラーの「エレホン」と同じ着想の作品と言えるかもしれない。

視力は想像力(あるいは「センス・オブ・ワンダー」)を意味していること、視力を持たない周囲の人間から白痴扱いされる主人公が最初期のSF作家であるウェルズ自身の分身であることは容易に想像できる。

急速な科学・技術の発展があった20世紀初頭には前世紀的な制度と衝突して同じ様な思いを抱く若者は多かったらしく、例えば、1903年生まれのジョージ・オーウェルはウェルズについて次のように書いている。

一九〇〇年代を振り返れば一人の少年にとってH・G・ウェルズとの出会いはすばらしい経験だった。少年がいるのは杓子定規な人間、聖職者、ゴルファーばかりの世界だ……(中略)……しかしここに他の星々や海底の住人について彼に語ることができ、未来はお行儀の良い人々が想像しているようなものではないと知るすばらしい人間が存在したのだ。(ウェルズ、ヒトラー、世界国家, ジョージ・オーウェル)

(恐らくウェルズの意図を超えたことだろうが)視力という優位性を持ちながら盲人国の社会制度の中では能力を発揮できずに「障害者」扱いされる主人公は「障害の社会モデル」を描き出していると評されることも多い。

【2020年版】FreeCAD利用事例まとめ

「FreeCADってどれくらいのことができるの?」という質問をたまにもらうのでTwitterの自分のタイムラインからFreeCADの利用事例に関するものをまとめました。2020年版。

2019年以前の分は【2019年版】FreeCAD利用事例まとめで。






















































ESI版のOpenFOAM(Windows, Docker)が正常にインストールできない場合の対処法

某案件で動作確認用にESI版のOpenFOAM(Windows, Docker)をインストールしようとしたらうまくいかなかったのでメモ。

環境

  • Windows10
  • ESI版 OpenFOAM v1906 (Windows, Docker)

エラー状況

インストーラー(OpenCFD-OpenFOAM4WindowsInstaller-v1906.exe)を実行後、デスクトップにできたショートカットを「OF_Env_Create」→「OpenFOAM_Start」の順に押すとOpenFOAMを利用できるターミナルが起動するはずが「OF_Env_Create」で

docker: invalid reference format: repository name must be lowercase.
See 'docker run --help'.
exit status 125

というようなエラーが出て、その後「OpenFOAM_Start」を実行してもOpenFOAMを利用できるターミナルが起動せず、「of_1906というdockerイメージが見つからない」といった意味のエラーが表示される。

対応方法

「Taro Yamada」の様にWindowsユーザー名にスペース文字が含まれることが原因。

「C:\Program Files (x86)\ESI\OpenFOAM\v1906\Windows\Scripts\of_create_container.ps1」の1行を以下のように書き換えることで問題を解消できた。

変更前

$ENV:mountedPath="/root/../c/Users/$ENV:username"+":/root/../home/ofuser/workingDir"

変更後

$ENV:mountedPath="/root/../c/Users/Public"+":/root/../home/ofuser/workingDir"

書き換え後、改めて「OF_Env_Create」→「OpenFOAM_Start」の順に実行。

エラー時に中途半端にdockerイメージができていて、イメージ名の重複エラーが起きる場合は「OF_Env_Create」で開くターミナルで「docker ps -a」でコンテナIDを確認し、「docker rm $(コンテナID)」で削除してから再試行。

コメント

今回はWindows,Docker用OpenFOAMに依存する3rdパーティーツールの動作確認をしたくてインストールを試したが、単にWindowsでOpenFOAMを使いたいのであればWSLでOpenFOAMをインストールしたほうが問題が起きにくいと思う。

Pythonでwin32apiをインポートできない場合の対処法

環境

  • Windows 10
  • Python 3.7
  • pypiwin32 バージョン223

エラー状況

PythonからExcelのマクロを実行(COM実行)したくて「pypiwin32」をpipでインストールした。

「pip install pypiwin32」で直接システム上にインストールした場合は問題なく使用できたが、配布パッケージとしてまとめたかったので「pip install pypiwin32 -t ./Lib/site-packages」としてプロジェクトフォルダ内に直接インストールし、Pythonスクリプト内で

import os
import sys

script_path = os.path.dirname(__file__)
sys.path.append(os.path.join(script_path, "Lib/site-packages"))

import win32com.client

としてプロジェクトフォルダ内のpypiwin32を使用したところインポートエラーとなった。エラーメッセージは次の通り。

File "Lib/site-packages\win32com\__init__.py", line 5, in 
    import win32api, sys, os
ModuleNotFoundError: No module named 'win32api'

また修正対応中に以下の様なエラーメッセージも見られた。

File "Lib/site-packages\win32com\__init__.py", line 5, in 
    import win32api, sys, os
ImportError: DLL load failed: 指定されたモジュールが見つかりません。
File "Lib/site-packages\win32com\__init__.py", line 6, in 
    import pythoncom
  File "Lib/site-packages\pythoncom.py", line 2, in 
    import pywintypes
ModuleNotFoundError: No module named 'pywintypes'

対応方法

Pythonスクリプトを以下のように変更するとインポートエラーを解消できた。

import os
import sys

script_path = os.path.dirname(__file__)
sys.path.append(os.path.join(script_path, "Lib/site-packages"))
sys.path.append(os.path.join(script_path, "Lib/site-packages/win32"))
sys.path.append(os.path.join(script_path, "Lib/site-packages/win32/lib"))
os.environ["PATH"] = os.environ["PATH"] + ";" + os.path.join(script_path , "Lib/site-packages/pywin32_system32")

import win32com.client

win32, win32/libフォルダをPythonのモジュール参照位置に追加し、さらに環境変数PATHにpywin32_system32フォルダを追加することでwin32apiをインポートできるようになった。

参照

Pywin32 does not find its DLL - XD blog

MS Wordでインライン画像を縦方向中央揃えにする方法

Wordでインライン画像を縦方向中央揃えに設定する方法をいつも忘れて、その度に調べてしまうのでメモ。

  1. 画像を選択した状態でリボンの「ページレイアウト」を選択
  2. 「段落」の右にある展開ボタンから段落ダイアログを開く
  3. 段落ダイアログの「体裁」タブで「文字の配置」として「中央揃え」を選択
  4. 段落ダイアログのOKボタンを押して設定を終了
無題

Word 2013で動作確認済み

Twitterタイムライン