サブスク利用を見直す。

今利用しているサブスクリプションのサービスを、ざっと書き出してみました。

オイラは決済にデビットカードを使用しているので、たまーに口座に残高が無くて、決済できませんでしたって言われることがあります。

これって何かと焦るので、一度整理した方が良いのかなと。

ざっと書き出してみたら、こうなりました。

  • iCloud 130円
  • ガルパPASS 480円
  • Office365 Solo 1284円
  • Conoha 1925円
  • TechCommit 1100円
  • プリコネR 700円
  • Yahoo!プレミアム 508円
  • Googleストレージ 250円
  • Amazon Music Unlimited 780円
  • ナビタイム 400円
  • DropBox 1650円
  • Dアニメストア 440円
  • タイムズカーシェア 1540円
  • radikoプレミアム 385円
  • ATOKパスポート 550円
  • PlayStation Network 850円

合計 12412円

思ったより使ってた。

とりあえずプリコネRは更新しなくて良いか。

iCloudは主にiPad Proを使用しているためで、これが無いと無料サイズではすぐにパンパンになってしまい、いちいちスクショを削除するのがめんどくさいので、使用しています。まぁ、130円ぐらいならいいかと。

バンドリーマーなので、ガルパPASSは必須。

Office365 Soloは、通常のパッケージ版だと、最新版がリリースされるたびに負担が結構大きいので、月額で常に最新のOfficeが使用できるのは大きなメリットがあると思います。

さらにoneDriveの用量1TBが無料で付いてくるのはかなり大きいです。

Conohaも、サーバを運用するに当たって必須。ただ、マイクラやらないならスペック落としてコストを抑えても良いかも。

TechCommitはプログラマーとしてのモチベーションを維持するために利用しています。

Yahoo!プレミアムは利用しているメリットあったかな・・・?Yahoo!ショッピングでポイントが多くもらえるぐらいにしか思っていなかったけど。要調査。

GoogleストレージはoneDriveのバックアップとして内容を同期させています。

Amazon Music Unlimitedはめちゃくちゃ利用している。他の音楽ストリーミングサービスより数が豊富だし、曲を一個ずつ買うよりも安上がりだし、アーティストから数珠つなぎで新しい発見があったりするので、新曲を探すのも楽しいです。

Kindle Unlimitedはぼっち飲みのお供です。

ナビタイムは、普段逝かないところに遠出するときに必要になることが多いですね。あると安心です。夏場は自転車ナビタイムも使ったりします。

DropBoxはメディアファイルのバックアップとして使用しています。

Dアニメストアもよく利用しています。見逃したアニメとかを後追いで視聴したりしています。

radikoプレミアムもよく利用していますね。全国のラジオが聴けるのは何かと便利です。

タイムズカーシェアは解約する方向で考えています。1時間の無料分が毎月付与されるのですが、都会では1時間でできることが意外と限られていて、かといって長時間利用するのは逆にレンタカーの方がコストが安いです。そして何より、現住所のまわりにタイムズが無い。

ATOKパスポートもめちゃくちゃ利用しています。この変換品質は一度知ってしまうと戻れない。

PlayStation Networkはどうしようかなーって思うんですよね。セーブデータのバックアップとか、フリープレイができるというメリットがあるのですが、逆に言えばそれだけしかメリットがないように思えます。

オンライン対戦もプレステではやっていないですからね。

これも考えましょう。

よし、早速行動開始。

コストを10000ぐらいまで落とそう。

【料理】【味噌消費】ナスと豚肉の味噌炒め

こちらの記事で購入したお味噌2パックが賞味期限切れそうなので、積極的にお味噌を作った料理をしていこうと思います。

最初はこちらを作りました。

参考にしたレシピはこちら(クラシル)

https://www.kurashiru.com/recipes/c0507572-9134-4a7e-94e1-1e77984be3be

こちらのレシピをベースに、しめじと、すりごまを具材に加えています。

ポイントはなすの下処理。

切った後水にさらして、水を拭いてからサラダ油をまぶすという工程。

これだけでなすが美味しく炒められるらしい。

みんなもやってみて。

ハードディスクを破壊しよう。物理的に。

