2022年7月1日金曜日

PHP + WSL2 + docker on Windows環境構築

どうも、もりもりです。

今回はPHPを初めて触る機会があったので自分用に環境構築メモ。
Windowsでの実施となりますが、ローカル環境をあまり汚したくないので 「WSL2 + Docker」上で動かしてvscodeからリモート接続し、「Hello World」を表示するところまでやってみました。

1. Install WSL

■ 管理者でPowerShellを起動

  1. win + R
  2. 「powershell」と入力
  3. Ctrl + Shiftを押しながらOK

■ インストール可能なディストリビューションを確認

> wsl --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
既定の分布は ' * ' で表されます。
    'wsl --install -d <Distro>'を使用してインストールします。

  NAME            FRIENDLY NAME
* Ubuntu          Ubuntu
  Debian          Debian GNU/Linux
  kali-linux      Kali Linux Rolling
  openSUSE-42     openSUSE Leap 42
  SLES-12         SUSE Linux Enterprise Server v12
  Ubuntu-16.04    Ubuntu 16.04 LTS
  Ubuntu-18.04    Ubuntu 18.04 LTS
  Ubuntu-20.04    Ubuntu 20.04 LTS

■ インストール

下記コマンドにてディストリビューションを指定してインストール

> wsl --install -d <Distribution Name>

今回は「Ubuntu-20.04」を指定

> wsl --install -d Ubuntu-20.04
インストール中: 仮想マシン プラットフォーム
仮想マシン プラットフォーム はインストールされました。
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム はインストールされました。
ダウンロード中: WSL カーネル
インストール中: WSL カーネル
WSL カーネル はインストールされました。
ダウンロード中: Ubuntu 20.04 LTS
要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。

完了したらPCを再起動

■ バージョン確認

> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Stopped         2

■ 既定のディストリビューションを設定

既定のディストリビューションを設定したい場合は下記コマンドを実行

> wsl --set-default Ubuntu-20.04

■ 起動&ユーザー登録

IDとパスワードを登録

Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: dev
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.10.16.3-microsoft-standard-WSL2 x86_64)

    * Documentation:  https://help.ubuntu.com
    * Management:     https://landscape.canonical.com
    * Support:        https://ubuntu.com/advantage

    System information as of Tue Jun 28 10:42:35 JST 2022

    System load:  0.0                Processes:             8
    Usage of /:   0.4% of 250.98GB   Users logged in:       0
    Memory usage: 0%                 IPv4 address for eth0: 172.20.163.190
    Swap usage:   0%

0 updates can be installed immediately.
0 of these updates are security updates.


The list of available updates is more than a week old.
To check for new updates run: sudo apt update


This message is shown once once a day. To disable it please create the
/home/dev/.hushlogin file.

■ パッケージ更新&アップグレード

$ sudo apt update && sudo apt upgrade

2. Install Docker

■ ダウンロード

Docker Desktopをダウンロード
※2022/06/28 時点 : Version 4.9.1

■ インストール

インストーラを実行

■ 設定の変更

下記のトグルをONに変更

3. Ubuntu上に作業場所を作成

■ vscodeから作成したディレクトリに入る

下記を選択

「New ESL Window using Distro...」を選択

「Ubuntu-20.04」を選択

■ Ubuntu上に作業ディレクトリを作成

$ cd ~
$ mkdir -p work/php-test

■ vscodeで開く

作成した作業ディレクトリを選択してOK

4. PHPでHello World

■ DockerファイルやPHPファイルを作成

作業ディレクトリに下記の構成でファイルを作成

work
└── php-test
    ├── .devcontainer
    │   └── devcontainer.json
    ├── Dockerfile
    ├── docker-compose.yml
    └── src
        └── index.php

■ devcontainer.json

コンテナ内でもファイルをvscodeで開けるよう設定ファイルを作成

{
    "name": "php8.1",
    "dockerComposeFile": [
        "../docker-compose.yml"
    ],
    "service": "php",
    "workspaceFolder": "/var/www/html",
    "settings": {
        // "editor.fontSize": 32
    },
    "extensions": [
        "xdebug.php-pack"
    ]
}

