未分類

この話の続編になります。

This is a sequel to the story.

私は、11:30の特急に乗る予定だったのですが、現在、10:30の列車が動いていません。

これは真面目な話なのですが、都心の電車を使わざるを得ない人は、いつでも、頭の中に、都心部の鉄道路線が頭に思い浮べれるように訓練しておく必要があります。

This is a serious matter, but if you have to use the train in the city center, you must train yourself to visualize the train lines in your mind at any time.

鉄道会社は、電車の中で「事故の発生状況」は教えてくれても、「私(たち)が、どうすれば良いのか」は、教えてくれません。

The railway company will tell you about the “circumstances of the accident” on the train, but they won't tell you “what we should do.”

主要駅までの代替交通手段を教えてくれることもありますが、それ以外について全部を説明しませんし、そんなことできるわけがありません。

Sometimes, they will tell you about alternative transportation to major stations, but they won't explain everything else, and there's no way they could.

では、スマホアプリを使えば良いか、というと、乗り換えアプリは情報の反映が遅い。

However, if you use a smartphone app, the information on the transfer app is slow to update.

その上、代替ルートは有料会員にしか提供しないことが多く、さらに、その代替ルート情報が、最適と言えない場合があります(というか、ほとんど役に立たない)。

What's more, alternative routes are often only provided to paying members. In addition, the alternative route information is not always the best (or, more precisely, it is rarely helpful).

会議の時間が決っている私たちは、数分で代替ルートを自力で決定しなればなりません。その数分を見逃すと、ベストな乗換駅を通過してしまう可能性が高いからです。

As we have a fixed meeting time, we must decide on an alternative route ourselves in a few minutes. If we miss those few minutes, we will likely pass the best transfer station.

先日の出張も、小田急が、午前5時半(始発?)ごろ、小田急小田原線の新宿駅と代々木上原駅の間で信号トラブルが発生し、その状態で運転を強行(?)した結果、正午過ぎまで、新宿到着率0%を続けるという、『どこからつっこめば良いのか分からない』ような事故を起こしています。

The other day, on a business trip, Odakyu Electric Railway had a signal problem between Shinjuku Station and Yoyogi Uehara Station on the Odakyu Odawara Line at around 5:30 in the morning (first train?). As a result of forcing through the operation (?), the arrival rate at Shinjuku Station remained at 0% until past noon, causing an accident that was 'so bad you didn't know where to start.'

この時、私は『新宿に近づくほど、到着時刻が遅くなる』と判断し、最初に他の路線と交差している駅で飛び降りました ―― 結果として、この判断が、私を救いました。

At this point, I decided that the closer I got to Shinjuku, the later I would arrive, so I got off at the first station, where the train crossed another line - and as it turned out, this decision saved me.

ぼんやりと、小田急の復旧を信じて待っていたら、この日の仕事も潰されるところでした。

If I had waited around idly, believing that the Odakyu line would be restored, I would have lost my job for the day.

小田急電鉄さんは、私の大切な交通インフラで生活のパートナーです。

Odakyu Electric Railway is an integral part of my transportation infrastructure and a partner in my life.

小田急が潰れたら、大問題です。小田急が不祥事を起こしても(いや、列車運行に関しては結構なトラブル起こしているんですけどね)、私は耐えるでしょう。でも、フジテレビが潰れようが、私は1mmも構わないです。NHKを含めて別のテレビ局がありますし、フジテレビが、私に特別良いコンテンツを提供しているとは思えないからです(そういう意味では、NHKの救済には走るかもしれない)

If Odakyu goes under, it will be a big problem. Even if Odakyu gets into trouble (well, they do have quite a few issues with their train operations), I'll put up with it. But if Fuji TV goes under, I don't care one bit. There are other TV stations, including NHK, and I don't think Fuji TV provides me with any excellent content (in that sense, I might run to the rescue of NHK).

だからといって、小田急の公式アナウンスを信じると、えらい目に遭うことは、経験的に知っています。

That said, I know from experience that believing the official Odakyu announcements can get you into trouble.

でもね、「本日中の復旧断念」というアナウンスを、今(23時)に出して、どーする。

-----

最近、会社はWebの事前予約による割引を命令してきますが、はっきり言って「どの電車に乗れるのか分からない」状態での予約は怖いです。

Recently, companies have been ordering discounts for reservations on the web, but honestly, I'm scared of making reservations when I don't know which train I'll be able to get on.

加えて、Webからのキャンセルが、高い確率で失敗します。

In addition, canceling from the web will fail at a high rate.

この損金処理対応で、コールセンタに連絡をして、取消認証処理をして ―― そんなしょーもないことにどれだけの時間を喰われるか、と考えると、事前予約なんて本当に怖くてできません。

When I think about how much time is wasted on such trivial matters as contacting the call center and going through the cancellation authentication process, I can't bring myself to make a reservation in advance.