こちらの記事で、使用できなくなったハードディスク。

データの読み出しができないので、これを廃棄しようと思うのですが、

この状態って、ハードディスクの読み取り装置は機能していなくても、中のデータ部分は無事だったりします。

なので、これを赤の他人が盗み出して、ハードディスクを分解して、データが書き込まれている部分を取り出せば、個人情報が流出してしまう可能性があります。

本来なら廃棄業者を使いたいのですが、やはりタダではないので、自分で何とかしてみようと思います。

とはいっても、中のデータが書き込まれている部品、箱の中にある円盤のようなもの(プラッタというらしい)って、かなり頑丈に守られていて、このままではちょっとの衝撃程度では壊れません。

なので分解します。

とは言っても、ネジの形状が星型になっていて、プラスドライバーやマイナスドライバーでは分解もできません。

無理に回そうとすると、ネジがバカになります。

なので、これを買いました。

Amazonで買えます。1000円ぐらい。

こういう形しています。

これでネジを外します。

シールの下にもネジが隠れているので、シールをはがしてネジを外します。

ネジを外せば、円盤を覆っているケースが開きます。

これは2台あるハードディスクの小さいほう。ノートPCとかに使われるやつ。

要はこの鏡のようにギラギラしている円盤を破壊すればいい。

円盤の中心にあるベアリングのところのネジを外すと、取れました。

大きいほうはさらに部品が多いです。

こちらのほうは、裏側の基盤部分も外す必要があります。

基盤の下にネジがあるので、これを外すと、円盤が取れました。

円盤(プラッタ)はかなり固いです。

そして、触ると簡単に指紋がつく。

二つに折るように強い力を入れると、小さい方は粉々になりました。

実際にやるときは、破片が飛び散らないように、袋の中で破壊した方が良いです。

大きい方は、いろいろやってみましたが、せいぜい形が歪むくらいで破壊できませんでした。

最終的にカッターで大きなキズを付けて廃棄しました。

これ、破壊するにはどうすれば良かったんだろうか・・・

どちらにせよ、ここまで変形するとデータの取り出し不可能だと思うけどね。

でも分解って、楽しいね。

ドライバーの購入に1000円かかったけど、電気屋に破壊を依頼しても1台当たり同じくらい取られるので、複数台処分するならこちらの方が安いし、その課程で得られるものも大きいです。

洗濯機を買い換えたい。

写真はヤマダ電気の近くの定食屋さんの塩ラーメン。

お店のラーメンは美味い。

理由はこれ。

今使っている洗濯機は、社会復帰するために一人暮らしを再開するに当たって中古で購入した洗濯機。

製造年月日が2009年で、代用年数が7年なので、2016年、つまり、耐用年数を超えてから4年も経過しているのである。

つまり、いつ壊れてもおかしくない状況なのである。

で、どんな洗濯機が売られているのかを店頭チェックしにヤマダ電気まで行ってきました。

情報ありがとうございます。

今回、洗濯機を選ぶに当たって、重要視したいポイント、値段は安いけど、こだわるところはこだわりたい。

店頭で価格をチェックしたところ、一番安いのは18000円、でも機能面で妥協はしたくないので、手が届く範囲で考えて30000円までなら出しても良いと考えています。

あ、洗濯機を選ぶポイントはここでは解説しないよ。

ネット検索すれば簡単に情報が手に入るからよそで調べてくれ。そっちの方が詳しい。

まず、価格の面から考えると、ドラム式は排除される。

縦型一択。

そもそも、オイラは背が高いので、いちいち屈まなくちゃいけないのは辛い。これは実際に触ってみて思った。

容量も、最低ラインの4.5Lのもので十分である。

今使っているのが4.5Lなので。

残るは、どのメーカーを選択するか、である。

ヤマダ電機、ヨドバシカメラ、ビックカメラの通販サイトを比較してみたところ、売れ筋では東芝、価格ではハイアールである。

また、ヤマダ電機にはYAMADASELECTという独自ブランド品もあって価格も安い。

しかし、アクアというメーカーが、たしか、がっちりマンデーで紹介されていたのを思い出した。

このメーカーはハイアール傘下ではあるものの、三洋電機からの流れを汲むブランドで注目されているらしい。

