ごまなつ Blog

楽しく働ける世界を目指して

【健康】低コレステロールは何が問題なのか

TL;DR

コレステロールは肝臓の異常、甲状腺の異常、栄養障害が疑われる。

健康診断の結果が返ってきた

最近ではないですが、健康診断の結果が返ってきました。結果は「B」。まあ視力悪いしそうだよな、と思ってみていたら気になる点がありました。それは

コレステロール:137(基準値:140~)

になっていて、低コレステロールが心配になって調べました。すると、低コレステロールは肝臓の異常、甲状腺の異常、栄養障害が疑われる。とのことでした。

2年前は無理な生活をしていて(パスタ(ソースなし)、豆腐のみ)、これは栄養障害なのは考えればわかります。

現在は卵と鶏むね肉とブロッコリーカップ麺を食べてるので、栄養的には問題ない気がします。これは肝臓の異常を疑って病院に行かないとやばいかな、と思っているところです。肝臓が悪くなると、

  • お酒を美味しく感じなくなる
  • 食欲低下(特に脂っこいものを欲しなくなった)
  • 足がむくむ・お腹が張る

ようです。確かに酒はおいしいと感じなくなったし、脂っこいものは食べたくないんですよね。

病院に行くか行かないか、その判断基準を知りたいです。

【健康】低コレステロールは何が問題なのか

TL;DR

コレステロールは肝臓の異常、甲状腺の異常、栄養障害が疑われる。

健康診断の結果が返ってきた

最近ではないですが、健康診断の結果が返ってきました。結果は「B」。まあ視力悪いしそうだよな、と思ってみていたら気になる点がありました。それは

コレステロール:137(基準値:140~)

になっていて、低コレステロールが心配になって調べました。すると、低コレステロールは肝臓の異常、甲状腺の異常、栄養障害が疑われる。とのことでした。ですが、LDLコレステロールが低いだけであれば、問題ない可能性もあるようです。

2年前は無理な生活をしていて(パスタ(ソースなし)、豆腐のみ)、これは栄養障害なのは考えればわかります。

現在は卵と鶏むね肉とブロッコリーカップ麺を食べてるので、栄養的には問題ない気がします。これは肝臓の異常を疑って病院に行かないとやばいかな、と思っているところです。肝臓が悪くなると、

  • お酒を美味しく感じなくなる
  • 食欲低下(特に脂っこいものを欲しなくなった)
  • 足がむくむ・お腹が張る

ようです。確かに酒はおいしいと感じなくなったし、脂っこいものは食べたくないんですよね。

病院に行くか行かないか、その判断基準を知りたいです。

【健康】低コレステロールは何が問題なのか

TL;DR

コレステロールは肝臓の異常、甲状腺の異常、栄養障害が疑われる。

健康診断の結果が返ってきた

最近ではないですが、健康診断の結果が返ってきました。結果は「B」。まあ視力悪いしそうだよな、と思ってみていたら気になる点がありました。それは

LDLコレステロール:37(基準値:40~)

でした。低コレステロールという、聞いたこともない異常でした。これは2年前でしたが、現在は総コレステロール値が

コレステロール:137(基準値:140~)

になっていて、低コレステロールが心配になって調べました。すると、低コレステロールは肝臓の異常、甲状腺の異常、栄養障害が疑われる。とのことでした。

2年前は無理な生活をしていて(パスタ(ソースなし)、豆腐のみ)、これは栄養障害なのは考えればわかります。

現在は卵と鶏むね肉とブロッコリーカップ麺を食べてるので、栄養的には問題ない気がします。これは肝臓の異常を疑って病院に行かないとやばいかな、と思っているところです。肝臓が悪くなると、

  • お酒を美味しく感じなくなる
  • 食欲低下(特に脂っこいものを欲しなくなった)
  • 足がむくむ・お腹が張る

ようです。確かに酒はおいしいと感じなくなったし、脂っこいものは食べたくないんですよね。

病院に行くか行かないか、その判断基準を知りたいです。

【健康】外国産サプリメント、サイズも栄養素も大きい