extensions : ローカルの拡張機能が使用できないため、使用したい拡張機能があれば指定。指定するIDは下記の「Copy Extension ID」でコピーした値。

■ Dockerfile

FROM php:8.1-apache

■ docker-compose.yml

version: '3'

services:
    php:
    container_name: php8.1-test
    build: .
    ports:
        - 8080:80
    volumes:
        - ./src:/var/www/html

■ index.php

<?php echo "Hello World!"; ?>

5. vscodeでコンテナの作業フォルダを再開

■ Reopen in Container

■ PHPのバージョン確認

# php -v 
PHP 8.1.7 (cli) (built: Jun 23 2022 07:54:35) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.7, Copyright (c) Zend Technologies

■ Hello World を表示

http://localhost:8080/ にアクセス

■ vscodeの拡張機能を確認

■ docker周辺の設定を変更した際は再ビルド

$ docker-compose build --no-cache

6. リモート接続終了

7. コンテナ内のWorkspaceを変更

作業ディレクトリに下記の構成でファイルを作成

work
└── php-test2
    ├── .devcontainer
    │   └── devcontainer.json
    ├── Dockerfile
    ├── docker-compose.yml
    └── src
        └── index.php

「3. Ubuntu上に作業場所を作成」で作成したディレクトリをコピーでOK

$ cp -r php-test/ php-test2

■ devcontainer.json

{
    "name": "php8.1-2",
    "dockerComposeFile": [
        "../docker-compose.yml"
    ],
    "service": "php",
    "workspaceFolder": "/work/php/test2",
    "settings": {
    },
    "extensions": [
        "bmewburn.vscode-intelephense-client",
        "xdebug.php-debug",
        "formulahendry.code-runner"
    ]
}

■ Dockerfile

FROM php:8.1-apache

ARG project_dir=/work/php/test2

# なければ新規作成
WORKDIR $project_dir

CMD [ "php", "-S", "0.0.0.0:8000", "-t", "/work/php/test2" ]

■ docker-compose.yml

version: '3'

services:
    php:
    container_name: php8.1-test2
    build: .
    ports:
        - 8080:8000
    volumes:
        - ./src:/work/php/test2

最近はWeb関連の仕事が多く、CSSやらJSも勉強中です。
PHPは一切触ったことないのでまずはイマドキな感じの環境周りのメモでした。
次はPHPのフレームワークLaravelあたりの記事でも書こうかと思います。

8. 参考

以上、もりもりでした。

2022年6月26日日曜日

Voidolを使って自分の声を変えてみる

 こんにちは、やっまむーです。

以前、「バ美声を使ってボイスチェンジする」という記事を書きましたが、今回は期間限定で無償配布している「Voidol」を使ってみました。

Voidolとは

Voidolはクリムゾンテクノロジー株式会社が作成したAIリアルタイム音質変換アプリです。
いくつかのボイスモデルが付属しており、リアルタイムに音質を変換する事ができます。
6/15から3か月間無償配布が行われており、その後も使用し続けることができます。

実際に使ってみる

設定画面から入出力デバイスとボイス変換モデルを決定すると使えるようになります。 標準でいくつかのボイスモデルが付属しており、追加で購入することもできます。

実際に変換してみましたが、これが結構難しいです。 公式でも話し方のコツを解説した動画が公開されていますが、なかなか思うような声にできませんでした。 また、入力デバイスに普通のヘッドセットを使っていたのですが、ノイズが入りやすい点も非常に気を使います。 よくある質問には「ノイズを拾いやすい」「ダイナミックマイクとオーディオインターフェースの併用をおすすめする」とあり、機材の問題もあるようです。 個人的には今の環境だと「バ美声」の方が扱いやすく感じました。

まだ配布期間がありますので、皆さんも一度試してみてはいかがでしょうか。

ではではー。

2022年6月19日日曜日

不快な広告にさようなら!有能すぎるブラウザ「Brave」パケット節約にも!!