ネット通販でも、価格は30000前後で許容範囲である。

ビックカメラの情報が一番詳しかった。

https://www.biccamera.com/bc/item/7511267/

よし、今後の計画としては、各家電量販店で店頭価格を調べてサービスしてもらえるよう交渉しようか。

タイミングは、次の障害年金が入る来月の15日で。

よし、これでいこう。

おカメさんにも日の光を

新居に引っ越してもう1ヶ月以上経過しているのですが、

気になっていたことがあって、

おカメさんに日の光が当たらない、ということ。

あまり日当たりの良い物件とはお世辞にも言えない部屋なので。

朝日は入るんだけど、夕日はほとんど入らないという物件です。

ということで、これを買いました。

ペット用ライト。

日が出ている間はこれで光を当てようと思いました。

おカメさんも喜んでいるようです。

やっぱり、光を浴びないと、色々病気になったりするらしいので。

一番良いのは太陽の光なんですけどね。

というか、はやく段ボールを引き取ってもらえませんかね?

空き段ボールが窓の前にあるので、とにかく邪魔なんですよ。

ぐぬぬ。

写真は病院帰りの居酒屋にて。

北海道ができたんだから東京だってできる。 #おうちで過ごそう

ぶっちゃけ、自分が言うよりは、こういったインフルエンサー達が言うことが一番効果的なんですが。

三つの「密」を避けることは動画の中で説明したとおり。

これは鈴木北海道知事も説明していたとおりですね。

北海道では「緊急事態宣言」でおよそ3週間、週末の不要不急の外出は自粛するように言われました。

そして、道民が3週間の外出自粛を行ったおかげで、コロナウイルスの感染拡大を防ぐことができました。

なので、みなさんも、3週間我慢すれば、必ずコロナウイルスの感染拡大を防ぐことができます。

ここでは北海道民(というか、札幌市民)がどうやって3週間を過ごしたかについて、お話ししたいと思います。

そもそも不要不急の外出とは?

オイラは、買い出し・通院・お仕事以外の外出のことを示しているという認識です。

遊びに行くとか、家族が心配だから会いに行く、イベントに参加する、というような外出は自粛してください、ということです。

買い出しは、混み合う時間帯を避ける

例えば、お昼の時間や夕食の買い出しなど、買い物客が集中する時間帯がありますので、その時間の買い物は避けるようにし、混み合わない時間に買い出しをしましょう。

買い物のために行列に並ぶ行為は、「人が密集している状態」です。

朝と夕方はニュースで情報収集を

ほぼ毎日ニュースをチェックしてたね。

特に自治体からの発表は必ず確認してください。

北海道では鈴木知事が毎日会見を行っていました。

自粛中でもできることはある

部屋のお掃除とか、お料理に挑戦してみるとか、いままでやってみたかった趣味に挑戦してみるとか、積み上がっている本やゲームを攻略するとか、今まで忙しくてできなかったことをやってみるのはいかがでしょうか。

オイラの場合は、ほぼほぼ、スマホのゲームやってたかな。あとはYouTubeとか。あとは家で飲んでた。

また、北海道では、Uber EATSというサービスは無いので、町中の飲食店が期間限定でテイクアウトやデリバリーサービスを始めたお店もありました。

こういったサービスを利用して、お店の味をおうちで楽しむのも良いかと思います。

経済を回す事もできますし。

最後にもう一度、みんなが3週間我慢すれば、必ずコロナを克服できます。なので、3週間だけ我慢してください。

札幌市民が東京都民へ伝えるべきこと

コロナウイルス感染拡大を受けて、

東京都も今週末の不要不急の外出を避けるように通知されました。

こんなことを言う前に、札幌、というか、北海道では、道知事の緊急事態宣言をうけて、およそ2~3週間、外出自粛要請を受けました。

このような状況の中、札幌市民が東京都民へ伝えるべきことを伝えます。

今週末は部屋に篭もろう。

北海道に比べて、東京都は人口密度か桁違いです。

理想は他人との接触をできるだけ避けることですが、これだけ人口密度が違うと、札幌のように、「換気の良い外出は大丈夫」とは言えないです。