TL;DR

国産は3食食べることを前提に、大体1/3日分の成分。外国産は1つで1日分を取ろうとすることが多い。摂り過ぎにならないように注意が必要。 外国産は国産と比べてサイズが大きいので飲みにくい

海外製サプリメント、どこで買うの?

海外製サプリメントは、今ならAmazonが一番手軽に買えます。会員登録に抵抗がないなら、MYPROTEIN、iHerbもあります。iHerbは楽天市場 店もあるので手軽かもしれません。関税は金額を抑えればかからないですし、簡単に買えます。

サプリメントは一般的になった

皆さん、サプリメント飲んでますか?いまではすっかり一般的になり、多くの人が飲んでいると思います。私はMYPROTEINのMultiVitaminとトレーニング前に飲むやつ(トレーニングしてないけど)、エビオス錠を飲んでます。何も考えずに買って飲んでいましたが、海外製のサプリメントを調べていると感じたことを書きます。

サイズが大きい

国産に比べてサイズが大きいです。飲みにくい。その代わり、栄養素も多く含まれているのは事実です。サプリメントの飲み方に慣れないと結構きついです。

一つの成分のサプリメントが一日分の摂取量に近い

例えばミネラルが足りないなと感じたときに、鉄や亜鉛サプリメントを飲むと思いますが、国産だと大体1/3~1/2日分の栄養素です。しかし、海外産は1日分に近い量含まれています。栄養素は摂り過ぎると悪影響を及ぼすものもあるので、気を付けましょう。

まとめ

海外産サプリメントは一日分の摂取量に近い量栄養素が含まれていることがあるので、一日分の推奨摂取量を確認して、どのくらい自分が栄養素を摂取しているのか管理する必要がある。摂り過ぎると体に悪影響があるため。

【なでしこ】グループに関する不思議な挙動

最近業務で日本語プログラミング言語のなでしこを触っています。業務自動化を始めた方がなでしこで行ったことにより、なでしこが伝わっているようです。よって、v3ではなくv1です。(なでしこv3がWeb環境で動作、なでしこv1がWindows向け)

なでしこは配列にあたるものがグループです。グループは、イメージ的には表です。

グループ1¥0=0
グループ1¥1=1
グループ1¥2=2

といった定義だと配列ですが、

グループ1¥0,0=0
グループ1¥1,1=1
グループ1¥2,2=2

というように2次元配列のようにもできます。このグループですが、なでしこは変数定義しなくても使えますし、型を宣言する必要がありません。

グループ1¥0,0=0

と書いた瞬間にグループ1というグループが作成されます。

問題

私は、ループを使ってケーブルがあるときとない時の値の差を計算しようとしました。

iで0から7まで繰り返す//for(i=0;i<7;i++)と同じ。かっこはなくインデントで範囲を表現
   ケーブルあり値¥i=ケーブルあり値取得()
   ケーブルなし値¥i=ケーブルなし値取得()
  「{ケーブルあり値¥i}-{ケーブルなし値¥i}」を言う//メッセージボックスで指定文字列を言う

とすると、すべて0が出てきます。調べてみると、ケーブルあり値とケーブルなし値は全く同じ値になっていました。グループを定義して、何も代入していないとグループ名が文字列として要素になります。そこで確認すると、どちらも「ケーブル値」になっていました。どうりで差分が0なわけですね。似ていないグループ名に変更しました。

まだ言語仕様を理解しきれていないのが問題なのかもしれないですが、ちょっと不思議な挙動に遭遇した記録でした。

Google Cloud Vision APIのOCRを触ってみた

画像からテキストを読むことで、データを効率よく取得できるのではないかと考えGoogle Cloud Vision APIOCR機能を触ってみました。公式ページのチュートリアルとほぼ同じです。go言語でやってみました。

まず最初に、Vision APIを使用するための設定を行います。 クイックスタート: クライアント ライブラリの使用  |  Cloud Vision API  |  Google Cloud

今回はローカルの画像を対象としました。