こんにちは。よっしーです。

ブラウザは「Chrome」ばかりを使っていたのですが、

「Brave」イイよ!という周りの声があり、

食わず嫌いもいけないと思い、一度使ってみました。


使ってみてすぐに「あ、これはいい」と感じ、

今ではもう「Brave」しか勝たん。となりましたw


Braveの最大の売りは、広告をブロックしてくれることです。

特におススメしたいのは、スマホ版のBraveです。


PCだとブラウザ上に表示される広告はそこまでイライラしないのですが、

スマホだと画面いっぱいに広告表示されたりするので、不快に感じやすいですね。


下の図は、Yahooトップの表示例です。左側が「Chrome」、右側が「Brave」です。

Chrome側には3つの広告が表示されていますが、Brave側はありません。

で、最近の広告は動画とか使ってるもんだから、

広告表示されるたびに、結構なパケット通信量が発生したりします。

Braveには以下のようにブロックした内容も表示することができ、

パケットと時間の節約につながっていることもわかります。


意図的に広告を大量に表示させるようなWebサイトもありますが、

そういうのもBraveだと上手くブロックしてくれるので、

広告にウンザリしている人は一度試してみて下さい。


ではまた~。

2022年6月13日月曜日

XAMLのお勉強メモ ⑤

こんばんは。ざわです。
今回もXAMLネタを載せさせてもらいます。
これまでのXAMLメモはこちらになります。

動作環境

 ・Windows10

 ・Microsoft Visual Studio Community 2022 Preview 7.0

 ・Xamarin.Forms

今回試してみたこと

 前回「マテリアルデザインの概念について学ぶ機会があり・・・」と書いたのですが、
 その中で「フローティングアクションボタン」というコンポーネントがでてきまして、
 今回はそれをXAMLで実装してみたいと思います。

 「フローティングアクションボタン(FAB)」とは、
 画面をスクロールしても一定の位置に表示され続ける円形のボタンで、
 アプリのUIでメインの操作を行うボタン、という認識です。

 調べていると方法はいくつかでてくるのですが、
 今回は「AbsoluteLayout」と「ImageButton」を使って実装します。

 1. 準備:CollectionViewを配置したページを用意

まず、スクロールしたときにフローティングアクションボタンが一定の位置に表示され続けるのが分かるように、CollectionViewを配置したページを用意します。 
今回は、 XAMLのお勉強メモ② で作成したCollectionViewに表示項目を追加してスクロールするようにしました。

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="App2.Views.CollectionViewPage">
    <ContentPage.Content>
        <CollectionView x:Name="colView"
                ItemsLayout="VerticalGrid, 2">
            <CollectionView.ItemTemplate>
                <DataTemplate>
                    <Grid Padding="10">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="35" />
                            <RowDefinition Height="35" />
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="70" />
                            <ColumnDefinition Width="80" />
                        </Grid.ColumnDefinitions>
                        <Image Grid.RowSpan="2"
                       Source="{Binding Image}"
                       Aspect="AspectFill"
                       HeightRequest="60"
                       WidthRequest="60" />
                        <Label Grid.Column="1"
                       Text="{Binding Name}"
                       FontAttributes="Bold"
                       LineBreakMode="TailTruncation" />
                        <Label Grid.Row="1"
                       Grid.Column="1"
                       Text="{Binding Comment}"
                       LineBreakMode="TailTruncation"
                       FontAttributes="Italic"
                       VerticalOptions="End" />
                    </Grid>
                </DataTemplate>
            </CollectionView.ItemTemplate>
        </CollectionView>
    </ContentPage.Content>
</ContentPage>


 2. 「AbsoluteLayout」と「ImageButton」を追加