-----

JRの「みどりの窓口」は、私には、いつでも列が発生しているように見えますし、何かトラブルになっているように見えます。

The JR “Midori no Madoguchi” always seems to have a line and is always in trouble.

「みどりの窓口」を、旅行代理店の相談窓口のように扱う救い難いバカいるようで、これが、さらに列を長くしているらしいです。

Some people treat the Midori no Madoguchi like a travel agent's consultation counter, which is longer than the lines.

ご存知のとおり、「みどりの窓口」は廃止の方向で、数を減らし、最近の特急券は、駅のホームの自販機で購入するように変ってきています。

As you know, the Midori no Madoguchi is being phased out, with the number of ticket offices being reduced, and recently, express tickets are being sold from vending machines on the station platform.

最近の私は、発車3分前に自販機で特急券を購入して、そのまま飛び乗る、というケースが続いています。

Recently, I have been buying express tickets from vending machines three minutes before departure and jumping straight on the train.

-----

ATM機の製造事業から撤収する会社も出てきています。キャッシュレスに進んでいる時代にあっては、仕方がないのかもしれません。

There are also companies withdrawing from the ATM manufacturing business. In an age of moving towards a cashless society, perhaps this is inevitable.

ただ、現金が全く使えない世界というのも困るとは思います。特に災害大国である我が国は、「停電」は常に想定事項です。

However, it would be a problem if cash were utterly unusable. In particular, as a country prone to natural disasters, power outages are something we always have to be prepared for.

『停電時/ネットワーク断絶時のキャッシュレス決済』というのが、重要な課題でしょう。暗号資産は、ローカル決済の方向に伸びていけば、新しい存在意義を確立すると思います。

'Cashless payment in the event of a power outage or network disruption' is probably an important issue. If cryptocurrency grows toward local payment, it will establish a new raison d'etre.

ノリとしては、『とりあえず、スマホの中に2万円分の暗号資産を入れとけ』ですね。

As a rule of thumb, 'for now, put 20,000 yen worth of crypto assets in your smartphone'.

スマホの充電そのものは、このような「手回し発電機」の常備で対応できるでしょう。

You can probably handle charging your smartphone by having a hand-cranked generator like this on hand.

「被災後に『購入しなっかったこと』を絶対に後悔するNo.1商品」

と考えていたのですが、

I thought, but I also thought again, 

―― こんなシステム作るくらいなら、手元に現金置いておく方がラクか?

Wouldn't it be easier to keep the cash on hand than to create a system like this?

という気もしてきました。

むしろ、現行の紙幣や貨幣は、「災害通貨」と呼ばれるよう変わっていくのかもしれません。

The current paper and coin money may change to be called “disaster currency.”

これから政府は、最低3日間の食料備蓄に加えて、「10万円分のアナログ通貨の保管」も呼びかけることになる、という感じですかね。

From now on, in addition to the minimum three-day food stockpile, the government will also call for the storage of “100,000 yen worth of analog currency.” Is that right?

-----

ともあれ、今、日本は、スマホと券売機しかない世界に劇的に移行中です。

Anyway, Japan is currently in the midst of a dramatic transition to a world where smartphones and ticket vending machines are the only things you can use.

このトレンドは航空会社が先行していますが、その対応は杜撰です。

Airlines are leading this trend, but their response is sloppy.

空港で、ようやく係員を見つけて、アプリの対応不良を申し出たら「変ですねぇ」と他人事のような対応されました(本当)。

At the airport, I finally found an attendant and complained about the poor app support, but he responded as if it were someone else's problem (it was).

-----

私たちは、クレームを言う機会すら与えられない世界に突入しています。

We are entering a world where we cannot even make a complaint.

生成AIが、このクレーム対応として威力を発揮できるかどうか、 ―― これだけが、最後の希望です。

Whether or not the generative AI can demonstrate its power in responding to this complaint - this is our last hope.

2025,江端さんの忘備録

私が町内会の役員をやらされていた時、町内会でWeb管理担当していた人が、突然引越ししてしまって、その役が私に回ってきたことがありました。

When I was appointed an officer of the neighborhood association, the person in charge of web management suddenly left, and I took on the role.

私は、従来のWebシステムを全部廃棄して、WordPressでスクラッチから作り直しました。

I scrapped the existing web system and rebuilt it from scratch using WordPress.

その上で、町内会館の予約管理システムは、Googleスプレッドシートだけを使用するものにして、3ページくらいの運用手順マニュアルだけを残して、退任しました。

After that, I left the management system for the community center's reservation system using only Google Spreadsheets. I left behind only a three-page operational procedure manual and retired.

頼まれれば、Web管理くらいサポートするつもりはあったのですが、誰一人として私に頼まなかったので、私もそのままにしてきました。

I was willing to help with web management if asked, but since no one asked, I left it as it was.