ctx := context.Background()

    // Creates a client.
    client, err := vision.NewImageAnnotatorClient(ctx)
    if err != nil {
        log.Fatalf("Failed to create client: %v", err)
    }
    defer client.Close()

    filename := "Image.jpg"//対象とする画像ファイル名

    file, err := os.Open(filename)
    if err != nil {
        log.Fatalf("Failed to read file: %v", err)
    }
    defer file.Close()
    image, err := vision.NewImageFromReader(file)
    if err != nil {
        log.Fatalf("Failed to create image: %v", err)
    }

    texts, err := client.DetectTexts(ctx, image, nil, 10)//OCRなのでDetectTexts。ラベル検出だとDetectLabels
    if err != nil {
        log.Fatalf("Failed to detect labels: %v", err)
    }

    for _, text := range texts {
        fmt.Println(text.Description)   
    }
}

これで取得したテキストを表示します。テキストは、1行ごとに検出されるというよりはテキストの空白が文章の文字と文字の空白より大きいと判断されたら分割されます。例えば画像中に「弁当 400」があったとしたら、「弁当 400」で読まれるのではなく、「弁当」と「400」で読まれます。

位置はtext.BoundingPoly.String()で取得します。以下の文字列が返されます。

{vertices:{x:205  y:24}  vertices:{x:210  y:24}  vertices:{x:210  y:29}  vertices:{x:205  y:29}}

これはテキスト領域を4角形で検出した4つの頂点の座標を表しています。対象画像のサイズが決まっていたり、テキストに目次がついていれば位置や取得結果からデータを取得できそうだな、と感じました。

Amazon Rekognitionはどうなのか

画像認識サービスとしてもう一つ上げられるのがAmazon Rekognitionです。こちらは、日本語に対応していません。今回対象とした画像は日本語だったため、Google Cloud Vision APIを採用しました。

精度

大方読めていました。ですが、「!」が「i」になったり、半角アルファベットが記号になったりと、文字と文字の間隔が狭かったり似ている記号や文字はミスすることがあるようです。

まとめ

これを使って何か作ってみようと思います。多くのデータを取得するのであれば、手打ちよりも早くできそうですし。

【Go】Goで作ったアプリをHerokuにデプロイするときにハマった

Goのginを使ってtodoアプリにログイン機能とログインセッション、パスワードをハッシュ化して保存など、機能を拡張したものを作りました。

デプロイしてみるか、ということでherokuにデプロイしてみようと思ったのですが、そこで何か所かハマりました。

sudo付け忘れ

Windows環境で、開発はwsl2で行っていました。Linuxなので当然ですが、sudoをつけないとエラーになるコマンドがあります。

バージョン

herokuにpushしていると、

vendor/gorm.io/gorm/utils/utils.go:46:30: reflect.ValueOf(val).IsZero undefined (type reflect.Value has no field or method IsZero)

が出ました。バージョンが足りてなさそうです。開発は1.13で行っており、go.modにもgo 1.13とありましたが、

remote:  !!    The go.mod file for this project does not specify a Go version
remote:  !!
remote:  !!    Defaulting to go1.12.17
remote:  !!
remote:  !!    For more details see: https://devcenter.heroku.com/articles/go-apps-with-modules#build-configuration
remote:  !!

とあり、1.12.17で動作しているようです。調べた結果、go.modの内容を以下のように変更しました。

// +heroku goVersion go1.13 <----これを足す
go 1.13

これで1.13で動作するようになり、エラーが消えました。

警告

remote:  ! ## Warning - The same version of this code has already been built: bbad49b00710bedfaf2440742a213671e7f4f418
remote:  !
remote:  ! We have detected that you have triggered a build from source code with version bbad49b00710bedfaf2440742a213671e7f4f418
remote:  ! at least twice. One common cause of this behavior is attempting to deploy code from a different branch.
remote:  !
remote:  ! If you are developing on a branch and deploying via git you must run:
remote:  !
remote:  !     git push heroku <branchname>:main

すでにそのコミットでのデプロイは試みてるよ、という確認メッセージでした。