Mac って何?それって美味しいの?

マイコンと呼ばれた時代から現在まで、使用記から何から何でも。

Windows10上で西暦和暦変換をサクッとできるようにする

ちょっと業務で西暦の日付を和暦に変換しなきゃならなくなりました。
まぁ、Excelとか何か使ってやってもいいのでしょうが、
何か、手間をかけずにできないかな?とchatGPTさんにお願いしたところ
PowerShellスクリプトで実現してくれました!
そんな発想無かったよ。ありがとう!

PowerShellを使用して西暦から和暦への変換と年齢計算を行うスクリプト

はじめに

PowerShellを使って、西暦の生年月日を入力し、その日付を和暦に変換して表示し、さらに現在の年齢も計算して表示する便利なスクリプトを作成しました。この記事では、そのスクリプトの使い方や、背後にあるロジックについて説明します。

スクリプトの概要

このスクリプトは、PowerShellを使って西暦の生年月日を入力し、それを和暦に変換して表示します。また、その人の現在の年齢も計算して表示します。

スクリプト

# 西暦から和暦への変換関数
function ConvertToJapaneseEra {
    param(
        [datetime]$Date
    )

    # 元号の開始日と名称の定義
    $EraStartDates = @{
        [datetime]"1868-01-25" = "明治"
        [datetime]"1912-07-30" = "大正"
        [datetime]"1926-12-25" = "昭和"
        [datetime]"1989-01-08" = "平成"
        [datetime]"2019-05-01" = "令和"
    }

    # 元号の開始日を基準にして和暦を計算
    foreach ($StartDate in $EraStartDates.Keys | Sort-Object -Descending) {
        if ($Date -ge $StartDate) {
            $EraName = $EraStartDates[$StartDate]
            $JapaneseYear = $Date.Year - $StartDate.Year + 1
            $JapaneseDate = "$EraName$JapaneseYear 年 $($Date.Month) 月 $($Date.Day) 日"
            return $JapaneseDate
        }
    }

    return "Invalid Date"
}

# 西暦の生年月日を入力
do {
    $InputDate = Read-Host "西暦の生年月日を入力してください (yyyyMMdd形式、例: 19900101)"

    if ([string]::IsNullOrWhiteSpace($InputDate)) {
        Write-Host "スクリプトを終了します。"
        exit
    }

    try {
        $DateTime = [datetime]::ParseExact($InputDate, "yyyyMMdd", $null)
        $JapaneseDate = ConvertToJapaneseEra -Date $DateTime
        $Age = (Get-Date).Year - $DateTime.Year
        if ((Get-Date) -lt $DateTime.AddYears($Age)) {
            $Age--
        }
        Write-Host "和暦の生年月日は: $JapaneseDate"
        Write-Host "現在の年齢は: $Age 歳"
    }
    catch {
        Write-Host "無効な形式です。正しい形式で入力してください (yyyyMMdd形式、例: 19900101)"
    }
} while ($true)

 

PowerShellスクリプトを実行するには、スクリプトを保存し、.ps1の拡張子でファイルを作成し、PowerShellで実行します。

ただし、スクリプトの実行には、PowerShellの実行ポリシーを緩和する必要があるかもしれません。これを行うには、PowerShellを管理者権限で開き、以下のコマンドを実行します。

Set-ExecutionPolicy RemoteSigned

 

使い方

このスクリプトをダブルクリックで実行できるようにすることができます。以下の手順に従ってください。
1. テキストエディターで、先ほどのスクリプトをコピーします。
2. コピーしたスクリプトを新しいテキストファイルに貼り付けます。
3. テキストファイルを保存しますが、拡張子を `.ps1` に変更します。例えば、`ConvertToJapaneseEra.ps1` という名前にします。
4. 保存した `.ps1` ファイルを任意の場所に配置します。デスクトップに配置するのが便利です。
5. 保存した `.ps1` ファイルに対して、右クリックし、"プロパティ" を選択します。
6. "プロパティ" ウィンドウが開いたら、「一般」タブに移動します。
7. 「種類」セクションの「変更」ボタンをクリックします。
8. 「選択プログラム」ウィンドウが開かれるので、そこで "Windows PowerShell" を選択し、「OK」をクリックします。
9. 再び "プロパティ" ウィンドウに戻り、「適用」または「OK」をクリックします。

実行
1. ダブルクリックでスクリプトを実行します。
2. 指示に従って西暦の生年月日を入力します。何も入力せずにEnterキーを押すと終了します。
3. スクリプトが和暦の生年月日と年齢を表示します。

