CentOS7からCentOS8に移行した時にトラブったこと

現在当社ではConohaのVPSとオブジェクトストレージとロードバランサーを利用している。

その中でさらにVPSではDB(mariaDB)サーバー、HTTPS(Nginx)サーバーで分けている(DBはインターネットからは接続できないようにしている)。

セキュリティアップデートと動作が早くなるとのことで今回VPSをすべてCentOS8に変更してみた。

素直に動作するかなーと思ったら動作しなかったので、トラブった所をメモ

トラブった所

症状:カスタムのネットワークスクリプト(/etc/sysconfig/network-scripts/)で設定した、プライベートIPアドレスの設定がうまいこと行かない

nmtuiで確認したのに、なんかプライベートIPアドレスが設定されていなかったり設定されていたりする。

これ凄く悩んだ。なぜなら中途半端にスクリプトが動いたから

例えばcd /etc/sysconfig/network-scripts/

でロードバランサーを使用する場合はlo: <LOOPBACK>の設定をするんだけど、Loは有効になってなくて、eth1とかはスクリプトが動いたから(nmtuiでの設定は信用できない?)

ifcfg-eth1は動きます

解決法:network-scriptsが未インストール(deprecated)なのでインストールする

コマンド:yum install networkscripts

 

 

症状:systemctl restart network が動作しない

解決法:systemctl restart NetworkManager.service にかわった

とりあえず、ネットワーク関係がちょっと変わっている。

それ以外は一応問題なく動いた。

まぁCentOS8からyumじゃなくてdnfに変わったけど、しばらくはyumが使えるっぽい

あと、メインHPのWordpressの移行もやったからそれについても後日記事各予定です。

Windows hostsファイルを書き換えて、ローカルで確認ってやり方が凄く良かったから、それについて詳しく書きます!

 

AWS IoT ButtonでSwitch Botをオンにする

現在、当家ではセコムホームセキュリティに入っている。

これをSwitch Botを使ってアマゾンダッシュボタンではなくアマゾンダッシュボタンの代わりとなるAWS IoT Button(AWS IoT エンタープライズボタンとか)でオン、オフを制御しようと思う。

イメージとしては

AWS IoT Button

自宅ルーター

AWS IoT 1-Click

AWS Lambda

IFTTTのWebhook

自宅ルーター

Switch Bot Hub

Switch Bot

セコムホームセキュリティがオン

という流れ。

ボタンが押されたらセコムが自動的にオンになって、すごく安全になるはず。

この設定で難しいところがAWS関係だと思うので、そこを中心にやり方を説明します!

やり方

1.スマホにSwitch Botインストールし、ID作って、セットアップ

2.スマホにIFTTTをインストールして、IFTTTのSwitch Botのアクセスを許可して、WebhooksでSwitch Botの連動設定

こんな感じになる

3.スマホにAWS IoT 1-Click(Apple Store Google Play)をインストールして、AWS IoT buttonをセットアップ

4.PCよりAWSにログインしてサービス→コンピューティング→Lambdaを開いて関数作成

関数名:secom

ランタイム:python 3.6

でプロジェクト作成

5.Lambdaの関数コードにIFTTTと連動させる

 

IFTTTのAPIキーはWebhooksのAccount Infoで見れる

シングルクリック、ダブルクリック、長押しの変更は以下のコードを参考にしてください

↓これを入力(APIキーはかえてね)↓

import json
import urllib.request
    
def lambda_handler(event, context):
    clicktype = event['deviceEvent']['buttonClicked']['clickType']
    print(clicktype)
     
    if (clicktype == "SINGLE"):
        url = 'https://maker.ifttt.com/trigger/secom_on/with/key/あなたのAPIkey'
        message = "ボタンが1回押されました"
    elif (clicktype == "DOUBLE"):
        url = 'https://maker.ifttt.com/trigger/secom_off/with/key/あなたのAPIkey'
        message = "ボタンが2回押されました"
    elif (clicktype == "LONG"):
        url = 'https://maker.ifttt.com/trigger/secom_off/with/key/あなたのAPIkey'
        message = "ボタンが長押しされました"
    else:
        message = "clickTypeを正常に取得できませんでした"
        

    req = urllib.request.Request(url)
    with urllib.request.urlopen(req) as res:
        body = res.read()
    return {
        'statusCode': 200,
        'body': json.dumps('')
    }

作成できたらこんな感じになる

6.AWSのメイン画面に戻って、サービス→IoT→IoT 1-Click→プロジェクトを作成を選択

7.プロジェクト名に適当な名前をつけて以下のように設定し、プロジェクトを作成

8.作成したプロジェクトにプレイスメントを以下のように設定。

9.IoT 1 Clickのメイン画面に戻って、管理→デバイス→デバイスの有効化

以上で設定完了です。

これでIoT buttonを押したらSwitch Botが反応するようになります。

