処方薬で認知症になるだと?オレの薬は大丈夫か?

元ネタはこちら。

https://www.msn.com/ja-jp/health/healthy-lifestyle/認知症の数十万人「原因は処方薬」という驚愕-危険性指摘も医師は知らず漫然投与で被害拡大/ar-BBZce1V?ocid=st

どうやら、全ての抗うつ薬に含まれているのではなく、一部の薬に含まれているベンゾジアゼピンという成分がヤバイらしい。

調べたら、このページがヒットしたので、載せておく。

https://www.kegg.jp/medicus-bin/similar_product?kegg_drug=DG01914

このページを見たら、 ベンゾジアゼピン を含んでいる薬の一覧が出てくるので、Webページの検索で調べてみると良いです。

ヒットしたら、薬を替えてもらうように、医者に話してみるといいです。

対応してもらえない医者だったら病院替えた方が良いです。

オイラの場合は。。。

睡眠薬として処方されている、フルニトラゼパムという薬が怪しい。

検索すると、 ベンゾジアゼピン というキーワードが出てくる。

さらに調べてみると、

https://cocoromi-cl.jp/knowledge/psychiatry-medicine/flunitrazepam/about-flunitrazepam/

結構、ヤバイんじゃ無い?

とりあえず、一日、抜いてみるか。。。

明日体調に影響なければ、抜いてもらうように話します。

iPhoneの買い換えを予定している人は、3月まで待った方が良いかもしれない。

根拠となる記事

https://www.itmedia.co.jp/news/articles/2001/24/news074.html

この記事によると、iPhoneの廉価版が2月に製造が開始され、3月に発表になるとのこと。

この機種は、iPhone SEの後継機になると思われます。

小型ディスプレイで、最新CPUを搭載したモデルになることが予想されます。

・・・おいらはAndroid派ですけどね。

【Laravel】【ホテル予約管理】次の課題は、自動決済を可能にする。

さて、お次の課題は、自動決済できるようにする、というものです。

具体的には、

  • クレジット情報を登録する
  • QRコードまたはナンバーを発行し、メールで送付する
  • QRコードもしくはナンバーで部屋のロックを解除し、このときに決済を行う。
  • ナンバーを3回間違えたら、ナンバーを再発行する。
  • 時間がすぎると、キャンセル料8割を決済する。

これらから、どのような実装を行うかを検討します。

クレジット情報は、ユーザーテーブルにカラムを追加するだけでいいのですが、通信はすべて暗号化する必要がありますね。

SSLが有効になるように、証明書の発行と、Webサーバの設定を変えなければいけません。

QRコードはナンバーをそのままQRコードに変換するだけで大丈夫でしょう。

幸い、LaravelにはQRコードを生成するライブラリもあるようです。

それをメールで送付しなければならないので、SMTPを使用しなければなりませんね。

QRコードの読み取りは外部のデバイスを使用する、と仮定して、実装はそのデバイスからナンバーを受け取るためのAPIを用意する必要があると思います。

あとは、コンソールコマンドを用意し、cronで定期実行できるようにすれば問題ないでしょう。

それでは次回から早速実装に入ろうと思います。

マリオカートツアーのプレイを止めました。

一時期は定額課金もやっていたんですけどねぇ。

このゲーム、上位のランクへ上がろうと思ったら、結局課金して有利なキャラを引き当てないと、上位のランクへ上がれない、と気がついてしまったのです。

このゲーム、ランク20以上になると、ランキング次第ではランクダウンしてしまう可能性があります。

ランキング上位に入るには、指定レースでポイントを稼いでゴールしなければなりません。

大量にポイントを稼ぐためには、フィーバーという、アイテムボックスから同じアイテムを3つ揃えなければなりません。

つまりのところ、フィーバーを起こせるキャラクターを持っていなければ、ランキングで圧倒的に不利なんです。

いくらレースで1位を取ったとしても結局はポイントなので。

スター獲得でキャラとかマシンとかもらえるので、それで頑張ってみようと思ったのですが。

無理でした。

指定レースでフィーバーを出せるキャラを持っていなかったらホント愕然しますよ。

結局、思うようにポイントを稼ぐことができず、ついに諦めてしまいました。

フィーバーで高得点っていう仕様、止めた方が良いと思うよ。

もっと実力でランキング上位に行けるような仕様にして欲しい。

なので、マリオカートツアー、終了のお知らせでした。

これだけは知っておきたい。Web開発に必要な周辺技術って何ですか?