スクリプトの詳細

このスクリプトは、西暦の生年月日を "yyyyMMdd" 形式で受け入れます。入力された日付を和暦に変換し、その後、現在の日付との差を計算して年齢を求めます。その際、生年月日が現在の日付より後の場合は、年齢を1つ下げます。

このスクリプトを使えば、簡単に西暦から和暦への変換と年齢計算を行うことができます。便利なPowerShellスクリプトとして、ぜひお役立てください。

HDD2基Mac mini ServerにRAID構成の起動ディスクを構築する

Mac Miniに2つの内蔵HDDを使用してRAID構成の起動ディスクを作成する方法は、以下の手順に従って行うことができます。RAID(Redundant Array of Independent Disks)は、複数のディスクを組み合わせて1つの論理的なディスクとして使用するテクノロジーです。RAIDを構築する前に、重要なデータはバックアップすることをお勧めします。

 

 

macOSのインストールUSBを作成

除外されたバージョンのmacOSをインストールするなら、

OpenCore Legacy Patcher(OCLP)

ツールを使用して作成できます。その場合はOCLPの手順に従ってください。

インストール要件を満たしているmacOSのインストールUSBを作成する手順は以下の通りです。

**前提条件**:

- 使用するMacApp StoreアカウントでmacOSのダウンロードが可能であること。
- USBフラッシュドライブ(16GB以上推奨)が利用可能であること。

手順:

1. **App StoreからmacOSをダウンロード**:

   - Macを起動し、App Storeから最新のmacOSインストーラをダウンロードします。通常、インストーラは「Applications」フォルダに保存されますが、自動的に起動する場合がありますので、ターミナルやSpotlightで検索しても良いでしょう。

2. **USBフラッシュドライブの準備**:

   - USBフラッシュドライブをMacに接続します。データがある場合はバックアップを取得してください。
   - Disk Utility(ディスクユーティリティ)を開き、USBドライブを選択します。
   - "消去"(Erase)をクリックし、適切なフォーマットとスキーム(Scheme)を選択します。例えば、"Mac OS Extended (Journaled)"と"GUID Partition Map"を選択します。その後、ドライブを"消去"します。

3. **Terminalを使用してUSBにインストーラをコピー**:

   - インストール用のUSBドライブが"Untitled"などの名前でマウントされることを確認します。
   - Terminal(ターミナル)を開きます。
   - 以下のコマンドを使用して、ダウンロードしたmacOSインストーラをUSBにコピーします。コマンド中の「MyVolume」はUSBドライブの名前に置き換えてください。

```bash
sudo /Applications/Install\ macOS\ [Version].app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
```

   - コマンドを実行すると、管理者パスワードを求められるので入力してください。その後、USBにmacOSのインストール用ファイルがコピーされます。プロセスには数分から数十分かかることがあります。

4. **インストールUSBの使用**:

   - USBフラッシュドライブにmacOSのインストールファイルが正常にコピーされたら、Macを再起動します。
   - Optionキー(またはAltキー)を押しながら電源を入れておくと、起動時にブートオプションが表示されます。そこで、USBドライブを選択して起動します。

以上の手順で、USBフラッシュドライブにmacOSのインストールファイルを作成し、それを使用してMacを起動することができます。

 

macOSクリーンインストール

すでにあるmacOS起動ドライブをRAIDに復元する場合は、この手順を省略できます。

macOSクリーンインストールする手順は以下の通りです。クリーンインストールを行う前に、重要なデータのバックアップを取得することを強くお勧めします。

**手順:**

1. **バックアップ**:

   - クリーンインストールを行う前に、重要なファイルやデータをバックアップします。Time Machineなどのバックアップツールを使用して、全体のバックアップを取得することをお勧めします。

2. **Macのシャットダウン**:

   - Macをシャットダウンします。

3. **インストールUSBを挿入**:

   - 作成したmacOSのインストールUSBドライブをMacに挿入します。

4. **起動オプションを選択**:

   - Macを起動し、Optionキー(またはAltキー)を押しながら電源を入れると、起動オプションが表示されます。USBドライブを選択して起動します。

5. **macOSインストール**:

   - USBドライブから起動したら、macOSのインストールウィンドウが表示されます。
   - 上部のメニューバーから「ディスクユーティリティ」を選択し、クリーンインストールするためにインストール先のドライブを準備します。
   - ディスクユーティリティで、インストール対象のドライブを選択し、"消去"(Erase)をクリックします。適切なフォーマットとスキーム(Scheme)を選択してドライブを消去します(通常、"Mac OS Extended (Journaled)"と"GUID Partition Map"を選択します)。
   - 消去が完了したら、ディスクユーティリティを閉じて、macOSのインストールウィンドウに戻ります。
   - "続ける"をクリックして、先ほど消去したドライブにmacOSをインストールします。