ここは大人しく、室内で篭もりましょう。

我々(札幌市民)だって、2週間、室内で篭もってたのですから。

デリバリーやテイクアウトをうまく活用しましょう。

札幌に比べれば、東京都内なんて、デリバリーやネットスーパーが発達していると思います。

これを最大限に活用しましょう。

我々札幌市民の場合、ネットスーパーがあったので、これでだいぶ助かりました。

東京都だったらUber EATSがあるらしいよねぇ???

いいなぁ、うらやましいなぁ。

これらを上手に活用することで、感染リスクをかなり下げることができます。

遠慮無く活用しましょう。

外出は買い物だけにしましょう。

自分は、緊急事態宣言状況下での外出は、コンビニかスーパーだけでした。

東京都でも、外出はコンビニかスーパーだけにするべきです。

同時に、県外からの人員移動も防ぐべきです。

埼玉、千葉、神奈川の皆さん、東京都内に行くことは控えましょう。

この困難を克服するためには、日本全国民がコロナウイルスに対して警戒するべきです。

この困難を克服できた、最初の国になることを願っています。

全国民の皆さん、ご協力をお願いします。

結局、ネット回線引越し代行はお得だったのか?

今回の引越しで、引越し業者から紹介されたネット回線引越し代行の業者にネット回線引越しをお願いしたのですが、

結果から言うと、「今回の場合は」正解でした。

「今回の場合は」というのは、

宅内回線工事の費用です。

元々光回線が引かれていない物件だったので、宅内回線工事にこれだけの費用が掛かりました。

今回の契約では、この費用は丸々業者持ちで、こちらの負担はありません。

通常の回線引っ越しの場合は、おそらく自己負担になると思うので、そう考えると、ラッキーだったのかもしれません。

それプラス、引っ越し前の回線解約違約金と20000円キャッシュバックもついてくるし。

回線速度には多少不満はあるけどね。

一度回線を引いてしまえば、プロバイダー乗り換えでも同じフレッツ光なら工事費用は掛からないハズ。

ネット回線引っ越し代行の利用を検討する場合は、引っ越し先の状態を確認するのが良いと思います。

すでに光回線が引かれている場合は、利用しないほうがいいかもしれません。

あと、実際に開通するまでにかなり時間がかかりますので、その間をどうするかも考えておいたほうがいいかもしれません。

モバイルルータにするという選択肢もありますが、やはり光回線に慣れちゃったら、遅いっすよ。

それに、おいらの場合はひかりTVも利用しているので、光回線以外に選択肢はありません。

なんにせよ、ケースバイケースでお得かどうかは変わってくると思うので物件の設備とユースケースを十分考慮して選択するといいと思います。

【C#】【数独】数独解析プログラム完成

前回までの状況はこちら。

前回の修正でほぼほぼ解析ロジックは完成したので、もうちょっと使い勝手が良いように、ファイル入出力とエラー処理に手を加えます。

まずは、いままで出力ファイル名が固定化されていたので、コマンドの第二パラメータに出力ファイルを入力するようにします。

具体的には、ファイル入出力が一つのstaticクラスで行っていたのを分割します。

入力ファイルの読み込みは、最初の1回しか実行しないので、staticクラスで、出力ファイルは何度も使用するので、通常のクラスで定義し直します。

出力クラスのコンストラクタで出力ファイル名を指定します。

    class FileOutput
    {
        private string _filename;
        public FileOutput(string filename)
        {
            _filename = filename;
            if (File.Exists(_filename) == true)
            {
                File.Delete(_filename);
            }
        }

        public void Output(Square[,] sq)
        {
            using (var stream = new StreamWriter(_filename, true))
            {
                for (int row = 0; row < 9; row++)
                {
                    for (int col = 0; col < 9; col++)
                    {
                        stream.Write(sq[row, col].GetValue());
                    }
                    stream.Write("\r\n");
                }
                stream.Write("\r\n");
            }
        }

        public void Output(bool[,] sq)
        {
            using (var stream = new StreamWriter(_filename, true))
            {
                for (int row = 0; row < 9; row++)
                {
                    for (int col = 0; col < 9; col++)
                    {
                        if (sq[row, col] == true)
                        {
                            stream.Write(1);
                        }
                        else
                        {
                            stream.Write(0);
                        }
                    }
                    stream.Write("\r\n");
                }
                stream.Write("\r\n");
            }
        }

        public void Output(int row, int col, int value)
        {
            using (var stream = new StreamWriter(_filename, true))
            {
                stream.Write("[{0},{1}] => {2}\r\n", row, col, value);
            }
        }

        public void Output(string text)
        {
            using (var stream = new StreamWriter(_filename, true))
            {
                stream.Write("{0}\r\n", text);
            }
        }

        public void Output(List<Square> list)
        {
            using (var stream = new StreamWriter(_filename, true))
            {
                stream.Write("候補 ");
                foreach (Square s in list)
                {
                    stream.Write("[{0},{1}]", s.Row, s.Col);
                }
                stream.Write("\r\n");
            }
        }
    }