下記の赤字の箇所を追加します。 
ImageButtonに、 AbsoluteLayout.LayoutBounds、AbsoluteLayout.LayoutFlags
を設定することで親要素(AbsoluteLayout)に対する位置やサイズを比率で指定しています。
 
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="App2.Views.CollectionViewPage">
    <ContentPage.Content>
        <AbsoluteLayout>
            <!-- 一覧 -->
            <CollectionView x:Name="colView"
                    ItemsLayout="VerticalGrid, 2">
                <CollectionView.ItemTemplate>
                    <DataTemplate>
                        (中略)
                    </DataTemplate>
                </CollectionView.ItemTemplate>
            </CollectionView>

            <!--ボタン-->
            <ImageButton
                AbsoluteLayout.LayoutBounds="0.95,0.95,80,80"
                AbsoluteLayout.LayoutFlags="PositionProportional"
                x:Name="btnAdd" Source="add.png" />
        </AbsoluteLayout>
    </ContentPage.Content>
</ContentPage>

  

■実行結果

 赤の「+」の円形ボタンが追加されました。 
 右側の図が下にスクロールした図になります。円形ボタンの位置は変わっていないですね。 
  

んーー、、このサンプルはCollectionViewの項目にボタンがかぶさっててイマイチですが・・(反省)
それでは、また! 

2022年6月3日金曜日

電源が入らないPCのHDDからデータを取り出す

どうも。ひっくです。

先日、自宅でノートPCを使用中に突如電源が切れ、その後起動が全くできない状態になりました。

ACアダプタを接続してもPCの電源ランプが点灯しないので、色々調べて電源ユニットか

マザーボードが故障したのかな、という結論に至りました。

修理に出してもそれなりにかかるし、そろそろ新しいPCに買い替えかなとも思っていたので、

ハードディスクのデータだけ救出してPCは新調する方向で決定。

今回はPCからHDDを取り出しデータ取得するところまでを残しておきます。

SATA - USB3.0変換ケーブル準備


取り出したハードディスクをPCに接続してデータを読み込むため、変換ケーブルが必要になります。

ハードディスクの接続規格(IDE/SATA)とUSBの規格に注意して選べばよいかと思います。

私は以下の変換ケーブルを購入しました。

(もっと値段が安いやつもあるので、必要に応じて用意すればよいかと思います。)

サンワサプライ HDDコピー機能付きSATA - USB3.0変換ケーブル 1.0m USB-CVIDE4

 

ハードディスク取り出し


今回対象のPCはNECの「LL750/F PC-LL750FS6C」

ハードディスクはPC裏面の左下カバーを外すと取り外し可能になります。

赤丸部分のねじを全て外すと

↑の様にHDDが収まっています。

赤枠のテープを外し、青枠の黒紐もはがしたら、黒紐を左に引っ張るとHDDを取り外せます。

取り外せました。

 

他ノートPCの場合は、HDDの格納場所が異なるので調べた上で取り外しましょう。

 

HDDとPC接続、データ読込


SATA - USB3.0変換ケーブルとHDDをつなぎ、PCと接続します。

接続すると、以下の様にドライブが表示されます。

元々ドライブをC、Dの二つに分割していたので、読み込んだドライブも二つ(F、G)に分割して

表示されています。

ドライブ内の各フォルダもほとんど中を見ることができましたが、一部のフォルダでは「このフォルダーにアクセスする許可がありません」と表示が出て、中を見ることができません。

このフォルダに対して、アクセス権の許可を設定する必要があるようなので、対応します。

フォルダのプロパティからセキュリティタブを開き、「詳細設定」をクリックします。

「変更」をクリックします。

「ユーザーまたはグループの選択」が表示されるので、「詳細設定」をクリック。

「検索」をクリックし検索結果から「Administrators」権限のユーザーを選択、「OK」をクリックしていくと

「セキュリティの詳細設定」画面に戻ってきます。

 

「サブコンテナーとオブジェクト所有者を置き換える」にチェックを入れ、「OK」をクリックします。

各ファイルの所有者変更が始まると思います。※完了までそれなりに時間がかかります。

最後まで完了したら、フォルダに格納されたデータを確認可能になっています。

必要なデータを読み込みましょう。

 