ただ、注意点として、毎月AWSのサーバー利用代金に25円ほどかかります。

また押してからのタイムラグは7秒ほどあります!

 

 

Buffaloの外付けSSD(SSD-PM120U3A-S)を分解したらSSDが入ってなかった

ノートパソコンのHDDが壊れたから修理のためにSSDを調達しようとした。

すると最近SSDの値段が高騰していて、2.5インチの内蔵SSDがなかなか昔と比べて値段が上がっている。

安く買えないかなーと思っていたら128GBのBuffaloの外付けSSD(SSD-PMU3AシリーズのSSD-PM120U3A-S)が相対的にお安く買えたので購入した。

これを分解してHDDが壊れたノートパソコンに換装する予定だったのだが、誤算だった。

↓分解から結果↓

2.5インチのHDDとの比較、明らかに小さい(この時点でちょっと焦る)

裏の比較

USB3.1(Gen1)の差込口

普通に小さなマイナスドライバーでこじ開ける

 

こじ開けた結果

 

SATAが挿せるSSDが入ってない・・・・・・・・

使いみちがなくなってしまった。

非常に残念

Google Tag Managerでタグが配信されないことがある

当サイトではGoogle Tag ManagerからGoogle Analyticsに飛ばしてサイトのアクセスを管理している。

そのときにURLに /blog/ が含まれている場合はBlog用のUniversal Analyticsに飛ばして、でもmedicalfields.jpのAll pagesの解析もしたいとのことで、これにもタグを飛ばしている。

でも何故か、All Pagesのタグが飛ばないことがある。

モバイルだとより飛んでなさそう

これは多分ブラウザのリクエスト数の制限を受けているからっぽいです。

https://support.google.com/tagmanager/answer/6103683?hl=ja

発火するタグは減らしましょう

 

あと、<!– Google Tag Manager (noscript) –>タグの設置はちゃんと<body>のあとにしましょう

最新の医薬品データベースを取得できるサイトまとめ

医薬品のデータベースには色々な種類がある

例えば個別医薬品コード(YJコード)、薬価基準収載医薬品コード、レセプト電算処理システムコード、JANコード、調剤包装単位コード、販売包装単位コードなど沢山

薬価基準収載医薬品コードと個別医薬品コードの違い

 

国とか一般財団などが提供している、最新情報にアップデートされる(はずの)無料で使える医薬品データベースをまとめました。

 

薬価基準収載医薬品コード(=厚生省12桁コード)

個別医薬品コード(=YJコード)

JANコード(≒販売包装単位コード)

レセプト電算処理システム用コード(1)

医薬品名

Medis一般財団法人 医療情報システム開発センター

 

レセプト電算処理システム用コード(1)

医薬品名

医薬品名(カタカナ)

薬価

薬価マスタ診療報酬情報提供サービス

 

個別医薬品コード(=YJコード、商品を区別できる)

JANコード(≒販売包装単位コード)

調剤包装単位コード(ヒートのバーコード [0] から始まる)

販売包装単位コード(箱のバーコード [1] から始まる)

元梱包装単位コード(多分ダンボールとかのバーコード [2] から始まる)

販売名・調剤包装単位コードファイル一般財団法人医療情報システム開発センター

 

薬価基準収載医薬品コード(=厚生省12桁コード)

成分名

薬価基準収載品目リスト及び後発医薬品に関する情報について厚生労働省

 

※ちなみにJANコードは廃止されたけど、販売包装単位コードから頭文字の「1」を抜いて、チェックディットを計算させて増やせばJANコードに擬似的に復元することはできる。

薬価基準収載医薬品コードと個別医薬品コードの違い

Meids収載の個別医薬品コード(YJコード)薬価基準収載医薬品コードは微妙に違う

 

基本的に、[個別医薬品コード(YJコード)]=[薬価基準収載医薬品コード]で割り当てられているけど、たまに違うコードがある

これは、薬価請求の時に2種類の方法で請求ができる医薬品があるため、その場合は[薬価基準収載医薬品コード]として別に割り当てられているからだ。

 

商品名レセ電算コード」と「統一名レセ電算コード」による請求である

※Medisでは

商品名レセ電算コード=レセプト電算処理システムコード(1)

統一名レセ電算コード=レセプト電算処理システムコード(2)

 

統一名レセ電算コード」による請求は同じ成分の医薬品なら同じ金額になる

そのため、「統一名レセ電算コード」による請求が出来る場合は、他の同じ成分の医薬品と同じコードになる(ちなみに[薬価基準収載医薬品コード]は末尾から2つ目に全部[01]が割り当てられている)

 

例:アマンタジン塩酸塩錠50mg「杏林」

価基準収載医薬品コード:1161001F1018(610461046【統一名レセ電算コード】)

個別医薬品コード:1161001F1140(620008286【商品名レセ電算コード】)

 