私が任期満了で退任した後も、同じ仕様のまま稼動し続けているようです。

It seems it still operates with the exact specifications even after I left office at the end of my term.

町内会のWebシステムは、『予約システム』と『町内会報表示システム』があれば、十分で、これ以上の機能を実装してはダメだと思っています。

A neighborhood association's web system is sufficient if it has a 'reservation system' and a 'neighborhood association newsletter display system,' it should not have any more functions than that.

下手な機能を入れると、役員の入れ替え時に、運用継承に失敗してコケます。

If you add a poorly designed function, it will fail to inherit operations when the board of directors is replaced, and you will look foolish.

-----

どの会社も、新システムの構築を簡単に提案しますが ―― 私は、新システム導入に対してはネガティブです。

Every company will easily propose building a new system, but I am pessimistic about introducing a new system.

旧システムを、チマチマと部分リプレースをし続けていく方が、ラクなんじゃないかな、と思うことがあります。

Sometimes, I think it would be easier to continue replacing parts of the old system bit by bit.

私の考える、システムの最優先課題は「動くこと」「停止しないこと」、さらに加えるのであれば「ユーザインターフェースを極力変えないこと」です。

The top priorities for the system, in my opinion, are “working” and “not stopping,” and if I could add one more, it would be “not changing the user interface as much as possible.”

『新しいことに飛びつかない』『必要最低限必要なサービスを、これから100年も続ける』という、サウスウエスト航空のポリシーに、古都(京都)の和菓子屋、呉服屋、伝統工芸の精神を垣間みる思いでした。

そんなことを、最近のNHKと日本IBMの事件(*)のニュースを見ながら考えていました。

I was thinking about this while watching the news about the recent NHK and IBM Japan incident (*).

(*)NHKは、受信料契約などを管理する新しい営業基幹システムの開発を日本IBMに委託していましたが、納期の大幅な遅延が見込まれるとして、2024年8月に契約を解除しました。これに伴い、NHKは既に支払った約30億円の返還と損害賠償を求め、総額約54億7千万円の訴訟を東京地方裁判所に提起しました。

(*) NHK had commissioned IBM Japan to develop a new core business system to manage subscription contracts, but in August 2024, it canceled the contract due to the expected significant delivery delay. In response, NHK filed a lawsuit in the Tokyo District Court seeking the return of the approximately 3 billion yen it had already paid and compensation for damages, for approximately 5.47 billion yen.

『どっちの言い分も、よく分かるなぁ』というのが、私の感想です。

My impression is that I can understand both sides of the argument.

そもそも、この手の事件は、私にとって、他人事ではありません。

To begin with, this kind of incident is not someone else's problem for me.

-----

企業が旧システムを使い続けるデメリットは、沢山あります。

There are many disadvantages to companies continuing to use old systems.

■コードのスパゲッティ化や互換性の問題が蓄積し、運用・保守が困難、かつ高くなる。技術者もいなくなる。パフォーマンスも悪くなる。

■The accumulation of code spaghetti and compatibility issues makes operation and maintenance difficult and expensive. There will also be a shortage of engineers. Performance will also deteriorate.

■セキュリティリスクが残り続ける

■Security risks continue to persist

の他に、企業として致命的なデメリットは、

In addition, there are also fatal disadvantages for companies, such as

■競争力のあるビジネス基盤にならない

■ It will not become a competitive business base.

■モバイル対応やシングルサインオン(SSO)など、時代のニーズに答えられない

It does not meet the needs of the times, such as mobile support and single sign-on (SSO).

があります。

そもそも、町内会のシステムと、企業の基幹システムでは、「モノ」が違います。町内会には、競争も競合も新サービスも必要ありません。

To begin with, the systems of neighborhood associations and core corporate systems are different. Neighborhood associations do not need competition, rivalry, or new services.

企業は「のんきに、旧システムのリプレースを続ける」などとは言ってられないのかもしれません。

Companies may not say, “We'll just continue replacing old systems without a care in the world.”

-----

システムとは『"動かない"が"デフォルト"で、動いたら"ラッキー"』なものであり、そのラッキーの上に、次のラッキーが詰み重なってできているものです。

A system is “unmoving by default, and if it moves, it's ‘lucky,’” and any system of one lucky thing piled on top of another.

私たちの世界を支えているものが「ラッキー」でできている、という事実は、あまり理解されていないです。

The fact that the things that support our world are made of “lucky” is not well understood.

例えば、高村薫さんの著書『神の火』の中では、原子炉の制御システムが経験値を踏襲しているものがほとんどで、そのパラメタに論理的な根拠がない(ものが多い)、という事実が記載されています ―― これをフィクションとして読み流せる人は、たぶんエンジニアではありません(エンジニアなら、この恐しさに震えなければなりません)。