ファイル所有者変更中のエラー等


  1. セキュリティの適用エラー

    途中セキュリティの適用エラーとして「コンテナー内のオブジェクトを列挙できませんでした。アクセスが拒否されています。」と表示されることがありますが、「続行」をクリックしてファイルの所有者変更を進めましょう。

    なお、セキュリティの適用エラーになったフォルダについては、個別に対応する必要はあります。

  2. ドライブ認識がなくなった場合

    何らかの原因で処理中にドライブの認識がなくなり、ファイル所有者変更処理が中断されることが

    実行中に何度かありました。

    PCに接続しているUSBを取り外し、変換ケーブル側の電源をOFFにした後、

    再度「HDDとPC接続、データ読込」手順を最初からやり直すことで、対応できました。

 

まとめ


本来はノートPCが動かなくなる前に新しいPCに乗り換えれば良いのですが、

使用年数を考慮するとそろそろ買い替えかなと思っている矢先に今回のことが起きてしまいました。

なんとかHDD自体は無事でいてくれたので、そこは良かったですが。。。

電源が入らなくなっただけならHDDは無事な場合もあるので、HDDからデータを救出する

選択肢を取るのもありかと思います。

 

今回はこのへんで。ではまた!

2022年5月30日月曜日

プロパティパターン in C# 10.0

どうも、もりもりです。

今回はC# 10.0で改良されたパターンマッチングのプロパティパターンをちょこっと触ってみました。