メイン関数で出力ファイル名を取得します。

第二パラメータが無かった場合は、自動的に入力ファイイル名.outputというファイル名で出力させます。

        static void Main(string[] args)
        {
            // パラメータチェック
            if (args.Length < 1)
            {
                Console.WriteLine("usage : sudoku.exe [input file] [output file]");
                return;
            }

            // ファイルの存在を確認
            string filePath = Environment.CurrentDirectory + "\\" + args[0];
            if (File.Exists(filePath) == false)
            {
                Console.WriteLine("File not found.");
                return;
            }

            // 出力ファイル名
            string outfile = null;
            if (args.Length == 2)
            {
                outfile = Environment.CurrentDirectory + "\\" + args[1];
            }
            else
            {
                outfile = filePath + ".output";
            }

            var sq = FileRead.OpenFile(filePath);
            if(sq == null)
            {
                return;
            }

            Sudoku sudoku = new Sudoku(sq, outfile);
            sudoku.run();
        }

最後に、入力データのエラー処理を改善します。

具体的には、例えば、行と列が10以上あった場合、そして、数字以外の値が入っていた場合、数字が10以上入っていた場合はエラーで終了させます。

    static class FileRead
    {
        /**
         * ファイルからデータを取得する
         */
        public static Square[,] OpenFile(string filePath)
        {
            int[,] matrix = new int[9, 9];

            // ファイルを開く
            bool error = false;
            using (var stream = new StreamReader(filePath))
            {
                int row = 0;
                while (stream.EndOfStream == false)
                {
                    if (row >= 9)
                    {
                        error = true;
                        break;
                    }
                    string lineText = stream.ReadLine();
                    var val = lineText.Split(',');
                    if (val.Length > 9)
                    {
                        error = true;
                        break;
                    }
                    int col = 0;
                    foreach (var v in val)
                    {
                        int i;
                        if (int.TryParse(v, out i))
                        {
                            if(i >= 10)
                            {
                                error = true;
                                break;
                            }
                            matrix[row, col] = i;
                        }
                        else
                        {
                            error = true;
                            break;
                        }
                        col++;
                    }
                    if (error)
                    {
                        break;
                    }
                    row++;
                }
            }
            if (error)
            {
                Console.WriteLine("Illegal format.");
                return null;
            }

            Square[,] ret = new Square[9, 9];
            for (int row = 0; row < 9; row++)
            {
                for (int col = 0; col < 9; col++)
                {
                    Square sq = new Square(matrix[row, col], row, col);
                    ret[row, col] = sq;
                }
            }

            return ret;
        }
    }

そして、最終的にgitHubのようなソースになりました。

https://github.com/takishita2nd/sudoku

auの5Gも北海道で使えます。

auの公式情報に3月末からサービス開始される5Gの対応エリアが発表されました。

https://www.au.com/mobile/area/

北海道でも5Gが始まります。

対象エリアは

  • 北海道河西郡更別村字更南の一部
  • 北海道河西郡更別村字更別の一部

なぜ更別村。

人口の少ない、負荷が少ない環境からサービスを始めるのか。

もしくは、更別村は機械化農業を進めているので、5Gを農業に応用させる研究を行おうとしているのか。

北海道から始まる農業イノベーション。

いいねぇ。

自分、ぼっちですが何か?