6. **インストールプロセス**:

   - インストールが開始されると、Macに最新のmacOSがインストールされます。インストールには数分から数時間かかることがあります。

7. **初期設定**:

   - インストールが完了すると、Macが再起動されます。最初の起動時には初期設定を行います。言語、地域、Apple ID、ネットワークなどの情報を入力して設定を完了させます。

8. **データの復元**:

   - バックアップから必要なデータやファイルを復元します。Time Machineなどのバックアップを使用すると、復元プロセスがスムーズに行えます。

これらの手順に従うことで、クリーンな状態で最新のmacOSがインストールされたMacを使用することができます。

 

macOS起動ドライブを外部ディスクにコピー

macOSの起動ディスクをUSBストレージに復元する手順は以下の通りです。このプロセスでは、元の起動ディスク(たとえば、Macの内蔵ストレージ)からUSBにmacOSをコピーして復元します。

**手順:**

1. **Macのシャットダウン**:

   - Macをシャットダウンします。

2. **インストールUSBを挿入**:

   - 内蔵ストレージではなく外部ストレージから起動させるため、macOSのインストールUSBドライブをMacに挿入します。

3. **起動オプションを選択**:

   - Macを起動し、Optionキー(またはAltキー)を押しながら電源を入れると、起動オプションが表示されます。USBドライブを選択して起動します。

4. **macOSインストールユーティリティ起動**:

   - USBドライブから起動したら、macOSのユーティリティウィンドウが表示されます。

USBインストーラから起動したmacOSユーティリティ

5. **退避用USBストレージの接続**:

   - バックアップや重要なデータを失わないように、空のUSBフラッシュドライブ(16GB以上推奨)をMacに接続します。データがある場合は、バックアップを取得してください。

6. **Disk Utilityを使用してUSBを準備**:

   - Disk Utilityを開きます。
   - 退避用USBドライブを選択し、「消去」をクリックして、適切なフォーマットとスキーム(Scheme)を選択します。通常、"Mac OS Extended (Journaled)"と"GUID Partition Map"を選択します。
   - "消去"をクリックして退避用USBドライブを準備します。このプロセスでUSBディスク上のすべてのデータが消去されることに注意してください。

7. **Disk Utilityで内蔵ストレージのmacOSをUSBに復元(コピー)**:

   - Disk Utilityを開きます。
   - 左側のメニューで、復元(コピー)先ディスクを選択します。
   - 上部のメニューバーで「復元」を選択します。
   - 「ソース」にmacOSが入った内蔵ストレージを選択します。
   - "復元"をクリックしてUSBにmacOSを復元します。このプロセスには時間がかかる場合があります。

8. **復元が完了したらUSBを確認**:

   - 復元が完了したら、USBドライブが起動可能なmacOSを持つディスクとして正常に作成されたかどうかを確認してください。

これらの手順に従って、macOSの起動ディスクをUSBストレージに復元(コピー)することができます。

 

RAID構成の起動ドライブを構築し退避用USBストレージから復元

引き続きUSBインストーラで起動した状態で作業します。

1. **Disk Utilityを使用してRAID構築**:

   - Disk Utilityを開きます。
   - 左側のメニューで、"RAID Assistant"または"RAID"タブを選択します。
   - "Create a RAID Set"をクリックします。
   - RAID構成のタイプ(RAID 0RAID 1、または他のRAIDレベル)を選択します。RAID 0はストレージを結合し、速度を向上させますが、耐障害性が低くなります。RAID 1はデータをミラーリングし、耐障害性を高めます。
   - 使用するディスクを選択して、RAID構成に追加します。
   - RAID構成名やフォーマットなどの設定を行います。
   - "Create"をクリックしてRAID構成を作成します。

2. **起動ディスクの作成**:

   - Disk Utilityを使用して、新しく作成したRAID構成をMac Miniの起動ディスクとして設定します。
   - "View"メニューから"Show All Devices"を選択し、RAID構成を表示します。
   - RAID構成を選択し、"Erase"をクリックします。必要に応じて、フォーマットと名前を設定します。
   - "Scheme"は"GUID Partition Map"を選択し、"Format"は"APFS"または"Mac OS Extended (Journaled)"を選択します。
   - "Erase"をクリックしてフォーマットを完了します。