プロパティパターン (C# 8.0)

まずはC# 8.0で使用できるようになったプロパティパターンのサンプルです。
プロパティパターンは、プロパティに対して再起的にマッチングを行うパターンです。 プロパティだけでなくフィールドにも使用できます。

例えば、下記のようなPointクラスのXとYによって返す値を決定したいコードがあったとします。

static int GetScore(Point p)
{
    if (p.X == 1 && p.Y == 2)
    {
        return 0;
    }
    else if (p.X > 0)
    {
        return p.X;
    }
    else
    {
        return -1;
    }
}

上記のコードを、プロパティパターンを使用すると下記のように書くことができます。
(switch式でさらに簡潔にしてます。

static int GetScore(Point p)
    => p switch
{
    { X: 1, Y: 2 } => 0,
    { X: var x, Y: _ } when x > 0 => x,
    _ => -1
};

呼び出し側はこんな感じで。

var p1 = new Point(1, 2);
var score = GetScore(p1);
Console.WriteLine($"p1 score : {score}");

var p2 = new Point(10, 10);
score = GetScore(p2);
Console.WriteLine($"p2 score : {score}");

var p3 = new Point(-3, 0);
score = GetScore(p3);
Console.WriteLine($"p3 score : {score}");

結果はこうなります。

p1 score : 0
p2 score : 10
p3 score : -1

C# 10.0での拡張

このプロパティパターンですが、入れ子のプロパティやフィールド参照で書けるようになったみたいです。

下記のようなクラスがあったとします。

class Item
{
    public string Name { get; set; }
    public Attribute Attribute { get; set; }
}

class Attribute
{
    public bool? A { get; set; } 
}

ItemクラスのNameの文字列長をチェックしたい場合、 下記のように{ Name.Length: 1 }と書けるようになりました。

var item1 = new Item() { Name = "A", };
if (item1 is { Name.Length: 1 })
{
    Console.WriteLine($"single char");
}

また、下記のようにAttributeクラスをnewしてると 「A is null」の方を通りますが、Attributeのプロパティに何もセットしない場合は 「A is not null」の方を通ります。これは{ Attribute.A: ・・・ }と書いても、まずAttributeオブジェクトのnullチェックをしているためです。

var item2 = new Item() { Name = "ABC", Attribute = new Attribute() { }, };
if (item2 is { Attribute.A: null })
{
    Console.WriteLine($"A is null");
}
else
{
    Console.WriteLine($"A is not null");
}

自分用のメモとして残しているのでちょっと分かりにくいかもですが、より簡潔にコードを書けるようになっているのだなということはなんとなく分かっていただけたかと。 掘り下げてみたい方はすみませんがググってみてください。

以上、もりもりでした。

2022年5月20日金曜日

登記事項証明書をオンライン請求してみた!

とある申請のため、登記事項証明書を取得する必要がありました。
オンライン請求すると手数料が安いということもあり、初めて登記・供託オンライン申請システムを使い、請求してみました。


申請者情報の登録


登記・供託オンライン申請システムを使用するには、申請者情報登録、つまりユーザー登録が必要です。


メールアドレスがIDになるわけではなく、自分でIDを決めなければいけないのが面倒ですね。
最終利用から1年が経過すると、申請者情報削除通知メールが送られ、そこから30日以内にログインしないと自動的に削除されます。削除されると、同じIDで再登録することができません。


請求


システムには古さを感じますが、「登記・供託オンライン申請システム 申請者操作手引書 ~商業・法人 かんたん証明書請求編~」という操作手引書が公開されており、それに従えば請求手続きは難しくありません。

まず、請求に必要な情報を入力します。今回は、窓口で受け取るので、交付方法に「窓口受取」を選択し、受取場所に最寄りの法務局を指定します。


情報入力後、請求情報を送信します。


納付


処理状況を確認すると、送信後すぐには「納付」ボタンは表示されませんが、しばらくすると表示されます。


納付ボタンを押し、処理を進めると、e-Govの電子納付画面に遷移します。


利用している金融機関を選び、銀行のサイトにログインすると、払込先情報が入力され、すぐにPay-easyによる払込ができる状態になっています。これは非常に便利でした。

払込が完了すると、「納付済み」にステータスが変わります。

受取


処理状況が「手続終了」になると、法務局での受取が可能です。


受取時に何が必要か分からず、とりあえず申請番号だけをメモして法務局に向かいました。通常の申請窓口とは違う窓口で、オンライン請求した旨を伝えると、氏名、住所、請求通数、そして申請番号を紙に記入し、無事に証明書を受領することができました。

実はこの記事を書くにあたり、初めて手引書を見たのですが、そこに

請求した証明書を登記所の窓口で受け取る場合には,「処理内容照会(電子納付情報表示)」画面を印刷し,あらかじめ設けてある記載欄に, 請求に係る通数を記載したものを登記所の窓口に提出していただく必要があります。

と書かれていました。これを持参すれば、よりスムーズに受け取ることができますね。


またいつか、どこかで。

2022年5月15日日曜日

Pixel Buds購入、ワイヤレスイヤホンは探せる方がいい

こんにちは、やっまむーです。

先日のことです。

紛失!!

ワイヤレスイヤホンの利用者が必ずやるという片耳紛失、私もついにやってしまいました。
ちゃんとケースに入れたんです、それなのに何故か無い。
鞄の中も、直前に立ち寄った場所も探しましたが結局見つかりませんでした。
片耳だけでは使えませんし、今更有線のイヤホンには戻りたくありません。
泣く泣く新しいものを買うことにしました。

タイミングよく、Google StoreのセールでPixel Budsのセールが行われていたので購入しました。
決めてはGoogleの「デバイスを探す」サービスが使えることでした。

「デバイスを探す」サービスとは

「デバイスを探す」サービスはGoogleが提供している文字通り、Android端末を探しだすサービスです。
アカウントに紐づいているデバイスの現在位置を確認したり、音を鳴らしたり、リモートでデバイスの保護をすることができます。(※.利用のための設定は必要です)

Pixel Budsはこのサービスに対応しており、万が一紛失したとしても最後の位置情報を知ることができます。
またいつ何時、紛失するかわからないので、保険のためにサービス利用の設定を行いました。

ペアリングから設定までの手順

まずはスマホとPixel Budsのペアリングを行います。

Pixel Budsの場合、ペアリング時にGoogleアカウントとの関連付けが行われます。
接続すると、他のBluetooth機器とは異なる専用の設定画面になります。

「デバイスを探す」の画面では接続中のイヤホンから音を鳴らしたり、最後に接続した場所の確認ができます。

最後に接続した場所の確認には、Androidアプリの「デバイスを探す」が必要になります。
もしインストールされていなければ、ここでインストールを促されます。
インストール済みであれば、Pixel Budsが関連付けられたアカウントで「デバイスを探す」にログインすると、最後に接続した場所、時間が確認できます。

これで再び落としたとしても効率よく探すことができます。
まあ、そもそも落とさないようにするのが一番ですけどね。

ではではー。

2022年4月24日日曜日

WindowsPCの起動が重い時はこれを確認して欲しい。高速スタートアップ設定!

 


こんにちは。よっしーです。

Windowsを使っていると、なんか起動が重たいな?

っていう時がありませんか?

今までは普通に1分ぐらいで起動していたものが、

ある日を境に起動に5分ぐらいかかったり。。。


はい。私もそんな現象が起きました。

で、何が重たいんやろう。。。と思って、

タスクマネージャーを開いたんですが、

なんか稼働時間がえらいことになっていました。


これ、6日と6時間37分9秒 稼働しっぱなしですよ。という意味です。

実際に起動の重たかったPCは56日ぐらい稼働しっぱなしでした。。。


毎日シャットダウンしているし、バグってるのかな?と思って調べてみたのですが、

実は最近のWindowsOSは、普通にシャットダウンしても完全に停止している

わけではなく、スリープや休止状態になっているようです。


なので、一度不安定な状態になってしまうと、PCをシャットダウンしているつもりが、

スリープ、休止状態になっていて、PCを立ち上げると、スリープ、休止状態から

の復帰となるため、不安定な状態からスタートしてしまうことになります。


それを回避するためには、

(1) 高速スタートアップ設定を解除する

(2) Shiftを押しながらシャットダウンで、完全シャットダウンする

という2つの方法があります。


(1) 高速スタートアップ設定を無効化する

設定で高速スタートアップ設定を解除することで、シャットダウン時は

スリープや休止状態にならず、完全に電源OFF状態になります。



(2) Shiftを押しながらシャットダウンで、完全シャットダウンする

これはもうそのままですが、Shift押しながらシャットダウンや再起動を選択すると、

完全シャットダウンという扱いになり、スリープや休止状態にはならずに電源OFFします。


いかがだったでしょうか。

OSがどういった振る舞いをしているかをきちんと理解した上で、

設定をカスタマイズする必要があるので、初心者には難しいかもしれませんが

起動が重たい。というのはよく出てくる話です。

膨大な稼働時間が表示されている場合は、高速スタートアップを疑ってみて下さい。

ではまた~。

2022年4月15日金曜日

届書作成プログラムを使ってみた!

以前、自社でマイナポータルAPIを利用したソフトを開発した記事を書きました。


これまで手続きした算定基礎届、賞与支払届の届け出にあたっては、士業の先生から提出ファイル(KPFD0006.csv)をもらっていました。今回、被保険者資格取得届の提出にあたり、初めて「届書作成プログラム」を使用して、提出ファイルを作成しました。


届書作成プログラムのインストールと設定


届書作成プログラムは日本年金機構のサイトからダウンロードすることができます。
インストール後、事業所情報、健康保険組合情報を登録します。


提出ファイルの作成


届書作成プログラムで提出ファイルを作成することができるのですが、その前にまず届書を作成しなければなりません。届書ファイル(*.jkk)作成→提出ファイル作成、という流れです。

届書一覧入力画面から「資格取得」タブを選択し、「追加」ボタンを押すと入力画面が表示されます。


必要な項目を入力し、「登録」します。登録すると、項目がクリアされ、新規入力状態に戻ります。複数入力する必要がなければ、「入力終了」を押して画面を閉じます。(入力がクリアされたため、登録した内容がどうなったのか分からず、少し戸惑いました。)

一覧画面に戻ると、登録したデータが表示されています。


この画面から「提出ファイル作成」を選択すると、届書ファイルの保存を要求されます。届書ファイル保存後、提出ファイルを作成します。

公式プログラムが出力したファイルなので、中身に間違いはありません。
これまで同様、自社で開発したソフトでファイルを指定して申請し、無事に手続きを終えました。


またいつか、どこかで。