アマンタジン塩酸塩錠50mg「ZE」

薬価基準収載医薬品コード:1161001F1018(610461046【統一名レセ電算コード】)

個別医薬品コード:1161001F1115(620117114【商品名レセ電算コード】)

 

参考:シンメトレル錠50mg

薬価基準収載医薬品コード:1161001F1050(統一名レセ電算コードなし)

個別医薬品コード:1161001F1050(611240080【商品名レセ電算コード】)

 

 

SSL証明書のファイル形式と作成方法まとめ

SSL証明書には主にKEYファイルCSRファイルCRTファイルCERファイルがある

※CRTとCERはほぼ同じだけど便宜上今回はわけます

KEYファイル:秘密鍵ファイル(漏れちゃだめ!)

CSRファイル:秘密鍵を元に作った公開鍵ファイルにコモンネームなどの情報を付加したもの

CRTファイル:↑のCSRファイルが正しいかをSSL証明書会社が証明しているもの。サーバー証明書とも

CERファイルCSRファイルCRTファイルの仲介役的なもの。中間証明書。なくても動いたりするブラウザもあるけど基本的にSSL化するサーバーに必要

 

秘密鍵[KEYファイル]の作り方(centos)

サーバーの秘密鍵作成(パスフレーズなし)
openssl genrsa -out server.key 2048

 

公開鍵[CSRファイル]の作り方(centos)

openssl req -new -key server.key -out server.csr

apacheへの設置の記事はこちら

 

サーバー証明書[CRTファイル]の作り方

SSL証明書業者に頼む必要がある

自分はssl2buy.comってところで頼んでる。安いから

SSL証明書業者に渡す必要があるのはCSRファイルだけ

CSRファイル-[SSL会社の秘密鍵で暗号]→CRTファイルが作られる

 

中間証明書[CERファイル]の作り方

これはネットでダウンロードする

自分の購入したSSL業者のページにあると思う

ちなみにアルファSSLはこれ

 

以上です!

注意点として

インターネットに流出× → [KEYファイル]

逆に[KEYファイル]以外はインターネットで公開してる

 

また、豆知識として

1年とかでCRTファイルCERファイルも)は更新する必要があるけど、同じCSRファイルCRTファイルを作成した場合、期限内のCRTファイルが2つ出来ることになり、期限内であればどちらの証明書でも使うことができます!

※サーバーに設置しているKEYファイルが同じ場合のみ

エンジニア向け広告(チラシ、バナー)デザインの基礎

いろんな所で調べた結果、大体のデザイナーさんが共通してやってること

エンジニアや初心者向け

・左右対称(シンメトリー)

・6:3:1とか1:2とか1:1.618とか(他にもなんか色々)の法則(全部を法則に揃えるのが大事)

・文字のカタマリを意識する

・文字はセンターじゃなくて左右で揃える

・カタマリもそろえる

・カタマリは見えない線でつながってるような感じで配置

・フォントは出来れば1つだけ(〇ゴシック体 ×明朝体 ×ポップ体)

・影やふちなどの装飾はつけない(そのままの文字か、黒で囲んで文字だけ白とか)

・余白を思い切って結構空ける

・開けた余白は間隔を揃える

※bootstrapのグリッドシステムの概念をチラシやバナーにもって考えるとやりやすい

・できれば3色以内(白黒印刷にした時に見にくいと色の使い方がおかしい)

※イメージカラー、文字を読む色、注意の色ぐらいだけ

・文字や写真のアスペクト比は固定させる

 

縦は↘に目線が行く

横はZに目線が行く

 

あとシンプルにする!

 

 

illustratorで文字の大きさ、色、フォントを一括で簡単に他の文字と合わせるやり方

簡単にできます

 

1.選択ツール(V)で変更したいテキストを選択

2.スポイトツール(I)で合わせたい文字をスポイトする

 

これで、フォントや色や大きさが全部コピーされます

 

あと個人的な便利機能メモ

選択ツール(V)はCtrl(Command)キーを押している間はダイレクト選択ツール(A)に変わります

 

PageSpeed Insightsのgzip圧縮を有効にしてるはずなのに有効と表示されない

GoogleのWEBページの測定でおなじみのPageSpeed InsightsだけどApacheとかでgzip圧縮が有効でない場合

「圧縮を有効にする」

Enabling gzip compression can reduce the size of the transferred response by up to 90%

とか出てくる

それで、サーバー側で圧縮を有効にして、再び測定しても何故か圧縮が有効でないと怒られる

その場合は以下のようなページでGZIPが有効かどうかを確認して下さい

http://www.gidnetwork.com/tools/gzip-test.php

https://www.giftofspeed.com/gzip-test/

もし有効なら大丈夫です!多分キャッシュかなんかの関係で更新されてないだけです。

すぐには反映されなかったけど、1日ぐらいして測定したら、自分の場合ちゃんと有効って表示されました!