3. **Disk Utilityで退避用USBストレージからRAID起動ディスクに復元(コピー)**:

   - Disk Utilityを開きます。
   - 左側のメニューで、RAID起動ディスクを選択します。(下の写真の例ではMacHDを選択)
   - 上部のメニューバーで「復元」を選択します。
   - 「ソース」にmacOSが入った退避用USBストレージを選択します。
   - "復元"をクリックしてRAID起動ディスクにmacOSを復元します。このプロセスには時間がかかる場合があります。
   - "復元"の最終段階?でブレスツールエラーが表示されますが無視します。(復元はされているようです)

復元

4. **起動ディスクとして設定**:

   - Startup Diskを開きます。
   - RAID構成が表示されている場合、それを選択してMac Miniの起動ディスクとして設定します。この時、ブレスツールエラーが表示されますが無視して選択します。

起動ディスクを指定してシステム終了

5. **RAID起動ディスクからのmacOS起動を確認**:

   - RAID起動ディスクから復元されたmacOSが正常起動するのを確認してください。

 

以上の手順で、Mac Miniに2つの内蔵HDDを使用してRAID構成の起動ディスクを構築できます。ただし、RAIDを構築する前にデータのバックアップを取得し、慎重に作業を行うことが重要です。また、Mac MiniがサポートするRAID構成の種類やオプションについて、事前に調査することをお勧めします。

画像生成AIでレース。

競馬場で人間を走らせようとすると、どうしてもウマが生成されてしまう。

プロンプトを試行錯誤して、やっと実現できるようになった。

アイドル 牝 競走

4枚目、唯一生成されたメガネっ娘を推したい。

 

女子高生レース

混戦のため同じ高校でチームを組んでたりします。

汚れ具合がレースの激しさを物語っています。

 

大人女子レース

大人女子のレースは色気がでますね。

 

楽しくって、調子に乗りすぎた。

最後は普通にアニメ風に。

アニメ風

 

AIで生成した「それっぽい」画像

なんとなく、わかりますかね。

ウマ娘

ウマを消すと、ウマくいかない。

 

ソウナンですか?

大きく見開いた目と、口の形がすてき。

 

ルビーとアクア(ハロウィン)

こんな兄妹がいたら、そりゃ目立つね。

 

Re: らーめんチャレンジ

だめだ。画像生成AI、楽しすぎる。

前回に引き続き「ゆるふわギャル」でラーメンチャレンジ。

 

yummac.hatenablog.jp

Stable Diffusionでチャレンジしてみる。

使用マシンは iMac 2011 core i7 なので気長に待ちます。

ゆるふわギャル eating ramen

chilled_remix_V2, step:25, upscale Latent 2x

これは生成に指定しているモデルにも影響されるよね。

箸を持つ指も苦手なのがわかります。これでも頑張っているほう。

ラーメンをすするゆるふわギャル(学生)

もう、箸を持たずにすすっています。ゆび多め。

ラーメンを食べない

オシャレな感じだけど、もはや食べない。映えればいいの。

 

Bing Image Creatorでも、プロンプトに本気出してみる。

ラーメンを食べるゆるふわギャル(ノスタルジック)

ラーメンを食べるゆるふわギャル(誤生成)

 

プロンプトのちょっとの加減でネコになります。

それにしても、箸を持つ手(指)が上手に描けています。前足か。

 

それから、パステルなゆるふわにしてみる。

ラーメンを食べるゆるふわギャル(ぱすてる)

こちらはまた、ちょっとした加減で「安全でない画像コンテンツが検出されました」扱いでブロックされてしまいます。

ラーメンを食べるゆるふわギャルは「不適切」なのか。

いやいや、「性的」なものを思わせるプロンプトがまずいんだろうね。

らーめんチャレンジ

今週のお題「こぼしたもの」

 

最近、Stable DiffusionをiMacで使って遊んでいるが、なんと、Microsoft Edgeで画像生成できるという記事を見た。

DALL-E3を無料で使え、Stable Diffusionよりも上手く描けるという?!

そして、さっそく試してみた。

Gooole Chrome使いの私なので、ときどき勝手に起動するEdgeは嫌いなヤツだったが、ひさしぶりにダブルクリックした。

Microsoft Bing の Image Creator」のページを表示する。

Edge関係なかった。chromeでもできるやん。

そして、最近お気に入りの「ゆるふわギャル」でラーメンチャレンジ。

プロンプトは日本語でOK。生成したい画像の説明を文章で入力すればいい。

