1

Python でエンコーディングの自動判定をするにはいくつかの方法がある。文字列のコードを直接調べてその情報だけで判定するタイプと、HTML や XML ファイルに含まれるメタ情報なども利用し、そうした情報で判定できないものは文字コードの情報から判定するタイプがある。前者のタイプでは、pykf や、nkfpython、kanjilib などがある。pykf は、ShiftJIS, EUC-JP, JISコードを相互に変換するためのPython拡張モジュールで、Universal Encoding Detector や encutils のようには、メタ情報を使わない直接文字コードをチェックするタイプ。日本語のみを前提とするのであれば、比較的短い文字列であっても、正しい判定をしてくれる。一時、入手が難しかったが、sourceforge で再公開されたので、今は入手できる。Windows 環境用には Python 2.4 と 2.5 のバイナリも公開されている (pykf download)。nkfバージョン2用 python インターフェース という、日本語漢字フィルタ nkf バージョン2用の python インターフェースを公開されていらっしゃる方もあるが、バイナリは Python 2.4 用のみで、2007年2月1日が最終公開日。自分でコンパイルするには、nkf2 のソースコードも用意する必要がある。Pure Python のものでは kanjilib などが is_sjis や is_euc といった関数を持っているので、これもあり(ちょっと古いソースなので、そのままだと warning が出る。ソースに EUC-JP が含まれているので、今時の環境で使うなら # -*- encoding: euc-jp -*- を先頭に入れる)。後者のものとしては、Mark Pilgrim さんの Universal Encoding Detector があるが、他にも、Christof Hoeke さんの encutils があるのでちょっと使ってみた。Universal Encoding Detector も、encutils も、直接短い文字列を渡して判定すると、判定をしくじる場合があるが、HTML ファイルや XML ファイルのようにエンコーディングの指定がちゃんと含まれているようなものであれば問題はない。けれど、どちらもデフォルトが windows-1252 に落ちるようで、短めの文字列のみを判定させると、そこが不幸の原因になる場合がある。Universal Encoding DetectorUniversal Feed Parser の Universal Encoding Detector (Character Encoding Detection) を使う方法を見てみる。auto-detection code in Mozilla のアルゴリズムが使われていて、そこそこよい判定をしてくれる。easy_install chardet でインストールして、>>> import urllib>>> urlread = lambda url: urllib.urlopen(url).read()>>> import chardet>>> chardet.detect(urlread("http://google.cn/")){'encoding': 'GB2312', 'confidence': 0.99}ただし、エンコーディングが指定されている HTML ファイルや XML ファイル等であれば、メタ情報を利用しているので正しく判定されるので問題ないが、文字コード判定ライブラリ Universal Encoding Detector にあるように、短い個別の文字列を渡してやると判定をしくじる場合がある。>>> import chardet>>> chardet.detect("これはなに"){'confidence': 0.5, 'encoding': 'windows-1252'}>>> chardet.detect("蛇のとぐろを見る"){'confidence': 0.21941992101760521, 'encoding': 'IBM866'}>>> chardet.detect("東京のこれは何"){'confidence': 0.5, 'encoding': 'windows-1252'}>>> chardet.detect("文字列の判定をするのだ"){'confidence': 0.5, 'encoding': 'windows-1252'}句読点が含まれない短い文字列を判定させると、こける可能性があります。句読点を含む文字列なら大丈夫だと思いますが。chardet.detect("。")chardet.detect("、")メタ情報がないときには文字の出現頻度を使っているからのようだ。import pykfpykf.guess("これはなに")だとこけないので、短い文字列で日本語の文字列と分かっているなら pykf 等使った方が安全かもしれません。ということで、そういう場合には pykf の方が安全と。encutils - encoding detection collection for Pythonencutils は、新しくエンコーディングの判定のために作られたライブラリで、HTML, XHTML, XML, CSS 等のテキストファイルのエンコーディングの判定ができる。Universal Encoding Detector を使うときには urllib を別途インポートしなければいけないのに対して、encutils は、内部で urllib をインポートしているので、少しだけ、コードの量が少なくて済む。また、media type の情報も取り出して利用できるようにしているところが特徴か。BOM 付きのファイルに対してもちゃんと見ているので安心。ただし、chardet と違って、判定の確信度はない。easy_install encutils でインストールして試す。>>> import encutils>>> info = encutils.getEncodingInfo(url='http://cthedot.de/encutils/')>>> info<encutils.EncodingInfo object encoding='utf-8' mismatch=False at 0x12e3270>>>> print infoutf-8>>> print info.logtextHTTP media_type: text/htmlHTTP encoding: utf-8HTML META media_type: text/htmlHTML META encoding: utf-8Encoding (probably): utf-8 (Mismatch: False)Universal Encoding Detector にやったのと同じように意地悪してみる。>>> encutils.tryEncodings('これはなに')'windows-1252'>>> encutils.tryEncodings('蛇のとぐろを見る')'IBM866'>>> encutils.tryEncodings('東京のこれは何')'windows-1252'>>> encutils.tryEncodings('文字列の判定をするのだ')'windows-1252'>>> encutils.tryEncodings('。')'SHIFT_JIS'>>> encutils.tryEncodings('、')'SHIFT_JIS'やはり、判定に失敗する。同じようなロジックなのだろうかと見てみると、encutils は tryEncodings の中で文字列を直接判定するときに、Universal Encoding Detector (chardet) がインストールされていると、それを使って判定していた。インストールされていなければ、独自のやり方で判定する。 try: import chardet encoding = chardet.detect(text)["encoding"]独自の判定方法は、'ascii','iso-8859-1', 'windows-1252', 'utf-8' の順に、 text.encode(e) を try して、例外が発生したら次のエンコーディングを試し、変換できたら、それに決まりという流れ。従って、SHIFT_JIS や EUC-JP、ISO-2022-JP などに落ちることはない。ここに、'shift_jis', 'euc_jp', 'iso-2022-jp' を追加してやれば、chardet がなくても日本語が判定できるようになるだろう。けど、ちょっと強引だから精度は落ちるだろう。なので、ここに pykf を使った判定を入れるようにすれば、高い精度の文字列判定ができるようになるはず。つまり、外側の情報を使って判定できるものはそうして、文字列を見なきゃ判定できないものは、pykf を使うという流れになる。pykf + encutilspykf は、ShiftJIS, EUC-JP, JISコードを相互に変換するためのPython拡張モジュールで、日本人の atsuo ishimoto さんが公開しているもの。エンコーディングの判定機能も持っている。オリジナルは kf -- 漢字コード変換ソフト で、これを Python 対応にしたものだが、pykf は UTF-8 の判定もできる。import pykfpykf.setdefault(pykf.SJIS) # デフォルトは SJIS にしてみるpykf.setstrict(TRUE) # 厳しく判定enc = {pykf.UNKNOWN:None, pykf.ASCII:'ASCII', pykf.SJIS:'SHIFT-JIS', pykf.EUC:'EUC-JP', pykf.JIS:'ISO-2022-JP', pykf.UTF8:'UTF-8', pykf.UTF16:'utf-16', pykf.UTF16_BE:'utf-16_be', pykf.ERROR:None}def detect_encode(text): g = pykf.guess(text) return enc[g] print detect_encode('これはなに')print detect_encode('蛇のとぐろを見る')print detect_encode('東京のこれは何')print detect_encode('文字列の判定をするのだ')とすれば、Windows の SJIS の環境からだと SHIFT-JIS が返る。なので、とりあえずちょっと試しに 上記コードを encutils の __init__.py の中に適当に入れて(475行目から)、 try: import pykf pykf.setdefault(pykf.SJIS) enc = {pykf.UNKNOWN:None, pykf.ASCII:'ASCII', pykf.SJIS:'SHIFT-JIS', pykf.EUC:'EUC-JP', pykf.JIS:'ISO-2022-JP', pykf.UTF8:'UTF-8', pykf.UTF16:'utf-16', pykf.UTF16_BE:'utf-16_be', pykf.ERROR:None} encoding = enc[pykf.guess(text)]とかしてみる。これで、短い文字列を判定させても、判定を間違えることはなくなった。けど、これはこれで ISO-8859-1 の文字列を SJIS に判定したりとかなっちゃうので困るときもある。文字列が長くても、短くても、日本語でも西欧の文字でも、もう少し判断がこけない方法はないかなぁ。chardet のモデルを少し調整して、もう少し日本語に倒れるようにできればよいのだけど。あちらをたてれば、こちらがたたずの部分はあるだろうけど。。。。
2008.05.25
閲覧総数 5870
2

docker 環境を簡単に管理するのに dockge をインストールした。 簡単にできることを簡単にできればよいかなということで dockge を使うことにした。Uptime Kuma をネットワーク監視ツールとして使っているが、開発者は同じ Louis Lam さん。portainer.io でもよいのだが、個人の実験環境では、このぐらいシンプルなもので十分かなと。便利なのは、docker run のコマンドをペーストすると、compose.yaml を書き出してくれるところ。Docker のイメージをボタンひとつで更新できること。起動したときの docker log の表示をウェブ ベースで表示してくれるところ。必要最低限の機能を満たしてくれている。エージェントの設定をすれば、複数マシンの Docker 環境を一つの画面で扱うこともできる。ちょっと面倒なのは、すでに動かしているものがあるときは、改めて Dockge で設定しなおさないとならないこと。まぁ、大した手間ではないが、いくつもあると面倒に感じはする。とはいえ、移してしまえば、やってよかったなとなる。インストールから一連の操作は、この動画を見ると分かる。その他、紹介動画は、このあたり。文書で読みたい人は、How to Install and Use Dockge on Linux: A Step-By-Step Guide
2024.03.19
閲覧総数 4158
3

Kali Linux の学習を続ける。引き続き Kali Linux Official Documentation を読む。Category: 02. Kali Linux Live は、(1) Making a Kali Bootable USB Drive、(2) Kali Linux Live USB Persistence、(3) Live Build a Custom Kali ISO に分かれている。ブート可能な USBを作る方法から始まり、USB で起動したときにデータを USB 上に残しておけるようにパーティションを作っておく方法(データを暗号化して保存する方法)、自分でカスタマイズした ISO を作る方法がまとめられている。とりあえず、流し読み。後日、気が向くか、必要性を感じたら試す。Category: 03. Installing Kali Linux は、インストールのあれこれ。(1) Kali Linux Hard Disk Install、インストールの手順は、画面付きで説明されているので分かりやすい。というか、インスンストールメディアの作成に問題ない限り、手順自体簡単なので特に問題ない。(2) Dual Boot Kali with Windows は、Windows と Kali Linux のデュアルブート環境でのインストール。Windows の領域を狭めて、Kali Linux 用の領域を作るために gparted の使い方も説明されている。(3) Dual Boot Kali on Mac Hardware、(4) Single Boot Kali on Mac Hardware では、Mac にインストールする手順が説明されている。デュアルブート環境の作り方と、Kali Linux のみにしてしまう手順。(5) Kali Linux Encrypted Disk Install は、インストール時に、encrypted LVM オプションを選択して、ハードディスクを暗号化した状態にする手順。通常のインストールとほとんど変わらない手順。(6) Kali Linux Mini ISO Install は、mini install ISO で最小限のインストールから始めるための手順。(7) Kali Linux Network PXE Install は、PXE Server を用意して(DHCP/TFTP)、dnsmasq の設定を行い、ダウンロードした PXE Netboot イメージを設置する。(8) Troubleshooting Installations は、インストール時のトラブルをデバグログを保存することによって、確認できるようにする手順。ディスク領域が足りずにインストールに失敗した場合など、ログを見れば確認できる。(9) Troubleshooting Wireless Drivers は、ワイヤレスドライバに問題があった場合のトラブルシューティング。lsusb、lspci、dmesg を確認。メッセージをちゃんと読めば解決につながる。また、仮想環境で Kali Linux を動かしているときは USB の WiFi でないとダメ(オンボードや PCI だと使えない)。その他、ネットワークマネージャーが干渉して AirCrack Tool がうまく動かないときには、WiFi カードをモニターモードにする前に "airmon-ng check kill"。レポートされる問題の 90% はこの手の問題だったりするようだ。Aircrack-ng を使うときには、ドキュメントをちゃんと読んでねと。Category: 04. Kali Linux on ARMは、Raspberry Pi や、BeagleBone Black、HP Chromebook、EfikaMX、CuBox、SS808/MK808、ODROID U2 といった ARM系の CPUを搭載した PC への対応がまとめられている。Raspberry Pi はそのうち試してみるかもしれない。過去の記事Kali Linux を使い始めたKali Linux をどこから学び始めるか
2018.08.13
閲覧総数 1939
4

Python で GUI アプリを作りたいとき、お手軽に始められるのが Tkinter。でも、見栄え残念だったので、あまり使いたくなかった。wxPython の方が自然な見栄えにできるので、以前、しばらく使ってみていたのだが、2020-11-21 から 2022-08-07 にリリースがなかったから開発滞ってしまったのかなと使うのをあきらめた。今は、2023-06-07 wxPython 4.2.1 が最新で開発継続している。そんなわけで、pyQt か pySide でも覚えるかと思ったが、その気力もなかったので、 tkinter でいいかとなっていた。そんなとき、Tkinter でももう少しいい感じにできるということが分かったので、Tkinter で十分かなと思う今日この頃。バリバリのアプリを作るわけでもないので。本格的なアプリなら、pyQt か pySide を最初から覚えたほうがいいと思う。ソースは、codefirstio/tkinter-excel-appこれ以外にも、同じような仕組みのテーマが公開されている。Forest-ttk-themeAzure-ttk-themeSun-Valley-ttk-themeちなみに Azure-ttk-theme を使うと、こんな感じのものが作れる。他にも、omSchimansky/CustomTkinter や、ttkbootstrap のようなものもある。
2024.02.25
閲覧総数 6831
5

Microsoftが翻訳サービスを公開--高機能なビューアも搭載 を見て、Windows Live Translator Beta を使ってみる。翻訳としては、日英、英日ともにボロボロなのだが、URL を指定したウェブページの翻訳では Ajax を使っていてるところがおもしろい。例えば日本語のウェブページを英語に訳させるとき、左に日本語、右に英語の翻訳が出てくるが、最初は英語ですべて表示されて、だんだんと英語が日本語に置き換わっていく。そういうところでおもしろいとは思う。こういう仕組みにすれば、丸ごとどかんと一つの文章を訳すより、マシンパワーを有効に使うことができる。とはいえ、訳文自体はどちらも厳しいものがある。今時、もう少し、よい訳質を出せるエンジンもあるだろうに。とりあえず仕組み作り優先なのかな。マイクロソフトの技術的なページに出ている機械翻訳のページよりも訳質が低いのは別のエンジンなのだろうかと思って、こういうページ と比べてみる。んー、やっぱり、何がなんだか分からないものがたくさんあるけれども、技術ページの方が、辞書登録が行われている数がたぶん多いのじゃなかろうか。微妙にまともなところがある。なんにしても、機械翻訳の訳質がもう少しまともになって使えるようになるのは時間がかかるって感じ。マイクロソフトぐらいの会社ならリソースを少し割いて、2,3 年取り組めば(どこかの会社を援助して)、かなりまともなものを作れると思うのだが、まだ、あんまりやる気が感じられない。ただし、一般的な翻訳はさておき、ほんとうにその気になれば、マイクロソフトの自社のドキュメントに関しては、他の翻訳ソフトが太刀打ちできないような良質の翻訳を出せるはず。過去の翻訳を著作権の問題なく自由に使えるから。それにしても、インターフェイス以外にやる気の感じられないサービスだなぁ。エンジンは本業としてはまだ取り組んでいないから、どこかいいのを作る会社があったら差し替えればいいでしょって感じなんだろうけど。
2007.09.11
閲覧総数 8
6
![]()
日立って地雷除去装置 も作っていたのね。地雷除去編 と 「つくる。」人 を見る。日立グループの環境活動なども眺めてみる。日立製作所の株価水準の意味… (2003/03/09)、日立を追いぬいた三菱電機の実力 (2005/10/11)、松下にあって日立にないもの (2006/12/22) のようにボロクソ言われ続けてきた日立。まだ、もがき続けている。中部電、日立に損害賠償申し入れ タービン損傷問題で (2006/12/26)。こういう企業が、エクセレントカンパニー扱いになるにはまだ時間がかかるだろう。というか、いつ頃、そうなる可能性はどうなのだろう。日立、中国での売上高を2010年度に約1兆4000億円に と、中国頼みなところがあるのかなぁ。あるいはインドか。
2006.12.30
閲覧総数 14
7

エバーライフの飲むヒアルロン酸「皇潤」をしばらく前に買って飲んでいた。あんまり神経痛がひどいから。で、効果はどうか。「皇潤」を飲む以外にも微妙にあれこれやっているから、どの程度「皇潤」のおかげか分からないが、膝の痛みがこのところ少し和らいでいるような気がする。まるでコマーシャルのように階段の登り降りが楽になった。気休めよりも効き目があるような感じ。ダイエットして体重減らしたりもしているので、その効果もかなりあると思う。けど、やっぱり楽になった気がする。でもでも、やっぱり高いのが難点。この手のものが早く安くなってほしい。高いサプリに頼るのはしゃくなので、やっぱり体を整えて体重を減らすことにする。こんな年から老人が飲むようなもの飲んでるのもなんだしねぇ。膝の痛みは和らいでも懐が痛むわい。よっぽどどうしようもない状態にまたなって藁にでもすがりたい気分のときまでは買わない。ここに金をかけるぐらいなら、やっぱり抹茶に金かけることにする。そろそろまた注文しなきゃ。抹茶が神経痛に効くと信じこめば効いてくれるかもしれない。茶筅もボロボロになってきたので新しいのが欲しい。それにしても金がかかるわい。茶碗も欲しいが来年までは買わない。初回限定 100粒 6,300 円「皇潤100粒」 8,190 円「皇潤180粒」12,600 円
2006.11.13
閲覧総数 12
8
先月のようなことはもうあるまいと思っていたら、意外や意外、売上高そのものは、先月を上回ってしまった。もっとも、料率の関係でやはり先月のようなポイントを得ることはできなかった。先月のようなことは、もう二度とあるまい。先月は売上げ、80,016円、ポイント 6,520円。今月は、93,878円、ポイント 2,648円。2ヶ月連続で売上げが 80,000円を超えた。不思議だ。。。。1日のアクセスカウントはだいたい 200~400程度。クリック数は、200~300/月程度。1クリックあたり、300~400円程度の販売促進価値があるということか。何はともあれ、このブログ経由でお買い物をしていただいた方々に感謝。そういえば、楽天・ヤフーなどの出店規約、独禁法抵触の恐れ…公取出店事業者が電子商店街から出ていった後に、電子商店で得た顧客情報の使用を禁止しているケースがあったという。消費者保護の観点からすると、これは悪くない点がある。楽天あるいはヤフーというブランドを背景にして得た顧客情報なのだから、そこから出たときには破棄して欲しいと思わないでもない。ショップからのメールマガジン等の購読も、使う側からすると楽天の機能で一括して管理できるのが、個別のショップになれば面倒になる。だから、つながりを保ちたいが、抜けるというときには、最後にショップからのお知らせを出してデータを移行してもよいかを顧客に問うべきものだと思う。顧客情報は誰のものか。誰のものかといえば、それはそのデータを得た会社のものといえるかもしれないが、データは顧客の要求に応じて扱われるべきものだと思う。削除してくれと要求すれば、簡単に削除できるような仕組みが必要。消費者保護の観点から、顧客データの扱いは見なければならないと思う。
2006.12.30
閲覧総数 6
9

Chris Titus Tech の YouTube チャンネルをときどき見ている。「windows debloat」 で検索すると出てくるやつね。Windows の余計なものを削除して、軽くしてくれる。Windows 11 にも対応して、Setting Up the Ultimate Windows 11 をやってみた。プロセス数が 300以上あったのが、130ほどに減り、CPU の使用率も 7% 程度から 1-2% 程度に減った。PC でゲームをすることはないから、それほどパフォーマンスガリガリに最適化しなくても、それほど気にする必要はないけど、仮想環境を動かすので、やっぱり基本は軽い方がうれしい。NTLite Guide とかも、試してみたいなと思うけど、そこまでの気力はない。
2022.10.21
閲覧総数 3211
10

いろいろお勉強し直し。サーバーを立てて検証するために proxmox VE をインストールした。Proxmox VEで仮想化プラットフォームを簡単構築 あたり参照すると、だいたいの雰囲気が分かる。Proxmox を選択した理由は、下のような理由と同じかな。YouTube を見ているうちに、Proxmox 関連の動画がたくさん出てくるようになって洗脳されちゃったのかもしれない。XCP-ng もちょっと見たのだけれど、少しとっつきにくかったので、Proxmox VE にした。KVMとOpenVZをサポートしているハイパーバイザー型のOSです。Linuxには仮想マシンであるKVMとコンテナであるOpenVZはLinux系であればかんたんに構築できますが、GUI管理が簡単にできないという問題点がありました。それがProxmoxでは簡単にWebGUIで操作することができます。Proxmoxがかなり使いやすい件についてProxmoxは無料版でクラスター化も可能で、PCI拡張カード(グラフィックカードやSASカードなど)のパススルーが容易です。また、VMごとのコア数の制限もないし、仮想サーバに直接物理HDDを接続してzfsフォーマットや、RAIDZにも対応していることですね。そして、何より文献(英語)が多い!Proxmoxでプライベートクラウドを立てる大きな特徴として、VMWare ESXiと比較し、ライセンスフリーでほぼすべての機能を利用できる点が挙げられます。無償版でも、VMWare ESXiのようにVMあたりのコア数の制限はありません。また、複数のホストをクラスタリングしたり、HA環境、ライブマイグレーションといった機能も無償で利用することができます。さらに、VMWare ESXiと同様にWebインタフェースを持っていますので、Webブラウザ経由で簡単に管理することができます。Debianベースで開発されていますので、ホストOS上にRAIDコントローラのドライバなども簡単に導入することができるのも、利点といえるでしょう。さらに、VMWare ESXiでは早期にCPUサポートが打ち切られるケースがありますが、Proxmox VEでは基本的にLinux Kernelが動作可能なモノであれば動かすことができます。自宅などで古いハードウェアを利用する際には、有力な選択肢となるでしょう。お家で始める仮想化環境 Proxmox VE 環境構築編Proxmox とは関係ないが。
2022.11.23
閲覧総数 4731
11
![]()
ずいぶん、久しぶりの更新。少しずつ更新しようかなと思う今日この頃。proxmox のクラスタを試したいと思って、Beelink EQ12 を3台購入した。Ceph を動かすので最低3台は必要かなと。Proxmox VE上でCeph/CephFS環境を作ってみる。 をやってみたいなと。購入したのは、Beelink EQ12 のメモリ 16GB のやつ。某所のセールス期間に買ったので、普通に買うより安かった。なぜ、これにしたかといえば、Intel N100 なので比較的消費電力が低くて済むから。 ミニPC Beelink EQ 12 Mini Pc 16GB DDR5 500GB SSD 第12世代プロセッサ N100 4C 4T 最大 3.4Ghz / Typc+2* HDMI 4K@60Hzつの出力ギガビットイーサネット/ 2*
2023.12.08
閲覧総数 1664
12

Beelink EQ12 を3台購入して、Proxmox をインストール、Ceph を設定してみた。なぜにこのマシンを選んだのかというと、CPU が Intel Alder Lake-N N100 なので、消費電力が比較的低かろうということ。3台を常時稼働していると、それなりの電気代になるだろうから、それを抑えたかったから。Raspberry Pi でとも思ったのだが、メモリを少しでも多くしたかったのと、Ethernet ポートが2つついているものがよかったから。とりあえず、USB メモリ 32GB を USB ポートに差して、Proxmox VE上でCeph/CephFS環境を作ってみる。 を参考に設定して、1週間放置。問題なく動き続けている。今日は、コンテナを試しに作ったり、PC間で移動したりして遊んでみた。
2023.12.18
閲覧総数 2223
13

proxmox をインストールして、Ceph の設定をして、とりあえず動かしている。あれこれインストールして試してみるのに、casaos を動かしてみることにした。複数台を使っているメリットはないのだけど、すぐに使い始められるということで。casaoSは、HomeLabo を運用するのにとりあえず手っ取り早く使い始められるので便利。Debian の仮想マシンを一つ動かして、次のコマンドで簡単にインストールできた。curl -fsSL https://get.casaos.io | sudo bashあとは、docker で動かしたいものをポチポチのメニューからクリックしてインストールできるので、Docker ファイルや docker-compose の設定ファイルを書く必要もなく、簡単にあれこれ動かせるのが楽でいい。最初から 20個の docker ベースのアプリがすぐ使える。また、50以上のコミュニティーで動作確認されたアプリも使えようだ。CasaOS-AppStore もチェック。docker-compose を書く時の参考にもなる。casaos は、見た目も分かりやすくてよいし、portainer.ioよりも、とっつきやすい。複数ノードの運用や高度な運用だと Portainer ということになるだろうか。casaos wiki にドキュメントがある。get-startedに対応プラットフォームの情報がある。Windowsでも casaos を Windows wsl2 で動かすことが確認されているみたい。casaos blog も時々チェックしてみようか。これ関連で興味があるのは ZimaBoard。テスト用に BeeLink の N100 PC で proxmox のクラスタを組んでみているが、メインのパーソナルサーバー環境としては、ZimaCubeとか、そのうち買ってみたいなと思っている(ほかにも候補はあるのだけど)。そもそも、casaos より、ZimaBoard が先か。Synologyにしても、QNAPにしても、こういうの台湾中華系が強いけど、ZimaBoard の場合、ZimaCube はそうした NAS をメインターゲットとしながらも、ZimaBoard 自体は Home Automation のコントローラーなどつないだ用途で頑張ろうとしているのかな。その他参考冬休みに「初めての自宅サーバー作り」を、1.8万円で買ったN100ミニPCにCasaOSをセットアップCasaOS を使用してホーム プライベート クラウドを構築する方法Portainerで複数ホストのコンテナを一元管理してPortainerはいいぞと言うPortainerを使ってDockerコンテナの管理環境をつくってみた
2023.12.27
閲覧総数 1811
14

proxmox 上で動かしている casaos がどの程度、楽に使えるかを試す意味もあって、広告ブロックをしてくれる pi-hole をインストールしてみた。もっとも、Pi-hole は簡単にインストールできるものだから、それほど、ありがたいものでもないのだが、GUI で誰でも簡単に使い始められるというのをあえて試してみる。普通に docker を使ってインストールするときには、こんな手順になる。casaos の settings と docker-compose.yml の中身を比べてみる。設定されている事項については、同じようなものなのだけれど、GUI だと簡単に見える罠。docker-compose だともっとも、docker を使わずに、 curl -sSL https://install.pi-hole.net | bashでとかいう話もあるが。次は proxmox の HA の設定をする予定。CasaOS Wiki get-startedPi-holeの紹介 ~自宅LAN全部まとめてAd Blocking~ラズパイにPi-holeとPiVPNを導入Pi-holeを利用した名前解決(DNS)におけるホワイトリストとブラックリストによるアクセス制限・広告ブロック環境を構築するPi-holeのアップデートはSSH接続してコマンド一行でOK
2023.12.28
閲覧総数 2194
15

昨年末から Beeling EQ12 を 3台購入して、 クラスター構成で proxmox で遊んでいるが、しばらく、これで遊んでいようかと思っている。昨日は、大晦日なので積み残しの作業をしてみた。先日、分散ストレージの Ceph の設定をするのに、とりあえず USB メモリで試してみた。あまっていた SSD 120GB が 3個あったので、それを PC を開けて入れてみた。そして、Ceph の設定はやり直し。その過程で、一部のマシンをクラスタから切り離したり、 Ceph の設定をやり直しをするときにどうしたらよいかなど覚えられた。Ceph のインストールと CephFS の設定までは簡単にできたが、仮想マシンを CephFS に移動しようとしてもできない。HA (High Availability) の設定をするためには、OSD (Ceph Object Storage Daemon) の設定のあと RBD(RADOS Block Device)の設定もしないといけないとあとでわかった(適当にやっていたので、よくわかっていなかった)。それが済むと、やっと仮想マシンを ceph に移動することができるようになり、HA の実験もできるようになった。きちんと全部調べてからやればよかった...。面白い。ほんの少し待っていると別のノードに移動して動き始めてくれる。HA グループを作って、振り分けの優先優先度を指定しておけば、ノードが落ちた時に別のノードで仮想マシンが動いてくれる。あれこれ読まずとも、この動画を見るといい。日本語の説明では、 Proxmox VE上でCeph/CephFS環境を作ってみる。、 Proxmox上のCephクラスタにRBDを作成し、ライブマイグレーションする が参考になる。cephCeph (Wiki)Red Hat Ceph StorageRed Hat Ceph Storage の操作タスクProxmox VE Storage Ceph RADOS Block Devices (RBD)分散ストレージ ソフトウェア Ceph(セフ)とはProxmoxでClusterからノードを削除する方法High AvailabilityHow to Completely remove/delete or reinstall ceph and its configuration from Proxmox VE (PVE)最近の記事ひさびさにPCを買ったProxmox で Ceph を設定してみたcasaos をインストールしてみたPi-hole をインストールしてみた。
2024.01.01
閲覧総数 5952
16

proxmox でいろいろやっている今日この頃。仮想マシンをすばやく作れるように Cloud-init の設定をしてみた。同じことを説明するにしても、キャラクターが出るなぁといろいろ見てみた。Cloud-init についてcloud-init.io/Ubuntu Cloud ImagesDebian Official Cloud ImagesCloud-Init Support (proxmox)Cloud-init documentation (RedHat)お家で始める仮想化環境 Proxmox VE Cloud-init編cloud-initを使ったLinux OSの初期設定cloud-initをデバッグする Part 1いまさらで物凄く恐縮ですが、cloud-initについて勉強してみたcloud-init で実施する SSH サーバー設定まとめ
2024.01.05
閲覧総数 3167
17

気分転換に Dashy とか、Gitea とか Memos とかインストールして使っている今日この頃。Dashy は、proxmox であれこれインストールして遊んでいるうちに、どの仮想マシンの、どの Port で動かしているか、わからなくなってしまうので、Dashy に登録して、リンクリストの代わりにしている。ウィジェットもいくつか試してみているが、まだまだお試し中。casaos とか使うと、インストールからリンクリストが同じ流れの中でできるので、便利といえば便利なのだけれど、全部の仮想マシンにインストールするのもなんだなぁということで、casaos は最初のお試しのときにちょっと使う程度で、実際に使い続けるようなものは、新たに別マシンにインストールし直している。Gitea は、github のようなものを自サーバーで運用できるものでお試し使用中。インストールから設定があっという間にできるので、気軽に使える。Memos は Twitter みたいな感じのメモアプリ。ローカルのサーバー上で動かしているので、何を書き込んでも問題ない。メモして、後で、検索してというのが楽にできる。動かしっぱなしにしておける実験用マシンがあると、これまでもできたことであっても、もっと気軽にあれこれ試せるようになると感じる今日この頃。
2024.01.15
閲覧総数 4687
18
![]()
新しいマシンを買って proxmox をインストールしていろいろ試してみているが、ネットワークが 2.5Gbps なので、iperf を使って速度測定をしてみた。-----------------------------------------------------------Server listening on 5201 (test #1)-----------------------------------------------------------Accepted connection from 192.168.0.100, port 48990[ 5] local 192.168.0.102 port 5201 connected to 192.168.0.100 port 49000[ ID] Interval Transfer Bitrate[ 5] 0.00-1.00 sec 280 MBytes 2.35 Gbits/sec[ 5] 1.00-2.00 sec 280 MBytes 2.35 Gbits/sec[ 5] 2.00-3.00 sec 280 MBytes 2.35 Gbits/sec[ 5] 3.00-4.00 sec 281 MBytes 2.35 Gbits/sec[ 5] 4.00-5.00 sec 280 MBytes 2.35 Gbits/sec[ 5] 5.00-6.00 sec 281 MBytes 2.35 Gbits/sec[ 5] 6.00-7.00 sec 281 MBytes 2.35 Gbits/sec[ 5] 7.00-8.00 sec 280 MBytes 2.35 Gbits/sec[ 5] 8.00-9.00 sec 281 MBytes 2.35 Gbits/sec[ 5] 9.00-10.00 sec 281 MBytes 2.35 Gbits/sec[ 5] 10.00-10.00 sec 56.6 KBytes 2.43 Gbits/sec- - - - - - - - - - - - - - - - - - - - - - - - -[ ID] Interval Transfer Bitrate[ 5] 0.00-10.00 sec 2.74 GBytes 2.35 Gbits/sec receiver-----------------------------------------------------------Server listening on 5201 (test #2)-----------------------------------------------------------参考: iperf を活用した測定方法ちなみに、スイッチングハブは KeepLINK の安いのを使っている。10GbE SFPスロット x1 があるので、2台をカスケードして使っている。今のところまともに使えている感じ。- ーkeepLiNK 5ポート2.5Gbps スイッチングハブ 1つの10GbE SFP+ポートを備えたアンマネージドスイッチ金属筐体 壁掛け 静音ファンレス設定不要ーkeepLiNK 8ポート2.5Gbpsスイッチングハブ 10GbE SFP+ポート1基搭載 金属筐体 ファンレス 静音 設定不要 壁掛け可能
2024.01.27
閲覧総数 4516
19
![]()
ファイルサーバとして、古いマシンで TrueNAS core を動かしているが、proxmox のクラスタを作ったときにネットワークを 2.5Gbps 対応にし始めたので、このファイルサーバも 2.5Gbps 対応させることにした。適当に 2.5Gbps の NIC を探して購入してからファイルサーバにつけたものの認識しない。調べてみたら、ちょいと設定をしてやる必要があることが分かった。ちなみに、proxmox をインストールしているマシンでも使っているが、特殊な設定は必要なかった。1Gbps の NIC で最初設定していたので、カードを追加したあと、普通にネットワークの設定をしたら使えるようになった。TrueNASを2.5Gイーサーネット対応にできたTrueNAS CORE で RTL8125BG を使うTrueNAS core のメニューから次の手順で設定すると、使えるようになった。メニューから システム 調整 ADD ボタンをクリックTunable の入力画面で、 Variable: if_re_load Value: YES Type: loader Description: 2.5Gbps NIC 対応SUBMIT ボンタンをクリック購入したのは、これとは違うが。玄人志向 GBE2.5-PCIE Realtek RTL8125BG搭載 2.5GBase-T イーサネットボード (PCI Express接続)
2024.01.30
閲覧総数 5074
20

proxmox から FreeNAS の NFS を使えるように設定してみた。proxmox を 4台の PC にインストールして遊んでみているのだが、 ceph に使っているのが 120GB の SSD なので、ちょっと心もとない。ということで、 TrueNAS で運用している NAS の NFS を proxmox から使えるように設定してみた。次の動画を見ると TrueNAS の NFS の仕方から、丁寧に説明してくれている。Storage: NFS最近、Python の話題を投稿していないので、何か書いてみようかな。
2024.02.25
閲覧総数 5567
21

Tkinter でも、見た目のよい GUI を作れる のあと、CustomTkinter を使って WordCloud を書き出すアプリを作ってみた。Janome ではじめるテキストマイニング など参考にした。出力結果Python をインストールしていない環境でも実行できるように、pyinstallerを使って EXE 化したのだが、"pyinstaller --onefile app.py" で EXE 化すると、実行時にエラーが出てしまう。FileNotFoundError: [Errno 2] No such file or directory:'C:\\Users\\kugutsu\\AppData\\Local\\Temp\\_MEI255482\\janome\\sysdic\\entries_compact0.py'いろいろ調べてみた結果、あれこれ考えるのは面倒なので、 --collect-all janome をつけて pyinstaller を実行してみたところ、エラーが出ずに実行できるようになった。ちなみに janome は、pure python の形態素解析器。MeCab だと、EXE化するときに組み込みが面倒なので、janome を使ってみた。よほど大きいファイルを扱うのでなければ、この用途では十分かなと。ちなみに、EXE化すると、対象ファイル選択するときに、initial_dir = os.path.abspath(os.path.dirname(__file__))のようなコードがあると、上記のエラーの中にある、Local\Temp\_MEI255482 のようなところから実際には開かれるのがちょっ面倒なところ。Python インタープリタから、.py ファイルを実行するのであれば、その .py ファイルがある場所がスタート地点となるのだが、EXE化するときには、明示的にどこかのフォルダーを指定してあげた方が使いやすいかな。ちなみに、対象のファイルは、word, excel, pdf, txt から読み込めるようにした。結構簡単にできるが、PDF ファイルの場合、単語の途中で切れてしまいがちだったりするので、そのあたり何とかしたいなとか思ったりする。
2024.04.08
閲覧総数 3268
22

まだ、生きていますよ。ということで書き込んでおく。すでに還暦も超えて、定年退職の年が近づきつつある今日この頃、引退したら、どういう暮らしをしようかと夢想する日々なのでした。どこに住もうかとか、住処は賃貸のままがいいか、いっそ安いところを買って済もうかとか、いろいろ悩む。そして、あと何年かで結論を出せばよいかと先延ばしにする。そうこうしているうちに、定年退職の年になってしまうのかなぁ。でも、在職中の方が選択肢は多そうな気もするし。まあ、とりあえず元気にやっていますよということで。
2026.07.04
閲覧総数 76


![]()