For example, in the book “Kami no Hi” by Takamura Kaoru, it is stated that most of the control systems for nuclear reactors are based on empirical values and that many of these parameters have no logical basis - people who can read this as fiction are probably not engineers (engineers should be trembling with fear).

社会インフラのシステムも同様です。今、流行のDDOS攻撃なんぞは、システムの入口への攻撃に過ぎません。

The same is true of social infrastructure systems. DDOS attacks, which are popular at the moment, are just attacks on the entrance to the system.

一度、攻撃者にシステムの侵入を許したら、もう、そのシステムは死に体も同然です。

Once an attacker has gained access to a system, it is as good as dead.

システムを作った人間や、あるいはシステムの内部の運用者が攻撃者になれば、システムの破壊は防ぎようがありません。

If the person who created the system or the operator of the system becomes the attacker, there is no way to prevent the destruction of the system.

そう考えていくと、私たちの社会システムは、結構な「性善説」で成りたっているのです。

When you consider it, our social system is based on a somewhat optimistic view of human nature.

-----

ところで、町内会のWebサイトのトップページに『退会届け』のメニューを作り込んだのは、私です。

By the way, I was the one who added the “Withdrawal Form” menu to the top page of the neighborhood association website.

まだ、Webデザインの変更はされていないようです。

It seems that the web design has not been changed yet.

変更できる人がいないだけかもしれませんが。

It may just be that no one can make the change.

未分類

🔷 まとめ

移行方法 確実にデータを移行できるか? リスク
docker commit + docker save/load ❌ データがボリュームにあると移行できない データが失われるリスクあり
Docker Volume を使う ✅ どの環境でも確実に移行できる リスクなし(安全)

✅ 「どちらか分からないなら、Docker Volume を使うのが安心!」

ボリュームを使っていれば確実にバックアップされるし、もしコンテナの中にデータがあっても問題なく移行できるので、安全な方法! 🎯

未分類

docker images をやったのですが、同じ名前のdocker imagesが出てくるのですが、どれが最新なのか見分ける方法を教えて下さい。

同じ名前のdocker imagesが出てくるのですが、どれが最新なのか見分ける方法を教えて下さい。

CREATED も同じく"2months"になっていて見分けがつきません。 ですので、例えば、Dockerコンテナを動かして確認する方法はありませんか。現在、私は "docker-compose start" をした後にシェルでDocker内部に入っているのですが、この状況からの確認方法を教えて下さい

Dockerの外側(ホストOS)から稼働中のDockerコンテナを確認するには、いくつかの方法があります。以下は、その代表的な方法です。

1. docker ps コマンドで稼働中のコンテナを確認

ホストOS上で、現在稼働中のコンテナを一覧表示するために、以下のコマンドを使用します。

docker ps

cam@cam-desktop:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c928a6ab4e6b u2404b-dev-environment "/bin/bash" 4 days ago Up About an hour u2404b-dev-environment-1

という表示がでてきました。
このイメージをsaveする方法を教えてください。

1. イメージを保存する
まず、docker save コマンドを使用してイメージをファイルに保存します。以下のコマンドを実行してください。

$ docker save -o u2404b-dev-environment.tar u2404b-dev-environment

このコマンドは、u2404b-dev-environment という名前のイメージを u2404b-dev-environment.tar というファイルに保存します。

2. 保存されたファイルを確認する
保存が完了したら、ファイルが正しく作成されたか確認します。

$ ls -lh u2404b-dev-environment.tar

このコマンドで、保存されたファイルが存在し、適切なサイズであることを確認できます。

あとは、zip等で固めて、先方に送付すればO.K.

-----

保存したイメージを他の環境でロードするには、どうしたら良いですか。

もし他の環境に移動してこのイメージを使用したい場合、docker load コマンドを使用してイメージをロードします。

ファイルを解凍して、

$ docker load -i u2404b-dev-environment.tar

これにより、保存されたイメージが再びDockerにインポートされ、使用可能になります。

ところが、この方法では、自力で設定した環境などが全く引き継がれないらしいです。