「ラーメンを食べているゆるふわギャル」

ラーメンを食べているゆるふわギャル

かわいいイラストが生成された。

イラストではなくリアルにするには「写真」を指示するのか。

3画像生成された。

ラーメンを食べている「ゆるふわ美少女」の写真

なぜか、ネコが生成されるんだよねぇ。

イラストの時もネコが最初だった。

「ゆるふわ」がふさふさなネコを想像させる?

でもすごいな!楽しい。

 

追加)

Bing AIチャットを使うと勝手に画像生成してくれる!

ただ、AIでプロンプト変換してから画像生成するので期待しているのと出来が異なることが多い。

「ゆるふわギャル」の特徴をチャットでAI自身が説明しているにも関わらず、ネコイラストが生成される。

やっぱりImage Creatorのページでプロンプトに記述したほうが期待していいる画像に近づけると思います。

「写真、ラーメンを食べている「ゆるふわギャル」、髪型:長くて、ウェーブがかかっていることが多いです。 メイク:ナチュラルメイクが多く、ピンクやベージュなどの淡い色を使います。 ファッション:ゆるいシルエットの服を好みます。」

写真、ラーメンを食べている「ゆるふわギャル」、髪型:長くて、ウェーブがかかっていることが多いです。 メイク:ナチュラルメイクが多く、ピンクやベージュなどの淡い色を使います。 ファッション:ゆるいシルエットの服を好みます。

 

iMac 2011 i7 で AUTOMATIC1111 / stable-diffusion-webui が動作するなんて!

google Colab を利用させていただき(無料プランなので低姿勢で)

Stable Diffusionによる画像生成を楽しんでましたが、いよいよ

有料でなければ使えなくなってしまいました。

あの、楽しい画像生成をどうにか無料でできないか。

このiMacでは動かないの?

えっ?動くの?!10年以上前のGPUだよ?

生成時間は目を瞑れる。寝て待つのは苦じゃ無い。

それじゃ、まあ、動くかどうかやってみよー

 

マシン

iMac Core i7 2.8 21.5-Inch mid-2011

CPU : Intel Core I7 2600S Quad Core 2.8 GHz 

GPU : AMD Radeon HD 6770M 512MB

RAM : 16GB

 

インストール

こちらのサイトを参考にさせていただきました。ありがとうございます。

M1/Intel MacにStable DiffusinをインストールAUTOMATIC1111編 | Gift by Gifted

 

私が引っかかったところだけ記述します。

Pythonのバージョンは3.10推奨、3.11はエラーで起動しない

Pythonバージョンは既にインストールしてある3.11の方が新しいし、このままでいいだろうと思い実行したが起動途中エラーで止まってしまう。

3.10をインストールしたら起動できた。

GPUが半精度浮動小数点数計算できないエラー

Generateボタンをクリックするとエラーが出る。

RuntimeError: "LayerNormKernelImpl" not implemented for 'Half'

グラフィックカードが半精度浮動小数点数の計算に対応していないからのようで、

webui-macos-env.shのCOMMANDLINE_ARGSを変更した。

export COMMANDLINE_ARGS="--skip-torch-cuda-test --upcast-sampling --no-half-vae --use-cpu all --precision full --no-half"

GPUは使わずCPUで演算するようになる?

 

そして生成してみた!

stable diffusion on iMac

”cat” step:10 512x512で所要時間は3分30秒くらい

”girl” step:20 512x512で所要時間は7分くらい

step10だとナニコレ画像になるかと思ったけど、悪く無い。普通にネコだ。

step20でおおよそ倍の時間かかったけど、7分くらい全然待てるよ。

プロンプトのウェイトや拡張機能で長くなるだろうけど、

google Colabで、エラーで止まるのを恐れながら使うのを考えたら

使い慣れたiMacで安心してできちゃうのが素敵。

これからも遊ばせていただきます。

 

追記

ImportError: dlopen(/Users/mac/stable-diffusion-webui/venv/lib/python3.10/site-packages/cv2/cv2.abi3.so, 2)

iMac 2012 Core i5 macOS Catalina 10.15.7 で同様のことをした時、上記のエラーが出ました。

対処方法はopencv_python バージョンを 4.7.0.68 (現在このリポジトリで使用されている) から 4.5.5.64 にダウングレードします。

  1. venv をアクティブにします: source ./venv/bin/activate
  2. pip uninstall opencv_pythonを実行すると、 opencv_pythonとcv2の両方をアンインストールすることを通知されるので、 [はい] を選択します
  3. pip install opencv_python==4.5.5.64