Twitterで昔こんな会話をしていたので、

Web開発に必要な技術を、自分の経験とともにまとめてみたいと思います。

Web開発って、コーディングができれば良いってもんじゃ無いんですよ。

Web自体がいろんな技術の組み合わせで成り立っているので、それを知らないと、万が一のトラブルの時に対応出来ないのですよ。

その当たりのサポートもできれば、一人前のWeb開発者です。

Linux

WebサーバのほとんどがLinux系OSで動作しています。

その理由は、コスト。

Linuxはオープンソースで開発されたOSなので、OSそのものにお金がかかりません。

その代わりメンテナンスも自分でやらないといけませんがね。

通信プロトコル(http等)

ブラウザのWebサーバの間はHTTPという通信プロトコルを使用しています。

Ajaxを使用した場合もその都度HTTPを使用することになりますので、その当たりの知識も勿論必要になります。

Webサーバ(Apache or Nginx)

サーバにソースファイルを置いただけでは機能しません。

HTTPを処理してくれるWebサーバがあって初めてWebページが機能します。

Apacheはリソースを多く使用しますが、プラグインで機能追加できるので、扱いやすいです。

Nginxは非常に軽量で動作できるWebサーバです。

玄人からすれば、Nginxの方が好まれるようです。

データベース

Webシステムでは大量のデータを扱いますので、データベースを理解することは非常に重要です。

自分も今は慣れましたが、情報処理の資格を取るのにSQLを覚えるのが大変でした。

データベースの種類は沢山ありますが、基本的なSQL文は共通しているので、基本的なところを押さえれば問題無いでしょう。

このほかにも、使用するフレームワークやライブラリなどが挙げられますが、挙げれば切りが無いので、必要なときにその都度勉強する必要があります。

もう勉強することが多くてたいへんよぉ

でも知識はあればあるだけその分自分に有利に働きますので、学ぶことは大事。

ITエンジニアは日々勉強です。

【Laravel】【ホテル予約管理】レスポンシブ対応を行う

前回までの状況はこちら

最新ソースはこちら(gitHub)

https://github.com/takishita2nd/hotel-mng

さて、残る作業はレスポンシブ対応ですが、

そもそも、レスポンシブ対応とは何かというと、

PCだけでなく、スマホやタブレットでも、そのデバイスに対応した表示に切り替えることができる対応、ということです。

PCでは正しく表示できても、スマホだと表示が崩れて使用できない、というのはレスポンシブ対応とは言えません。

その確認のために重宝するのが、Google Chromeのレスポンシブモード。

擬似的にスマホやタブレットでの表示に切り替えてくれる機能です。

使い方は、Google Chromeの画面でF12を押し、

このボタンをクリックして青色(絵の状態)にします。

表示エリア上部にこんな感じのバーが表示されますので、ここをクリックすることで、画面の表示解像度を切り替えることができます。

こうやってレスポンシブ対応できているかを確認するのですね。

実機を使うと、それだけ実物のデバイスを用意しなければなりませんので、これはかなり有効な確認方法です。

ためしに、作成中のいろんなページを表示させてみましょう。

こんな感じで文字が2行になるのはまだ読めるのでセーフです。

こんな感じで表示が枠からはみ出てしまったらアウトですね。

修正する必要があります。

こういうのは、たいていテンプレートやスタイルの問題です。

こんな感じでどうでしょうか。

いい感じに仕上がったと思います。

実は、Laravelには、標準でBootstrapというJSライブラリが組み込まれていて、このライブラリでブラウザ差分を吸収したり、基本的なレスポンシブ対応を行えるようにしてくれています。

今作成している機能はBootstrapをバリバリ活用した作りになっていません。そもそもそんな表示をするところが無いためです。

もしかしたら、画像のサムネイルなどをたくさん表示させたり、表を二列に表示させる場合などに活用することになるかもしれませんね。

まぁ、これで最終チェックして提出しようと思います。

【C#】【数独】解析ロジック(ラインチェック)を追加する

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

最新ソースはこちら(gitHub)

https://github.com/takishita2nd/sudoku

さて、前回のアルゴリズムで、いくつか問題を解いてみたのですが、

こんな問題の時、解析が完了しませんでした。

この状態のまます、解析が進まなかったんですね。

この状態、手で解いた場合、

この2箇所に「3」が入ります。

この時の解析ロジックを組み込まなければなりません。

では、どうやって解析すればいいのか。

この場合、3という数字に注目すると、

この部分、および、すでに確定されているマスに「3」が入ることができません。