送付いただいたものはgstreamer、コンパイル環境が入っていない状態でした。
お手数ですが、コンテナをcommitしてsaveしたものを送付願います。
(参考:https://sagantaf.hatenablog.com/entry/2018/09/04/190801)

上記の参考資料の通りにやってみることにしました。

(Step.1) まず、ゲストOSを立ち上げておいて、ホストOSから以下のコマンドを投入します
cam@cam-desktop:~$ sudo docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c928a6ab4e6b u2404b-dev-environment "/bin/bash" 4 days ago Up 3 hours u2404b-dev-environment-1

(Step.2) 次に、このc928a6ab4e6bを使って、20240828_shajyoという名前(名前は好きなように)でコミットします

cam@cam-desktop:~$ sudo docker commit c928a6ab4e6b 20240828_shajyo
sha256:ac3405c474d294e5b5d0bd9a8cdc51a600f8cd3d04685877cecfb772e284b17e

# コミットしている最中、ゲストOSにアクセスできなくなるようですが、恐れず、じっと我慢しましょう。

(Step.3) コミットに成功しているかを確認します

cam@cam-desktop:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
20240828_shajyo latest ac3405c474d2 4 minutes ago 2.5GB  ← できている
u2404b-dev-environment latest 48248de5e524 2 months ago 1.23GB
<none> <none> dcb4a05fb5a5 2 months ago 1.23GB
<none> <none> 132165fbb602 2 months ago 986MB
u2404_dev-environment latest 940f87bcbccf 2 months ago 986MB
<none> <none> a4252fdea034 2 months ago 988MB
u2404-dev-environment latest a042684decc4 2 months ago 971MB
ubuntu 24.04 ffb64c9b7e8b 2 months ago 101MB
hello-world latest ee301c921b8a 16 months ago 9.14kB

(Step.3) 20240828_shajyoをセーブします

cam@cam-desktop:~$ docker save 20240828_shajyo -o 20240828_shajyo.tar

あとは、これをzip等で圧縮して、先方にお送りすれば良いです。

cam@cam-desktop:~$zip 20240828_shajyo.tar.zip 20240828_shajyo.tar

-----

これを展開するのは、多分、以下のようになると思います(というのは、私が試していないからです)

(Step. 1) 一旦、ホストOSからイメージを削除する
$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
20240101_shajyo          latest              3c053ce8d919        25 minutes ago      193MB

$ docker rmi 20240101_shajyo

(Step. 2) ホストOSから、ファイルからイメージを作成する

$ sudo docker load < 20240828_shajyo.tar

これでイメージが復活する(ハズ)とのことです。

ご対応ありがとうございました。
コンパイル環境と各プログラムがイメージに入っていることを確認しました。

というコメントをいただいたので、多分大丈夫です。

=======

今回イメージを受けとる側になりましたので、イメージの作成方法を追記します。

cam@cam-desktop:~/u2404b$ docker-compose start
service "dev-environment" has no container to start
と言われてしまいました。

解決手順

1. 現在のコンテナ状況を確認

まず、docker-compose.ymlのディレクトリに行きます。

現在のコンテナ状況を確認するため、以下のコマンドを実行します:

docker-compose ps

出力が空の場合、まだコンテナが作成されていないことを意味します。

2. コンテナを作成・起動

$ sudo docker load < 20241016_shajyo_latest.tar
でつくったもので
20241016_shajyo latest bf4a5d825daa 13 months ago 3.15GB
となっています。

もし 20241016_shajyo:latestdocker-compose.yml 内で使用する予定がある場合、以下の手順を考慮してください。


1. 20241016_shajyo:latest を使用する場合

docker-compose.yml に以下のようにイメージ指定を追加します。

 

version: '3'

services:
  dev-environment:
    image: 20241016_shajyo:latest  # ロード済みのイメージを使用
    environment:
      DISPLAY: ${DISPLAY}
      XDG_RUNTIME_DIR: /tmp/xdg
    volumes:
      - /tmp/.X11-unix:/tmp/.X11-unix
      - /home/cam/u2404:/home/cam/u2404
    stdin_open: true
    tty: true
    network_mode: host

docker-compose up コマンドで、コンテナを作成して起動します:

docker-compose up --build -d
  • --build は、新しいビルドが必要な場合に使用します。
  • -d は、デタッチモード(バックグラウンドで実行)を有効にします。

このコマンドで新しいコンテナが作成され、サービスが開始されます。

ところが、これでもDockerで作ったデータベース本体丸ごとでの移行はしないみたいです(ちょっと待った。現在これ検証中)。

結論:docker commit ではデータは移行されない可能性が高い!
データベースごと移行するなら docker volume をバックアップするか、pg_dump を使うべき

データベース本体と丸ごと持っていきたい場合は(も、あてにならないので、現在検証中)

DockerのPostgreSQLデータベースをWindows→WSLのDockerへ移行する方法

2025,江端さんの忘備録

11日の休日は、

On the 11th, my holiday,

(1)午前中に、Docker Desktopからコンテナをエクスポートして、別のマシンのWindowsのWSLにDocker環境を構築してインポートし、

(1) in the morning, I was going to export a container from Docker Desktop, build a Docker environment on Windows WSL on another machine, and import it,

(2)午後からは日本語のドラフトを英文カンファレンスペーパーにする

(2) in the afternoon, I was going to turn a Japanese draft into an English conference paper

つもりでした。

スマートに、エレガントに、コーヒーカップを片手にしながら。

Smartly and elegantly while holding a cup of coffee in my hand.

なのに、なんでどうしてこうなる?

But why did it turn out like this?

―― 翌日の深夜午前4時まで、連続18時間格闘し続けて、上記『午前中』の処理が、まだ完了していない(継続中)

I continued to fight for 18 hours straight until 4 am the next day, and the above 'morning' process is still incomplete (still ongoing).

複数のマシンにばらまいていたDockerのデータベースの中身がスカスカで、バックアップのほぼ全部が「ザル」であったことが分かり、心底青さめています。

I was disappointed to find that the contents of the Docker database, which had been spread across multiple machines, were very sparse and that almost all of the backups were “sieve-like.”

今やれることは、何でもやっている、という感じです。

I feel like I am doing everything I can right now.

イントラネットの実験用のマシンとして使うために、Windowsのセキュリティを全解除したいです(pingとか、ポートオープンとか面倒くさい)。設定方法を教えてください。

バックアップが不安な状態が続く状態が怖くて、1秒も早くこの作業を完了したいのですが、定例と出張で、そんな時間取れません。

I'm scared that the uncertainty about the backup will continue, and I want to complete this task as soon as possible, but I can't find the time to do it with my regular work and business trips.

なんか体調も悪くなってきました(喉が痛い)。

I'm starting to feel unwell (my throat hurts).

こんな気持ちと体調のまま、週末に突入するのか、と考えるだけで、死ぬほど憂鬱(ゆううつ)です。

Just thinking about entering the weekend with these feelings and physical condition is enough to make me feel depressed to the point of death.

だれか、私に「大丈夫だよ。なんとかなるよ」と、耳元でささやいて欲しい。

I want someone to whisper in my ear, “It's okay. You'll manage somehow.”

嘘でもいいから。

Even if it's a lie.

未分類

Windowsのセキュリティを全解除する方法を説明します。ただし、これはセキュリティリスクが極めて高いため、イントラネット内での実験用に限定し、外部ネットワークに接続しないことを強く推奨します。


1. Windows Defender ファイアウォールを完全無効化

方法1: コマンドで無効化

管理者権限のPowerShellを開いて、以下のコマンドを実行してください。

powershell
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False

これで、全ネットワークプロファイルのファイアウォールを無効化します。

とりあえず、ここまででいいかな。

方法2: GUIで無効化

  1. ファイアウォールとネットワーク保護 を開く
  2. ドメイン ネットワークプライベート ネットワークパブリック ネットワーク の3つ全てを「オフ」にする

2. Windows Defenderのリアルタイム保護を無効化

管理者権限のPowerShellで以下を実行:

powershell
Set-MpPreference -DisableRealtimeMonitoring $true

GUIで行う場合:

  1. Windows セキュリティウイルスと脅威の防止
  2. ウイルスと脅威の防止の設定リアルタイム保護 をオフにする

3. Windows SmartScreenを無効化

管理者権限のPowerShellで以下を実行:

powershell
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer" -Name SmartScreenEnabled -Value Off

GUIで行う場合:

  1. Windows セキュリティアプリとブラウザーコントロール
  2. SmartScreen の全項目をオフにする

4. UAC(ユーザーアカウント制御)を無効化

レジストリを変更することで完全無効化できます。

powershell
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name EnableLUA -Value 0

変更後、再起動が必要です。


5. Pingを許可

ICMP(ping)を許可するには、以下のコマンドを実行:

powershell
New-NetFirewallRule -DisplayName "Allow ICMPv4" -Protocol ICMPv4 -IcmpType 8 -Action Allow -Direction Inbound

6. すべてのポートを開放

方法1: 特定のポートをすべて開放

以下のコマンドで全ポートを開放:

powershell
New-NetFirewallRule -DisplayName "Allow All Ports" -Direction Inbound -Action Allow -Protocol Any -Enabled True

方法2: ファイアウォールを完全無効化

上記の**「1. ファイアウォールを無効化」**を実施すれば全ポート開放されます。


7. Windows Updateの無効化

Windows Updateを完全に無効化したい場合:

powershell
Stop-Service -Name wuauserv -Force
Set-Service -Name wuauserv -StartupType Disabled

8. 共有フォルダの制限解除

管理者権限のPowerShellで、SMBの制限を解除:

powershell
Set-SmbServerConfiguration -EnableSMB1Protocol $true -Force
Set-SmbServerConfiguration -EnableSMB2Protocol $true -Force

さらに、ファイル共有を完全開放するには以下を実行:

powershell
New-SmbShare -Name "Shared" -Path "C:\Shared" -FullAccess Everyone

"C:\Shared" を共有フォルダとして、全ユーザーにフルアクセスを付与します。


9. リモートデスクトップを有効化

RDPを有効にするには、以下のコマンドを実行:

powershell
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name fDenyTSConnections -Value 0
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"

10. 自動ログインの設定

特定のユーザーで自動ログインしたい場合、以下のレジストリ設定を変更:

powershell
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name AutoAdminLogon -Value "1"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name DefaultUserName -Value "YourUserName"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name DefaultPassword -Value "YourPassword"

注意点

  • 外部ネットワークには絶対に接続しないこと
  • 一度無効化したら、戻すのも手間がかかるため慎重に
  • Windows Updateを止めると脆弱性が残るので要注意

イントラネット環境での実験用なら問題ありませんが、セキュリティリスクを理解した上で行ってください。

2025,江端さんの技術メモ

DockerのPostgreSQLデータベースをWindows→WSLのDockerへ移行する方法

Windows上のDockerで動作するPostgreSQLデータベースを、WSL(Windows Subsystem for Linux)のDockerに移行する 手順を説明します。


🔷 方法 1: Dockerボリュームごと移行する(推奨)

Windowsでは grepbusybox は不要 で、標準的な PowerShellコマンド を使用して移行できます。

📌 ① ボリューム名を確認

まず、PostgreSQLのデータが保存されているボリューム名を確認します。

powershell
docker volume ls

出力例:

DRIVER VOLUME NAME
local hakata_db-data

この hakata_db-data がPostgreSQLのデータが格納されているボリュームです。


📌 ② ボリュームをtarファイルにバックアップ

PowerShellを管理者権限で開き、以下のコマンドを実行します。

docker run --rm -v hakata_db-data:/data -v C:\Users\tomoi\backup:/backup ubuntu tar czf /backup/hakata_db_backup.tar.gz -C /data .

重要なポイント

  • C:\Users\tomoi\backup はWindows側のバックアップ保存先(任意のフォルダを指定)
  • ubuntu イメージを使用(busybox は不要)
  • hakata_db_backup.tar.gz という圧縮ファイルが作成される

この hakata_db_backup.tar.gz をUSBやネットワーク経由で 移行先のマシンへコピー します。


📌 ③ WSLのDocker環境にファイルをコピー

WSLのファイルシステムにバックアップを移動します。

powershell
wsl

WSL内で以下のコマンドを実行して、WindowsのバックアップファイルをWSLの /home/ ディレクトリにコピー。

cp /mnt/c/Users/tomoi/backup/hakata_db_backup.tar.gz /home/

📌 ④ WSLのDockerでボリュームを作成

WSL内で以下を実行し、新しいボリュームを作成します。

docker volume create hakata_db-data

作成したボリュームにデータを展開します。

docker run --rm -v hakata_db-data:/data -v /home:/backup ubuntu tar xzf /backup/hakata_db_backup.tar.gz -C /data

📌 ⑤ WSLのDockerでPostgreSQLコンテナを起動

WSL内で以下を実行し、データをマウントしたPostgreSQLコンテナを起動。

docker run -d --name postgres_hakata -p 15432:5432 -v hakata_db-data:/var/lib/postgresql/data postgres:16

📌 ⑥ データが正しく復元されたか確認

PostgreSQLコンテナに接続してデータを確認。

docker exec -it postgres_hakata psql -U postgres

データベース一覧を表示:

\l

2025,江端さんの技術メモ

音声を無視して、最も一般的な webm → mp4 変換コマンドは以下のようになります。

ffmpeg -i input.webm -vf "scale=640:360" -r 5 -c:v libx264 -preset slow -crf 23 -an output.mp4

説明:

  • -i input.webm:入力ファイルの指定
  • -vf "scale=640:360":解像度を640x360に変更
  • -r 5:フレームレートを5fpsに変更
  • -c:v libx264:H.264コーデックでエンコード
  • -preset slow:エンコード速度と圧縮率のバランスをとる(品質優先)
  • -crf 23:品質を指定(数値が低いほど高品質)
  • -an:音声を削除(無音にする)
  • output.mp4:出力ファイルの指定

このコマンドで、音声なしの mp4 に変換できます。

2025,江端さんの忘備録

技術の世界は、

The world of technology is a strange world where

(1)先頭を走らなければ負け

(1) if you don't run at the front, you lose

and

(2)先頭を走ったら負け

(2) if you do run at the front, you lose

が併存する、不思議な世界です。

coexist.

-----

まず「(1)先頭を走らなければ負け」というのは、新技術に対して大胆に挑戦し続けなければ、技術で生きている会社は生き残れない、という現実があります。

Firstly, “(1) If you don't run at the front, you lose” is a reality that companies that survive on technology cannot survive unless they continue to take on new technology boldly.

スマートフォン市場におけるAppleの事例がわかりやすいと思います。

I think the example of Apple in the smartphone market is easy to understand.

Appleは2007年にiPhoneを発表し、スマートフォン市場の覇権を握りました。

Apple announced the iPhone in 2007 and took control of the smartphone market.

それまでの携帯電話市場はNokiaやBlackBerryが支配していましたが、タッチスクリーンを中心とした新しいUIを導入し、アプリストアというエコシステムを作ったことで、新たな市場を開拓し、技術革新をリードすることで市場を支配するチャンスを得ました。

Until then, Nokia and BlackBerry had dominated the mobile phone market. However, by introducing a new UI centered around touch screens and creating an app store ecosystem, they were able to develop a new market and seize the opportunity to dominate it by leading technological innovation.

技術の進化が激しい分野では、先行しなければ市場において埋もれてしまうのです。

In fields where technology is evolving rapidly, we will be left behind in the market if we don't keep up.

例えば、日本の家電メーカーは液晶テレビやスマートフォン市場でかつて強かったが、新しい技術トレンドに適応できず、海外メーカーに市場を奪わるに至っています。

For example, Japanese home appliance manufacturers used to be strong in the LCD TV and smartphone markets. However, they have not adapted to new technological trends, and overseas manufacturers have dominated the market.

-----

次に「(2)先頭を走ったら負け」というのは、新技術を業界デファクトスタンダードにできなければ、結局、後発技術の方に足並みをそろえなければならなくなって、先行投資のお金をドブに捨てることになる、という現実です。

Next, “(2) If you run at the front, you lose” refers to the reality that if a new technology can't become the industry standard, you'll have to adopt the latecomer's technology, which will result in throwing away the money you invested in advance.

Google Glassの失敗が挙げられるかと思います。

I think the failure of Google Glass can be cited.

Googleはウェアラブルデバイスの未来を見据えて、2013年にGoogle Glassを発表しましたが、市場はまだその技術を受け入れる準備ができておらず、プライバシーの問題などもあって普及しませんでした。

Google announced Google Glass in 2013 with an eye to the future of wearable devices. Still, the market was not yet ready to accept the technology, and it did not become popular due to privacy concerns.

結果として、Googleはこのプロジェクトを一旦終了し、後発のARグラスやVR市場に歩調を合わせる形として継続しています。

As a result, Google has ended this project for the time being and is continuing it in a way that keeps pace with the later AR glasses and VR markets.

日本人にとって最も有名なケースは、ソニーのベータマックスです。

The most famous case that Japanese people know of is Sony's Betamax.

ベータマックスは、VHSよりも技術的に優れていましたが、業界の標準を獲得できなかったため、結果的に市場で敗北しました。

Betamax was technically superior to VHS but failed to gain industry-standard status and was ultimately defeated in the market.

このケースは、技術的に先行していても、業界全体の流れを作ることができなければ、競争に勝てないことを、日本のエンジニアに骨の髄まで思い知らせた超有名な事例です。

This famous case made Japanese engineers realize to the bone marrow that even if we are technically ahead and cannot create a trend for the whole industry, we will not be able to win the competition.

-----

昨日も記載しましたが、私は、PostgreSQL + PostGISを使い倒しています(日本一のヘビユーザではないか、と自負しています)。

As I mentioned yesterday, I use PostgreSQL + PostGIS to the full (I'm proud to say that I'm probably the biggest PostGIS user in Japan).

これなら「プログラムを一切変更せずに」金の力だけで解決できます!

高速のデータベースがあれば、飛び付きたい気持ちがありますが、ここに、「(1)先頭を走らなければ負け」と「(2)先頭を走ったら負け」の現実が立ち塞がります。

If there were a high-speed database, I would be tempted to jump at the chance, but here is the reality of (1) “If you don't run at the front, you lose” and (2) “If you run at the front, you lose” stands in the way.

どんなに良いデータベースであったとしても、それを他の人に使いこなして貰えないのであれば、それを組み込んだ私の作ったシミュレータは死蔵し、そして、私の死後に完全に消滅します。

No matter how good the database is, if other people can't use it, the simulator I made incorporating it will gather dust and completely disappear after my death.

まあ、それはそれで良いのですが ―― 開発現場の人間の一人としては、世界中の人が使っているデータベースは、問題が発見しやすく、トラブル対応が早くすむ、という利点は見逃せません。

Well, that's O.K., but as someone working in development, I can't ignore the advantages of a database that is used by people all over the world, such as the fact that it makes it easier to find problems and respond to issues quickly.

RTNETLINK answers: No such file or directory と言われます。

-----

まあ、技術の現場の人間の一人としては、この「(1)先頭を走らなければ負け」と「(2)先頭を走ったら負け」の二律背反にどう対処していくか、と問われれば、

Well, as someone working in the field of technology, I'm wondering how to deal with the two opposing ideas of “(1) If you don't run at the front, you lose” and “(2) If you run at the front, you lose”, and  I think the answer is

―― 『デカイ技術革新』の一発勝負ではなく、『セコイ技術革新』のチマチマした継続

'Rather than a single shot at a “major technological innovation,” a steady continuation of multiple “minor technological innovations”'

ということになるかなぁ、と思っています。

この話、特許明細書を考えるときのプロセスと同じです。

This is the same process as when thinking about a patent specification.

「創作だけは機械にできない」と言われていますが、私がChatGPTを使い倒している日々において、私は、"これ"すらも"否定"できます。