赤いところの9マスは一箇所しか空いていないため、そこの空いているマスには「3」が入ることが確定されます。

これをプログラミングで行います。

考え方は、9×9の二次元配列を用意し、各数字について、入れることができないマスを埋めていき、9エリアに一箇所だけ空きがあれば、その値が確定する、とします。

        private void searchNumber()
        {
            for(int number = 1; number <= 9; number++)
            {
                bool[,] tempTable = new bool[9, 9];
                // 初期化
                for (int i = 0; i < 9; i++)
                {
                    for (int j = 0; j < 9; j++)
                    {
                        tempTable[i, j] = false;
                    }
                }

                // 数字が入らないところをtrueにする
                for (int i = 0; i < 9; i++)
                {
                    for(int j = 0; j < 9; j++)
                    {
                        if(tempTable[i,j] == false)
                        {
                            tempTable[i, j] = _square[i, j].isConfirmed();
                            if(_square[i,j].GetValue() == number)
                            {
                                for(int row = 0; row < 9; row++)
                                {
                                    tempTable[row, j] = true;
                                }
                                for(int col = 0; col < 9; col++)
                                {
                                    tempTable[i, col] = true;
                                }

                                int rowStart;
                                int colStart;
                                getRowCol9Area(i, j, out rowStart, out colStart);
                                for (int r = rowStart; r < rowStart + 3; r++)
                                {
                                    for (int c = colStart; c < colStart + 3; c++)
                                    {
                                        tempTable[r, c] = true;
                                    }
                                }
                            }
                        }
                    }
                }

                // debug
                FileAccess.Output(tempTable);

                // 結果を確認する
                for(int i = 0; i < 9; i++)
                {
                    for(int j = 0; j < 9; j++)
                    {
                        if(tempTable[i,j] == false)
                        {
                            int rowStart;
                            int colStart;
                            getRowCol9Area(i, j, out rowStart, out colStart);

                            int count = 0;
                            for (int r = rowStart; r < rowStart + 3; r++)
                            {
                                for (int c = colStart; c < colStart + 3; c++)
                                {
                                    if(tempTable[r,c] == false)
                                    {
                                        count++;
                                    }
                                }
                            }
                            if(count == 1)
                            {
                                _square[i, j].SetValue(number);
                            }
                        }
                    }
                }
            }
        }

        private void getRowCol9Area(int row, int col, out int rowStart, out int colStart)
        {
            if (row >= 0 && row <= 2)
            {
                rowStart = 0;
            }
            else if (row >= 3 && row <= 5)
            {
                rowStart = 3;
            }
            else
            {
                rowStart = 6;
            }

            if (col >= 0 && col <= 2)
            {
                colStart = 0;
            }
            else if (col >= 3 && col <= 5)
            {
                colStart = 3;
            }
            else
            {
                colStart = 6;
            }
        }

一応、色塗りした処理結果もデバッグ用に出力させました。

3の時の色塗り結果を見てみると、9マスで一か所だけ空きがあることが分かります。

目論見通り、3が確定されました。

全部埋まりました。

ロジックがうまく働いたようです。

【バンドリ】【ガルパ】1/21のハロハピ放送局で公開された情報まとめ

新情報まとめました。

新カバー楽曲

ドレミファロンド

ボカロ曲です。

カバーバンドはハロハピ

予想レベル24。

フル楽曲情報

予想通りFIRE BIRDでした。

予想レベル28。

公開と同時にMVも追加されます。

公開日は23日です。

ガールズバンド総選挙情報

イラストと楽曲が公開されました。

曲の一部が後悔されていましたが、かなり難しそうです。

予想レベル27。

ログインボーナス

ログインボーナス忘れずに貰いましょう。

【レビュー】とにかく目を労りたい。アイマッサージャー

本当にね、もう年だからね、長時間PC作業していると目が疲れるのよ。

なので、思い切って買ってみました。

アイマッサージャー。

USBで充電するタイプで、3~4時間の充電で、30~45分使用可能になります。

スイッチをONにすると動き出します。

目に当てる部分が暖かくなり、空気圧と振動でマッサージしてくれます。

やはり、目元を暖めてくれるのは本当に嬉しくて、

今までは蒸しタオルを使っていたのですが、その効果は長くても1分。

でもこれは1回で15分間暖めてくれます。

この機能だけで良い。

もう、マッサージ機能とかは無くても良いです。

振動機能なんて意味わからん。

目を温めて、繰り返し利用できるだけでも買えて満足です。


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